IP Library Granted Patent US 7,929,778
Granted Patent B2
US 7,929,778 · App. 12/538,850 · Granted Apr 19, 2011

Digital image coding system having self-adjusting selection criteria for selecting a transform function

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,929,778
App. No.
12/538,850
Granted
Apr 19, 2011
Kind
B2
Abstract

In a digital signal processing system, a method for selecting a transform function to apply to an input signal based on characteristics of the signal, and for self-adjusting criteria which are used in selecting a transform function to apply to a subsequent signal. Characteristics are obtained from the signal. The characteristics are compared to adjustable criteria which are used in selecting a transform function. Differing criteria are maintained for the different selectable transform functions. A record is maintained of transform functions selected and the particular characteristics that caused the selection. Based on the ability of a transform function to minimally define the coded signal, an inverse transform function is selected to decode the signal. The criteria used in selecting a transform function to apply to a subsequent signal are adjusted based on a quality measure of the decoded signal and the record of selected transform functions.

Claims (83)

1. A computer-implemented method for transforming a block of pixels within a frame of a digitized video image using a selectable one of a set of transform functions, each transform function having an inverse transform function, and each block having a predetermined set of image characteristics, the method comprising:

establishing adjustable selection criteria for selecting a transform function;

detecting respective characteristic values for the image characteristics of a block;

selecting a first transform function from the set of transform functions based on said characteristic values and said selection criteria;

applying said first transform function to the block to form a transformed block;

quantizing said transformed block to form a quantized block;

selecting an inverse transform function whose application minimally covers said quantized block;

inversely quantizing said quantized block to form an inversely quantized block;

applying said inverse transform function to said inversely quantized block to form a decoded block;

establishing a quality value for said decoded block; and

updating said selection criteria based on said quality value and said characteristic values, wherein the establishing, detecting, selecting, applying, quantizing, and updating operations are performed by a processor.

2. A computer-implemented method for transforming a block of pixels within a frame of a digitized video image using a selectable one of a set of transform functions, each transform function having an inverse transform function, and each block having a predetermined set of image characteristics, the method comprising:

associating the transform functions with the set of image characteristics, with predetermined quantization values, and with adjustable thresholds associated with the image characteristics;

obtaining respective characteristic values for the image characteristics of a block;

selecting a transform function from the set of transform functions based on comparisons between said characteristic values and said adjustable thresholds;

applying said transform function to the block to form a transformed block;

quantizing said transformed block using a quantization value to form a quantized block;

selecting an inverse transform function whose application minimally covers said quantized block;

inversely quantizing said quantized block to form an inversely quantized block;

applying said inverse transform function to said inversely quantized block to form a decoded block;

obtaining a quality value for said decoded block; and

updating said adjustable thresholds based on said quality value and said characteristic values, wherein the associating, obtaining, selecting, applying, quantizing, and updating operations are performed by a processor.

3. The method of claim 2 , further comprising:

establishing histograms of characteristic values for each of the image characteristics and associated transform functions and quantization values;

recording said characteristic values in histograms referenced by said transform function and said quantization value;

selecting a statistical function to apply to said histograms;

applying said statistical function to said histograms; and

updating said adjustable thresholds with data from application of said statistical function to said histograms.

4. The method of claim 2 , further comprising:

establishing histograms of quality values and characteristic values and associated transform functions and quantization values;

recording said quality value and characteristic values in histograms referenced by said transform function and said quantization value;

selecting a statistical function to apply to said histograms;

applying said statistical function to said histograms; and

updating said adjustable thresholds with data from application of said statistical function to said histograms.

5. The method of claim 2 , wherein said obtaining characteristic values comprises:

obtaining a total energy value;

obtaining a horizontal high pass energy value;

obtaining a vertical high pass energy value; and

obtaining a motion vector magnitude value.

6. The method of claim 5 , wherein said selecting a transform function comprises:

comparing said total energy value to a first threshold;

comparing said horizontal high pass energy value to a second threshold;

comparing said vertical high pass energy value to a third threshold;

comparing said motion vector magnitude value to a fourth threshold; and

if for a given transform function, said total energy value is less than said first threshold, and said horizontal high pass energy value is less then a second threshold, and said vertical high pass energy value is less than a third threshold, and said motion vector magnitude value is less than a fourth threshold, then selecting said given transform function.

7. The method of claim 5 , wherein said establishing histograms further comprises:

establishing a total energy histogram;

establishing a horizontal high pass energy histogram;

establishing a vertical high pass energy histogram; and

establishing a motion vector magnitude histogram.

8. The method of claim 7 , wherein said selecting a transform function comprises:

comparing said total energy value to a first threshold;

comparing said horizontal high pass energy value to a second threshold;

comparing said vertical high pass energy value to a third threshold;

comparing said motion vector magnitude value to a fourth threshold; and

if for a given transform function, said total energy value is less than said first threshold, and said horizontal high pass energy value is less than a second threshold, and said vertical high pass energy value is less than a third threshold, and said motion vector magnitude value is less than a fourth threshold, then selecting said given transform function.

9. The method of claim 3 , wherein said obtaining a quality value further comprises obtaining a peak signal-to-noise ratio for said decoded block.

10. The method of claim 9 , wherein said updating said adjustable thresholds further comprises:

selecting an order statistic based on the quality value, transform function, and quantizer value;

applying said order statistic to said histograms to obtain new thresholds; and

updating said adjustable thresholds with said new thresholds.

11. A non-transitory computer readable storage medium storing instructions that, when executed, cause a computer to perform operations comprising:

establishing adjustable selection criteria for selecting a transform function;

detecting respective characteristic values for the image characteristics of a block;

selecting a first transform function from the set of transform functions based on said characteristic values and said selection criteria;

applying said first transform function to the block to form a transformed block;

quantizing said transformed block to form a quantized block;

selecting an inverse transform function whose application minimally covers said quantized block;

inversely quantizing said quantized block to form an inversely quantized block;

applying said inverse transform function to said inversely quantized block to form a decoded block;

establishing a quality value for said decoded block; and

updating said selection criteria based on said quality value and said characteristic values.

12. A non-transitory computer readable storage medium storing instructions that, when executed, cause a computer to perform operations comprising:

associating the transform functions with the set of image characteristics, with predetermined quantization values, and with adjustable thresholds associated with the image characteristics;

obtaining respective characteristic values for the image characteristics of a block;

selecting a transform function from the set of transform functions based on comparisons between said characteristic values and said adjustable thresholds;

applying said transform function to the block to form a transformed block;

quantizing said transformed block using a quantization value to form a quantized block;

selecting an inverse transform function whose application minimally covers said quantized block;

inversely quantizing said quantized block to form an inversely quantized block;

applying said inverse transform function to said inversely quantized block to form a decoded block;

obtaining a quality value for said decoded block; and

updating said adjustable thresholds based on said quality value and said characteristic values.