IP Library Granted Patent US 9,185,423
Granted Patent B2
US 9,185,423 · App. 13/148,866 · Granted Nov 10, 2015

Frame buffer compression for video processing devices

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,185,423
App. No.
13/148,866
Granted
Nov 10, 2015
Kind
B2
Abstract

For compressing a video signal, a local multiscale transform is applied to a frame of the video signal to obtain coefficient blocks. The coefficients of each block are distributed into coefficient groups associated with that block. A plurality of the coefficient groups associated with a block are processed. The processing of one of the groups comprises determining an exponent for encoding the coefficients of that group. Mantissas are determined for quantizing the coefficients of the plurality of groups in combination with the exponents respectively determined for these groups. Coding data including each exponent determined for a coefficient group and the mantissas quantizing the coefficients of the group in combination with this exponent are stored in an external frame buffer. The mantissas determined for quantizing the coefficients of one of the groups are represented in the coding data by a respective number of bits depending on the exponents determined for the plurality of coefficient groups.

Claims (55)

1. A method of compressing a video signal, comprising:

applying a local multiscale transform to a frame of the video signal to obtain coefficient blocks;

distributing the coefficients of each block into coefficient groups associated with said block;

processing a plurality of the coefficient groups associated with a block, wherein the processing of one of the groups comprises determining an exponent for encoding the coefficients of said one of the groups, and wherein the processing of the plurality of coefficient groups comprises determining mantissas for quantizing the coefficients of each group in the plurality of groups in combination with the exponents respectively determined for said groups; and

storing coding data including each exponent determined for a coefficient group and the mantissas quantizing the coefficients of said group in combination with said exponent,

wherein the mantissas determined for quantizing the coefficients of one of the groups are represented in the coding data by a respective number of bits depending on the exponents respectively determined for said plurality of coefficient groups.

2. The method as claimed in claim 1 , wherein each coefficient group is made up of coefficients resulting from the local multiscale transform at a same scale.

3. The method as claimed in claim 1 , comprising:

allocating a preset number of coding data bits to all the mantissas determined for said plurality of coefficient groups; and

distributing the preset number of coding data bits among the coefficient groups as a function of the exponents respectively determined for said coefficient groups.

4. The method as claimed in claim 3 , wherein the distribution of the preset number of coding data bits among the coefficient groups is such that the number of bits representing the mantissas determined for quantizing the coefficients of one of the groups in the coding data is an increasing function of the exponent determined for said one of the groups.

5. The method as claimed in claim 1 , wherein respective priority indexes are respectively assigned to the plurality of coefficient groups associated with a coefficient block, and wherein the mantissas determined for quantizing the coefficients of one of the groups are represented in the coding data by a respective number of bits depending on the exponents determined for the plurality of coefficient groups and on the priority indexes assigned to the plurality of coefficient groups.

6. The method as claimed in claim 5 , comprising:

allocating a preset number of coding data bits to all the mantissas determined for said plurality of coefficient groups; and

distributing said preset number of coding data bits among the coefficient groups as a function of the exponents respectively determined for said groups and of the priority indexes respectively assigned to said groups.

7. The method as claimed in claim 6 , wherein the priority index is zero for at least one first coefficient group and a positive integer for at least one second coefficient group, and wherein the distribution of the preset number of coding data bits among the coefficient groups is such that the number of bits representing the mantissas determined for quantizing the coefficients of one of the coefficient groups in the coding data is an increasing function of the sum of the exponent determined for said one of the coefficient groups and the priority index assigned to said one of the coefficient groups.

8. The method as claimed in claim 5 , wherein said plurality of coefficient groups include first groups having the same number of coefficients and at least one second group having fewer coefficients than said first groups, the method comprising:

rearranging the coefficients of said second group by a bit permutation into a rearranged group of M modified coefficients, where M is the number of coefficients in said first groups;

increasing the priority index of the rearranged group as compared to said second group to account for a reduction of the number of bits per coefficient resulting from the permutation.

9. An encoder for compressing a video signal, comprising:

a transforming unit for applying a local multiscale transform to a frame of the video signal to obtain coefficient blocks;

a mapping unit for distributing the coefficients of each block into coefficient groups associated with said block; and

a coding data generator for generating coding data from a plurality of the coefficient groups associated with a block, wherein the coding data include, for one of the groups:

an exponent for encoding the coefficients of said one of the groups; and

mantissas for quantizing the coefficients of said one of the groups in combination with the exponent determined for said one of the groups,

wherein the mantissas determined for one of the groups are represented in the coding data by a respective number of bits depending on the exponents determined for said plurality of coefficient groups.

10. The encoder as claimed in claim 9 , wherein respective priority indexes are respectively assigned to the plurality of coefficient groups associated with a coefficient block, and wherein the mantissas determined for one of the groups are represented in the coding data by a respective number of bits depending on the exponents determined for the plurality of coefficient groups and on the priority indexes assigned to the plurality of coefficient groups.

11. A method of decompressing a video signal from coding data, wherein, for a frame of the video signal, the coding data include block data for respective coefficient blocks corresponding to respective regions of the frame in a local multiscale transform, wherein each block comprises a plurality of coefficient groups, wherein the block data for each coefficient block include exponents respectively associated with at least some of the coefficient groups of said block and mantissas associated with the coefficients of each group of said at least some of the coefficient groups, the method comprising, for at least one coefficient block:

reading in the block data the exponents associated with said coefficient groups;

obtaining from the block data the mantissas associated with the coefficients of said coefficient groups in accordance with a distribution of coding data bits determined as a function of the read exponents;

recovering approximated values of the coefficients of each of said coefficient groups by combining the mantissas associated with said coefficients and the exponent associated with said coefficient group;

assembling said coefficient block using the approximated coefficient values; and

applying a local inverse multiscale transform to the assembled coefficient block.

12. The method as claimed claim 11 , wherein the distribution of coding data bits in the block data is determined as a function of the read exponents and of priority indexes assigned to said coefficient groups.

13. A decoder for decompressing a video signal from coding data, wherein, for a frame of the video signal, the coding data include block data for respective coefficient blocks corresponding to respective regions of the frame in a local multiscale transform, wherein each block comprises a plurality of coefficient groups, wherein the block data for each coefficient block include exponents respectively associated with at least some of the coefficient groups of said block and mantissas associated with the coefficients of said at least some of the coefficient groups, the decoder comprising:

an extraction unit for obtaining block data for at least one coefficient block, the block data including the exponents associated with said coefficient groups and the mantissas associated with the coefficients of each group of said coefficient groups, the mantissas being obtained in accordance with a distribution of coding data bits determined as a function of the exponents associated with said coefficient groups;

decoding logic for obtaining approximated values of the coefficients of each of said coefficient groups by combining the mantissas associated with said coefficients and the exponent associated with said coefficient group;

an assembling unit for assembling said coefficient block using the approximated coefficient values; and

a transforming unit for applying a local inverse multiscale transform to the assembled coefficient block.

14. The decoder as claimed claim 13 , wherein the distribution of coding data bits in the block data is determined as a function of the exponents and of priority indexes assigned to said coefficient groups.

15. A video processing device, comprising:

an encoder for compressing a video signal in the form of coding data for successive frames of the video signal;

a memory interface for storing the coding data in an external memory and retrieving coding data from the external memory;

a decoder for converting retrieved coding data into a decompressed signal; and

a video processor for processing the decompressed signal, wherein the encoder comprises:

a transforming unit for applying a local multiscale transform to a frame of the video signal to obtain coefficient blocks;

a mapping unit for distributing the coefficients of each block into coefficient groups associated with said block; and

a coding data generator for generating coding data from a plurality of the coefficient groups associated with a block, wherein the coding data include, for one of the groups:

an exponent for encoding the coefficients of said one of the groups; and

mantissas for quantizing the coefficients of said one of the groups in combination with the exponent determined for said one of the groups, wherein the mantissas determined for one of the groups are represented in the coding data by a respective number of bits depending on the exponents determined for said plurality of coefficient groups,

and wherein the decoder comprises:

an extraction unit for obtaining block data for at least one coefficient block, the block data including the exponents associated with said coefficient groups and the mantissas associated with the coefficients of said coefficient groups, the mantissas being obtained in accordance with a distribution of coding data bits determined as a function of the exponents associated with said coefficient groups;

decoding logic for obtaining approximated values of the coefficients of each of said coefficient groups by combining the mantissas associated with said coefficients and the exponent associated with said coefficient group;

an assembling unit for assembling said coefficient block using the approximated coefficient values; and

a transforming unit for applying a local inverse multiscale transform to the assembled coefficient block.

Assignments (3)
MERGER Recorded Jun 26, 2018
From: ZORAN (FRANCE) S.A.
To: ZORAN CORPORATION
Reel/Frame 046435/0788 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNMENT PREVIOUSLY RECORDED UNDER REEL AND FRAME 027153/0151 TO CORRECT ZORAN (FRANCE) TO ZORAN (FRANCE) S.A. PREVIOUSLY RECORDED ON REEL 027153 FRAME 0151. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 6, 2013
From: SHAND, MARK ALEXANDER
To: ZORAN (FRANCE) S.A.
Reel/Frame 030968/0786 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2011
From: SHAND, MARK
To: ZORAN (FRANCE)
Reel/Frame 027153/0151 →