IP Library Granted Patent US 6,895,051
Granted Patent B2
US 6,895,051 · App. 09/875,414 · Granted May 17, 2005

Video data encoder and decoder

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 6,895,051
App. No.
09/875,414
Granted
May 17, 2005
Kind
B2
Abstract

This invention relates to compression of prediction error in motion compensated video coding schemes. Prediction frame and motion vectors are used to extract useful information about the properties of the prediction error signal, e.g. its location, directionality, etc. This information does not need to be transmitted because the decoder of the proposed system includes means to extract this information. Information extracted by the encoder and decoder is used to adapt prediction error coding scheme which gives substantial bitrate reductions.

Claims (134)

1. Decoder for decoding motion compensation encoded video data, comprising:

means ( 34 ) for storing a video frame (R);

means ( 35 ) for predicting a video data frame (P) based on said vodeo frame data frame (R) and on received motion vecotr data;

means ( 32 ) for decoding received prediction error data and obtaining a prediction error frame (E*); and

means ( 33 ) for calculating and outputting an updated video data frame (I*) based on said predicted video data frame (P) and said decoded prediction error frame (E*), and storing the updated video data frame (I*) in said storing means;

said means ( 32 ) for decoding said received prediction error data comprising:

determination means for performing at least one of the following operations: determination of areas of said prediction error frame (E) which are contained encoded in the received prediction error data and determination of at least one decoding scheme for each area contained encoded in the received prediction error data; and

area decoding means ( 48 ) for decoding said received prediction error data to obtain the prediction error frame in accordance with the at least one determination operation performed by said determination means;

wherein said determination means is adapted to analyse properties of said predicted video data frame (P), and to perform said at least one determination operation based on said analysis.

2. Decoder according to claim 1 , characterized in that said determination means comprises:

means ( 41 ) for partitioning said predicted video data frame (P) into a plurality of predetermined areas; and

means for analysing for each area of said predicted video data frame a discontinuity of the image brightness;

said determination means being adapted to perform said at least one determination operation for each area of said prediction error frame (E*) based on the analysis of discontinuity in the corresponding area of said predicted video data frame (P).

3. Decoder according to claim 2 , characterized in that said discontinuity analysing means comprises:

a linear filter ( 42 ) for calculating finite differences (F H ) in a vertical direction and a linear filter ( 42 ) for calculating finite differences (F V ) in a horizontal direction in each area of the predicted video data frame (P);

means for comparing the sum of absolute values of the outputs of both filters in each area with a first predetermined threshold;

said determination means ( 44 ) being adapted to determine that an area of the prediction error frame is not contained encoded in said received prediction error data if said sum of absolute values calculated for the corresponding area of said predicted video data frame does not exceed said first threshold.

4. Decoder according to claim 1 , characterized in that:

said area decoding means ( 48 ) comprises selection means ( 45 , 46 ) for individually selecting an area decoder among a plurality of different area decoders ( 47 1 to 47 n ) for each area of said prediction error frame (E*) contained encoded in said received prediction error data.

5. Decoder according to claim 4 , characterized in that:

said determination means comprises classifying means ( 43 ) for assigning one class of a group of property classes to each area to be decoded of said prediction error frame (E*) depending on discontinuity properties of the corresponding area of said predicted video data frame (P); and

said selection means ( 45 , 46 ) is adapted to select an area decoder for each area to be decoded of said prediction error frame (E*) in accordance with the class assigned to the respective area.

6. Decoder according to claim 5 , characterized in that:

said classifying means ( 43 ) is adapted to perform a classification based on output values provided by linear directional filters ( 42 ) for calculating finite differences (F H ) in a vertical direction and finite differences (F V ) in a horizontal direction in each area of the predicted video data frame (P) that corresponds to an area of said prediction error frame (E*) contained encoded in said prediction error data.

7. Decoder according to claim 5 , characterized in that

said classification means ( 43 ) is adapted to perform a classification based on respective brightness discontinuity concentrations in different pixel clusters of each area of the predicted video data frame (P) that corresponds to an area of said prediction error frame (E*) contained encoded in said prediction error data.

8. Decoder according to claim 5 , characterized in that:

said group of classes includes at least one of the following classes: no discontinuities; horizontal discontinuities; vertical discontinuities; diagonal left slanted discontinuities; diagonal right slanted discontinuities; non-directional discontinuities.

9. Decoder according to claim 4 , characterized by

each area decoder ( 471 to 47 n ) being adapted to comprise a plurality of decoding methods ( 63 l to 63 k ) and decoding method selection means ( 62 , 64 , 65 ) for selecting a decoding method from the respective plurality of decoding methods ( 63 l to 63 k ) in accordance with received coding method selection information.

10. Decoder according to claim 9 , characterized in that said pluralities of decoding methods ( 631 to 63 k ) are different for different area decoders ( 471 to 47 n ).

11. Decoder according to claim 1 , characterized in that:

said area decoding means ( 48 ) is adapted to decode the received error prediction data of each area to be decoded of said prediction error frame (E*) by means of using selected orthogonal transformations, vector quantization or matching pursuit schemes.

12. Decoder according to claim 1 , characterized in that:

said determination means comprises means ( 44 ) for calculating for each area of said predicted video data frame (P) a magnitude and/or direction of corresponding motion vectors; and

said determination means is adapted to perform said determination based on the calculated magnitude and/or direction of said motion vectors.

13. Decoder according to claim 12 , characterized in that:

said determination means is adapted to determine that an area of the prediction error frame (E*) is not contained encoded in said received prediction error data if said calculated magnitude of said motion vectors corresponds to the area does not exceed a second predetermined threshold.

14. Decoder according to claim 1 , characterized in that:

said means ( 32 ) for decoding said received prediction error data is adapted to assign sequentially received sections of said prediction error data to respective areas determined by said determination means ( 41 , 42 , 44 ) in accordance with a predetermined spatial assignment rule;

each section corresponding to one encoded area of said prediction error frame.

15. Decoder according to claim 14 , characterized in that:

said predetermined spatial assignment rule defines an assignment of said sequentially received sections of said prediction error data to said respecitve areas in the order in which they appear when scanning all areas of said prediction error frame and/or in the order in which they are determined by said determination means.

16. System for transmitting video data, comprising an encoder and a decoder, said encoder for performing motion compensated encoding of video data, and said decoder for decoding motion compensation encoded video data, the encoder comprising:

means ( 8 ) for estimating motion vectors describing scene motion displacements of video frame pixels;

means ( 7 ) for predicting a video data frame (P) based on a first video data frame (R) and said motion vectors;

means ( 1 ) for calculating a prediction error frame (E) based on said predicted video data frame (P) and on a second video data frame (I);

means ( 2 ) for encoding said prediction error frame (E) and obtaining prediction error data;

means ( 4 ) for transmitting said motion vectors and said prediction error data to the decoder;

said means ( 2 ) for encoding said prediction error frame (E) comprising:

means ( 24 ) for partitioning said prediction error frame into a plurality of areas; and

determination means for performing at least one of the following operations: determination of areas in said prediction error frame (E) to be encoded and determination of at least one coding scheme for each area to be encoded of said prediction error frame (E); and

area encoding means ( 26 ) for encoding the areas to be encoded of said prediction error frame (E) in accordance with the at least one determination operation performed by said determination means;

wherein said determination means is adapted to analyse properties of said predicted video data frame (P) and to perform said at least one determination operation based on said analysis; and

the decoder comprising:

means ( 34 ) for storing a video data frame (R);

means ( 35 ) for predicting a video data frame (P) based on said vodeo data frame (R) and on received motion vector data;

means ( 32 ) for decoding received prediction error data and obtaining a prediction error frame (E*); and

means ( 33 ) for calculating and outputting an updated video data frame (I*) based on said predicted video data frame (P) and said decoded prediction error frame (E*), and storing the updated video data frame (I*) in said storing means;

said means ( 32 ) for decoding said received prediction error data comprising:

determination means for performing at least one of the following operations; determination of areas of said prediction error frame (E) which are contained encoded in the received prediction error data and determination of at least one decoding scheme for each area contained encoded in the received prediction error data; and

area decoding means ( 48 ) for decoding said received prediction error data to obtain the prediction error frame in accordance with the at least one determination operation by said determination means;

wherein said determination means is adapted to analyse properties of said predicted video data frame (P), and to perform said at least one determination operation based on said analysis.

17. System for storing video data, comprising an encoder means for storing encoded video data, and a decoder, said encoder for performing motion compensated encoding of video data, and said decoder for decoding motion compensation encoded video data, the encoder comprising:

means ( 8 ) for estimating motion vectors describing scene motion displacements of video frame pixels;

means ( 7 ) for predicting a video data frame (P) based on a first video data frame (R) and said motion vectors;

means ( 1 ) for calculating a prediction error frame (E) based on said predicted video data frame (P) and on a second video data frame (I);

means ( 2 ) for encoding said prediction error frame (E) and obtaining prediction error data;

means ( 4 ) for transmitting said motion vectors and said prediction error data to the decoder;

said means ( 2 ) for encoding said prediction error frame (E) comprising:

means ( 24 ) for partitioning said prediction error frame into a plurality of areas; and

determination means for performing at least one of the following operations: determination of areas in said prediction error frame (E) to be encoded and determination of at least one coding scheme for each area to be encoded of said prediction error frame (E); and

area encoding means ( 26 ) for encoding the areas to be encoded of said prediction error frame (E) in accordance with the at least one determination operation performed by said determination means;

wherein said determination means is adapted to analyse properties of said predicted video data frame (P) and to perform said at least one determination operation based on said analysis; and

the decoding comprising:

means ( 34 ) for storing a video data frame (R);

means ( 35 ) for predicting a video data frame (P) based on said stored video data frame (R) and on received motion vector data;

means ( 32 ) for decoding received prediction error data and obtaining a prediction error frame (E*); and

means ( 33 ) for calculating and outputting an updated video data frame (I*) based on said predicted video data frame (P) and said decoded prediction error frame (E*), and storing the updated video data frame (I*) in said storing means;

said means ( 32 ) for decoding said received prediction error data comprising:

determination means for performing at least one of the following operations: determination of areas of said prediction error frame (E) which are contained encoded in the received prediction error data and determination of at least one decoding scheme for each area contained encoded in the received prediction error data; and

area decoding means ( 48 ) for decoding said received prediction error data to obtain the prediction error frame in accordance with the at least one determination operation performed by said determination means;

wherein said determination means is adapted to analyse properties of said predicted video data frame (P), and to perform said at least one determination operation based on said analysis.

18. Method of decoding motion compensation encoded video data, comprising:

storing a video data frame (R);

predicting a video data frame (P) based on said video data frame (R) and on received motion vector data;

decoding received prediction error data and obtaining a prediction error frame (E*); and

calculating and outputting an updated video data from (I*) based on said predicted video data frame (P) and said decoded prediction error frame (E*), and storing the updated video data frame (I*) in said storing means;

said step of decoding said received prediction error data comprising:

performing at least one of the following determination operations: determining areas of said prediction error frame (E*) which are contained encoded in the received prediction error data and determining a decoding scheme for each area contained encoded in the received prediction error data; and

decoding said received prediction error data in accordance with said at least one determination operation to obtain the prediction error frame;

wherein said determination is based on analysing properties of said predicted video data frame (P).

19. Method of transmitting video data, comprising encoding said video data, transmitting the encoded video data over a transmission medium and decoding the transmitted video data, encoding the video data, comprising the steps of:

estimating motion vectors describing scene motion displacements of video frame pixels;

predicting a video data frame (P) based on a first video data frame (R) and said motion vectors;

calculating a prediction error frame (E) based on said predicted video data frame (P) and a second video data frame input;

encoding said prediction error frame (E) and obtaining prediction error data;

transmitting said motion vectors and said prediction error data to a decoder;

said step of encoding said prediction error frame (E) comprising:

dividing said prediction error (E) frame into a plurality of areas;

performing at least one of the following determination operations: determining which of the areas in said prediction error frame (E) are to be encoded and determining a coding scheme for each area to be encoded of said prediction error frame (E); and

encoding each area to be encoded of said prediction error frame (E) in accordance with said determination;

wherein said at least one determination operation is based on analysing properties of said predicted video data frame (P); and

the decoding of thevideo data comprising the steps of:

storing a video data frame (R);

predicting a video data frame (P) based on said stored video data frame (R) and on received motion vector data;

decoding received prediction error data and obtaining a prediction error frame (E*); and

calculating and outputting an updated video data frame (I*) based on said predicted video data frame (P) and said decoded prediction error frame (E*), and storing the updated video data frame (I*) in said storing means;

said step of decoding said received prediction error data comprising:

performing at least one of the following determination operations:

determining areas of said prediction error frame (E*) which are contained encoded in the received prediction error data and determining a decoding scheme for each area contained encoded in the received prediction error data; and

decoding said received prediction error data in accordance with said at least one determination operation to obtain the prediction error frame;

wherein said determination is based on analysing properties of said predicted video data frame (P).

20. Method of storing video data, comprising encoding said video data, storing the encoded video data in storage means, retrieving the stored video data from said storage means and decoding the retrieved video data, encoding the video data, comprising the steps of:

estimating motion vectors describing scene motion displacements of video frame pixels;

predicting a video data frame (P) based on a first video data frame (R) and said motion vectors;

calculating a prediction error frame (E) based on said predicted video data frame (P) and a second video data frame input;

encoding said prediction error frame (E) and obtaining prediction error data;

transmitting said motion vectors and said prediction error data to a decoder;

said step of encoding said prediction error frame (E) comprising:

dividing said prediction error (E) frame into a plurality of areas;

performing at least one of the following determination operations: determining which of the areas in said prediction error frame (E) are to be encoded and determining a coding scheme for each area to be encoded of said prediction error frame (E); and

encoding each area to be encoded of said prediction error frame (E) in accordance with said determination;

wherein said at least one determination operation is based on analysing properties of said predicted video data frame (P); and

the decoding of the video data comprising the steps of:

storing a video data frame (R);

predicting a video data frame (P) based on said stored video data frame (R) and on received motion vector data;

decoding received prediction error data and obtaining a prediction error frame (E*); and

calculating and outputting an updated video data frame (I*) based on said predicted video data frame (P) and said decoded prediction error frame (E*), and storing the updated video data frame (I*) in said storing means;

said step of decoding said received prediction error data comprising:

performing at least one of the following determination operations:

determining areas of said prediction error frame (E*) which are contained encoded in the received prediction error data and determining a decoding scheme for each area contained encoded in the received prediction error data; and

decoding said received prediction error data in accordance with said at least one determination operation to obtain the prediction error frame;

wherein said determination is based on analysing properties of said predicted video data frame (P).

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
CHANGE OF NAME Recorded Nov 19, 2014
From: NOKIA SIEMENS NETWORKS OY
To: NOKIA SOLUTIONS AND NETWORKS OY
Reel/Frame 034294/0603 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2008
From: NOKIA CORPORATION
To: NOKIA SIEMENS NETWORKS OY
Reel/Frame 020837/0600 →