Method and apparatus for controlling amount of quantization processing in an encoder
First Claim
1. A method for controlling amount of quantization processing, the method comprises:
- receiving discrete cosine transform data of a block of a frame of data, wherein the frame of data is divided into a plurality of regions, wherein each of the plurality of regions includes a plurality of blocks, and wherein the block is within one of the plurality of regions;
obtaining a quantization table relating to the frame of data;
obtaining an allocated number of bits for quantizing data for each of the plurality of regions;
obtaining a plurality of quantization scaling factors relating to the frame of data;
generating a plurality of quantization matrixes based on the plurality of quantization scaling factors, the quantization table, and the discrete cosine transform data;
for the block of the frame of data, determining whether an actual number of bits to quantize data of a preceding one of the plurality of regions exceeded the allocated number of bits for quantizing data for the preceding one of the plurality of regions; and
selecting one of the plurality of quantization matrixes as quantization data based on a decision input and the determining whether the actual number of bits to quantize the data of the preceding one of the plurality of regions exceeded the allocated number of bits for quantizing data of the preceding one of the plurality of regions.
6 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for controlling the amount of quantization processing used within an encoder that compresses video and/or audio data include processing that begins by receiving discrete cosine transform data of a block of a frame of data. The process then proceeds by obtaining a quantization table related to the frame of data. The processing then continues by obtaining a quantization scaling factor related to the frame. The processing then continues by determining whether quantization processing limits have been exceeded for quantization of preceding blocks of the frame of data. If the number of bits processed for the preceding blocks exceeds a certain desired level, the processing increases the quantization scaling factor. The processing then continues by generating quantization data from the discrete cosine transform data, the quantization table and the increased quantization scaling factor.
68 Citations
20 Claims
-
1. A method for controlling amount of quantization processing, the method comprises:
-
receiving discrete cosine transform data of a block of a frame of data, wherein the frame of data is divided into a plurality of regions, wherein each of the plurality of regions includes a plurality of blocks, and wherein the block is within one of the plurality of regions; obtaining a quantization table relating to the frame of data; obtaining an allocated number of bits for quantizing data for each of the plurality of regions; obtaining a plurality of quantization scaling factors relating to the frame of data; generating a plurality of quantization matrixes based on the plurality of quantization scaling factors, the quantization table, and the discrete cosine transform data; for the block of the frame of data, determining whether an actual number of bits to quantize data of a preceding one of the plurality of regions exceeded the allocated number of bits for quantizing data for the preceding one of the plurality of regions; and selecting one of the plurality of quantization matrixes as quantization data based on a decision input and the determining whether the actual number of bits to quantize the data of the preceding one of the plurality of regions exceeded the allocated number of bits for quantizing data of the preceding one of the plurality of regions. - View Dependent Claims (2, 3)
-
-
4. A method for controlling amount of quantization processing, the method comprises:
-
partitioning a frame of MPEG encoded data into a plurality of regions, wherein each of the plurality of regions includes a plurality of blocks; assigning a desired bit processing value to each of the plurality of regions; monitoring quantization of the blocks of one of the plurality of regions to obtain bits used to quantize the blocks of the one of the plurality of regions, wherein the quantization includes selecting one of a plurality of quantization matrixes based on a decision input; and when the bits used to quantize the blocks of the one of the plurality of regions exceeds the desired bit processing value for the region, adjusting the decision input for quantizing data of at least one subsequent region of the plurality of regions. - View Dependent Claims (5, 6, 7)
-
-
8. A method for encoding data, the method comprises:
-
performing motion estimation upon a block of data based on motion vectors to produce motion estimated data; performing a discrete cosine transform function upon the motion estimated data to produce discrete cosine transform data; obtaining a quantization table; obtaining an allocated number of bits for quantizing data for each of the plurality of regions; obtaining a plurality of quantization scaling factors relating to the frame of data; generating a plurality of quantization matrixes based on the plurality of quantization scaling factors, the quantization table, and the discrete cosine transform data; for the block of the frame of data, determining whether an actual number of bits to quantize data of a preceding one of the plurality of regions exceeded the allocated number of bits for quantizing data for the preceding one of the plurality of regions; selecting one of the plurality of quantization matrixes as quantization data based on a decision input and the determining whether the actual number of bits to quantize the data of the preceding one of the plurality of regions exceeded the allocated number of bits for quantizing data of the preceding one of the plurality of regions; performing a zigzag function upon the quantization quantized data to produce zigzag data; and run level encoding the zigzag data to produce encoded data. - View Dependent Claims (9, 10)
-
-
11. An apparatus for controlling amount of quantization processing, 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; receive discrete cosine transform data of a block of a frame of data, wherein the frame of data is divided into a plurality of regions, wherein each of the plurality of regions includes a plurality of blocks, and wherein the block is within one of the plurality of regions; obtain a quantization table relating to the frame of data; obtain an allocated number of bits for quantizing data for each of the plurality of regions; obtain a plurality of quantization scaling factors relating to the frame of data; generate a plurality of quantization matrixes based on the plurality of quantization scaling factors, the quantization table, and the discrete cosine transform data; for the block of the frame of data, determine whether an actual number of bits to quantize data of a preceding one of the plurality of regions exceeded the allocated number of bits for quantizing data for the preceding one of the plurality of regions; and select one of the plurality of quantization matrixes as quantization data based on a decision input and the determining whether the actual number of bits to quantize the data of the preceding one of the plurality of regions exceeded the allocated number of bits for quantizing data of the preceding one of the plurality of regions. - View Dependent Claims (12, 13)
-
-
14. An apparatus for controlling amount of quantization processing, 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; partition a frame of MPEG encoded data into a plurality of regions, wherein each of the plurality of regions includes a plurality of blocks; assign a desired bit processing value to each of the plurality of regions; monitor quantization of the blocks of one of the plurality of regions to obtain bits used to quantize the blocks of the one of the plurality of regions, wherein the quantization includes selecting one of a plurality of quantization matrixes based on a decision input; and when the bits used to quantize the blocks of the one of the plurality of regions exceeds the desired bit processing value for the region, adjust the decision input for quantizing data of at least one subsequent region of the plurality of regions. - View Dependent Claims (15, 16, 17)
-
-
18. An apparatus for encoding 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; performing 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; obtain a quantization table; obtain a quantization scaling factor; obtain an allocated number of bits for quantizing data for each of the plurality of regions; obtain a plurality of quantization scaling factors relating to the frame of data; generate a plurality of quantization matrixes based on the plurality of quantization scaling factors, the quantization table, and the discrete cosine transform data; for the block of the frame of data, determine whether an actual number of bits to quantize data of a preceding one of the plurality of regions exceeded the allocated number of bits for quantizing data for the preceding one of the plurality of regions; select one of the plurality of quantization matrixes as quantization data based on a decision input and the determining whether the actual number of bits to quantize the data of the preceding one of the plurality of regions exceeded the allocated number of bits for quantizing data of the preceding one of the plurality of regions; perform a zigzag function upon the quantization data to produce zigzag data; and run level encoding the zigzag data to produce encoded data. - View Dependent Claims (19, 20)
-
Specification