IP Library Granted Patent US 9,565,227
Granted Patent B1
US 9,565,227 · App. 14/306,084 · Granted Feb 7, 2017

Composition control method for remote application delivery

Inventors: Paul Andrew Helter (Coquitlam, CA); David Victor Hobbs (Surrey, CA)
Assignee: Teradici Corporation
H04L65/60H04L67/42
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,565,227
App. No.
14/306,084
Granted
Feb 7, 2017
Kind
B1
Abstract

A method for communicating an image stream, one embodiment comprising negotiating, between a server and client, an MTCC identifying: a window as a portion of a display of the client, and an occluded portion of the window defined by the client; generating, by the server, complying with the MTCC, a sequence of image frames each comprising pixel data in a portion of the frame identified by the occluded portion; transmitting an encoding of a first frame of the sequence not including an encoding of the pixel data in the portion of the first frame; identifying, by the server, an event associated with the sequence; and transmitting, before communication between the server and the client regarding the event, by the server, information of the event in conjunction with an encoding of a second frame of the sequence including an encoding of the pixel data in the portion of the second frame.

Claims (31)

1. A method for communicating an image stream, comprising:

negotiating, by a server, with a client computer, via a network session, a media transport and composition configuration (MTCC) by exchanging co-ordinates, sizing and priorities of display windows to identify (i) a window as a portion of a display of the client computer and (ii) an occluded portion of the window, wherein occlusion of the occluded portion is controlled by the client computer;

generating, by the server and in compliance with the MTCC, a sequence of image frames, wherein each image frame of the sequence of image frames comprises pixel data in a portion of the image frame identified by the occluded portion;

transmitting, via the network session, an encoding of a first frame of the sequence of image frames, wherein the encoding of the first frame does not include an encoding of the pixel data in the portion of the first frame identified by the occluded portion;

identifying, by the server, an event associated with the sequence of image frames; and

transmitting, by the server to the client computer, information of the event in conjunction with an encoding of a second frame of the sequence of image frames to reduce event response latency, wherein the encoding of the second frame includes an encoding of the pixel data in the portion of the second frame identified by the occluded portion, wherein transmitting the information of the event occurs prior to any other communication between the server and the client computer regarding the event, and wherein the client computer composes and displays a display of the sequence of image frames according to the information of the event; and

receiving, at the server, an acknowledgement of the event, from the client after a round trip delay,

wherein transmitting the information of the event in conjunction with the encoding of a second frame and prior to the reception of the acknowledgement at the server reduces a displayed response latency to the event by the client computer by at least the round trip delay as compared to transmitting an encoding of the occluded portion of the second frame subsequent to receiving the acknowledgement at the server.

2. The method of claim 1 , wherein negotiating the MTCC comprises the client computer allocating the window, exclusive of the occluded portion, to the server; and wherein transmitting the encoding of the second frame is initiated, (i) in response to identifying the event and (ii) prior to the server receiving an updated allocation of the display inclusive of the occluded portion.

3. The method of claim 2 , further comprising:

receiving, by the server, a response to transmitting the information; and

transmitting, to the client computer, an encoding of a third frame of the sequence of image frames, wherein the encoding of the third frame selectively includes, based on the response, an encoding of the pixel data of the third frame.

4. The method of claim 1 , wherein the information comprises an update to media transport and composition (MTC) parameters of the window; and wherein the client computer determines, based on the information and MTC parameters of a second window, a display of a decoding of the encoding of the second frame, wherein negotiating the MTCC is based on the MTC parameters of the window.

5. The method of claim 1 , wherein negotiating the MTCC comprises negotiating an image size of the window and wherein the sequence of image frames is rendered to the image size.

6. The method of claim 1 , wherein the event is an upstream event received by the server and wherein the server is required to pass the information of the event downstream to the client computer to update the MTCC.

7. The method of claim 1 , wherein the portion of the display is a sub-portion of an overall display dimension of the display.

8. The method of claim 1 , wherein the event is a request, from an application rendering the sequence of image frames, to change to a full screen mode, and wherein the information comprises a change of the window to a visible image size of the display.

9. The method of claim 1 , wherein the event is at least one of:

a user interaction;

a defined change in an audio stream associated with the sequence of image frames;

a user input provided with content of the sequence of image frames; or

a change in an application generating the sequence of image frames, the change in the application comprising at least one of:

a completion of a user-initiated activity;

a detection of a user-defined data value;

a rendering of a dialog box; or

an event, from the application generating the sequence of image frames, in response to a user input received from the client computer.

10. The method of claim 1 , wherein (a) the server presents itself as an media transport and composition (MTC) client to an upstream server, and (b) the upstream server renders, encodes and transmits an encoding of an image sequence; and wherein generating the sequence of image frames comprises decoding the encoding of the image sequence.

11. The method of claim 1 , wherein during a period of defined bandwidth utilization of an available bandwidth of the network session, the client computer transmits an initial quality encoding of a frame of the sequence of image frames and wherein the client computer displays a decoding of the initial quality encoding upon receiving the information of the event and prior to completing a decoding of the encoding of the second frame.

12. The method of claim 1 , wherein negotiating the MTCC comprises the client computer referencing a prior MTCC resulting from a user interaction.

13. The method of claim 1 , wherein negotiating the MTCC comprises the server adjusting and communicating first media transport and composition (MTC) parameters, based on second MTC parameters, wherein first MTC parameters are associated with the server, and the second MTC parameters are received from the client computer and associated with a second server.

14. The method of claim 1 , wherein transmitting the encoding of the first frame is based on the MTCC; wherein the server identifies the event subsequent to transmitting the encoding of the first frame; and wherein transmitting the information is based on the MTCC and the event.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2025
From: TERADICI CO.
To: HP TECHNOLOGY HOLDINGS LLC
Reel/Frame 071854/0373 →
CHANGE OF NAME Recorded May 19, 2025
From: TERADICI CORPORATION
To: TERADICI CO.
Reel/Frame 071296/0559 →
RELEASE OF SECURITY INTEREST Recorded May 13, 2025
From: COMERICA BANK
To: TERADICI CORPORATION
Reel/Frame 071097/0240 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2019
From: BEEDIE CAPITAL PARTNERS FUND I LIMITED PARTNERSHIP
To: TERADICI CORPORATION
Reel/Frame 048473/0846 →
SECURITY INTEREST Recorded Feb 27, 2019
From: TERADICI CORPORATION
To: COMERICA BANK
Reel/Frame 048454/0895 →
SECURITY INTEREST Recorded Mar 3, 2016
From: TERADICI CORPORATION
To: BEEDIE CAPITAL PARTNERS FUND I LIMITED PARTNERSHIP
Reel/Frame 037988/0364 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2014
From: HELTER, PAUL ANDREW; HOBBS, DAVID VICTOR
To: TERADICI CORPORATION
Reel/Frame 033137/0434 →