# US 12,120,354 B2 · Scalable nesting SEI messages for specified layers

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,120,354 B2
- Document ID: US12120354B2
- Status: Granted
- Kind: B2
- Application number: 17/702,032
- Filed: 2022-03-23
- Published: 2022-07-07
- Granted: 2024-10-15
- Earliest claimed: 2019-09-24
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Ye-Kui Wang
- Web page: https://patentgrep.com/patent/US12120354B2

## CPC

- H04N 19/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N 19/172: the region being a picture, frame or field
- H04N 19/187: the unit being a scalable video layer
- H04N 19/188: {the unit being a video data packet, e.g. a network abstraction layer [NAL] unit}
- H04N 19/30: using hierarchical techniques, e.g. scalability (H04N19/63 takes precedence)
- H04N 19/46: Embedding additional information in the video signal during the compression process (H04N19/517, H04N19/68, H04N19/70 take precedence)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A video coding mechanism is disclosed. The mechanism includes encoding a bitstream comprising one or more layers. A scalable nesting supplemental enhancement information (SEI) message is encoded into the bitstream in a current SEI network abstraction layer (NAL) unit. The scalable nesting SEI message contains one or more scalable-nested SEI messages and one or more scalable nesting layer identifiers (Ids) that specify layer Id values of the layers to which the scalable-nested SEI messages apply except a layer Id value of the current SEI NAL unit. A set of bitstream conformance tests are performed on the layers based on the scalable-nested SEI messages. The bitstream is stored for communication toward a decoder.

## Claims

### Claim 1

A method implemented in a decoder, the method comprising:
receiving a bitstream comprising one or more layers and a scalable nesting supplemental enhancement information (SEI) message in a current SEI network abstraction layer (NAL) unit, wherein the scalable nesting SEI message contains one or more scalable-nested SEI messages and one or more scalable nesting layer identifiers (Ids) that specify layer Id values of the layers to which the scalable-nested SEI messages apply except a layer Id value of the current SEI NAL unit;
deriving a number of nesting layers (nestingNumLayers) variable that specifies a number of layers to which the scalable-nested SEI messages apply;
deriving a list of nesting layer Ids (NestingLayerId[i]) that specifies a list of nuh_layer_id values of the layers to which the scalable-nested SEI messages apply for i in a range of zero to nestingNumLayers minus one, inclusive; and
decoding a coded picture from the one or more layers to produce a decoded picture,
wherein the nestingNumLayers and the NestingLayerId[i] are derived as follows:
if( scalable nesting all_layers_flag ) {
nestingNumLayers = vps_max_layers_minus1 + 1 − GeneralLayerIdx[ nuh_layer_id ]
for( i = 0; i < nestingNumLayers; i ++)
NestingLayerId[ i ] = vps_layer_id[ GeneralLayerIdx[ nuh_layer_id ] + i ]
} else {
nestingNumLayers = scalable nesting num_layers_minus1 + 1
for( i = 0; i < nestingNumLayers; i ++)
NestingLayerId[ i ] = (i = = 0 ) ? nuh_layer_id : scalable nesting layer_id[ i ]
}
where scalable nesting all_layers_flag specifies whether the scalable-nested SEI messages apply to all layers that have a NAL unit header layer Id (nuh_layer_id) greater than or equal to a nuh_layer_id of a current SEI NAL unit, vps_max_layers_minus1 plus one specifies a number of layers specified by a video parameter set (VPS), GeneralLayerIdx is a variable specifying a layer index of a layer with nuh_layer_id equal to vps_layer_id[i], vps_layer_id[i] specifies a nuh_layer_id value of an i-th layer, and scalable nesting num_layers_minus1 plus one specifies a number of layers to which the scalable-nested SEI messages apply.

### Claim 2 (depends on 1)

The method of claim 1, wherein the scalable nesting layer Ids are a scalable nesting layer_id[i] syntax element that specifies a nuh_layer_id value of an i-th layer to which the scalable-nested SEI messages apply when a scalable nesting all layers flag (all_layers_flag) is equal to zero.

### Claim 3 (depends on 2)

The method of claim 2, wherein each value of scalable nesting layer_id[i] is greater than a nuh_layer_id value of the current SEI NAL unit.

### Claim 4 (depends on 1)

The method of claim 1, wherein scalable nesting num_layers_minus1 is in a to range of zero vps_max_layers_minus1-GeneralLayerIdx[nuh_layer_id], inclusive, where nuh_layer_id is the nuh_layer_id of the current SEI NAL unit.

### Claim 5 (depends on 1)

The method of claim 1, wherein the coded picture is decoded based on the scalable nested SEI messages.

### Claim 6 (depends on 1)

The method of claim 1, wherein the scalable nesting SEI message includes at least one scalable-nested SEI message that applies to a layer of the current SEI NAL unit.

### Claim 7

A method implemented in an encoder, the method comprising:
encoding a bitstream comprising one or more layers;
encoding into the bitstream a scalable nesting supplemental enhancement information (SEI) message in a current SEI network abstraction layer (NAL) unit, wherein the scalable nesting SEI message contains one or more scalable-nested SEI messages and one or more scalable nesting layer identifiers (Ids) that specify layer Id values of the layers to which the scalable-nested SEI messages apply while applying a constraint to omit a layer Id value of the current SEI NAL unit;
performing a set of bitstream conformance tests on the layers based on the scalable-nested SEI messages; and
storing the bitstream for communication toward a decoder,
wherein performing the set of bitstream conformance tests further comprises:
deriving a number of nesting layers (nestingNumLayers) variable that specifies a number of layers to which the scalable-nested SEI messages apply; and
deriving a list of nesting layer Ids (NestingLayerId[i]) that specifies a list of nuh_layer_id values of the layers to which the scalable-nested SEI messages apply for i in a range of zero to nestingNumLayers minus one, inclusive,
wherein the nestingNumLayers and the NestingLayerId[i] are derived as follows:
if( scalable nesting all_layers_flag ) {
nestingNumLayers = vps_max_layers_minus1 + 1 − GeneralLayerIdx[ nuh_layer_id ]
for( i = 0; i < nestingNumLayers; i ++)
NestingLayerId[ i ] = vps_layer_id[ GeneralLayerIdx[ nuh_layer_id ] + i ]
} else {
nestingNumLayers = scalable nesting num_layers_minus1 + 1
for( i = 0; i < nestingNumLayers; i ++)
NestingLayerId[ i ] = (i = = 0 ) ? nuh_layer_id : scalable nesting layer_id[ i ]
}
where scalable nesting all_layers_flag specifies whether the scalable-nested SEI messages apply to all layers that have a NAL unit header layer Id (nuh_layer_id) greater than or equal to a nuh_layer_id of a current SEI NAL unit, vps_max_layers_minus1 plus one specifies a number of layers specified by a video parameter set (VPS), GeneralLayerIdx is a variable specifying a layer index of a layer with nuh_layer_id equal to vps_layer_id[i], vps_layer_id[i] specifies a nuh_layer_id value of an i-th layer, and scalable nesting num_layers_minus1 plus one specifies a number of layers to which the scalable-nested SEI messages apply.

### Claim 8 (depends on 7)

The method of claim 7, wherein the scalable nesting layer Id is a scalable nesting layer_id[i] syntax element that specifies a nuh_layer_Id value of an i-th layer to which the scalable-nested SEI messages apply when a scalable nesting all layers flag (all_layers_flag) is equal to zero.

### Claim 9 (depends on 8)

The method of claim 8, wherein each value of scalable nesting layer_id[i] is greater than a nuh_layer_id value of the current SEI NAL unit.

### Claim 10 (depends on 7)

The method of claim 7, wherein scalable nesting num_layers_minus1 is in a range of zero to vps_max_layers_minus1-GeneralLayerIdx[nuh_layer_id], inclusive, where nuh_layer_id is the nuh_layer_id of the current SEI NAL unit.

### Claim 11 (depends on 7)

The method of claim 7, wherein the scalable nesting SEI message includes at least one scalable-nested SEI message that applies to a layer of the current SEI NAL unit.

### Claim 12

A video coding device comprising:
a receiver configured to receive a bitstream comprising one or more layers and a scalable nesting supplemental enhancement information (SEI) message in a current SEI network abstraction layer (NAL) unit, wherein the scalable nesting SEI message contains one or more scalable-nested SEI messages and one or more scalable nesting layer identifiers (Ids) that specify layer Id values of the layers to which the scalable-nested SEI messages apply except a layer Id value of the current SEI NAL unit; and
a processor coupled to the receiver and configured to:
derive a number of nesting layers (nestingNumLayers) variable that specifies a number of layers to which the scalable-nested SEI messages apply;
derive a list of nesting layer Ids (NestingLayerId[i]) that specifies a list of nuh layer id values of the layers to which the scalable-nested SEI messages apply for i in a range of zero to nestingNumLayers minus one, inclusive; and
decode a coded picture from the one or more layers to produce a decoded picture,
wherein the nestingNumLayers and the NestingLayerId[i] are derived as follows:
if(scaleable nesting all_layers_flag)}
nestingNumLayers=vps_max_layers_minus1+1−GeneralLayerIdx[nuh_layer_id]
for(i=0; i<nestingNumLayers; i++)
NestingLayerId[i]=vps_layer_id[GeneralLayerIdx[nuh_layer_id]+i]≡else}
nestingNumLayers=scalable nesting num_layers_minus1+1
for(i=0; i<nestingNumLayers; i++)
NestingLayerId[i]=(i==0)?nuh_layer_id: scalable nesting layer_id[i]≡
where scalable nesting all_layers_flag specifies whether the scalable-nested SEI messages apply to all layers that have a NAL unit header layer Id (nuh_layer_id) greater than or equal to a nuh_layer_id of a current SEI NAL unit, vps_max_layers_minus1 plus one specifies a number of layers specified by a video parameter set (VPS), GeneralLayerIdx is a variable specifying a layer index of a layer with nuh_layer_id equal to vps_layer_id[i], vps layer id[i] specifies a nuh_layer_id value of an i-th layer, and scalable nesting num_layers_minus1 plus one specifies a number of layers to which the scalable-nested SEI messages apply.

### Claim 13 (depends on 12)

The video coding device of claim 12, wherein the scalable nesting layer Ids are a scalable nesting layer_id[i] syntax element that specifies a nuh_layer_Id value of an i-th layer to which the scalable-nested SEI messages apply when a scalable nesting all layers flag (all_layers_flag) is equal to zero.
