IP Library Granted Patent US 9,560,315
Granted Patent B1
US 9,560,315 · App. 14/960,566 · Granted Jan 31, 2017

Reducing videoconferencing bandwidth usage

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 9,560,315
App. No.
14/960,566
Granted
Jan 31, 2017
Kind
B1
Abstract

Systems and techniques to reduce bandwidth usage of video frames in a videoconferencing system are described. A computing device may receive a first frame of a first video stream from an imaging device and decompose the frame into a plurality of portions. The computing device may select a first portion of the plurality of portions, determine that the first portion matches a sent portion in a sent catalog, determine a first identifier associated with the first portion, and send the first identifier to a server. The computing device may select a second portion of the plurality of portions, determine that the second portion fails to match any of the sent portions in the sent catalog, create and associate a second identifier with the second portion, store the second portion with the second identifier in the sent catalog, and send the second portion to the server.

Claims (90)

1. A computer-implemented method, comprising:

receiving, from an imaging device, a first frame of a first video stream;

decomposing the first frame into a plurality of portions;

selecting a first portion of the plurality of portions;

determining that the first portion matches, within a predetermined threshold, a sent portion that is stored in a sent catalog;

determining a first identifier associated with the first portion based at least in part on the sent catalog;

sending the first identifier, instead of the first portion, to a server;

selecting a second portion of the plurality of portions;

determining that the second portion fails to match any sent portions that are stored in the sent catalog;

creating a second identifier based at least in part on using the second portion as input to a hashing function;

sending the second identifier with the second portion to the server;

storing the second identifier and the second portion in the sent catalog;

receiving data from the server;

determining that the data includes a third portion of a second frame of a second video stream and an associated third identifier;

storing the third portion and the associated third identifier in a received portion catalog;

determining that the data includes a frame complete indicator; and

generating the second frame based on the received portion catalog, wherein the second frame includes at least the third portion of the second frame and a fourth portion of a third frame.

2. The computer-implemented method of claim 1 , further comprising:

sending the second portion to the server.

3. The computer-implemented method of claim 2 , further comprising:

associating the second identifier with the second portion.

4. The computer-implemented method of claim 1 , wherein the first video stream is H.264 compliant.

5. The computer-implemented method of claim 4 , further comprising:

determining that the data includes a fourth identifier; and

retrieving a fourth portion associated with the fourth identifier from the received portion catalog.

6. The computer-implemented method of claim 4 , wherein determining that the first portion matches, within the predetermined threshold, the sent portion that is stored in the sent catalog comprises:

comparing the first portion with the sent portion; and

determining that the first portion differs from the sent portion by less than a predetermined number of pixels.

7. The computer-implemented method of claim 4 , further comprising:

determining that the data includes a macro identifier; and

retrieving a plurality of received portions from the received portion catalog based at least in part on the macro identifier.

8. One or more non-transitory computer-readable media storing instructions that are executable by one or more processors to perform operations comprising:

receiving, from an imaging device, a first frame of a first video stream;

selecting a first portion of a plurality of portions of the first frame;

determining that the first portion matches, within a predetermined threshold, a sent portion that is included in a sent catalog;

determining a first identifier associated with the first portion based on the sent catalog;

sending the first identifier, instead of the first portion, to a server;

selecting a second portion of the plurality of portions;

determining that the second portion fails to match any sent portions that are stored in the sent catalog;

creating a second identifier based at least in part on using the second portion as input to a hashing function;

sending the second identifier with the second portion to the server;

storing the second identifier and the second portion in the sent catalog;

receiving data from the server;

determining that the data includes a third portion of a second frame of a second video stream and an associated third identifier;

storing the third portion and the associated third identifier in a received portion catalog;

determining that the data includes a frame complete indicator; and

generating the second frame based on the received portion catalog, wherein the second frame includes at least the third portion of the second frame and a fourth portion of a third frame.

9. The one or more non-transitory computer-readable media of claim 8 , the operations further comprising:

sending the second portion to the server.

10. The one or more non-transitory computer-readable media of claim 9 , the operations further comprising:

associating the second identifier with the second portion.

11. The one or more non-transitory computer-readable media of claim 8 , the operations further comprising:

receiving a selection to display complete frames before generating the second frame.

12. The one or more non-transitory computer-readable media of claim 11 , the operations further comprising:

determining that the data includes a fourth identifier; and

retrieving a fourth portion associated with the fourth identifier from the received portion catalog.

13. The one or more non-transitory computer-readable media of claim 11 , the operations further comprising:

determining that the data includes a macro identifier; and

retrieving a plurality of received portions from the received portion catalog based at least in part on the macro identifier.

14. A computing device, comprising:

one or more processors; and

one or more non-transitory computer-readable media storing instructions that are executable by the one or more processors to perform operations comprising:

receiving, from an imaging device, a first frame of a first video stream;

determining that a first portion of the first frame matches, within a predetermined threshold, a sent portion that is stored in a sent catalog;

determining a first identifier associated with the first portion based on the sent catalog;

sending the first identifier, instead of the first portion, to a server;

selecting a second portion of the first frame;

determining that the second portion fails to match any sent portions that are stored in the sent catalog;

creating a second identifier based at least in part on using the second portion as input to a hashing function;

sending the second identifier with the second portion to the server;

storing the second identifier and the second portion in the sent catalog;

receiving data from the server;

determining that the data includes a third portion of a second frame of a second video stream and an associated third identifier;

storing the third portion and the associated third identifier in a received portion catalog;

determining that the data includes a frame complete indicator; and

generating the second frame based on the received portion catalog, wherein the second frame includes the third portion of the second frame and a fourth portion of a third frame.

15. The computing device of claim 14 , the operations further comprising:

sending the second portion to the server.

16. The computing device of claim 15 , the operations further

associating the second identifier with the second portion.

17. The computing device of claim 14 , wherein determining that the first portion matches, within the predetermined threshold, the sent portion that is stored in the sent catalog comprises:

comparing the first portion with the sent portion; and

determining that the first portion differs from the sent portion by less than a predetermined number of pixels.

18. The computing device of claim 17 , the operations further comprising:

determining that the data includes a fifth identifier; and

retrieving a fifth portion associated with the fifth identifier from the received portion catalog.

19. The computing device of claim 17 , wherein the first video stream has a frame rate of one of fifteen frames per second, thirty frames per second, or sixty frames per second.

20. The computing device of claim 17 , the operations further comprising:

determining that the data includes a macro identifier; and

retrieving a plurality of received portions from the received portion catalog based at least in part on the macro identifier.

Assignments (17)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2018
From: DELL SOFTWARE INC.
To: DELL PRODUCTS L.P.
Reel/Frame 044947/0749 →
RELEASE OF SECURITY INTEREST Recorded Nov 4, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION
Reel/Frame 040564/0886 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Nov 4, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; AVENTAIL LLC; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION
Reel/Frame 040564/0897 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 037848 FRAME 0001 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0152 →
RELEASE OF REEL 037848 FRAME 0210 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040031/0725 →
RELEASE OF REEL 037847 FRAME 0843 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0366 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Feb 18, 2016
From: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037847/0843 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Feb 18, 2016
From: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037848/0001 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Feb 18, 2016
From: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 037848/0210 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2015
From: SILBERMAN, GABRIEL M.; FORD, DANIEL A.
To: DELL SOFTWARE, INC.
Reel/Frame 037223/0884 →