Efficient encoding of composited display frames
AssigneeCitrix Systems, Inc.
InventorMuhammad Dawood
Life of this patent
Estimating the term…
Abstract
Computer-implemented systems and methods are disclosed for encoding a display frame, wherein the systems and methods acquire a plurality of display frames. The computer implemented systems and methods further detect transient regions for a display frame of the plurality of display frames. Systems and methods are disclosed for encoding transient regions of a display frame using a first encoding mechanism if the display frame contains transient regions. Further, systems and methods are disclosed for encoding non-transient regions using a second encoding mechanism if the display frame contains non-transient regions.
Claims17
A computing device comprising:
- a display frame encoder configured to obtain a plurality of display frames;
- and
- a transient region detector configured to, for a display frame of the plurality of display frames, determine whether the display frame includes at least one transient region and/or at least one non-transient region,
- wherein the display frame encoder is further configured to:
- if the display frame contains at least one transient region, encode the at least one transient region using a first encoding mechanism;
- if the display frame contains at least one non-transient region, encode the at least one non-transient region using a second encoding mechanism;
- determine a plurality of reference points for the at least one non-transient region, wherein each reference point of the plurality of reference points:
- corresponds to a representative pixel having a pixel value that is different from pixel values of at least some pixels surrounding the representative pixel, and
- is used to acquire from a data storage component at least one bitmap reference corresponding to the at least one portion of the one non-transient region;
- if the at least one portion does not correspond to a bitmap reference of the acquired at least one bitmap reference, encode the at least one portion based on content of the at least one portion, wherein encoding the at least one portion further causes the display frame encoder to:
- divide the at least one portion into at least one sub-region;
- and
- for each sub-region of the at least one sub-region:
- encode the sub-region using a lossless encoding if a majority of pixels in the sub-region differs from adjacent pixels by a representative pixel value greater than a threshold, and
- encode the sub-region using a lossy encoding if a majority of pixels in the sub-region differs from adjacent pixels by a representative pixel value less than or equal to the threshold;
- and
- provide the encoded non-transient region and/or the encoded transient region for sending to a second device, wherein the providing of the encoded non-transient region includes the bitmap reference for acquiring any bitmap corresponding to the at least one portion of the non-transient region of the display frame.
A method performed by a computing device that includes one or more processors and comprising:
- obtaining a plurality of display frames;
- for a display frame of the plurality of display frames, determining whether the display frame includes at least one transient region and/or at least one non-transient region;
- in response to the determination that the display frame contains at least one transient region, encoding the at least one transient region using a first encoding mechanism;
- in response to the determination that the display frame contains at least one non-transient region, encoding the at least one non-transient region using a second encoding mechanism, wherein the second encoding mechanism includes:
- determining a plurality of reference points for the at least one non-transient region, wherein each reference point of the plurality of reference points:
- corresponds to a representative pixel having a pixel value that is different from pixel values of at least some pixels surrounding the representative pixel, and
- is used to acquire from a data storage component at least one bitmap reference corresponding to the at least a portion of the one non-transient region;
- in response to the determination that the at least one portion does not correspond to a bitmap reference of the acquired at least one bitmap reference, encoding the at least one portion based on content of the at least one portion, wherein encoding the at least one portion comprises:
- dividing the at least one portion into at least one sub-region;
- and
- for each sub-region of the at least one sub-region:
- encoding the sub-region using a lossless encoding in response to a majority of pixels in the sub-region differing from adjacent pixels by a representative pixel value greater than a threshold, and
- encoding the sub-region using a lossy encoding in response to a majority of pixels in the sub-region differing from adjacent pixels by a representative pixel value less than or equal to the threshold;
- and
- providing the encoded non-transient region and/or the encoded transient region for sending to a second device, wherein the providing of the encoded non-transient region includes the bitmap reference for acquiring any bitmap corresponding to the at least one portion of the non-transient region of the display frame.
A non-transitory computer readable storage medium storing a set of instructions that are executable by one or more processors of a computing device to cause the computing device to perform a method comprising:
- obtaining a plurality of display frames;
- for a display frame of the plurality of display frames, determining whether the display frame includes at least one transient region and/or at least one non-transient region;
- if the display frame contains at least one transient region, encoding the at least one transient region using a first encoding mechanism;
- if the display frame contains at least one non-transient region, encoding the at least one non-transient region using a second encoding mechanism, wherein the second encoding mechanism includes:
- determining a plurality of reference points for the at least one non-transient region, wherein each reference point of the plurality of reference points:
- corresponds to a representative pixel having a pixel value that is different from pixel values of at least some pixels surrounding the representative pixel, and
- is used to acquire from a data storage component at least one bitmap reference corresponding to the at least a portion of the one non-transient region;
- in response to the determination that the at least one portion does not correspond to a bitmap reference of the acquired at least one bitmap reference, encoding the at least one portion based on content of the at least one portion, wherein encoding the at least one portion comprises:
- dividing the at least one portion into at least one sub-region;
- and
- for each sub-region of the at least one sub-region:
- encoding the sub-region using a lossless encoding if a majority of pixels in the sub-region differ from adjacent pixels by a representative pixel value greater than a threshold, and
- encoding the sub-region using a lossy encoding if a majority of pixels in the sub-region differ from adjacent pixels by a representative pixel value less than or equal to the threshold;
- and
- providing the encoded non-transient region and/or the encoded transient region for sending to a second device, wherein the providing of the encoded non-transient region includes the bitmap reference for acquiring any bitmap corresponding to the at least one portion of the non-transient region of the display frame.
Dependencies are inferred from the claim text.