IP Library Granted Patent US 7,634,526
Granted Patent B2
US 7,634,526 · App. 10/917,005 · Granted Dec 15, 2009

Selectable quantization in an encoder

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,634,526
App. No.
10/917,005
Granted
Dec 15, 2009
Kind
B2
Abstract

A method for selectable quantization for use in an encoder for compressing video and/or audio data includes processing that begins by receiving discrete cosine transform data of an encoded signal. The processing continues by generating a plurality of quantization matrixes of discrete cosine transform data based on a quantization table and a plurality of quantization scaling factors. The process continues by analyzing the plurality of quantization matrixes to identify one of the plurality of quantization matrixes having a best match of reduced data content and acceptable video quality. The processing continues by selecting the one of the plurality of quantized matrixes.

Claims (64)

1. A method for selectable quantization for frame data in an encoder, the method comprises:

generating via the encoder a plurality of quantization matrixes of discrete cosine transform data based on a quantization table and a plurality of quantization scaling factors;

analyzing via the encoder the plurality of quantization matrixes to identify one of the plurality of quantization matrixes having a best match of reduced data content and acceptable video quality, by, for each of the plurality of quantization matrixes,

determining number of insubstantial data values in the quantization matrix;

determining an acceptable level of insubstantial data values; and

establishing the best match as the one of the plurality of quantization matrixes having the number of insubstantial data values in accordance with the acceptable level of insubstantial data values;

selecting the one of the plurality of quantized matrixes; and

quantizing via the encoder a plurality of discrete cosine transform data with the selected one of the plurality of quantized matrixes to produce quantized data.

2. The method of claim 1 , wherein the generating the plurality of quantization matrixes further comprises:

performing t(i,j)=D(i,j)/[Q(i,j)]*Qs, where i represents a row number of a matrix, j represents a column number of the matrix, t(i,j) represents a quantization matrix of the plurality of quantization matrixes, D(i,j)represents the matrix of discrete cosine transform data, Q(i,j) represents the quantization table, and Qs represents one of the plurality of quantization scaling factors.

3. The method of claim 1 , wherein the determining the acceptable level of insubstantial data values further comprises:

determining complexity of discrete cosine transform data; and

setting a video quality threshold of acceptable number of insubstantial data values proportional to the complexity of the matrix of data values such that greater complexity results in the video quality threshold being larger and lesser complexity results in the video quality threshold being smaller.

4. The method of claim 1 , wherein the generating the plurality of quantization matrixes further comprises:

performing a discrete cosine transform function upon a macroblock of Motion Picture Expert Group (MPEG) encoded data to produce the discrete cosine transform data, wherein the discrete cosine transform data includes a matrix of data values.

5. A method for encoding frame data in an encoder, the method comprises:

performing motion estimation via the encoder upon a block of data based on motion vectors to produce motion estimated data;

performing via the encoder a discrete cosine transform function upon the motion estimated data to produce discrete cosine transform data;

generating via the encoder a plurality of quantization matrixes of the discrete cosine transform data based on a quantization table and a plurality of quantization scaling factors;

selecting via the encoder one of the plurality of quantization matrixes based on a best match of reduced data content and acceptable video quality to produce quantized data by, for each of the plurality of quantization matrixes,

determining number of insubstantial data values in the quantization matrix; and

determining an acceptable level of insubstantial data values;

selecting via the encoder the one of the plurality of quantization matrixes as having the best match of the number of insubstantial data values in accordance with the acceptable level of insubstantial data values;

quantizing via the encoder the discrete cosine transform data with the selected one of the plurality of quantized matrixes to produce quantized data;

performing via the encoder a zigzag function upon the quantized data to produce zigzag data; and

run level encoding the zigzag data to produce encoded data.

6. The method of claim 5 , wherein the generating the plurality of quantization matrixes further comprises:

performing t(i,j)=D(i,j)/[Q(i,j)]*Qs, where i represents a row number of a matrix, j represents a column number of the matrix, t(i,j) represents a quantization matrix of the plurality of quantization matrixes, D(i,j)represents the matrix of discrete cosine transform data, Q(i,j) represents the quantization table, and Qs represents one of the plurality of quantization scaling factors.

7. The method of claim 5 , wherein the determining the acceptable level of insubstantial data values further comprises:

determining complexity of discrete cosine transform data; and

setting a video quality threshold of acceptable number of insubstantial data values proportional to the complexity of the matrix of data values such that greater complexity results in the video quality threshold being larger and lesser complexity results in the video quality threshold being smaller.

8. An apparatus for selectable quantization of frame data, the apparatus comprises:

processing module; and

memory operably coupled to the processing module, wherein the memory includes operational instructions that cause the processing module to:

generate a plurality of quantization matrixes of discrete cosine transform data based on a quantization table and a plurality of quantization scaling factors;

analyze the plurality of quantization matrixes to identify one of the plurality of quantization matrixes having a best match of reduced data content and acceptable video quality by, for each of the plurality of quantization matrixes,

determining number of insubstantial data values in the quantization matrix;

determining an acceptable level of insubstantial data values; and

establishing the best match as the one of the plurality of quantization matrixes having the number of insubstantial data values in accordance with the acceptable level of insubstantial data values; and

select the one of the plurality of quantized matrixes.

9. The apparatus of claim 8 , wherein the memory further comprises operational instructions that cause the processing module to generate the plurality of quantization matrixes by:

performing t(i,j)=D(i,j)/[Q(i,j)]*-Qs, where i represents a row number of a matrix, j represents a column number of the matrix, t(i,j) represents a quantization matrix of the plurality of quantization matrixes, Q(i,j) represents the quantization table, and Qs represents one of the plurality of quantization scaling factors.

10. The apparatus of claim 9 , wherein the memory further comprises operational instructions that cause the processing module to generate the plurality of quantization matrixes by:

performing a discrete cosine transform function upon a macroblock of Motion Picture Expert Group (MPEG) encoded data to produce the discrete cosine transform data, wherein the discrete cosine transform data includes a matrix of data values.

11. The apparatus of claim 8 , wherein the memory further comprises operational instructions that cause the processing module to determine the acceptable level of insubstantial data values by:

determining complexity of discrete cosine transform data; and

setting a video quality threshold of acceptable number of insubstantial data values proportional to the complexity of the matrix of data values such that greater complexity results in the video quality threshold being larger and lesser complexity results in the video quality threshold being smaller.

12. An apparatus for encoding frame data, the apparatus comprises:

processing module; and

memory operably coupled to the processing module, wherein the memory includes operational instructions that cause the processing module to:

perform motion estimation upon a block of data based on motion vectors to produce motion estimated data;

perform a discrete cosine transform function upon the motion estimated data to produce discrete cosine transform data;

generate a plurality of quantization matrixes of the discrete cosine transform data based on a quantization table and a plurality of quantization scaling factors;

select one of the plurality of quantization matrixes based on a best match of reduced data content and acceptable video quality to produce quantized data by, for each of the plurality of quantization matrixes,

determining number of insubstantial data values in the quantization matrix;

determining an acceptable level of insubstantial data values; and

selecting the one of the plurality of quantization matrixes as having the best match of the number of insubstantial data values in accordance with the acceptable level of insubstantial data values;

perform a zigzag function upon the quantized data to produce zigzag data; and

run level encode the zigzag data to produce encoded data.

13. The apparatus of claim 12 , wherein the memory further comprises operational instructions that cause the processing module to generate the plurality of quantization matrixes by:

performing t(i,j)=D(i,j)/[Q(i,j)]*-Qs, where i represents a row number of a matrix, j represents a column number of the matrix, t(i,j) represents a quantization matrix of the plurality of quantization matrixes, D(i,j)represents the matrix of discrete cosine transform data, Q(i,j) represents the quantization table, and Qs represents one of the plurality of quantization scaling factors.

14. The apparatus of claim 12 , wherein the memory further comprises operational instructions that cause the processing module to determine the acceptable level of insubstantial data values by:

determining complexity of discrete cosine transform data; and

setting a video quality threshold of acceptable number of insubstantial data values proportional to the complexity of the matrix of data values such that greater complexity results in the video quality threshold being larger and lesser complexity results in the video quality threshold being smaller.

Assignments (1)
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2017
From: COMERICA BANK
To: VIXS SYSTEMS, INC.
Reel/Frame 043601/0817 →