IP Library Patent Application 15662315
Patent Application
App. No. 15/662,315

METHOD AND APPARATUS FOR CODING A VIDEO INTO A BITSTREAM

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 None
App. No.
15/662,315
Abstract

A method and an apparatus for encoding an image into a bitstream are disclosed. Said image comprising a set of blocks. For each block of the image, an activity value is computed. A set of classes of activity values is constructed based on a number of blocks for each computed activity value and a quantization parameter is assigned to each class. At least one block of said image is coded into said bitstream using a quantization parameter assigned to the class to which the block belongs.

Claims (75)

1 . A method for encoding a block of an image into a bitstream said method comprising:

computing, for each block of a plurality of blocks of said image, an activity value,

constructing a set of Nb classes of blocks based on said computed activity values,

assigning a quantization parameter to each class, wherein assigning a quantization parameter is done according to a monotonic increasing function of the activity value for at least one part of the classes,

coding into said bitstream at least one block of said image using a quantization parameter assigned to the class to which the block belongs.

2 . The method for encoding according to claim 1 , wherein constructing a set of classes of blocks comprises:

determining an histogram of computed activity values;

determining a central activity value C of said histogram, said central activity value being a center between a first activity value L and a second activity value H, wherein the first activity value is an activity value associated with a peak on the left side of the histogram or is an activity value corresponding to the first x-quantile of the histogram and the second activity value is an activity value associated with a peak on the right side of the histogram or is an activity value corresponding to the last x-quantile of the histogram,

determining a class width WC, wherein WC=max(W min , (H−L)/(Nb−1)), where W min is a minimal width for a class, and

determining a range of activity value for each class from said fixed width and from said central activity value as follows, wherein the classes of the set being indexed from 0 to Nb−1, ic is the index of a central class comprising the central activity value C, min is a lowest activity value in said image and max is a highest activity value in said image:

the range of the class of index 0 is set equal to [min,C−WC/2−(i_c−1)×WC],

the range of a class of index i, with 0<i≦ic, is set equal to]C−WC/2−(i_c−i)×WC,C−WC/2−(i_c−i−1)×WC],

the range of a class of index i, with ic<i<Nb−1, is set equal to]C+WC/2+(i−1−i_c)×WC,C+WC/2+(i−i_c)×WC],

the range of the class of index Nb−1 is set equal to]C+WC/2+(i−1−Nb/2)×WC,max].

3 . The method for encoding according to claim 1 , wherein said constructing a set of classes of blocks comprises:

determining an histogram of computed activity values;

determining the number of blocks N low for which the activity value is lower than a central activity value C and the number of blocks N high for which the activity value is higher than a central activity value C;

determining, for each class of a first subset of classes with activity values ranging from a lowest activity value in said picture to C, a range of activity values depending on N low so that each class of said first subset of classes has a number of blocks close to N low /(Nb/2), and

determining, for each class of a second subset of classes with activity values ranging from C to a highest activity value in said picture, a range of activity values depending on N high so that each class of said second subset of classes has a number of blocks close to N high /(Nb/2)

determining a range of activity values for a central class comprising the central activity value so that said central class has a number of blocks close to (N low /(Nb/2)+N high /(Nb/2))/2.

4 . The method for encoding according to claim 1 , wherein said method for encoding further comprises:

determining a low class, called last low class, from the set of constructed classes, wherein said last low class comprises a low activity value and wherein a class whose highest activity value is below the lowest activity value of the last low class is called a very low activity class, and wherein a class whose lowest activity value is equal or higher than the highest activity value of the last low class is called a normal activity class,

determining, for each very low class, a new range of activity values depending on the lowest activity value of said last low class and on a width, said width being equal to an average of the widths of normal classes or to a width of the central class, and

assigning to each very low class a quantization parameter equal to a quantization parameter of a normal class which is a symmetric class of the very low class with respect to the last low class.

5 . The method for encoding an image according to claim 1 , wherein the number of classes in the set of classes depends on a number of available index parameters coded in a slice header of the frame.

6 . An apparatus for encoding an image into a bitstream, said image comprising a set of blocks, said apparatus comprising at least a processor configured to:

compute, for each block of a plurality of blocks of said image, an activity value,

construct a set of Nb classes of blocks based on said computed activity values,

assign a quantization parameter to each class, wherein assigning a quantization parameter is done according to a monotonic increasing function of the activity value for at least one part of the classes,

code into said bitstream at least one block of said image using a quantization parameter assigned to the class to which the block belongs.

7 . The apparatus for encoding according to claim 6 , wherein said constructing a set of classes of blocks comprises:

determining an histogram of computed activity values;

determining a central activity value C of said histogram, said central activity value being a center between a first activity value L and a second activity value H, wherein the first activity value is an activity value associated with a peak on the left side of the histogram or is an activity value corresponding to the first x-quantile of the histogram and the second activity value is an activity value associated with a peak on the right side of the histogram or is an activity value corresponding to the last x-quantile of the histogram,

determining a class width WC, wherein WC=max(W min , (H−L)/(Nb−1)), where W min is a minimal width for a class, and

determining a range of activity value for each class from said fixed width and from said central activity value as follows, wherein the classes of the set being indexed from 0 to Nb−1, ic is the index of a central class comprising the central activity value C, min is a lowest activity value in said image and max is a highest activity value in said image:

the range of the class of index 0 is set equal to [min,C−WC/2−(i_c−1)×WC],

the range of a class of index i, with 0<i≦ic, is set equal to]C−WC/2−(i_c−i)×WC,C−WC/2−(i_c−i−1)×WC],

the range of a class of index i, with ic<i<Nb−1, is set equal to]C+WC/2+(i−1−i_c)×WC,C+WC/2+(i−i_c)×WC],

the range of the class of index Nb−1 is set equal to]C+WC/2+(i−1−Nb/2)×WC,max].

8 . The apparatus for encoding according to claim 6 , wherein said constructing a set of classes of blocks comprises:

determining an histogram of computed activity values;

determining the number of blocks N low for which the activity value is lower than a central activity value C and the number of blocks N high for which the activity value is higher than a central activity value C;

determining, for each class of a first subset of classes with activity values ranging from a lowest activity value in said picture to C, a range of activity values depending on N low so that each class of said first subset of classes has a number of blocks close to N low /(Nb/2), and

determining, for each class of a second subset of classes with activity values ranging from C to a highest activity value in said picture, a range of activity values depending on N high so that each class of said second subset of classes has a number of blocks close to N high /(Nb/2)

determining a range of activity values for a central class comprising the central activity value so that said central class has a number of blocks close to (N low /(Nb/2)+N high /(Nb/2))/2.

9 . The apparatus for encoding according to claim 6 , wherein said processor is further configured to:

determine a low class, called last low class, from the set of constructed classes, wherein said last low class comprises a low activity value and wherein a class whose highest activity value is below the lowest activity value of the last low class is called a very low activity class, and wherein a class whose lowest activity value is equal or higher than the highest activity value of the last low class is called a normal activity class,

determine, for each very low class, a new range of activity values depending on the lowest activity value of said last low class and on a width, said width being equal to an average of the widths of normal classes or to a width of the central class, and

assign to each very low class a quantization parameter equal to a quantization parameter of a normal class which is a symmetric class of the very low class with respect to the last low class.

10 . The apparatus for encoding an image according to claim 6 , wherein the number of classes in the set of classes depends on a number of available index parameters coded in a slice header of the frame.

11 . A non-transitory processor readable medium having stored thereon a bitstream wherein the bitstream comprises coded data representative of at least one block of said image, said coded data being obtained by:

computing, for each block of a plurality of blocks of said image, an activity value,

constructing a set of Nb classes of blocks based on said computed activity values,

assigning a quantization parameter to each class, wherein assigning a quantization parameter is done according to a monotonic increasing function of the activity value for at least one part of the classes,

coding said at least one block of said image using a quantization parameter assigned to the class to which the block belongs.

12 . The non-transitory processor readable medium according to claim 11 , wherein constructing a set of classes of blocks comprises:

determining an histogram of computed activity values;

determining a central activity value C of said histogram, said central activity value being a center between a first activity value L and a second activity value H, wherein the first activity value is an activity value associated with a peak on the left side of the histogram or is an activity value corresponding to the first x-quantile of the histogram and the second activity value is an activity value associated with a peak on the right side of the histogram or is an activity value corresponding to the last x-quantile of the histogram,

determining a class width WC, wherein WC=max(W min , (H−L)/(Nb−1)), where W min is a minimal width for a class, and

determining a range of activity value for each class from said fixed width and from said central activity value as follows, wherein the classes of the set being indexed from 0 to Nb−1, ic is the index of a central class comprising the central activity value C, min is a lowest activity value in said image and max is a highest activity value in said image:

the range of the class of index 0 is set equal to [min,C−WC/2−(i_c−1)×WC],

the range of a class of index i, with 0<i≦ic, is set equal to]C−WC/2−(i_c−i)×WC,C−WC/2−(i_c−i−1)×WC],

the range of a class of index i, with ic<i<Nb−1, is set equal to]C+WC/2+(i−1−i_c)×WC,C+WC/2+(i−i_c)×WC],

the range of the class of index Nb−1 is set equal to]C+WC/2+(i−1−Nb/2)×WC,max].

13 . The non-transitory processor readable medium according to claim 11 , wherein said constructing a set of classes of blocks comprises:

determining an histogram of computed activity values;

determining the number of blocks N low for which the activity value is lower than a central activity value C and the number of blocks N high for which the activity value is higher than a central activity value C;

determining, for each class of a first subset of classes with activity values ranging from a lowest activity value in said picture to C, a range of activity values depending on N low so that each class of said first subset of classes has a number of blocks close to N low /(Nb/2), and

determining, for each class of a second subset of classes with activity values ranging from C to a highest activity value in said picture, a range of activity values depending on N high so that each class of said second subset of classes has a number of blocks close to N high /(Nb/2)

determining a range of activity values for a central class comprising the central activity value so that said central class has a number of blocks close to (N low /(Nb/2)+N high /(Nb/2))/2.

14 . The non-transitory processor readable medium according to claim 11 , wherein said coded data are further obtained by:

determining a low class, called last low class, from the set of constructed classes, wherein said last low class comprises a low activity value and wherein a class whose highest activity value is below the lowest activity value of the last low class is called a very low activity class, and wherein a class whose lowest activity value is equal or higher than the highest activity value of the last low class is called a normal activity class,

determining, for each very low class, a new range of activity values depending on the lowest activity value of said last low class and on a width, said width being equal to an average of the widths of normal classes or to a width of the central class, and

assigning to each very low class a quantization parameter equal to a quantization parameter of a normal class which is a symmetric class of the very low class with respect to the last low class.

15 . The non-transitory processor readable medium according to claim 11 , wherein the number of classes in the set of classes depends on a number of available index parameters coded in a slice header of the frame.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2018
From: THOMSON LICENSING
To: INTERDIGITAL VC HOLDINGS, INC.
Reel/Frame 047289/0698 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2018
From: GALPIN, FRANCK; LE LEANNEC, FABRICE; RACAPE, FABIEN; POIRIER, TANGI; VIELLARD, THIERRY; URBAN, FABRICE
To: THOMSON LISENSING
Reel/Frame 044601/0467 →