Patent ID: 12238316

DETAILED DESCRIPTION

Inventive concepts will now be described more fully hereinafter with reference to the accompanying drawings, in which examples of embodiments of inventive concepts are shown. Inventive concepts may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of present inventive concepts to those skilled in the art. It should also be noted that these embodiments are not mutually exclusive. Components from one embodiment may be tacitly assumed to be present/used in another embodiment.

The following description presents various embodiments of the disclosed subject matter. These embodiments are presented as teaching examples and are not to be construed as limiting the scope of the disclosed subject matter. For example, certain details of the described embodiments may be modified, omitted, or expanded upon without departing from the scope of the described subject matter.

Various embodiments of inventive concepts provide a method for determining that a video bitstream conforms to a profile A (e.g. a still picture profile) if an indicator value (e.g. decoded from a syntax element in a parameter set in the bitstream) indicates that the bitstream conforms to a profile B (e.g. a video profile) and it is determined that the first picture of the bitstream is a still picture (e.g. an IRAP picture).

In one embodiment of inventive concepts, a determination is made that the first picture is an IRAP picture by determining that the NAL unit type of all VCL NAL units in the first picture are IRAP NAL unit types.

In another embodiment of inventive concepts, a determination is made that the first picture is an IRAP picture from a value decoded from a syntax element in a picture header or an access unit delimiter.

The terminology used to describe the inventive concepts is further illustrated inFIG.2. A dashed line inFIG.2indicates that the box is optional in VVC. A bitstream1carries one or more coded pictures. The set of NAL units associated with a coded picture is in the current version of VVC and is referred to as a picture unit (PU)2. A VVC bitstream may start with decoding capability information, (DCI)12followed by a video parameter set (VPS)13, sequence parameter set (SPS)14, and picture parameter set (PPS)15in the beginning of each coded video sequence (CVS). A PPS14may also be signaled before any coded picture. A PU2must comprise at least one coded slice22, comprising a slice header (SH)31and slice data32. A PU2must include one picture header (PH)21. In the current version of VVC, the PH21may be signaled in its own NAL unit or in the same NAL unit as a slice22, more specifically in the SH31. An access unit delimiter (AUD)11, may be signaled as the first NAL unit in an access unit.

Although the inventive concepts shall mainly be described by terms used in VVC, it is to be understood by a person skilled in the art that the inventive concepts may also be applicable to other current and future video codecs.

A “still picture” is defined as a single static picture. A coded still picture is always intra coded, i.e. not predicting from any other picture than itself. This means that all blocks in the picture are Intra coded blocks and there is no data in the coded still picture that uses prediction from any other picture. A still picture may be extracted from a set of moving pictures, i.e. extracted from video.

A predicting or predictive picture is defined as a coded picture that predicts from another picture than itself.

The term “external means” is defined as information that is not provided in the bitstream but by some other means, e.g. via metadata possibly provided in a different data channel, as a constant in the decoder, etc. Both HEVC and VVC allows certain information (e.g. parameter sets) to be provided by external means.

Prior to describing the embodiments in further detail,FIG.3illustrates an example of an operating environment of an encoder300and decoder306that may be used to respectively encode and decode bitstreams as described herein. The encoder300receives video from network302and/or from storage304and encodes the video into bitstreams as described below and transmits the encoded video to decoder306via network308. Storage device304may be part of a storage depository of multi-channel audio signals such as a storage repository of a store or a streaming video service, a separate storage component, a component of a mobile device, etc. The decoder306may be part of a device310having a media player312. The device310may be a mobile device, a set-top device, a desktop computer, and the like.

FIG.4is a block diagram illustrating elements of decoder306configured to decode video frames according to some embodiments of inventive concepts. As shown, decoder306may include a network interface circuit405(also referred to as a network interface) configured to provide communications with other devices/entities/functions/etc. The decoder306may also include a processor circuit401(also referred to as a processor) coupled to the network interface circuit405, and a memory circuit403(also referred to as memory) coupled to the processor circuit. The memory circuit403may include computer readable program code that when executed by the processor circuit401causes the processor circuit to perform operations according to embodiments disclosed herein.

According to other embodiments, processor circuit401may be defined to include memory so that a separate memory circuit is not required. As discussed herein, operations of the decoder306may be performed by processor401and/or network interface405. For example, processor401may control network interface405to receive communications from encoder300. Moreover, modules may be stored in memory403, and these modules may provide instructions so that when instructions of a module are executed by processor401, processor401performs respective operations and/or causes the decoder306or other nodes/functions to perform respective operations. According to some embodiments, a decoder306and/or an element(s)/function(s) thereof may be embodied as a virtual node/nodes and/or a virtual machine/machines.

FIG.5is a block diagram illustrating elements of encoder300configured to encode video frames according to some embodiments of inventive concepts. As shown, encoder300may include a network interface circuit505(also referred to as a network interface) configured to provide communications with other devices/entities/functions/etc. The encoder300may also include a processor circuit501(also referred to as a processor) coupled to the network interface circuit505, and a memory circuit503(also referred to as memory) coupled to the processor circuit. The memory circuit503may include computer readable program code that when executed by the processor circuit501causes the processor circuit to perform operations according to embodiments disclosed herein.

According to other embodiments, processor circuit501may be defined to include memory so that a separate memory circuit is not required. As discussed herein, operations of the encoder300may be performed by processor501and/or network interface505. For example, processor501may control network interface505to transmit communications to decoder306and/or to receive communications through network interface505from one or more other network nodes/entities/servers such as other encoder nodes, depository servers, etc. Moreover, modules may be stored in memory503, and these modules may provide instructions so that when instructions of a module are executed by processor501, processor501performs respective operations. According to some embodiments, an encoder300and/or an element(s)/function(s) thereof may be embodied as a virtual node/nodes and/or a virtual machine/machines.

As previously indicated a problem with the current VVC specification is that a decoder conforming to the Main 10 Still Picture profile, but not the Main 10 profile would not be able to decode an extracted IRAP picture from a Main 10 video bitstream unless the general_profile_idc in SPS of the extracted bitstream is first rewritten. Having to rewrite a bitstream in order to support this functionality is undesirable.

Another problem with the current VVC specification is that even if the general_profile_idc is rewritten to the Main 10 Still Picture profile for a video bitstream comprising more than one picture, the bitstream would not be a legal bitstream since the Main 10 Still Picture profile requires there to be only one picture in the bitstream. In order to decode the first picture in the bitstream all remaining pictures would need to be discarded from the bitstream to make it a one picture bitstream before decoding the bitstream.

In the description that follows, the terminology profile A, profile B, and profile C will be used to differentiate between various profiles that are present in a bitstream such as a video bitstream.

In a first embodiment of inventive concepts, a video bitstream is determined to conform to a profile A (e.g. a still picture profile) if an indicator value (e.g. encoded in a syntax element in a parameter set in the bitstream or provided by external means) indicates that the bitstream conforms to a profile B (e.g. a video profile) and it is determined that the first picture of the bitstream is a still picture (e.g. an IRAP picture)

An encoder may perform a subset or all of the following steps for indicating that a video bitstream conforms to a profile A (where profile A may be a still picture profile):1. Encode an indicator value in a syntax element in the bitstream (e.g. in a parameter set) where the indicator value indicates conformance to profile A or profile B (e.g. a video profile). The syntax elment may for instance be general_profile_idc.2. Encode a still picture to the bitstream, and signal in the still picture that it is a still picture (e.g. by setting the NAL unit type of all VCL NAL units of the still picture to an IRAP NAL unit type or by signal one or more values in the picture header or AUD that indicates that the picture is an IRAP picture)

An extractor may perform a subset or all of the following steps for extracting a picture from a video bitstream conforming to a profile B to conform to a profile of A:1. Extract a parameter set from the bitstream.2. Decode an indicator value from a syntax element in the bitstream (e.g. from the parameter set) where the indicator value indicates conformance to a specific profile. The syntax element may for instance be general_profile_idc.3. Determine that the indicator value indicates bitstream conformance to profile A or profile B.4. Extract a still picture (e.g. an TRAP picture) that is associated with the parameter set (if the parameter set is extracted) from the bitstream.5. Combine the extracted parameter set and the extracted still picture to form a still picture bitstream

A decoder may perform a subset or all of the following steps for determining whether a video bitstream conforms to a profile A (where profile A may be a still picture profile):1. Obtain an indicator value where the indicator value indicates conformance to a specific profile. The indicator value may be decoded from a syntax element in the bitstream (e.g. from a parameter set) or be provided by external means. The syntax element may for instance be general_profile_idc.2. Determine from a first picture in the bitstream whether the first picture is a still picture3. In response to the indicator value indicating a profile B (where profile B may be a video profile) and the first picture determined to be a still picture:a. determine that the bitstream conforms to profile Ab. decode the bitstream using a decoder conforming to profile A4. In response to the indicator value indicating a profile C (where profile C is a profile different from profile A and B) or the first picture is not a still picture (i.e. it is a predicting picture):a. determine that the bitstream does not conform to profile A.

In the above steps that the decoder may perform, “still picture” is meant to refer to an image or picture that does not depend on (e.g. predict from) any other picture, such as an IRAP picture.

The above steps are not necessarily in order and some steps may be omitted. For instance a decoder may choose to first check whether the indicator value indicates conformance to profile B. If the bitstream conforms to profile B, then the decoder also checks whether the first picture is a still picture before determining whether the bitstream conforms to profile A. Otherwise (if the bitstream does not conform to profile B), the decoder skips the step of checking whether the first picture is a still picture and directly determines that the bitstream does not conform to profile A.

In one version of the first embodiment, the still picture is an IRAP picture, i.e. the determining from the first picture in the bitstream whether the first picture is a still picture comprises determining whether the first picture is an IRAP picture.

In another version of the embodiment, the still picture may be any type of picture that does not predict from other pictures. An example of such a picture is a GDR picture which is instantly refreshed, i.e. the recovery POC count is equal to 0. A more general example of such a picture is a picture with a picture type indicating that it is a predictive picture, but the picture is fully intra coded.

In another version of this first embodiment, the determining that the bitstream conforms to profile A additionally comprises verifying that the first picture is the only picture of the bitstream. A decoder may check whether the picture is the only picture in the bitstream by:Obtaining an indicator value indicating from the bitstream (e.g. from a parameter set, picture header or slice header) whether the picture is the only picture in the bitstream.Obtaining the information that the picture is the only picture in the bitstream by external means.Parsing the bitstream to detect whether the bitstream comprises more than one picture (e.g. by identifying a NAL unit with POC different than the first picture or identifying an AUD which belongs to a second picture) or if the first picture is the only picture in the bitstream (e.g. by obtaining a NAL unit with NAL unit type EOB_NUT directly after the first picture or parse to the end of the bitstream without identifying another picture than the first picture)

In another version of this first embodiment, a decoder conforming to a still picture profile A and not profile B would be able to decode the first picture (but not the rest) of a profile B video bitstream that comprises more than one picture.

In yet another variation of this first embodiment, the following steps are performed to determine that a video bitstream conforms to a still picture profile A:1. Obtain an indicator value where the indicator value indicates conformance to a video profile B that is not the still picture profile A.2. Determine that the first picture in the video bitstream is a still picture. In one version this comprises determining that the first picture is an IRAP picture.3. In response to the indicator value indicating conformance to a video profile B that is not a still picture profile and the first picture in the video bitstream determined to be a still picture, determine that the bitstream conforms to the still picture profile A.

In a second embodiment according to the first embodiment, the determining whether the first picture is an IRAP picture is done by checking the NAL unit type of each VCL NAL unit in the first picture. This may be done by scanning the first picture of the bitstream for NAL unit headers and determine that each NAL unit type has a value corresponding to an IRAP type. In VVC the IRAP NAL unit types are IDR_W_RADL, IDR_N_LP and CRA_NUT.

An example of how the definition of the Main 10 and Main 10 Still Picture profiles in the current VVC specification could be changed according to this embodiment is shown below with added text italicized and in bold:Main 10 and Main 10 Still Picture profilesBitstreams conforming to the Main 10 or Main 10 Still Picture profile shall obey the following constraints:Decoders conforming to the Main 10 Still Picture profile at a specific level of a specific tier shall be capable of decoding all bitstreams for which all of the following conditions apply:The bitstream is indicated to conform to the Main 10 Still Picture profile or the bitstream is indicated to conform to the Main 10 profile and the bitstream contains only one picture and the nal_unit_type of all VCL NAL units are in the range of IDR_W_RADL to CRA_NUT, inclusive.The bitstream is indicated to conform to a tier that is lower than or equal to the specified tier.The bitstream is indicated to conform to a level that is not level 15.5 and is lower than or equal to the specified level.

Another example of how the definition of the Main 10 and Main 10 Still Picture profiles in the current VVC specification could be changed according to this embodiment is shown below with added text italicized and in bold. In this example the Main 10 Still Picture profile would in addition to the previous example support decoding the first IRAP picture of a video bitstream comprising more than one pictures:Main 10 and Main 10 Still Picture profilesBitstreams conforming to the Main 10 or Main 10 Still Picture profile shall obey the following constraints:Decoders conforming to the Main 10 Still Picture profile at a specific level of a specific tier shall be capable of decoding the first picture of all bitstreams for which all of the following conditions apply:The bitstream is indicated to conform to the Main 10 Still Picture profile or the bitstream is indicated to conform to the Main 10 profile and the nal_unit_type of all VCL NAL units for the first picture of the bitstream are in the range of IDR_W_RADL to CRA_NUT, inclusive.The bitstream is indicated to conform to a tier that is lower than or equal to the specified tier.The bitstream is indicated to conform to a level that is not level 15.5 and is lower than or equal to the specified level.

Other examples of how the definition of the Main 10, Main 10 Still Picture, Main 4:4:4 10 and Main 4:4:4 10 Still picture profiles in the current VVC specification could be changed are in a proposal being provided to the Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11-19th Meeting: by teleconference, 22 Jun.-1 Jul. 2020.

According to this proposal, a bitstream containing a single IRAP picture and conforming to the Main 10 profile, also conforms to the Main 10 Still Picture profile. Likewise, a bitstream containing a single IRAP picture and conforming to the Main 4:4:4 10 profile, also conforms to the Main 4:4:4 10 Still Picture profile. Further details on this proposal are described in the following paragraphs.

In a third embodiment of inventive concepts, the determining whether the first picture is a still picture is determined from one or more values decoded from one or more syntax elements in a picture header (or slice header) of the first picture in the bitstream.

An example of how the definition of Main 4:4:4 10 and Main 4:4:4 10 Still Picture profiles could be changed is shown below with added text italicized and in bold: Bitstreams conforming to the Main 4:4:4 10 or Main 4:4:4 10 Still Picture profile shall obey the following constraints:Decoders conforming to the Main 4:4:4 10 Still Picture profile at a specific level of a specific tier shall be capable of decoding all bitstreams for which all of the following conditions apply:The bitstream is indicated toconform to the Main 4:4:4 10 Still Picture or the Main 10 Still Picture profile; orconform to the Main 10 profile and the bitstream contains only one picture and nal_unit_type of all VCL NAL units are in the range of IDR_W_RADL to CRA_NUT, inclusive; orconform to the Main 4:4:4 10 profile and the bitstream contains only one picture and nal_unit_type of all VCL NAL units are in the range of IDR_W_RADL to CRA_NUT, inclusive.The bitstream is indicated to conform to a tier that is lower than or equal to the specified tier.The bitstream is indicated to conform to a level that is not level 15.5 and is lower than or equal to the specified level.

An example of how the definition of the Main 10 and Main 10 Still Picture profiles in the current VVC specification could be changed according to this embodiment is shown below with added text italicized and in bold:Main 10 and Main 10 Still Picture profilesBitstreams conforming to the Main 10 or Main 10 Still Picture profile shall obey the following constraints:Decoders conforming to the Main 10 Still Picture profile at a specific level of a specific tier shall be capable of decoding all bitstreams for which all of the following conditions apply:The bitstream is indicated to conform to the Main 10 Still Picture profile or the bitstream is indicated to conform to the Main 10 profile and the bitstream contains only one picture and the ph_gdr_or_irap_pic_flag is equal to 1 and ph_gdr_pic_flag is equal to 0.The bitstream is indicated to conform to a tier that is lower than or equal to the specified tier.The bitstream is indicated to conform to a level that is not level 15.5 and is lower than or equal to the specified level.

Other examples of how the definition of the Main 10, Main 10 Still Picture, Main 4:4:4 10 and Main 4:4:4 10 Still picture profiles in the current VVC specification could be changed are in a proposal being provided to the Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11-19th Meeting: by teleconference, 22 Jun.-1 Jul. 2020, details of which are below.

In another example, the picture header comprises a new flag that only indicates whether the picture is an IRAP picture or not. The flag may for instance be called ph_irap_pic_flag and the definition of the Main 10 and Main 10 Still Picture profiles in the current VVC specification could be changed as shown below with added text italicized and in bold:Main 10 and Main 10 Still Picture profilesBitstreams conforming to the Main 10 or Main 10 Still Picture profile shall obey the following constraints:Decoders conforming to the Main 10 Still Picture profile at a specific level of a specific tier shall be capable of decoding all bitstreams for which all of the following conditions apply:The bitstream is indicated to conform to the Main 10 Still Picture profile or the bitstream is indicated to conform to the Main 10 profile and the bitstream contains only one picture and the ph_irap_pic_flag_is equal to 1.The bitstream is indicated to conform to a tier that is lower than or equal to the specified tier.The bitstream is indicated to conform to a level that is not level 15.5 and is lower than or equal to the specified level.

Main 4:4:4 10 and Main 4:4:4 10 Still Picture profilesBitstreams conforming to the Main 4:4:4 10 or Main 4:4:4 10 Still Picture profile shall obey the following constraints:Decoders conforming to the Main 4:4:4 10 Still Picture profile at a specific level of a specific tier shall be capable of decoding all bitstreams for which all of the following conditions apply:The bitstream is indicated toconform to the Main 4:4:4 10 Still Picture or the Main 10 Still Picture profile; orconform to the Main 10 profile and the bitstream contains only one picture and ph_gdr_or_irap_pic_flag is equal to 1 and ph_gdr_pic_flag is equal to 0; orconform to the Main 4:4:4 10 profile and the bitstream contains only one picture and ph_gdr_or_irap_pic_flag is equal to 1 and ph_gdr_pic_flag is equal to 0.The bitstream is indicated to conform to a tier that is lower than or equal to the specified tier.The bitstream is indicated to conform to a level that is not level 15.5 and is lower than or equal to the specified level.
Current Profile Definitions in VVC

The profiles in VVC are defined as follows in JVET-S0152-v5.

Main 10 and Main 10 Still Picture Profiles

Bitstreams conforming to the Main 10 or Main 10 Still Picture profile shall obey the following constraints:In a bitstream conforming to the Main 10 Still Picture profile, the bitstream shall contain only one picture.Referenced SPSs shall have sps_chroma_format_idc equal to 0 or 1.Referenced SPSs shall have sps_bitdepth_minus8 in the range of 0 to 2, inclusive.In a bitstream conforming to the Main 10 Still Picture profile, the referenced SPS shall have max_dec_pic_buffering_minus1[sps_max_sublayers_minus1] equal to 0. [Ed. (YK): Maybe it's better not to have this constraint for the Main 10 Still Picture profile, such that when extracting an intra picture from a Main 10 bitstream to form a Main 10 Still Picture bitstream, the extractor/“encoder” does not have to change the value of max_dec_pic_buffering_minus1[ ] in the SPS.]Referenced SPSs shall have sps_palette_enabled_flag equal to 0.In a bitstream conforming to the Main 10 profile that do not conform to the Main 10 Still Picture profile, general_level_idc and sublayer_level_idc[i] for all values of i in the referenced VPS (when available) and in the referenced SPSs shall not be equal to 255 (which indicates level 15.5).The tier and level constraints specified for the Main 10 or Main 10 Still Picture profile in clause A.4, as applicable, shall be fulfilled.

Conformance of a bitstream to the Main 10 profile is indicated by general_profile_idc being equal to 1.

Conformance of a bitstream to the Main 10 Still Picture profile is indicated by general_profile_idc being equal to 3.

NOTE—When the conformance of a bitstream to the Main 10 Still Picture profile is indicated as specified above, and the indicated level is not level 15.5, the conditions for indication of the conformance of the bitstream to the Main 10 profile are also fulfilled.

Decoders conforming to the Main 10 profile at a specific level of a specific tier shall be capable of decoding all bitstreams for which all of the following conditions apply:The bitstream is indicated to conform to the Main 10 or Main 10 Still Picture profile.The bitstream is indicated to conform to a tier that is lower than or equal to the specified tier.The bitstream is indicated to conform to a level that is not level 15.5 and is lower than or equal to the specified level.

Decoders conforming to the Main 10 Still Picture profile at a specific level of a specific tier shall be capable of decoding all bitstreams for which all of the following conditions apply:The bitstream is indicated to conform to the Main 10 Still Picture profile.The bitstream is indicated to conform to a tier that is lower than or equal to the specified tier.The bitstream is indicated to conform to a level that is not level 15.5 and is lower than or equal to the specified level.
Main 4:4:4 10 and Main 4:4:4 10 Still Picture Profiles

Bitstreams conforming to the Main 4:4:4 10 or Main 4:4:4 10 Still Picture profile shall obey the following constraints:In a bitstream conforming to the Main 4:4:4 10 Still Picture profile, the bitstream shall contain only one picture.Referenced SPSs shall have sps_chroma_format_idc in the range of 0 to 3, inclusive.Referenced SPSs shall have sps_bitdepth_minus8 in the range of 0 to 2, inclusive.In a bitstream conforming to the Main 4:4:4 10 Still Picture profile, the referenced SPS shall have max_dec_pic_buffering_minus1[sps_max_sublayers_minus1] equal to 0. [Ed. (YK): Maybe it's better not to have this constraint for the Main 4:4:4 10 Still Picture profile, such that when extracting an intra picture from a Main 4:4:4 10 bitstream to form a Main 4:4:4 10 Still Picture bitstream, the extractor/“encoder” does not have to change the value of max_dec_pic_buffering_minus1[ ] in the SPS.]In a bitstream conforming to the Main 4:4:4 10 profile that do not conform to the Main 4:4:4 10 Still Picture profile, general_level_idc and sublayer_level_idc[i] for all values of i in the referenced VPS (when available) and in the referenced SPSs shall not be equal to 255 (which indicates level 15.5).The tier and level constraints specified for the Main 4:4:4 10 or Main 4:4:4 10 Still Picture profile in clause A.4, as applicable, shall be fulfilled.

Conformance of a bitstream to the Main 4:4:4 10 profile is indicated by general_profile_idc being equal to 2.

Conformance of a bitstream to the Main 4:4:4 10 Still Picture profile is indicated by general_profile_idc being equal to 4.

NOTE—When the conformance of a bitstream to the Main 10 4:4:4 Still Picture profile is indicated as specified above, and the indicated level is not level 15.5, the conditions for indication of the conformance of the bitstream to the Main 10 4:4:4 profile are also fulfilled.

Decoders conforming to the Main 4:4:4 10 profile at a specific level of a specific tier shall be capable of decoding all bitstreams for which all of the following conditions apply:The bitstream is indicated to conform to the Main 4:4:4 10, Main 10, Main 4:4:4 10 Still Picture, or Main 10 Still Picture profile.The bitstream is indicated to conform to a tier that is lower than or equal to the specified tier.The bitstream is indicated to conform to a level that is not level 15.5 and is lower than or equal to the specified level.

Decoders conforming to the Main 4:4:4 10 Still Picture profile at a specific level of a specific tier shall be capable of decoding all bitstreams for which all of the following conditions apply:The bitstream is indicated to conform to the Main 4:4:4 10 Still Picture or Main 10 Still Picture profile.The bitstream is indicated to conform to a tier that is lower than or equal to the specified tier.The bitstream is indicated to conform to a level that is not level 15.5 and is lower than or equal to the specified level.

In an alternative embodiment of inventive concepts, the determining whether the first picture is a still picture is determined from a value decoded from a syntax element in an access unit delimiter (AUD) of the access unit of the first picture. The syntax element could for instance be a flag (e.g., aud_irap_or_gdr_au_flag) which specifies whether or not the access unit comprises a still picture such as an IRAP or GDR access unit. In another version, the syntax element in the AUD only specifies whether or not the picture is an IRAP picture or not.

Operations of the decoder306(implemented using the structure of the block diagram ofFIG.4) will now be discussed with reference to the flow charts ofFIGS.6-13according to some embodiments of inventive concepts. For example, modules may be stored in memory403ofFIG.4, and these modules may provide instructions so that when the instructions of a module are executed by respective communication device processing circuitry401, processing circuitry401performs respective operations of the flow charts.

Turning toFIG.6, in block601, the processing circuitry401in block601obtains an indicator value, the indicator value indicating conformance to a profile. For example, the indicator value may indicate the video bitstream conforms to a first profile, a second profile, or a third profile.

Turning toFIG.8, in one embodiment of inventive concepts, in block801, the processing circuitry401can obtain the indicator value from a syntax element in the bitstream.

In another embodiment of inventive concepts, the processing circuitry401in block803can obtain the indicator value from a syntax element in a decoding capability information (DCI) or in a parameter set. The parameter set may be one of a video parameter set (VPS), a sequence parameter set (SPS), or a picture parameter set (PPS), etc.

In yet another embodiment of inventive concepts, the processing circuitry401in block805can obtain the indicator value from external means. The external means may be metadata provided in a different data channel than the video bitstream, as a constant in the decoder, etc.

Returning toFIG.6, in block603, the processing circuitry401determines whether a first picture in the video bitstream is a still picture. In one embodiment of inventive concepts, the processing circuitry401can determine whether the first picture in the video bitstream is a still picture by determining whether the first picture is an intra random access point (IRAP) picture. Alternatively, the processing circuitry401can determine whether the first picture in the video bitstream is a still picture by obtaining one or more values from syntax elements, wherein the values from syntax elements specifies whether the first picture in the video bitstream is a still picture. The syntax elements may be present in the video bitstream. In another example, the syntax elements are not present in the video bitstream but are obtained from external means, such as from a different data channel than the video bitstream.

Turning toFIG.9, in another embodiment of inventive concepts, the processing circuitry401can determine whether the first picture is a still picture by determining that the first picture is a still picture by: obtaining in block901a network abstraction layer, NAL, unit type of each video coding layer NAL unit of the first picture, and determining in block903that all video coding layer NAL units of the first picture have a NAL unit type representing an intra random access point, IRAP, picture.

Turning toFIG.10, in another embodiment of inventive concepts, the processing circuitry401can determine whether the first picture is a still picture by determining that the first picture is a still picture by: decoding one or more values from one or more syntax elements from a picture header of the first picture, from a slice header of the first picture in block1001, or from an access unit delimiter (AUD) associated with the first picture and determining from the one or more values whether the picture is a still picture in block1003. The values may be decoded from the picture header only, or from the slice header only, or from a combination of syntax elements from both the picture header and from the slice header.

In a further embodiment of inventive concepts, the processing circuitry401can determine whether the first picture is a still picture by determining whether the first picture is a gradual decoding refresh (GDR) picture with a recovery picture order count (POC) count equal to 0.

In yet other embodiments of inventive concepts, the processing circuitry401can determine whether the first picture is a still picture obtaining one or more values from syntax elements, wherein the values from syntax elements specifies whether the first picture in the video bitstream is a still picture.

Returning toFIG.6, in block605, the processing circuitry401, responsive to the indicator value indicating conformance to a second profile and the first picture is a still picture, determines that the bitstream conforms to the first profile. In other embodiments as illustrated inFIG.7, in block705, the processing circuitry401, responsive to the indicator value indicating conformance to the second profile and the first picture is determined to be a still picture, determines that the decoder conforming to the first profile is capable of decoding the first picture of the video bitstream. In other words, the decoder would be able to decode the first picture of the video bitstream. The first profile may be a still picture profile. The second profile may be a video profile and/or be different than the first profile.

In block607, the processing circuitry401can decode the bitstream using a decoder conforming to the first profile responsive to the indicator value indicating conformance to the second profile and the first picture being a still picture. As indicated above, in some embodiments as illustrated inFIG.7, the processing circuitry401in block707can decode the first picture of the bitstream using a decoder conforming to the first profile responsive to the indicator value indicating conformance to the second profile and the first picture is determined to be a still picture. In these embodiments, the processing circuitry401may or may not be able to decode other parts of the bitstream.

In block609, the processing circuitry401does not decode the bitstream using a decoder conforming to the first profile responsive to either the indicator value indicating conformance to a third profile or the first picture not being a still picture. In other words, as indicated above, in some embodiments as illustrated inFIG.7, the processing circuitry401in block709, the processing circuitry401does not decode the first picture of the bitstream using a decoder conforming to the first profile responsive to either the indicator value indicating conformance to a third profile or the first picture is determined to not be a still picture. The third profile is different than the first profile and the second profile.

Turning toFIG.11, in block1101, the processing circuitry401, responsive to the indicator value indicating conformance to the third profile or the first picture determined to not be a still picture, determines that the video bitstream does not conform to the first profile. This is because the first picture does not conform to the first profile. In some embodiments, as illustrated inFIG.11, in block1103, the processing circuitry401, responsive to the indicator value indicating conformance to the third profile or the first picture determined to not be a still picture, determines that the decoder may not be capable of decoding the first picture of the video bitstream as indicated above.

Various operations from the flow chart ofFIG.6may be optional with respect to some embodiments of communication devices and related methods. Regarding methods of example embodiment 1 (set forth below), for example, operations of blocks607and609ofFIG.6may be optional.

Various operations from the flow chart ofFIG.7may be optional with respect to some embodiments of communication devices and related methods. For example, in some embodiments, operations of blocks707and709may be optional.

Turning toFIG.12, a further embodiment of inventive concepts is illustrated to determine whether the video bitstream conforms to the first profile. In block1201, the processing circuitry401determines whether the first picture is the only picture in the bitstream. In block1203, the processing circuitry401, responsive to the indicator value indicating conformance to the second profile and the first picture determined to be a still picture and the first picture determined to be the only picture in the bitstream, determines that the decoder is capable of decoding the first picture of the video bitstream.

The still picture may be at least one of an image or picture that does not depend on (e.g. is not predicted from) any other picture, an IRAP picture, or a GDR picture with recovery POC count equal to 0. In other words, the still picture may be at least one of an image or picture that does not depend on any other picture, an image that does not predict from any other picture, an IRAP picture, or a GDR picture with recovery POC count equal to 0.

The decoder306may perform other actions that are inventive concepts such as forming a still picture bitstream. Turning toFIG.13, in block1301, the processing circuitry401may extract a parameter set from the bitstream. In block1233, the processing circuitry401may obtain the indicator value by decoding the indicator value from a syntax element in the bitstream. Responsive to the indicator value indicating bitstream conformance with the first profile or the second profile in block1305, the processing circuitry401may extract a still picture that is associated with the parameters set from the bitstream in block1307and combine the parameter set extracted from the bitstream with the still picture extracted from the bitstream to form a still picture bitstream without rewriting the indicator value to the syntax element in block1309.

Example embodiments are discussed below.

Embodiment 1. A method for determining conformance of a video bitstream to a first profile, the method comprising:obtaining (601) an indicator value, the indicator value indicating conformance to a profile;determining (603) whether or not a first picture in the video bitstream is a still picture; and responsive (605) to the indicator value indicating conformance to a second profile and the first picture is a still picture, determining that the bitstream conforms to the first profile.

Embodiment 2. The method of Embodiment 1, further comprising:responsive to the indicator value indicating conformance to a third profile or the first picture determined to not be a still picture, determining (1101) that the video bitstream does not conform to the first profile.

Embodiment 3. The method of any of Embodiments 1-2 wherein obtaining the indicator value comprises decoding (801) the indicator value from a syntax element in the bitstream.

Embodiment 4. The method of any of Embodiments 1-2 wherein obtaining the indicator value comprises decoding (803) the indicator value from a syntax element in a decoding capability information, DCI, or in a parameter set; Embodiment 5. The method of Embodiment 4 wherein the parameter set comprises one of a video parameter set, VPS, a sequence parameter set, SPS, or a picture parameter set, PPS.

Embodiment 6. The method of any of Embodiments 1-2 wherein obtaining the indicator value comprises obtaining (805) the indicator value from external means.

Embodiment 7. The method of any of Embodiments 1-6 wherein the first profile is a still picture profile.

Embodiment 8. The method of any of Embodiments 1-7 wherein the second profile is a video profile.

Embodiment 9. The method of any of Embodiments 1-8 wherein the second profile is different than the first profile.

Embodiment 10. The method of any of Embodiments 2-9 wherein the third profile is different than the first profile and the second profile.

Embodiment 11. The method of any of Embodiments 1-10 further comprising decoding (607) the bitstream using a decoder conforming to the first profile responsive to the indicator value indicating conformance to the second profile and the first picture being a still picture.

Embodiment 12. The method of any of Embodiments 2-11 further comprising not decoding (609) the bitstream using a decoder conforming to the first profile responsive to either the indicator value indicating conformance to the third profile or the first picture not being a still picture.

Embodiment 13. The method of any of Embodiments 1-12 wherein determining whether or not the first picture in the video bitstream is a still picture comprises determining whether or not the first picture is an intra random access point, IRAP, picture.

Embodiment 14. The method of any of Embodiments 1-12 wherein determining whether or not the first picture in the video bitstream is a still picture comprises obtaining one or more values from syntax elements, wherein the values from syntax elements specifies whether or not the first picture in the video bitstream is a still picture.

Embodiment 15. The method of any of Embodiments 1-12 wherein determining whether or not the first picture is a still picture comprises determining that the first picture is a still picture by:obtaining (901) a network abstraction layer, NAL, unit type of each video coding layer NAL unit of the first picture; anddetermining (903) that all video coding layer NAL units of the first picture have a NAL unit type representing an intra random access point, IRAP, picture.

Embodiment 16. The method of any of Embodiments 1-12 wherein determining whether or not the first picture is a still picture comprises determining that the first picture is a still picture by:decoding (1001) one or more values from one or more syntax elements from a picture header of the first picture or a slice header of the first picture; anddetermining (1003) from the one or more values that the picture is a still picture.

Embodiment 17. The method of any of Embodiments 1-16, further comprisingdetermining (1201) whether or not the first picture is the only picture in the bitstream; andresponsive to the indicator value indicating conformance to the second profile and the first picture determined to be a still picture and the first picture determined to be the only picture in the bitstream, determining (1203) that the bitstream conforms to the first profile.

Embodiment 18. The method of any of Embodiments 1-17, further comprising:extracting (1301) a parameter set from the bitstream;obtaining (1303) the indicator value by decoding the indicator value from a syntax element in the bitstream; andresponsive to the indicator value indicating (1305) bitstream conformance with the first profile or the second profile:extracting (1307) a still picture that is associated with the parameter set from the bitstream; andcombining (1309) the parameter set extracted from the bitstream with the still picture extracted from the bitstream to form a still picture bitstream without rewriting the indicator value to the syntax element.

Embodiment 19. A decoder (306) for determining conformance of a video bitstream to a first profile, the decoder adapted to perform operations comprising:obtaining (601) an indicator value, the indicator value indicating conformance to a profile;determining (603) whether or not a first picture in the video bitstream is a still picture; andresponsive to the indicator value indicating conformance to a second profile and the first picture is a still picture, determining (605) that the bitstream conforms to the first profile.

Embodiment 20. The decoder (306) of Embodiment 19 wherein the decoder is further adapted to perform operations according to any of Embodiments 2-18.

Embodiment 21. A decoder (306) for determining conformance of a video bitstream to a first profile, the decoder comprising:processing circuitry (401); andmemory (403) coupled with the processing circuitry, wherein the memory includes instructions that when executed by the processing circuitry causes the decoder to perform operations comprising:obtaining (601) an indicator value, the indicator value indicating conformance to a profile;determining (603) whether or not a first picture in the video bitstream is a still picture; andresponsive to the indicator value indicating conformance to a second profile and the first picture is a still picture, determining (605) that the bitstream conforms to the first profile.

Embodiment 22. The decoder of Embodiment 21, wherein the memory includes further instructions that when executed by the processing circuitry causes the decoder to perform further operations comprising:responsive to the indicator value indicating conformance to a third profile or the first picture determined to not be a still picture, determining (1101) that the video bitstream does not conform to the first profile.

Embodiment 23. The decoder of any of Embodiments 21-22 wherein in obtaining the indicator value, the memory includes further instructions that when executed by the processing circuitry causes the decoder to perform further operations comprising decoding (801) the indicator value from a syntax element in the bitstream.

Embodiment 24. The decoder of any of Embodiments 21-22 wherein in obtaining the indicator value, the memory includes further instructions that when executed by the processing circuitry causes the decoder to perform further operations comprising decoding (803) the indicator value from a syntax element in a decoding capability information, DCI, or in a parameter set

Embodiment 25. The decoder of Embodiment 24 wherein the parameter set comprises one of a video parameter set, VPS, a sequence parameter set, SPS, or a picture parameter set, PPS.

Embodiment 26. The decoder of any of Embodiments 22-25 wherein in obtaining the indicator value, the memory includes further instructions that when executed by the processing circuitry causes the decoder to perform further operations comprising obtaining (805) the indicator value from external means.

Embodiment 27. The decoder of any of Embodiments 21-26 wherein the first profile is a still picture profile.

Embodiment 28. The decoder of any of Embodiments 21-27 wherein the second profile is a video profile.

Embodiment 29. The method of any of Embodiments 21-28 wherein the second profile is different than the first profile.

Embodiment 30. The decoder of any of Embodiments 22-29, wherein the third profile is different than the first profile and the second profile.

Embodiment 31. The decoder of any of Embodiments 21-30, wherein the memory includes further instructions that when executed by the processing circuitry causes the decoder to perform further operations comprising decoding (607) the bitstream using a decoder conforming to the first profile responsive to the indicator value indicating conformance to the second profile and the first picture being a still picture.

Embodiment 32. The decoder of any of Embodiments 21-31, wherein the memory includes further instructions that when executed by the processing circuitry causes the decoder to perform further operations comprising not decoding (609) the bitstream using a decoder conforming to the first profile responsive to either the indicator value indicating conformance to the third profile or the first picture not being a still picture.

Embodiment 33. The decoder of any of Embodiments 21-32 wherein in determining whether or not the first picture in the video bitstream is a still picture, the memory includes further instructions that when executed by the processing circuitry causes the decoder to perform further operations comprising determining whether or not the first picture is an intra random access point, IRAP, picture.

Embodiment 34. The method of any of Embodiments 21-32 wherein determining whether or not the first picture in the video bitstream is a still picture comprises obtaining one or more values from syntax elements, wherein the values from syntax elements specifies whether or not the first picture in the video bitstream is a still picture.

Embodiment 35. The decoder of any of Embodiments 21-32 wherein in determining whether or not the first picture is a still picture, the memory includes further instructions that when executed by the processing circuitry causes the decoder to perform further operations comprising determining that the first picture is a still picture by:obtaining (901) a network abstraction layer, NAL, unit type of each video coding layer NAL unit of the first picture; anddetermining (903) that all video coding layer NAL units of the first picture have a NAL unit type representing an IRAP picture.

Embodiment 36. The decoder of any of Embodiments 21-32 wherein in determining whether or not the first picture is a still picture, the memory includes further instructions that when executed by the processing circuitry causes the decoder to perform further operations comprising determining that the first picture is a still picture by:decoding (1001) one or more values from one or more syntax elements from a picture header of the first picture or a slice header of the first picture; anddetermining (1003) from the one or more values that the picture is a still picture.

Embodiment 37. The decoder of any of Embodiments 21-36, wherein the memory includes further instructions that when executed by the processing circuitry causes the decoder to perform further operations comprising:determining (1201) whether or not the first picture is the only picture in the bitstream; andresponsive to the indicator value indicating conformance to the second profile and the first picture determined to be a still picture and the first picture determined to be the only picture in the bitstream, determining (1203) that the bitstream conforms to the first profile.

Embodiment 38. The decoder of any of Embodiments 21-37, wherein the memory includes further instructions that when executed by the processing circuitry causes the decoder to perform further operations comprising:extracting (1301) a parameter set from the bitstream;obtaining (1303) the indicator value by decoding the indicator value from a syntax element in the bitstream; andresponsive to the indicator value indicating (1305) bitstream conformance with the first profile or the second profile:extracting (1307) a still picture that is associated with the parameter set from the bitstream; andcombining (1309) the parameter set extracted from the bitstream with the still picture extracted from the bitstream to form a still picture bitstream without rewriting the indicator value to the syntax element.

Embodiment 39. A computer program comprising program code to be executed by processing circuitry (401) of a decoder (306), whereby execution of the program code causes the decoder (306) to perform operations comprising:obtaining (601) an indicator value, the indicator value indicating conformance to a profile;determining (603) whether or not a first picture in the video bitstream is a still picture; andresponsive to the indicator value indicating conformance to a second profile and the first picture is a still picture, determining (605) that the bitstream conforms to a first profile.

Embodiment 40. The computer program of Embodiment 39, wherein the computer program comprises further program code to be executed by processing circuitry (401) of the decoder (306), whereby execution of the program code causes the decoder (306) to perform operations according to any of Embodiments 2-18.

Embodiment 41. A computer program product comprising a non-transitory storage medium including program code to be executed by processing circuitry (401) of a decoder (306), whereby execution of the program code causes the decoder (306) to perform operations comprising:obtaining (601) an indicator value, the indicator value indicating conformance to a profile;determining (603) whether or not a first picture in the video bitstream is a still picture; and responsive to the indicator value indicating conformance to a second profile and the first picture is a still picture, determining (605) that the bitstream conforms to a first profile.

Embodiment 42. The computer program product of Embodiment 41 wherein the non-transitory storage medium includes further program code to be executed by the processing circuitry (401) of the decoder (306), whereby execution of the program code causes the decoder (306) to perform operations according to any of Embodiments 2-18.

Explanations are provided below for various abbreviations/acronyms used in the present disclosure.

AbbreviationExplanationAUAccess UnitAUDAccess Unit DelimiterALFAdaptive Loop FilterAPSAdaptive Parameter SetBDOFBi-Directional Optical FlowBLABroken Link AccessCLVSCoded Layer Video SequenceCRAClean Random AccessCVSCoded Video StreamCVSSCVS StartCUCoding UnitDCIDecoding Capability InformationDMVRDecoder Motion Vector RefinementDPSDecoding Parameter SetDRAPDependent Random Access PointGDRGradual Decoding RefreshHEVCHigh-Efficiency Video CodingIDRInstantaneous Decoding RefreshIRAPIntra Random Access PointLMCSLuma Mapping and Chroma ScalingMPEGMotion Picture Experts GroupMVDMotion Vector DifferenceNALNetwork Abstraction LayerNALUNAL unitNUTNAL unit typePPSPicture Parameter SetRADLRandom Access Decodable LeadingRAPRandom Access PointRASLRandom Access Skipped LeadingRBSPRaw Byte Sequence PayloadRPLReference Picture ListSEISupplemental Enhancement layerSPSSequence Parameter SetSTSAStep-wise Temporal Layer AccessVCLVideo Coding LayerVPSVideo Parameter SetVVCVersatile Video Coding

References are identified below.

1. JVET-50152-v5, Versatile Video Coding, Joint Video Experts Team

Generally, all terms used herein are to be interpreted according to their ordinary meaning in the relevant technical field, unless a different meaning is clearly given and/or is implied from the context in which it is used. All references to a/an/the element, apparatus, component, means, step, etc. are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any methods disclosed herein do not have to be performed in the exact order disclosed, unless a step is explicitly described as following or preceding another step and/or where it is implicit that a step must follow or precede another step. Any feature of any of the embodiments disclosed herein may be applied to any other embodiment, wherever appropriate. Likewise, any advantage of any of the embodiments may apply to any other embodiments, and vice versa. Other objectives, features and advantages of the enclosed embodiments will be apparent from the following description.

The term unit may have conventional meaning in the field of electronics, electrical devices and/or electronic devices and may include, for example, electrical and/or electronic circuitry, devices, modules, processors, memories, logic solid state and/or discrete devices, computer programs or instructions for carrying out respective tasks, procedures, computations, outputs, and/or displaying functions, and so on, as such as those that are described herein.

In the above-description of various embodiments of present inventive concepts, it is to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of present inventive concepts. Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which present inventive concepts belong. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.

When an element is referred to as being “connected”, “coupled”, “responsive”, or variants thereof to another element, it can be directly connected, coupled, or responsive to the other element or intervening elements may be present. In contrast, when an element is referred to as being “directly connected”, “directly coupled”, “directly responsive”, or variants thereof to another element, there are no intervening elements present. Like numbers refer to like elements throughout. Furthermore, “coupled”, “connected”, “responsive”, or variants thereof as used herein may include wirelessly coupled, connected, or responsive. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. Well-known functions or constructions may not be described in detail for brevity and/or clarity. The term “and/or” (abbreviated “/”) includes any and all combinations of one or more of the associated listed items.

It will be understood that although the terms first, second, third, etc. may be used herein to describe various elements/operations, these elements/operations should not be limited by these terms. These terms are only used to distinguish one element/operation from another element/operation. Thus a first element/operation in some embodiments could be termed a second element/operation in other embodiments without departing from the teachings of present inventive concepts. The same reference numerals or the same reference designators denote the same or similar elements throughout the specification.

As used herein, the terms “comprise”, “comprising”, “comprises”, “include”, “including”, “includes”, “have”, “has”, “having”, or variants thereof are open-ended, and include one or more stated features, integers, elements, steps, components or functions but does not preclude the presence or addition of one or more other features, integers, elements, steps, components, functions or groups thereof. Furthermore, as used herein, the common abbreviation “e.g.”, which derives from the Latin phrase “exempli gratia,” may be used to introduce or specify a general example or examples of a previously mentioned item, and is not intended to be limiting of such item. The common abbreviation “i.e.”, which derives from the Latin phrase “id est,” may be used to specify a particular item from a more general recitation.

Example embodiments are described herein with reference to block diagrams and/or flowchart illustrations of computer-implemented methods, apparatus (systems and/or devices) and/or computer program products. It is understood that a block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by computer program instructions that are performed by one or more computer circuits. These computer program instructions may be provided to a processor circuit of a general purpose computer circuit, special purpose computer circuit, and/or other programmable data processing circuit to produce a machine, such that the instructions, which execute via the processor of the computer and/or other programmable data processing apparatus, transform and control transistors, values stored in memory locations, and other hardware components within such circuitry to implement the functions/acts specified in the block diagrams and/or flowchart block or blocks, and thereby create means (functionality) and/or structure for implementing the functions/acts specified in the block diagrams and/or flowchart block(s).

These computer program instructions may also be stored in a tangible computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions which implement the functions/acts specified in the block diagrams and/or flowchart block or blocks. Accordingly, embodiments of present inventive concepts may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.) that runs on a processor such as a digital signal processor, which may collectively be referred to as “circuitry,” “a module” or variants thereof.

It should also be noted that in some alternate implementations, the functions/acts noted in the blocks may occur out of the order noted in the flowcharts. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Moreover, the functionality of a given block of the flowcharts and/or block diagrams may be separated into multiple blocks and/or the functionality of two or more blocks of the flowcharts and/or block diagrams may be at least partially integrated. Finally, other blocks may be added/inserted between the blocks that are illustrated, and/or blocks/operations may be omitted without departing from the scope of inventive concepts. Moreover, although some of the diagrams include arrows on communication paths to show a primary direction of communication, it is to be understood that communication may occur in the opposite direction to the depicted arrows.

Many variations and modifications can be made to the embodiments without substantially departing from the principles of the present inventive concepts. All such variations and modifications are intended to be included herein within the scope of present inventive concepts. Accordingly, the above disclosed subject matter is to be considered illustrative, and not restrictive, and the examples of embodiments are intended to cover all such modifications, enhancements, and other embodiments, which fall within the spirit and scope of present inventive concepts. Thus, to the maximum extent allowed by law, the scope of present inventive concepts are to be determined by the broadest permissible interpretation of the present disclosure including the examples of embodiments and their equivalents, and shall not be restricted or limited by the foregoing detailed description.