# US 12,010,345 B2 · Encoder, a decoder and corresponding methods of flexible profile configuration

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

- Number: US 12,010,345 B2
- Document ID: US12010345B2
- Status: Granted
- Kind: B2
- Application number: 17/857,941
- Filed: 2022-07-05
- Published: 2022-10-27
- Granted: 2024-06-11
- Earliest claimed: 2020-01-03
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Roman Igorevich Chernyak; Timofey Mikhailovich Solovyev; Alexander Alexandrovich Karabutov; Sergey Yurievich Ikonin; Elena Alexandrovna Alshina
- Web page: https://patentgrep.com/patent/US12010345B2

## CPC

- H04N 19/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N 19/61: in combination with predictive coding
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method for decoding of a video bitstream implemented by a decoding device, wherein the video bitstream includes data representing one or more sequence parameter set, SPS, flags, the method comprising: for an SPS flag of the one or more SPS flags, obtaining two variables of the SPS flag, respectively, by parsing the video bitstream, wherein the value of one variable of the two variables is the minimum allowed value of the SPS flag, and wherein the value of the other variable of the two variables is the maximum allowed value of the SPS flag; obtaining the SPS flag, by parsing the video bitstream; evaluating whether the value of the SPS flag is valid based on the values of the two variables; and in case that the value of the SPS flag is valid, decoding the video bitstream according to the value of the SPS flag.

## Claims

### Claim 1

A method for decoding of a video bitstream implemented by a decoding device, wherein the video bitstream includes data representing one or more sequence parameter set (SPS) flags, the method comprising:
obtaining two variables for an SPS flag of the one or more SPS flags, by parsing the video bitstream; wherein the value of one variable of the two variables is a minimum allowed value of the SPS flag, and the value of the other of the two variables is a maximum allowed value of the SPS flag;
obtaining a value of the SPS flag by parsing the video bitstream;
determining whether the value of the SPS flag is valid based on the values obtained for each of the two variables; and
when the value of the SPS flag is valid, decoding the video bitstream according to the value of the SPS flag; and
when the value of the SPS flag is not valid, stop decoding the video bitstream.

### Claim 2 (depends on 1)

The method of claim 1, wherein the two variables of the SPS flag are Boolean variables, wherein the two variables are respectively packed in two syntax elements, the two variables respectively corresponding to a specific bit inside the two syntax elements.

### Claim 3 (depends on 1)

The method of claim 1, wherein the values of the two variables are from a set {0,1}.

### Claim 4 (depends on 1)

The method of claim 1, wherein the value of the SPS flag is equal to one of the values of the variables.

### Claim 5 (depends on 4)

The method of claim 4, wherein the values of the two variables are from the set {0,1}, are denoted li and hi and are signaled in the bitstream before the SPS flag, wherein li≤spsi≤hi, where spsi is the value of the SPS flag.

### Claim 6 (depends on 5)

The method of claim 5, wherein for all SPS flags of the one or more SPS flags, the two variables from the set {0,1} are signaled by two vectors with elements from the set {0,1}: toolset_idc_l=l0l1, . . . , li, . . . ln−1 and toolset_idc_l=h0h1, . . . , hi, . . . hn−1, where n is a number of the one or more SPS flags, and i is an integer.

### Claim 7

A method for encoding a video bitstream by an encoding device, wherein the video bitstream includes data representing one or more sequence parameter set (SPS) flags, the method comprising:
setting two variables for an SPS flag of the one or more SPS flags, wherein the value of one variable of the two variables is a minimum allowed value of the SPS flag, and wherein the value of the other of the two variables is a maximum allowed value of the SPS flag;
determining the value of the SPS flag according to the two variables of the SPS flag; and
encoding the value of the SPS flag and the two variables of the SPS flag into the video bitstream.

### Claim 8 (depends on 7)

The method of claim 7, wherein:
when the value of the one variable being the minimum allowed value of the SPS flag is equal to 1, determining the value of the SPS flag to be 1; and
when the value of the one variable being the maximum allowed value of the SPS flag is equal to 0, determining the value of the SPS flag to be 0.

### Claim 9 (depends on 7)

The method of claim 7, the method further comprising:
when the values of both of the two variables of the SPS flag is equal to 1, determining the value of the SPS flag to be 1; and
when the values of both of the two variables of the SPS flag is equal to 0, determining the value of the SPS flag to be 0.

### Claim 10 (depends on 7)

The method of claim 7, wherein the two variables of the SPS flag are Boolean variables, the two variables being respectively packed in two syntax elements and corresponding to a specific bit inside the two syntax elements.

### Claim 11 (depends on 7)

The method of claim 7, wherein the values of the two variables are from a set {0,1}.

### Claim 12 (depends on 7)

The method of claim 7, wherein the value of the SPS flag is equal to one of the values of the variables.

### Claim 13 (depends on 12)

The method of claim 12, wherein the values of the two variables are from a set {0,1}, are denoted li and hi and are signaled in the bitstream before the SPS flag, wherein li≤spsi≤hi, where spsi is the value of the SPS flag.

### Claim 14 (depends on 13)

The method of claim 13, wherein for all SPS flags of the one or more SPS flags, the two variables from the set {0,1} are signaled by two vectors with elements from the set {0,1}: toolset_idc_l=l0l1, . . . , li, . . . ln−1 and toolset_idc_h=h0h1, . . . , hi, . . . hn−1, where n is a number of the one or more SPS flags, and i is an integer.

### Claim 15

A decoder, comprising:
one or more processors; and
a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the processors that, when the programming is executed by the one or more processors, configures the decoder to:
obtain two variables for an SPS flag of the one or more SPS flags by parsing the video bitstream; wherein the value of one variable of the two variables being a minimum allowed value of the SPS flag, and the value of the other of the two variables being a maximum allowed value of the SPS flag;
obtain a value of the SPS flag, by parsing the video bitstream;
determine whether the value of the SPS flag is valid based on the values of the two variables; and
when the value of the SPS flag is valid, decode the video bitstream according to the value of the SPS flag; and
when the value of the value of the SPS flag is not valid, stop decode the video bitstream.

### Claim 16 (depends on 15)

The decoder of claim 15, wherein the two variables of the SPS flag are Boolean variables, the two variables being respectively packed in two syntax elements, wherein the two variables correspond to a specific bit inside the two syntax elements.

### Claim 17 (depends on 15)

The decoder of claim 15, wherein the values of the two variables are from a set {0,1}.

### Claim 18 (depends on 15)

The decoder of claim 15, wherein the value of the SPS flag is equal to one of the values of the variables.

### Claim 19 (depends on 18)

The decoder of claim 18, wherein the values of the two variables are from the set {0,1}, are denoted li and hi and are signaled in the bitstream before the SPS flag, wherein li≤spsi≤hi, where spsi is the value of the SPS flag.

### Claim 20 (depends on 19)

The decoder of claim 19, wherein for all SPS flags of the one or more SPS flags, the two variables from the set {0,1} are signaled by two vectors with elements from the set {0,1}: toolset_idc_l=l0l1, . . . , li, . . . ln−1 and toolset_idc_h=h0h1, . . . , hi, . . . hn−1, where n is a number of the one or more SPS flags, and i is an integer.

### Claim 21

An encoder, comprising:
one or more processors; and
a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the processors that, when the programming is executed by the processors, configures the encoder to:
set two variables for an SPS flag of one or more SPS flags, the value of one variable of the two variables being a minimum allowed value of the SPS flag, and the value of the other of the two variables being a maximum allowed value of the SPS flag;
determine the value of the SPS flag according to the two variables of the SPS flag; and
encode the value of the SPS flag and the two variables of the SPS flag into the video bitstream.

### Claim 22 (depends on 21)

The encoder of claim 21, wherein the programming, when executed by the processors, configures the encoder to:
when the value of the one variable being the minimum allowed value of the SPS flag is equal to 1, determine the value of the SPS flag to be 1; and
when the value of the one variable being the maximum allowed value of the SPS flag is equal to 0, determine the value of the SPS flag to be 0.

### Claim 23 (depends on 21)

The encoder of claim 21, wherein the programming, when executed by the processors, configures the encoder to:
when the values of both of the two variables of the SPS flag is equal to 1, determine the value of the SPS flag to be 1, respectively; and
when the values of both of the two variables of the SPS flag is equal to 0, determine the value of the SPS flag to be 0, respectively.

### Claim 24 (depends on 21)

The encoder of claim 21, wherein the two variables of the SPS flag are Boolean variables, the two variables being respectively packed in two syntax elements, the two variables corresponding to a specific bit inside the two syntax elements.

### Claim 25 (depends on 21)

The encoder of claim 21, wherein the values of the two variables are from a set {0,1}.

### Claim 26 (depends on 21)

The encoder of claim 21, wherein the value of the SPS flag is equal to one of the values of the variables.

### Claim 27 (depends on 26)

The encoder of claim 26, wherein the values of the two variables are from a set {0,1}, are denoted li and hi and are signaled in the bitstream before the SPS flag, wherein li≤spsi≤hi, where spsi is the value of the SPS flag.

### Claim 28 (depends on 27)

The encoder of claim 27, wherein for all SPS flags of the one or more SPS flags, the two variables from the set {0,1} are signaled by two vectors with elements from the set {0,1}: toolset_idc_l=l0l1, . . . , li, . . . ln−1 and toolset_idc_h=h0h1, . . . , hi, . . . hn−1, where n is a number of the one or more SPS flags, and i is an integer.
