IP Library Granted Patent US 11,228,767
Granted Patent B2
US 11,228,767 · App. 16/771,115 · Granted Jan 18, 2022

Apparatus, a method and a computer program for video coding and decoding

Inventors: Miska Hannuksela (Tampere, FI); Mikko Honkala (Espoo, FI); Jani Lainema (Tampere, FI); Francesco Cricri (Tampere, FI); Emre Aksu (Tampere, FI)
Assignee: Nokia Technologies Oy
H04N19/149G06N3/08H04N19/176H04N19/436H04N19/65
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 11,228,767
App. No.
16/771,115
Granted
Jan 18, 2022
Kind
B2
Abstract

A method comprising: deriving a first prediction block ( 608 ) at least partly based on an output of a neural net ( 602 ) using a first set of parameters; deriving a first encoded prediction error block ( 614 - 620 ) through encoding a difference of the first prediction block and a first input block; encoding ( 620 ) the first encoded prediction error block into a bitstream; deriving a first reconstructed prediction error block ( 624 ) from the first encoded prediction error block; deriving a training signal ( 628 ) from one or both of the first encoded prediction error block and/or the first reconstructed prediction error block ( 624 ); retraining ( 630 ) the neural net ( 602 ) with the training signal ( 628 ) to obtain a second set of parameters for the neural net ( 602 ); deriving a second prediction block ( 608 ) at least partly based on an output of the neural net using the second set of parameters; deriving a second encoded prediction error block ( 614 - 620 ) through encoding a difference of the second prediction block and a second input block; and encoding ( 620 ) the second encoded prediction error block into a bitstream. The invention relates to image or video encoding or decoding, especially by online training a neural network ( 602 ) that is in the prediction loop.

Claims (83)

1. A method comprising:

deriving a first prediction block at least partly based on an output of a neural net using a first set of parameters;

deriving a first encoded prediction error block through encoding a difference of the first prediction block and a first input block;

encoding the first encoded prediction error block into a bitstream;

deriving a first reconstructed prediction error block based on the first encoded prediction error block;

deriving a training signal from at least one of the first encoded prediction error block or the first reconstructed prediction error block;

retraining the neural net with the training signal to obtain a second set of parameters for the neural net;

deriving a second prediction block at least partly based on an output of the neural net using the second set of parameters;

deriving a second encoded prediction error block through encoding a difference of the second prediction block and a second input block;

encoding the second encoded prediction error block into a bitstream; and

controlling a learning rate of the neural net with adaptively deciding to turn learning on and off, and providing indications of the adaptive on and off decisions for learning of the neural net in the bitstream, wherein the neural net is an encoder-side neural net.

2. A method comprising:

decoding a first encoded prediction error block from a bitstream, the first encoded prediction error block having been encoded based on a difference of a first prediction block and a first input block;

deriving a first reconstructed prediction error block based on the first encoded prediction error block;

deriving a training signal from at least one of the first encoded prediction error block or the first reconstructed prediction error block;

retraining a neural net characterized by a first set of parameters with the training signal to obtain a second set of parameters for the neural net, wherein the neural net is a decoder-side neural net;

deriving a second prediction block at least partly based on an output of the neural net using the second set of parameters;

decoding a second encoded prediction error block based on the bitstream;

deriving a second reconstructed prediction error block based on the second encoded prediction error block; and

reconstructing a second reconstructed block based on the second prediction block and the second reconstructed prediction error block.

3. The method according to claim 2 , further comprising: controlling a learning rate of the neural net by adaptively turning learning on and off.

4. The method according to claim 2 , wherein the training signal comprises a gradient of a loss, and wherein the loss is represented by the first or second reconstructed prediction error block.

5. The method according to claim 2 , further comprising: maintaining at least one of a plurality of sets of parameters or weights for the neural net.

6. The method according to claim 5 , further comprising:

training multiple models of the neural net using the first or second encoded prediction error block as a basis for the training signal used for the training; and

maintaining at least one of competing sets of parameters or weights for the models of the neural net.

7. The method according to claim 5 , further comprising:

maintaining at least one of a plurality of sets of layer-wise parameters or weights comprising one set for each layer of a multi-layer video bitstream.

8. The method according to claim 5 , further comprising:

maintaining at least one of a plurality of sets of sub-layer-wise parameters or weights comprising one set for each sub-layer of a video bitstream.

9. The method according to claim 5 , further comprising:

maintaining at least one of a plurality of sets of processing-thread-wise parameters or weights comprising one set for each processing thread for decoding the bitstream, wherein processing threads for decoding are to be executed in parallel.

10. The method according to claim 9 , further comprising

maintaining at least two sets of parameters or weights for the neural net;

resetting said two sets of parameters or weights to a first and a second initial sets of parameters or weights;

using the first set of parameters or weights for encoding/decoding a first picture; and

using the prediction error block of the first picture for training the second set of parameters or weights.

11. The method according to claim 10 , further comprising

resetting the first set of parameters or weights equal to the second set of parameters or weights; and

decoding a second picture similarly to the first picture.

12. The method according to claim 11 , further comprising:

determining a number of processing threads or cores available for parallel processing;

buffering a number of sets of parameters or weights corresponding to said processing threads or cores; and

processing slices, tiles or wavefronts of said pictures in parallel using said number of sets of parameters or weights.

13. The method according to claim 5 , further comprising:

concluding that a picture has a picture type causing a reset of parameters or weights for the neural net and consequently resetting one or more sets of parameters or weights for the neural net to their initial values.

14. An apparatus comprising:

at least one processor and at least one non-transitory memory including a computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to:

derive a first prediction block at least partly based on an output of a neural net using a first set of parameters;

derive a first encoded prediction error block through encoding a difference of the first prediction block and a first input block;

encode the first encoded prediction error block into a bitstream;

derive a first reconstructed prediction error block based on the first encoded prediction error block;

derive a training signal from one or both of the first encoded prediction error block or the first reconstructed prediction error block;

retrain the neural net with the training signal to obtain a second set of parameters for the neural net;

derive a second prediction block at least partly based on an output of the neural net using the second set of parameters;

derive a second encoded prediction error block through encoding a difference of the second prediction block and a second input block;

encode the second encoded prediction error block into a bitstream; and

control a learning rate of the neural net with adaptively deciding to turn learning on and off, and provide indications of the adaptive on and off decisions for learning of the neural net in the bitstream, wherein the neural net is an encoder-side neural net.

15. An apparatus comprising:

at least one processor and at least one non-transitory memory including a computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to:

decode a first encoded prediction error block from a bitstream, said first encoded prediction error block having been encoded based on a difference of a first prediction block and a first input block;

derive a first reconstructed prediction error block based on the first encoded prediction error block;

derive a training signal from one or both of the first encoded prediction error block or the first reconstructed prediction error block;

retrain a neural net characterized by a first set of parameters with the training signal to obtain a second set of parameters for the neural net, wherein the neural net is a decoder-side neural net;

derive a second prediction block at least partly based on an output of the neural net using the second set of parameters;

decode a second encoded prediction error block based on the bitstream;

derive a second reconstructed prediction error block based on the second encoded prediction error block; and

reconstruct a second reconstructed block based on the second prediction block and the second reconstructed prediction error block.

16. The apparatus according to claim 15 , wherein the apparatus is further caused to:

control a learning rate of the neural net by adaptively turning learning on and off.

17. The apparatus according to claim 15 , wherein the training signal comprises a gradient of a loss, and wherein the loss is represented by the first or second reconstructed prediction error block.

18. The apparatus according to claim 15 , wherein the apparatus is further caused to:

maintain a plurality of sets of parameters or weights for the neural net.

19. The apparatus according to claim 18 , wherein the apparatus is further caused to:

train multiple models of the neural net using the same encoded prediction error block as a basis for the training signal used for the training; and

maintain competing sets of parameters or weights for the models of the neural net.

20. The apparatus according to claim 18 , wherein the apparatus is further caused to:

maintain a plurality of sets of layer-wise parameters or weights comprising one set for each layer of a multi-layer video bitstream.

21. The method according to claim 3 , further comprising:

decoding indications of adaptive on and off decisions related to learning an encoder-side neural net from the bitstream, and using the decoded indications of adaptive on and off decisions for controlling the learning rate of the decoder-side neural net.

22. The method according to claim 1 , wherein the training signal is derived from the first encoded prediction error block.

23. The method according to claim 2 , wherein the training signal is derived from the first encoded prediction error block.

24. The method according to claim 8 , wherein each sub-layer of the video bitstream comprises a temporal sub-layer having a temporal identifier value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2020
From: HANNUKSELA, MISKA; HONKALA, MIKKO; LAINEMA, JANI; CRICRI, FRANCESCO; AKSU, EMRE
To: NOKIA TECHNOLOGIES OY
Reel/Frame 053213/0919 →
Priority Claims (1)
FI 20176115 · Dec 13, 2017 · national
Continuity (1)
Related Publication 20210195206A1 · Jun 24, 2021
Cited By (3)
US 12,587,675 US 12,602,834 US 12,604,021