Decoding and encoding of pictures of a video sequence
AssigneeTelefonaktiebolaget L M Ericsson (publ)
InventorsJonatan Samuelsson, Rickard SJÖBERG
Life of this patent
Estimating the term…
Abstract
The embodiments reduce output delay for pictures by determining after a current picture has been decoded and stored in a decoded picture buffer, DPB, a number of pictures in the DPB that are marked as needed for output. This number is compared, after a current picture has been decoded and stored in the DPB, against a value derived form at least one syntax element present or to be present in a bitstream representing pictures of a video sequence. If this number is greater than the value a picture, which is the first picture in output order, of the pictures in the DPB that are marked as needed for output is preferably output and marked as not needed for output.
Claims32
A method performed by a decoder, said method comprises:
- determining, after a current picture has been decoded and stored in a decoded picture buffer a number of pictures in said decoded picture buffer that are marked as needed for output, said current picture belonging to a layer other than a highest layer that is decoded by said decoder of a multi-layer video sequence comprising multiple layers of pictures;
- selecting a value sps_max_num_reorder_pics[HighestTid], wherein HighestTid specifies said highest layer, and said value sps_max_num_reorder_pics[HighestTid] is derived from a syntax element associated with said highest layer, each layer i of said multiple layers has an associated syntax element defining a respective value sps_max_num_reorder_pics[i], and said value sps_max_num_reorder_pics[i] indicates a maximum allowed number of pictures that can precede any picture in said multi-layer video sequence in decoding order and follow that picture in output order when HighestTid is equal to i;
- outputting a picture, which is a first picture in output order of said pictures in said decoded picture buffer that are marked as needed for output, if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid];
- and
- marking said picture as not needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid].
A method performed by a decoder, said method comprises:
- parsing a slice header of a current picture to be decoded of a multi-layer video sequence comprising multiple layers of pictures, said current picture belonging to a layer other than a highest layer that is decoded by said decoder of said multi-layer video sequence;
- determining a reference picture set for said current picture based on said parsed slice header;
- marking all pictures in a decoded picture buffer that are not present in said reference picture set as unused for reference;
- outputting zero, one or many pictures, marked as needed for output, of said pictures in said decoded picture buffer and marking said zero, one or many pictures as not needed for output;
- emptying any picture, from said decoded picture buffer, marked as unused for reference and not needed for output of said pictures in said decoded picture buffer;
- decoding said current picture;
- determining a number of pictures in said decoded picture buffer that are marked as needed for output;
- selecting a value sps_max_num_reorder_pics[HighestTid], wherein HighestTid specifies said highest layer, and said value sps_max_num_reorder_pics[HighestTid] is derived from a syntax element associated with said highest layer, each layer i of said multiple layers has an associated syntax element defining a respective value sps_max_num_reorder_pics[i], and said value sps_max_num_reorder_pics[i] indicates a maximum allowed number of pictures that can precede any picture in said multi-layer video sequence in decoding order and follow that picture in output order when HighestTid is equal to i;
- outputting a picture, which is a first picture in output order, of said pictures in said decoded picture buffer that are marked as needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid];
- and
- marking said picture as not needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid], wherein determining said number of pictures, outputting said picture and marking said picture are performed after decoding said current picture.
A decoder configured to:
- determine, after a current picture of a bitstream representing pictures of a multi-layer video sequence comprising multiple layers of pictures has been decoded and stored in a decoded picture buffer, a number of pictures in said decoded picture buffer that are marked as needed for output, said current picture belonging to a layer other than a highest layer that is decoded by said decoder of said multi-layer video sequence;
- select a value sps_max_num_reorder_pics[HighestTid], wherein HighestTid specifies said highest layer, and said value sps_max_num_reorder_pics[HighestTid] is derived from a syntax element associated with said highest layer each layer i of said multiple layers has an associated syntax element defining a respective value sps_max_num_reorder_pics[i], and said value sps_max_num_reorder_pics[i] indicates a maximum allowed number of pictures that can precede any picture in said multi-layer video sequence in decoding order and follow that picture in output order when HighestTid is equal to i;
- output a picture, which is a first picture in output order, of said pictures in said decoded picture buffer that are marked as needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid];
- and
- mark said picture as not needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid].
A decoder configured to:
- parse a slice header of a current picture to be decoded of a bitstream representing pictures of a multi-layer video sequence comprising multiple layers of pictures, said current picture belonging to a layer other than a highest layer that is decoded by said decoder of said multi-layer video sequence;
- determine a reference picture set for said current picture based on said parsed slice header;
- mark all pictures in a decoded picture buffer that are not present in said reference picture set as unused for reference;
- output zero, one or many pictures, marked as needed for output, of said pictures in said decoded picture buffer and mark said zero, one or many pictures as not needed for output;
- empty, from said decoded picture buffer, any picture marked as unused for reference and not needed for output of said pictures in said decoded picture buffer;
- decode said current picture;
- determine a number of pictures in said decoded picture buffer that are marked as needed for output;
- select a value sps_max_num_reorder_pics[HighestTid], wherein HighestTid specifies said highest layer, and said value sps_max_num_reorder_pics[HighestTid] is derived from a syntax element associated with said highest layer, each layer i of said multiple layers has an associated syntax element defining a respective value sps_max_num_reorder_pics[i], and said value sps_max_num_reorder_pics[i] indicates a maximum allowed number of pictures that can precede any picture in said multi-layer video sequence in decoding order and follow that picture in output order when HighestTid is equal to i;
- output a picture, which is a first picture in output order, of said pictures in said decoded picture buffer that are marked as needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid];
- and
- mark said picture as not needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid], wherein said decoder is configured to determine said number of pictures, output said picture and mark said picture after decoding said current picture.
A method performed by an encoder, said method comprises:
- determining, after a current picture has been decoded and stored in a decoded picture buffer, a number of pictures in said decoded picture buffer that are marked as needed for output, said current picture belonging to a layer other a highest layer that is decoded by said encoder of a multi-layer video sequence comprising multiple layers of pictures;
- selecting a value sps_max_num_reorder_pics[HighestTid], wherein HighestTid specifies said highest layer, each layer i of said multiple layers has an associated value sps_max_num_reorder_pics[i], and said value sps_max_num_reorder_pics[i] indicates a maximum allowed number of pictures that can precede any picture in said multi-layer video sequence in decoding order and follow that picture in output order when HighestTid is equal to i;
- and
- marking a picture, which is a first picture in output order, of said pictures in said decoded picture buffer that are marked as needed for output as not needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid].
A method performed by an encoder, said method comprises:
- marking all pictures in a decoded picture buffer that are not present in a reference picture set for a current picture of a multi-layer video sequence comprising multiple layers of pictures as unused for reference, said current picture belonging to a layer other than a highest layer that is decoded by said encoder of said multi-layer video sequence;
- marking zero, one or many pictures, marked as needed for output, of said pictures in said decoded picture buffer as not needed for output;
- emptying, from said decoded picture buffer, any picture marked as unused for reference and not needed for output of said pictures in said decoded picture buffer;
- decoding said current picture;
- determining a number of pictures in said decoded picture buffer that are marked as needed for output;
- selecting a value sps_max_num_reorder_pics[HighestTid], wherein HighestTid specifies said highest layer, each layer i of said multiple layers has an associated value sps_max_num_reorder_pics[i], and said value sps_max_num_reorder_pics[i] indicates a maximum allowed number of pictures that can precede any picture in said multi-layer video sequence in decoding order and follow that picture in output order when HighestTid is equal to i;
- and
- marking a picture, which is a first picture in output order, of said pictures in said decoded picture buffer that are marked as needed for output as not needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid], wherein determining said number of pictures, and marking said picture are performed after decoding said current picture.
An encoder configured to:
- determine, after a current picture has been decoded and stored in a decoded picture buffer, a number of pictures in said decoded picture buffer that are marked as needed for output, said current picture belonging to a layer other a highest layer that is decoded by said encoder of a multi-layer video sequence comprising multiple layers of pictures;
- select a value sps_max_num_reorder_pics[HighestTid], wherein HighestTid specifies said highest layer, each layer i of said multiple layers has an associated value sps_max_num_reorder_pics[i], and said value sps_max_num_reorder_pics[i] indicates a maximum allowed number of pictures that can precede any picture in said multi-layer video sequence in decoding order and follow that picture in output order when HighestTid is equal to i;
- and
- mark a picture, which is a first picture in output order, of said pictures in said decoded picture buffer that are marked as needed for output as not needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid].
An encoder configured to:
- mark all pictures in a decoded picture buffer that are not present in a reference picture set for a current picture of a multi-layer video sequence comprising multiple layers of pictures as unused for reference, said current picture belonging to a layer other than a highest layer that is decoded by said encoder of said multi-layer video sequence;
- mark zero, one or many pictures, marked as needed for output, of said pictures in said decoded picture buffer as not needed for output;
- empty, from said decoded picture buffer, any picture marked as unused for reference and not needed for output of said pictures in said decoded picture buffer;
- decode said current picture;
- determine a number of pictures in said decoded picture buffer that are marked as needed for output;
- select a value sps_max_num_reorder_pics[HighestTid], wherein HighestTid specifies said highest layer, each layer i of said multiple layers has an associated value sps_max_num_reorder_pics[i], and said value sps_max_num_reorder_pics[i] indicates a maximum allowed number of pictures that can precede any picture in said multi-layer video sequence in decoding order and follow that picture in output order when HighestTid is equal to i;
- and
- mark a picture, which is a first picture in output order, of said pictures in said decoded picture buffer that are marked as needed for output as not needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid], wherein said encoder is configured to determine said number of pictures, mark said picture are performed after decoding said current picture.
A decoder comprising:
- a number determining module for determining, after a current picture of a bitstream representing pictures of a multi-layer video sequence comprising multiple layers of pictures has been decoded and stored in a decoded picture buffer, a number of pictures in said decoded picture buffer that are marked as needed for output, said current picture belonging to a layer other than a highest layer that is decoded by said decoder of said multi-layer video sequence;
- an outputting module for outputting a picture, which is a first picture in output order, of said pictures in said decoded picture buffer that are marked as needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid], wherein HighestTid specifies said highest layer, and said value sps_max_num_reorder_pics[HighestTid] is derived from a syntax element associated with said highest layer, each layer i of said multiple layers has an associated syntax element defining a respective value sps_max_num_reorder_pics[i], and said value sps_max_num_reorder_pics[i] indicates a maximum allowed number of pictures that can precede any picture in said multi-layer video sequence in decoding order and follow that picture in output order when HighestTid is equal to i;
- and
- a marking module for marking said picture as not needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid].
A decoder comprising:
- a parsing module for parsing a slice header of a current picture to be decoded of a bitstream representing pictures of a multi-layer video sequence comprising multiple layers of pictures, said current picture belonging to a layer other than a highest layer that is decoded by said decoder of said multi-layer video sequence;
- a reference picture set determining module for determining a reference picture set for said current picture based on said parsed slice header;
- a marking module for marking all pictures in a decoded picture buffer that are not present in said reference picture set as unused for reference;
- an outputting module for outputting zero, one or many pictures, marked as needed for output, of said pictures in said decoded picture buffer, wherein said marking module further marking said zero, one or many pictures as not needed for output;
- an emptying module for emptying, from said decoded picture buffer, any picture marked as unused for reference and not needed for output of said pictures in said decoded picture buffer;
- a decoding module for decoding said current picture;
- a number determining module for determining a number of pictures in said decoded picture buffer that are marked as needed for output;
- and
- said outputting module further outputting a picture, which is a first picture in output order, of said pictures in said decoded picture buffer that are marked as needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid], wherein HighestTid specifies said highest layer, and said value sps_max_num_reorder_pics[HighestTid] is derived from a syntax element associated with said highest layer, each layer i of said multiple layers has an associated syntax element defining a respective value sps_max_num_reorder_pics[i], and said sps_max_num_reorder_pics[i] indicates a maximum allowed number of pictures that can precede any picture in said multi-layer video sequence in decoding order and follow that picture in output order when HighestTid is equal to i and
- said marking module further marking said picture as not needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid], wherein said number determining module determining said number of pictures, said outputting module outputting said picture and said marking module marking said picture after said decoding module decoding said current picture.
An encoder comprising:
- a number determining module determining, after a current picture has been decoded and stored in a decoded picture buffer, a number of pictures in said decoded picture buffer that are marked as needed for output, said current picture belonging to a layer other than a highest layer that is decoded by said encoder of a multi-layer video sequence comprising multiple layers of pictures;
- and a marking module marking a picture, which is a first picture in output order, of said pictures in said decoded picture buffer that are marked as needed for output as not needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid], wherein HighestTid specifies said highest layer, each layer i of said multiple layers has an associated syntax element defining a respective value sps_max_num_reorder_pics[i], and said value sps_max_num_reorder_pics[i] indicates a maximum allowed number of pictures that can precede any picture in said multi-layer video sequence in decoding order and follow that picture in output order when HighestTid is equal to i.
An encoder comprising:
- a marking module marking all pictures in a decoded picture buffer that are not present in a reference picture set for a current picture of a multi-layer video sequence comprising multiple layers of pictures as unused for reference and marking zero, one or many pictures, marked as needed for output, of said pictures in said decoded picture buffer as not needed for output, said current picture belonging to a layer other than a highest layer that is decoded by said encoder of said multi-layer video sequence;
- an emptying module emptying, from said decoded picture buffer, any picture marked as unused for reference and not needed for output of said pictures in said decoded picture buffer;
- a decoding module decoding said current picture;
- a number determining module determining a number of pictures in said decoded picture buffer that are marked as needed for output;
- and
- wherein said marking module further marking a picture, which is a first picture in output order, of said pictures in said decoded picture buffer that are marked as needed for output as not needed for output if said number of pictures in said decoded picture buffer that are marked as needed for output is greater than said value sps_max_num_reorder_pics[HighestTid], wherein HighestTid specifies said highest layer, each layer i of said multiple layers has an associated syntax element defining a respective value sps_max_num_reorder_pics[i], and said value sps_max_num_reorder_pics[i] indicates a maximum allowed number of pictures that can precede any picture in said video sequence in decoding order and follow that picture in output order when HighestTid is equal to i, and wherein said number determining module determining said number of pictures, and said marking module marking said picture are performed after said decoding module decoding said current picture.
Dependencies are inferred from the claim text.