IP Library › Granted Patent US 10,678,929
Granted Patent B2
US 10,678,929 · App. 15/917,276 · Granted Jun 9, 2020

Systems and methods for embedding data in remote session displays

Inventor: Hao Chen (Nanjing, CN)
Assignee: CITRIX SYSTEMS, INC.
G06F21/602G06F21/16H04N1/3216H04N1/32144H04N1/32213G06T1/0085G06T2201/0051G06T2201/0052
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,678,929
App. No.
15/917,276
Granted
Jun 9, 2020
Kind
B2
Abstract

Systems and methods for embedding data in a dynamic image of a remote session display. The method includes, by a processor: receiving a display frame associated with the dynamic image, receiving data to be embedded in the display frame, identifying one or more stable regions in the display frame, upon identification of the one or more stable regions, updating a cache, identifying a largest stable region corresponding to the display frame in the cache, and embedding the data to be embedded in the largest stable region to create a region including embedded data. The cache includes a plurality of stable regions corresponding to one or more display frames associated with the dynamic image.

Claims (62)

1. A method for embedding data in a dynamic image of a remote session display, the method comprising, by a processor:

receiving a display frame associated with the dynamic image;

receiving data to be embedded in the display frame;

identifying one or more stable regions in the display frame;

upon identification of the one or more stable regions, updating a cache, wherein the cache comprises a plurality of stable regions corresponding to one or more display frames associated with the dynamic image;

identifying, in the cache, a largest stable region corresponding to the display frame; and

embedding the data to be embedded in the largest stable region to create a region including embedded data.

2. The method of claim 1 , further comprising, by the processor, composing a composite frame by replacing an area corresponding to the largest stable region in the display frame with the region including embedded data.

3. The method of claim 1 , further comprising, by the processor, encrypting the data to be embedded before performing the embedding.

4. The method of claim 1 , further comprising, by the processor, before embedding the data to be embedded in the largest stable region:

determining whether the largest stable region already includes the data to be embedded; and

performing the embedding only if the largest stable region does not include the data to be embedded.

5. The method of claim 1 , further comprising, by the processor, before embedding the data to be embedding in the largest stable region:

determining whether a size of the largest stable region is less than a threshold size; and

performing the embedding in the largest stable region only if the size of the largest stable region is not less than threshold size.

6. The method of claim 5 , further comprising, in response to determining that the size of the largest stable region is less than the threshold size, embedding the data to be embedded in the display frame using a least significant bit algorithm.

7. The method of claim 5 , wherein the threshold size is equal to at least four times a length of the data to be embedded.

8. The method of claim 5 , wherein performing the embedding in the largest stable region comprises:

performing a transform function on the largest stable region to create a frequency domain representation of the largest stable region;

creating an empty bitmap;

embedding the data to be embedded in the empty bitmap to create a bitmap including embedded data;

substituting a section of the frequency domain representation of the largest stable region with the bitmap including embedded data to create a modified frequency domain representation; and

performing a reverse transform function on the modified frequency domain representation.

9. The method of claim 8 , wherein the transform function is a fast fourier transform (FFT) and the reverse transform function is a reverse FFT.

10. The method of claim 8 , wherein substituting the section of the frequency domain representation of the largest stable region with the bitmap including embedded data comprises substituting a bottom right corner section of the frequency domain representation of the largest stable region.

11. The method of claim 8 , wherein creating the empty bitmap comprises creating the empty bitmap that has a pixel height that is half of a pixel height of the largest stable area and a pixel length that is half of a pixel length of the largest stable area.

12. The method of claim 1 , further comprising, by the processor:

including an identifier in the region including embedded data; and

replacing the largest stable region with the region including embedded data in the cache.

13. The method of claim 1 , wherein identifying the one or more stable regions in the display frame comprises comparing the display frame with at least one previous display frame associated with the dynamic image.

14. A system for embedding data in a dynamic image of a remote session display, the system comprising:

a processor; and

a non-transitory computer-readable storage medium comprising programming instructions that are configured to cause the processor to:

receive a display frame associated with the dynamic image,

receive data to be embedded in the display frame,

identify one or more stable regions in the display frame,

upon identification of the one or more stable regions, update a cache, wherein the cache comprises a plurality of stable regions corresponding to one or more display frames associated with the dynamic image,

identify, in the cache, a largest stable region corresponding to the display frame, and

embed the data to be embedded in the largest stable region to create a region including embedded data.

15. The system of claim 14 , wherein the programming instruction further comprise instructions to cause the processor to compose a composite frame by replacing an area corresponding to the largest stable region in the display frame with the region including embedded data.

16. The system of claim 14 , wherein the programming instruction further comprise instructions to cause the processor to encrypt the data to be embedded before performing the embedding.

17. The system of claim 14 , wherein the programming instruction further comprise instructions to cause the processor to, before embedding the data to be embedded in the largest stable region:

determine whether the largest stable region already includes the data to be embedded; and

perform the embedding only if the largest stable region does not include the data to be embedded.

18. The system of claim 14 , wherein the programming instruction further comprise instructions to cause the processor to, before embedding the data to be embedding in the largest stable region:

determine whether a size of the largest stable region is less than a threshold size; and

perform the embedding in the largest stable region only if the size of the largest stable region is not less than threshold size.

19. The system of claim 18 , wherein the programming instruction further comprise instructions to cause the processor to, in response to determining that the size of the largest stable region is less than the threshold size, embed the data to be embedded in the display frame using a least significant bit algorithm.

20. The system of claim 18 , wherein the threshold size is equal to at least four times a length of the data to be embedded.

21. The system of claim 18 , wherein the programming instruction that cause the processor to perform the embedding in the largest stable region further comprise instruction to:

perform a transform function on the largest stable region to create a frequency domain representation of the largest stable region;

create an empty bitmap;

embed the data to be embedded in the empty bitmap to create a bitmap including embedded data;

substitute a section of the frequency domain representation of the largest stable region with the bitmap including embedded data to create a modified frequency domain representation; and

perform a reverse transform function on the modified frequency domain representation.

22. The system of claim 21 , wherein the transform function is a fast fourier transform (FFT) and the reverse transform function is a reverse FFT.

23. The system of claim 21 , wherein the programming instruction that cause the processor to substitute the section of the frequency domain representation of the largest stable region with the bitmap including embedded data further comprise instructions to substitute a bottom right corner section of the frequency domain representation of the largest stable region.

24. The system of claim 21 , wherein the programming instruction that cause the processor to create the empty bitmap comprise instructions to create the empty bitmap that has a pixel height that is half of a pixel height of the largest stable area and a pixel length that is half of a pixel length of the largest stable area.

25. The system of claim 14 , wherein the programming instruction further comprise instructions to cause the processor to:

include an identifier in the region including embedded data; and

replacing the largest stable region with the region including embedded data in the cache.

26. The system of claim 14 , wherein the programming instruction that cause the processor to identify the one or more stable regions in the display frame comprise instructions to compare the display frame with at least one previous display frame associated with the dynamic image.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2018
From: CHEN, HAO
To: CITRIX SYSTEMS, INC.
Reel/Frame 045162/0671 →
Continuity (1)
Related Publication 20190278917A1 · Sep 12, 2019