IP Library Granted Patent US 8,199,820
Granted Patent B2
US 8,199,820 · App. 12/361,440 · Granted Jun 12, 2012

Intermediate compression of reference frames for transcoding

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 8,199,820
App. No.
12/361,440
Granted
Jun 12, 2012
Kind
B2
Abstract

A system (and a method) for compressing reference frames in a video transcoder. A transcoder receives a compressed input stream in a first compressed format and output a compressed output stream in a second compressed format. A decoder and an encoder in the transcoder use compressed reference frames. The reference frames are compressed by transforming a block of pixels from a spatial domain to a frequency domain to generate a coefficient array. The coefficient array is quantized and encoded to compress the size of the coefficients array to the size of a fixed bucket. The values of the entropy coded and quantized array are stored in a memory for use in decoding and/or encoding.

Claims (60)

1. A method for compressing reference frames in a video transcoder, the method comprising:

receiving a compressed input stream in a first compressed format;

decoding the compressed input stream to generate an intermediate stream in an intermediate format, first reference frames in the compressed input stream compressed to intermediate compressed reference frames in the intermediate format, wherein compressing the first reference frames to the intermediate format comprises:

extracting a two-dimensional block of pixels from one of the first reference frames;

transforming the two-dimensional block of pixels from a spatial domain to a frequency domain to generate a coefficient array;

compressing the coefficient array to a fixed bucket size; and

storing the compressed coefficient array to a reference frame storage; and

encoding the intermediate stream to generate a compressed output stream in a second compressed format, the intermediate compressed reference frames compressed to second compressed reference frames in the second compressed format.

2. The method of claim 1 , further comprising processing the intermediate stream in the intermediate format according to a processing function.

3. The method of claim 1 , wherein transforming the two-dimensional block of the pixels comprises:

applying a two-dimensional transform to the block of pixels, wherein the two-dimensional transform preserves a DC component of the block of pixels.

4. The method of claim 1 , wherein compressing the coefficient array to a fixed bucket size comprises:

quantizing AC coefficients of the coefficient array according to an initial quantize value;

encoding the quantized AC coefficients of the coefficient array using an entropy encoding;

determining if the encoded AC coefficients, the quantize value, and a unquantized DC coefficient of the coefficient array fit to the fixed bucket size;

responsive to the encoded AC coefficients, the quantize value, and the unquantized DC coefficient not fitting to the fixed bucket size, adjusting the initial quantize value to an updated quantize value; and

responsive to the encoded AC coefficients, the quantize value, and the unquantized DC coefficient fitting to the fixed bucket size, setting current quantize value as a final quantize value.

5. The method of claim 4 , wherein quantizing AC coefficients of the coefficient array comprises:

shifting each AC coefficient of the coefficient array by the final quantize value; and

further shifting each AC coefficient of the coefficient by an offset value from an offset array, each entry of the offset array corresponding to an entry of the coefficient array.

6. The method of claim 4 , wherein encoding the quantized AC coefficients comprises:

selecting, according to the final quantize value, an encoding parameter array from a table of encoding parameter matrices;

encoding each AC coefficient of the coefficient array according to an encoding parameter from the encoding parameter array corresponding to the quantize value, each entry of the selected encoding parameter array corresponding to an entry of the coefficient array.

7. The method of claim 4 , wherein encoding the quantized AC coefficients comprises applying a Golomb-Rice encoding to the AC coefficients.

8. A non-transitory computer readable storage medium storing instructions thereon for compressing reference frames in a video transcoder, the instructions when executed by a processor cause the processor to execute steps including:

receiving a compressed input stream in a first compressed format;

decoding the compressed input stream to generate an intermediate stream in an intermediate format, first reference frames in the compressed input stream compressed to intermediate compressed reference frames in the intermediate format, wherein compressing the first reference frames to the intermediate format comprises:

extracting a two-dimensional block of pixels from one of the first reference frames;

transforming the two-dimensional block of pixels from a spatial domain to a frequency domain to generate a coefficient array;

compressing the coefficient array to a fixed bucket size; and

storing the compressed coefficient array to a reference frame storage; and

encoding the intermediate stream to generate a compressed output stream in a second compressed format, the intermediate compressed reference frames compressed to second compressed reference frames in the second compressed format.

9. The computer readable storage medium of claim 8 , wherein the steps further include further comprising processing the intermediate stream in the intermediate format according to a processing function.

10. The computer readable storage medium of claim 8 , wherein transforming the two-dimensional block of pixels comprises:

applying a two-dimensional transform to the block of pixels, wherein the two-dimensional transform preserves a DC component of the block of pixels.

11. The computer readable storage medium of claim 8 , wherein compressing the coefficient array to a fixed bucket size comprises:

quantizing AC coefficients of the coefficient array according to an initial quantize value;

encoding the quantized AC coefficients of the coefficient array using an entropy encoding;

determining if the encoded AC coefficients, the quantize value, and an unquantized DC coefficient of the coefficient array fit to the fixed bucket size;

responsive to the encoded AC coefficients, the quantize value, and the unquantized DC coefficient not fitting to the fixed bucket size, adjusting the initial quantize value to an updated quantize value; and

responsive to the encoded AC coefficients, the quantize value, and the unquantized DC coefficient fitting to the fixed bucket size, setting current quantize value as a final quantize value.

12. The computer readable storage medium of claim 11 , wherein quantizing AC coefficients of the coefficient array comprises:

shifting each AC coefficient of the coefficient array by the final quantize value; and

further shifting each AC coefficient of the coefficient by an offset value from an offset array, each entry of the offset array corresponding to an entry of the coefficient array.

13. The computer readable storage medium of claim 11 , wherein encoding the quantized AC coefficients comprises:

selecting, according to the final quantize value, an encoding parameter array from a table of encoding parameter matrices;

encoding each AC coefficient of the coefficient array according to an encoding parameter from the encoding parameter array corresponding to the quantize value, each entry of the selected encoding parameter array corresponding to an entry of the coefficient array.

14. The computer readable storage medium of claim 11 , wherein encoding the quantized AC coefficients comprises applying a Golomb-Rice encoding to the AC coefficients.

15. A system for compressing reference frames in a video transcoder comprising:

an input port configured to receive a compressed input stream in a first compressed format;

a decoder configured to decode the compressed input stream to generate an intermediate stream in an intermediate format, the decoder configured to compress first reference frames in the compressed input stream to intermediate compressed reference frames in the intermediate format, wherein the decoder is further configured to:

extract a two-dimensional block of pixels from one of the first reference frames;

transform the two-dimensional block of pixels from a spatial domain to a frequency domain to generate a coefficient array;

compress the coefficient array to a fixed bucket size; and

store the compressed coefficient array to a reference frame storage;

an encoder configured to encode the intermediate stream to generate a compressed output stream in a second compressed format, the encoder configured to compress the intermediate compressed reference frames to second compressed reference frames in the second compressed format; and

an output port configured to output an output stream in the second compressed format.

16. The system of claim 15 , further comprising a decoder reference frame storage coupled to the decoder, the decoder reference frame storage configured to store the compressed reference frames.

17. The system of claim 15 , further comprising an encoder reference frame storage coupled to the encoder, the encoder reference frame storage configured to store the compressed reference frames.

18. The system of claim 15 , further comprising a processor configured to process the intermediate stream in the intermediate format according to a processing function.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE LISTED CHANGE OF NAME SHOULD BE MERGER AND CHANGE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0180. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 12, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 041354/0148 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040652/0180 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
CHANGE OF NAME Recorded Jan 27, 2015
From: ZENVERGE, INC.
To: ZENVERGE, LLC
Reel/Frame 034817/0375 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: ZENVERGE LLC
To: FREESCALE SEMICONDUCTOR INC.
Reel/Frame 034766/0476 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2009
From: MASTERSON, ANTHONY D.; HOANG, DZUNG TIEN
To: ZENVERGE, INC.
Reel/Frame 022347/0012 →