IP Library Patent Application 17257363
Patent Application
App. No. 17/257,363

VIDEO ENCODER, VIDEO DECODER, VIDEO ENCODING METHOD, VIDEO DECODING METHOD

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.
17/257,363
Abstract

A method includes receiving a bit stream; determining whether a bi-directional prediction with adaptive weights mode is enabled for a current block; determining at least one weight; and reconstructing pixel data of the current block and using a weighted combination of at least two reference blocks. Related apparatus, systems, techniques and articles are also described.

Claims (97)

1 . A video decoding method comprising:

receiving a bit stream;

determining whether a bi-directional prediction with adaptive weights mode is enabled for a current block;

determining at least one weight; and

reconstructing pixel data of the current block and using a weighted combination of at least two reference blocks.

2 . The video decoding method of claim 1 , wherein the bit stream includes a parameter indicating whether the bi-directional prediction with adaptive weights mode is enabled for the block.

3 . The video decoding method of claim 1 , wherein the bi-directional prediction with adaptive weights mode is signaled in the bit stream.

4 . The video decoding method of claim 1 , wherein determining at least one weight includes determining an index into an array of weights; and accessing the array of weights using the index.

5 . The video decoding method of claim 1 , wherein determining at least one weight includes:

determining a first distance from a current frame to a first reference frame of the at least two reference blocks;

determining a second distance from the current frame to a second reference frame of the at least two reference blocks; and

determining the at least one weight based on the first distance and the second distance.

6 . The video decoding method of claim 5 , wherein determining the at least one weight based on the first distance and the second distance is performed according to:

w 1=α0×( N I )/( N I +N J );

w 0=(1− w 1);

wherein w1 is a first weight, w0 is a second weight, α 0 is a predetermined value; N I is the first distance and N J is the second distance.

7 . The video decoding method of claim 1 , wherein determining at least one weight includes:

determining a first weight by at least determining an index into an array of weights and accessing the array of weights using the index; and

determining a second weight by at least subtracting the first weight from a value.

8 . The video decoding method of claim 7 , wherein the array includes integer values including {4, 5, 3, 10, −2}.

9 . The video decoding method of claim 7 , wherein determining the first weight includes setting a first weight variable w1 to an element of the array specified by the index;

wherein determining the second weight includes setting a second weight variable w0 equal to the value minus the first weight variable.

10 . The video decoding method of claim 9 , wherein determining the first weight and determining the second weight is performed according to:

setting a variable w1 equal to bcwWLut[bcwIdx] with bcwWLut[k]={4, 5, 3, 10, −2}; and

setting a variable w0 equal to (8−w1);

wherein bcwIdx is the index, and k is a variable.

11 . The video decoding method of claim 10 , wherein the weighted combination of the at least two reference blocks is computed according to pbSamples[x][y]=Clip3(0,(1<<bitDepth)−1,(w0*predSamplesL0[x][y]+w1*predSamplesL1[x][y]+offset3)

>>(shift2+3))

where pbSamples [x] [y] are prediction pixel values, x and y are luma locations,

<< is an arithmetic left shift of a two's complement integer representation by binary digits,

predSamplesL0 is a first array of pixel values of a first reference block of the at least two reference blocks,

predSamplesL1 is a second array of pixel values of a second reference block of the at least two reference blocks,

Clip

3

(

x

,

y

,

z

)

=

{

x

;

z

<

x

y

;

z

>

y

z

;

other

wise

offset3 is an offset value, and

shift2 is a shift value.

12 . The video decoding method of claim 7 , wherein determining the index includes adopting the index from a neighboring block during a merge mode.

13 . The video decoding method of claim 12 , wherein adopting the index from the neighboring block during merge mode includes determining a merge candidate list containing spatial candidates and temporal candidates, selecting, using a merge candidate index included in the bit stream, a merge candidate from the merge candidate list, and setting a value of the index to a value of an index associated with the selected merge candidate.

14 . The video decoding method of claim 1 , wherein the at least two reference blocks include a first block of prediction samples from a previous frame and a second block of prediction samples from a subsequent frame.

15 . The video decoding method of claim 1 , wherein reconstructing pixel data includes using an associated motion vector contained in the bit stream.

16 . (canceled)

17 . The video decoding method of claim 1 , wherein the current block forms part of a quadtree plus binary decision tree.

18 . The video decoding method of claim 1 , wherein the current block is a coding tree unit, a coding unit, or a prediction unit.

19 - 20 . (canceled)

21 . A video decoder comprising:

an entropy decoder which entropy decodes a bit stream into quantized coefficients;

an inverse quantization and inverse transformation processor which performs inverse quantization and inverse transformation of the quantized coefficients to create a residual signal for a current block;

a motion compensation processor which create a prediction signal using a weighted combination of at least two reference blocks when a parameter included in the bit stream indicates that a bi-directional prediction with adaptive weights mode is enabled for the current block; and

an adder which adds the prediction signal to the residual signal.

22 . The video decoder of claim 21 , wherein the weighted combination of at least two reference blocks is weighted with a first weight which is determined by at least determining an index into an array of weights and accessing the array of weights using the index, and a second weight which is determined by at least subtracting the first weight from a value.

23 . A video encoding method comprising;

creating a predictor, for a block divided from a frame of an input video, using a weighted combination of at least two reference blocks on a basis of bi-directional prediction with adaptive weights;

subtracting the predictor from the block to obtain a residual;

performing transformation and quantization to create quantized coefficients from the residual;

generating a bit stream which includes the quantized coefficients by entropy encoding.

24 . The video encoding method of claim 23 , wherein the weighted combination of at least two reference blocks is weighted with a first weight and a second weight,

the first weight is obtained from an array of weights and the second weight is determined by subtracting the first weight from a value, and

an index into the array of weights which specifies the first weight is included in the bit stream.

25 . A video encoder comprising:

a motion compensation processor which creates a predictor, for a block divided from a frame of an input video, using a weighted combination of at least two reference blocks on a basis of bi-directional prediction with adaptive weights;

a subtractor which subtracts the predictor from the block to create a residual;

a transformation and quantization processor which creates quantized coefficients from the residual;

an entropy encoder which generates a bit stream including the quantized coefficients.

26 . The video encoder of claim 25 , wherein the weighted combination of at least two reference blocks is weighted with a first weight and a second weight,

the first weight is obtained from an array of weights and the second weight is determined by subtracting the first weight from a value, and

an index into the array of weights which specifies the first weight is included in the bit stream.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2021
From: KALVA, HARI; FURHT, BORIVOJE
To: FLORIDA ATLANTIC UNIVERSITY RESEARCH CORPORATION
Reel/Frame 054900/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2021
From: FLORIDA ATLANTIC UNIVERSITY RESEARCH CORPORATION
To: OP SOLUTIONS, LLC
Reel/Frame 054900/0388 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2021
From: OP SOLUTIONS, LLC
To: MITSUBISHI ELECTRIC CORPORATION
Reel/Frame 054900/0432 →