IP Library Granted Patent US 7,327,785
Granted Patent B2
US 7,327,785 · App. 10/880,460 · Granted Feb 5, 2008

Noise reduction method, apparatus, system, and computer program product

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,327,785
App. No.
10/880,460
Granted
Feb 5, 2008
Kind
B2
Abstract

A video coding apparatus, method, and computer program product for removing transform coding noise especially in flat areas of a frame, which appears as remaining parts of moving objects in a video picture. Transform coding noise is removed by forcing a macroblock to be intra coded instead of inter coded when certain criteria are fulfilled so as to reveal whether the macroblock contain annoying quantization generated noise and to detect if an equalization is necessary.

Claims (97)

1. A method for noise prevention, comprising:

coding a macroblock composed of a number of sub blocks representing a squared part of the video picture, said coding including predicting pixel values of the macroblock and one of transforming one of the pixel values and pixel prediction values and quantifying resulting transformation coefficients;

executing a conditional uniformity test throughout the macroblock; and

selecting, after said executing, intra prediction of pixel values in the macroblock if the conditional uniformity test indicates that a substantially subjective quantization generated noise due to movements in the video picture is likely to occur in a corresponding decoded version of the macroblock, or

selecting, after said executing, inter prediction of pixel values in the macroblock if the conditional uniformity test indicates that no substantially subjective quantization generated noise due to movements in the video picture is likely to occur in a corresponding decoded version of the macroblock,

wherein said step of executing includes,

indicating that substantially subjective quantization generated noise is likely to occur when the following criteria are fulfilled:

the macroblock is about to be defined as “skipped,”

a previous corresponding macroblock was not defined as “skipped,” and

the pixel values are substantially uniform whereas the prediction values are substantially non-uniform.

2. The method according to claim 1 , wherein the step of transforming further comprises one of:

transforming the pixel values of the macroblock by ar binary-transform function generating associated pixel transform coefficients and transforming the prediction values of the macroblock by said binary-transform function generating associated prediction transform coefficients, and

transforming residuals of the pixel and prediction values of the macroblock by said binary-transform function or calculating residuals of the pixel and prediction transform coefficients for generating associated residual transform coefficients.

3. A method for noise prevention, comprising:

coding a macroblock composed of a number of sub blocks representing a squared part of the video picture, said coding including predicting pixel values of the macroblock and one of transforming one of the pixel values and pixel prediction values and quantifying resulting transformation coefficients;

executing a conditional uniformity test throughout the macroblock; and

selecting, after said executing, intra prediction of pixel values in the macroblock if the conditional uniformity test indicates that a substantially subjective quantization generated noise due to movement in the video picture is likely to occur in a corresponding decoded version of the macroblock, or

selecting, after said executing, inter prediction of pixel values in the macroblock if the conditional uniformity test indicates that no substantially subjective quantization generated noise due to movement in the video picture is likely to occur in a corresponding decoded version of the macroblock,

wherein said step of executing includes,

indicating that substantially subjective quantization generated noise is likely to occur when the following criteria are fulfilled:

the macroblock is about to be defined as “skipped,”

a previous corresponding macroblock was not defined as “skipped,” and

one or a minority of singular pixels included in a corner sub block of the macroblock is/are divergent related to a majority of the pixels in the macroblock whereas the number of sub blocks including substantially uniform pixel values are greater than a first predefined threshold.

4. A method for noise prevention, comprising:

coding a macroblock composed of a number of sub blocks representing a squared part of the video picture, said coding including predicting pixel values of the macroblock and one of transforming one of the pixel values and pixel prediction values and quantifying resulting transformation coefficients;

executing a conditional uniformity test throughout macroblock; and

selecting, after said executing, intra prediction of pixel values in the macroblock if the conditional uniformity test indicates that a substantially subjective quantization generated noise due to movement in the video picture is likely to occur in corresponding decoded version of the macroblock, or

selecting, after said executing, inter prediction of pixel values in the macroblock if the conditional uniformity test indicates that no substantially subjective quantization generated noise due to movement in the video picture is likely to occur in a corresponding decoded version of the macroblock,

wherein said step of executing includes,

indicating that substantially subjective quantization generated noise is likely to occur when the following criteria are fulfilled:

the macroblock is about to be defined as “skipped,”

a previous corresponding macroblock was defined as “skipped,” and

one or a minority of singular pixels included in a corner sub block of the macroblock is/are divergent related to a majority of the pixels in the macroblock whereas the number of sub blocks including substantially uniform pixel values are greater than a first predefined threshold, and a diagonal neighbor macroblock to said corner sub block is not, or is not about to be, defined as “skipped”.

5. A method for noise prevention, comprising:

coding a macroblock composed of a number of sub blocks representing a squared part of the video picture, said coding including predicting pixel values of the macroblock and one of transforming one of the pixel values and pixel prediction values and quantifying resulting transformation coefficients;

executing a conditional uniformity test throughout the macroblock; and

selecting, after said executing, intra prediction of pixel value in the macroblock if the conditional uniformity test indicates that a substantially subjective quantization generated noise due to movements in the video picture is likely to occur in a corresponding decoded version of the macroblock, or

selecting, after said executing, inter prediction of pixel values in the macroblock if the conditional uniformity test indicates that no substantially subjective quantization generated noise due to movements in the video picture is likely to occur in a corresponding decoded version of the macroblock,

wherein the step of transforming further includes one of

transforming the pixel values of the macroblock by binary-transform function generating associated pixel transform coefficients and transforming the prediction values of the macroblock by said binary-transform function generating, associated prediction transform coefficients, and

transforming residuals of the pixel and prediction values of the macroblock by said binary-transform function or calculating residuals of the pixel and prediction transform coefficients for generating associated residual transform coefficients; and

wherein said step of executing includes,

assuming that a macroblock is defined as “skipped” if one or more residual transform coefficients corresponding to the lowest coordinates in the macroblock are less than a second predefined threshold corresponding to a decision value below which transform coefficients are quantified to zero.

6. A method for noise prevention, comprising:

coding a macroblock composed of a number of sub blocks representing a squared part of the video picture, said coding including predicting pixel values of the macroblock and one of transforming one of the pixel values and pixel prediction values and quantifying resulting transformation coefficients;

executing a conditional uniformity test throughout the macroblock; and

selecting, after said executing, intra prediction of pixel values in the macroblock if the conditional uniformity test indicates that a substantially subjective quantization generated noise due to movement in the video picture is likely to occur in a corresponding decoded version of the macroblock, or

selecting, after said executing, inter prediction of pixel values in the macroblock if the conditional uniformity test indicates that no substantially subjective quantization generated noise due to movements in the video picture is likely to occur in a corresponding decoded version of the macroblock,

wherein the step of transforming further includes one of

transforming the pixel values of the macroblock by a binary-transform function generating associated pixel transform coefficients and transforming the prediction values of the macroblock by said binary-transform function generating associated prediction transform coefficients, and

transforming residuals of the pixel and prediction values of the macroblock by said binary-transform function or calculating residuals of the pixel and prediction transform coefficients for generating associated residual transform coefficients; and

wherein said step of executing includes,

calculating a first parameter (AC0 m) for each sub block in the macroblock by summing one or more of the pixel transform coefficients of internally lowest coordinates within the respective sub blocks, except from the coefficient of the very lowest coordinates, and

calculating a second parameter (AC1 m) for each sub block in the macroblock by summing one or more of the residual transform coefficients of internally lowest coordinates within the respective sub blocks, except from the coefficient of the very lowest coordinates.

7. The method according to claim 6 , wherein said step of executing further comprises:

calculating a third parameter (AC0) by summing the first parameters (AC0 m) associated with all sub blocks included in the macroblock, and

calculating a fourth parameter (AC1) by summing the second parameters (AC1 m) associated with all sub blocks included in the macroblock.

8. The method according to claim 7 , wherein said step of executing further comprises:

assuming that the pixel values are substantially uniform whereas the prediction values are substantially non-uniform if said fourth parameter (AC1) is substantially greater than said third parameter (AC0) and/or said first number (N0) of sub blocks is greater than a four predefined threshold.

9. The method according to claim 6 , wherein said step of executing comprises:

determining a first number (N0) of sub blocks in the macroblock wherein said second parameter (AC1 m) is substantially greater than said first parameter (AC0 m), and

determining a second number (N1) of sub blocks in the macroblock wherein said first parameter (AC0 m) is less than a third predefined threshold.

10. The method according to claim 6 , wherein said step of executing comprises:

determining the one corner sub block of the corner sub blocks in the macroblock having the greatest second parameter (AC1 m), and

assuming that one or a minority of singular pixels included in that corner sub block is/are divergent related to a majority of the pixels in the macroblock if said second parameter (AC1 m) associated therewith is substantially greater than the corresponding first parameter (AC0 m).

11. The method according to claim 6 , wherein said step of executing comprises:

predicting intra pixel values based on pixels adjacent to the macroblock in the same video picture.

12. A computer readable storage medium encoded with instructions, which when executed by a computer cause the computer to implement a method for noise prevention, the method comprising:

coding a macroblock composed of a number of sub blocks representing a squared part of the video picture, said coding including predicting pixel values of the macroblock and one of transforming one of the pixel values and pixel prediction values and quantifying resulting transformation coefficients;

executing a conditional uniformity test throughout the macroblock; and

selecting intra prediction of pixel values in the macroblock if the conditional uniformity test indicates that a substantially subjective quantization generated noise due to movements in the video picture is likely to occur in a corresponding decoded version of the macroblock, or

selecting inter prediction of pixel values in the macroblock if the conditional uniformity test indicates that no substantially subjective quantization generated noise due to movements in the video picture is likely to occur in a corresponding decoded version of the macroblock,

wherein the executing includes,

indicating that substantially subjective quantization generated noise is likely to occur when the following criteria are fulfilled:

the macroblock is about to be defined as “skipped,”

a previous corresponding macroblock was not defined as “skipped,” and

the pixel values are substantially uniform whereas the prediction values are substantially non-uniform.

13. A computer readable storage medium encoded with instructions, which when executed by a computer cause the computer to implement a method for noise prevention, the method comprising:

coding a macroblock composed of a number of sub blocks representing a squared part of the video picture, said coding including predicting pixel values of the macroblock and one of transforming one of the pixel values and pixel prediction values and quantifying resulting transformation coefficients;

executing a conditional uniformity test throughout the macroblock; and

selecting intra prediction of pixel values in the macroblock if the conditional uniformity test indicates that a substantially subjective quantization generated noise due to movements in the video picture is likely to occur in a corresponding decoded version of the macroblock, or

selecting inter prediction of pixel values in the macroblock if the conditional uniformity test indicates that no substantially subjective quantization generated noise due to movements in the video picture is likely to occur in a corresponding decoded version of the macroblock,

wherein the executing includes,

indicating that substantially subjective quantization generated noise is likely to occur when the following criteria are fulfilled:

the macroblock is about to be defined as “skipped,”

a previous corresponding macroblock was not defined as “skipped,” and

one or a minority of singular pixels included in a corner sub block of the macroblock is/are divergent related to a majority of the pixels in the macroblock whereas the number of sub blocks including substantially uniform pixel values are greater than a first predefined threshold.

14. A computer readable storage medium encoded with instructions, which when executed by a computer cause the computer to implement a method for noise prevention, the method comprising:

coding a macroblock composed of a number of sub blocks representing a squared part of the video picture, said coding including predicting pixel values of the macroblock and one of transforming one of the pixel values and pixel prediction values and quantifying resulting transformation coefficients;

executing a conditional uniformity test throughout the macroblock; and

selecting intra prediction of pixel values in the macroblock if the conditional uniformity test indicates that a substantially subjective quantization generated noise due to movements in the video picture is likely to occur in a corresponding decoded version of the macroblock, or

selecting inter prediction of pixel values in the macroblock if the conditional uniformity test indicates that no substantially subjective quantization generated noise due to movements in the video picture is likely to occur in a corresponding decoded version of the macroblock,

wherein the executing includes,

indicating that substantially subjective quantization generated noise is likely to occur when the following criteria are fulfilled:

the macroblock is about to be defined as “skipped,”

a previous corresponding macroblock was defined as “skipped,” and

one or a minority of singular pixels included in a corner sub block of the macroblock is/are divergent related, to a majority of the pixels in the macroblock whereas the number of sub blocks including substantially uniform pixel values are greater than a first predefined threshold, and a diagonal neighbor macroblock to said corner sub block is not, or is not about to be, defined as “skipped”.

Assignments (2)
CONFIRMATORY ASSIGNMENT Recorded Dec 1, 2011
From: TANDBERG TELECOM AS; CISCO SYSTEMS INTERNATIONAL SARL
To: CISCO TECHNOLOGY, INC.
Reel/Frame 027307/0451 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2004
From: BJONTEGAARD, GISLE
To: TANDBERG TELECOM AS
Reel/Frame 015919/0469 →