IP Library Granted Patent US 7,340,103
Granted Patent B2
US 7,340,103 · App. 11/652,172 · Granted Mar 4, 2008

Adaptive entropy encoding/decoding for screen capture content

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 7,340,103
App. No.
11/652,172
Granted
Mar 4, 2008
Kind
B2
Abstract

Adaptive entropy encoding and decoding techniques are described. For example, a screen capture encoder and decoder perform adaptive entropy encoding and decoding of palettized screen capture content in screen capture video. The encoder selects between different entropy encoding modes (such as an arithmetic coding mode and a combined run length/Huffman encoding mode, which allow the encoder to emphasize bitrate reduction at some times and encoding speed at other times). The run length encoding can use run value symbols adapted to common patterns of redundancy in the content. When the encoder detects series of pixels that could be encoded with different, alternative runs, the encoder selects between the alternative runs based upon efficiency criteria. The encoder also performs adaptive Huffman encoding, efficiently parameterizing Huffman code tables to reduce overall bitrate while largely preserving the compression gains of the adaptive Huffman encoding. A decoder performs converse operations.

Claims (27)

1. A computer-readable storage medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method comprising:

receiving run length encoded data for a current frame in a series; and

run length decoding plural pixel series in the current frame from the run length encoded data for the current frame, each of the plural pixel series being encoded as a run length and a run value, wherein the run value for at least one of the plural pixel series is a color value symbol, wherein the run value for at least one of the plural pixel series is an above color value symbol, wherein the run value for at least one of the plural pixel series is a previous frame color value symbol that references color values of pixels in a previous frame before the current frame in the series, and wherein the previous frame color value symbol indicates the color values of pixels in the previous frame are identical to color values of pixels at the same locations in the current frame.

2. The computer-readable storage medium of claim 1 wherein the method further comprises adaptive Huffman decoding the run values and the run lengths before the run length decoding.

3. The computer-readable storage medium of claim 2 wherein the method further comprises:

receiving a code count and lengths for less than all of plural Huffman codes; and

reconstructing the plural Huffman codes from the code count and the lengths.

4. The computer-readable storage medium of claim 1 wherein the pixels are for screen capture content.

5. The computer-readable storage medium of claim 1 wherein the previous frame is decoded before the current frame during decoding.

6. A method comprising:

run length encoding plural pixel series in a current frame in a series, each of the plural pixel series being encoded as a run length and a run value, wherein the run value for at least one of the plural pixel series is a color value symbol, wherein the run value for at least one of the plural pixel series is an above color value symbol, wherein the run value for at least one of the plural pixel series is a previous frame color value symbol that references color values of pixels in a previous frame before the current frame in the series, and wherein the previous frame color value symbol indicates the color values of pixels in the previous frame are identical to color values of pixels at the same locations in the current frame; and

outputting encoded data for the plural pixel series.

7. The method of claim 6 wherein the method further comprises adaptive Huffman encoding the run values and the run lengths after the run length encoding.

8. The method of claim 7 wherein the method further comprises, as part of the outputting, signaling a code count and lengths for less than all of plural Huffman codes.

9. The method of claim 6 wherein the pixels are for screen capture content.

10. A computer-readable storage medium storing computer-executable instructions for causing a computer system programmed thereby to perform the method of claim 6 .

11. The method of claim 6 wherein the pixels are for palletized content.

12. The method of claim 6 wherein the method further comprises, for at least one of the plural pixel series, selecting between using the color value symbol, above color value symbol and previous frame color value symbol for the pixel series.

13. A method comprising:

receiving run length encoded data for a current frame in a series; and

run length decoding plural pixel series in the current frame from the run length encoded data for the current frame, each of the plural pixel series being encoded as a run length and a run value, wherein the run value for at least one of the plural pixel series is a color value symbol, wherein the run value for at least one of the plural pixel series is an above color value symbol, wherein the run value for at least one of the plural pixel series is a previous frame color value symbol that references color values of pixels in a previous frame before the current frame in the series, and wherein the previous frame color value symbol indicates the color values of pixels in the previous frame are identical to color values of pixels at the same locations in the current frame.

14. The method of claim 13 wherein the method further comprises adaptive Huffman decoding the run values and the run lengths before the run length decoding.

15. The method of claim 14 wherein the method further comprises:

receiving a code count and lengths for less than all of plural Huffman codes; and

reconstructing the plural Huffman codes from the code count and the lengths.

16. The method of claim 13 wherein the pixels are for screen capture content.

17. The method of claim 13 wherein the previous frame is decoded before the current frame during decoding.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2016
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: ZHIGU HOLDINGS LIMITED
Reel/Frame 040354/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →