Method and apparatus for efficient application screen compression
AssigneeAlibaba Group Holding Limited
InventorsTae Meon Bae, Sicheng Li, Yen-kuang Chen, Guanlin Wu, Shaolin Xie, Minghai Qin, Qinggang Zhou
Life of this patent
Estimating the term…
Abstract
A method for of encoding an application screen comprises partitioning graphic data into a plurality of graphic layers and classifying each of the plurality of graphic layers as either a screen content (SC) or a non-screen content (non-SC) layer. The method further comprises classifying each of the plurality of graphic layers as either a screen content (SC) or a non-screen content (non-SC) layer. Further, the method comprises rendering and encoding the one or more SC layers using a first codec and the one or more non-SC layers using a second codec.
Claims14
A computer-implemented method of encoding a screen frame of an application, the method comprising:
- partitioning graphic data of the screen frame into a plurality of graphic layers;
- classifying each of the plurality of graphic layers as either a screen content (SC) layer or a non-screen content (non-SC) layer, wherein the SC layer comprises computer-generated video content and wherein the non-SC layer comprises natural video content, wherein the classifying comprises identifying the one or more SC layers and the one or more non-SC layers of the plurality of graphic layers based on rendering commands associated with respective layers of the plurality of graphic layers, wherein the rendering commands are particular to a type of layer of the plurality of graphic layers;
- rendering and encoding one or more SC layers of the plurality of graphic layers using a first codec and rendering and encoding one or more non-SC layers of the plurality of graphic layers using a second codec;
- and
- transmitting the one or more SC layers and the one or more non-SC layers to a destination device, wherein the one or more SC layers and the one or more non-SC layers are operable to be decoded at the destination device and combined to form a rendered video frame.
A system for performing a method of encoding a screen frame of an application, the system comprising:
- a memory;
- and
- a processing device communicatively coupled with the memory and the processing device configured to:
- partition graphic data of the screen frame into a plurality of graphic layers;
- classify each of the plurality of graphic layers as either a screen content (SC) layer or a non-screen content (non-SC) layer, wherein the SC layer comprises computer-generated video content and wherein the non-SC layer comprises natural video content, wherein to classify each of the plurality of graphic layers, the processing device is further configured to identify the one or more SC layers and the one or more non-SC layers of the plurality of graphic layers based on rendering commands associated with respective layers of the plurality of graphic layers, wherein the rendering commands are particular to a type of layer of the plurality of graphic layers;
- group one or more SC layers into a first group and group one or more non-SC layers into a second group;
- render and encode the first group using a first codec to produce an encoded first group and render and encode the second group using a second codec to produce an encoded second group;
- transmit the encoded first group and the encoded second group to a destination device, wherein the encoded first group and the encoded second group are operable to be decoded at the destination device with respective decoders and combined to form a rendered video frame.
A non-transitory computer-readable storage medium having stored thereon, computer executable instructions that, if executed by a computer system cause the computer system to perform a method of encoding a screen frame of an application, the method comprising:
- partitioning graphic data of the screen frame into a plurality of graphic layers;
- classifying each of the plurality of graphic layers as either a screen content (SC) layer or a non-screen content (non-SC) layer, wherein the SC layer comprises computer-generated video content and wherein the non-SC layer comprises natural video content, wherein the classifying comprises identifying the one or more SC layers and the one or more non-SC layers of the plurality of graphic layers based on rendering commands associated with respective layers of the plurality of graphic layers, wherein the rendering commands are particular to a type of layer of the plurality of graphic layers;
- rendering and encoding one or more non-SC layers of the plurality of graphic layers using a codec to produce an encoded one or more non-SC layers;
- transmitting the encoded one or more non-SC layers to a destination device;
- streaming rendering commands associated with the one or more SC layers to the destination device, and
- wherein the encoded one or more non-SC layers are operable to be decoded at the destination device, and wherein the one or more SC layers are operable to be rendered at the destination device using the rendering commands.
Dependencies are inferred from the claim text.