# US 12,192,016 B2 · Method of shifting redundancy version for the transmission of a transport block over multiple slots

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

- Number: US 12,192,016 B2
- Document ID: US12192016B2
- Status: Granted
- Kind: B2
- Application number: 18/362,515
- Filed: 2023-07-31
- Published: 2023-12-28
- Granted: 2025-01-07
- Earliest claimed: 2021-04-05
- Assignees: Nokia Technologies Oy
- Applicants: Nokia Technologies Oy
- Inventors: Nhat-Quang Nhan; Marco Maso; Pasi Eino Tapio Kinnunen; Karri Markus Ranta-Aho; Alessio Marcone
- Web page: https://patentgrep.com/patent/US12192016B2

## CPC

- H04L 1/0067: {Rate matching (H04L1/0013 and H04L1/08 take precedence)}
- H04L 1/189: {Transmission or retransmission of more than one copy of a message}
- H03M 13/356: {Unequal error protection [UEP]}
- H03M 13/6306: {Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy (H03M13/3761, H03M13/3769 and H03M13/635 take precedence)}
- H03M 13/6362: {by puncturing}
- H04L 1/0041: {Arrangements at the transmitter end}
- H04L 1/0068: {by puncturing}
- H04L 1/1874: {Buffer management}
- H04L 1/0072: {Error control for data other than payload data, e.g. control data}
- H04L 1/18: Automatic repetition systems, e.g. Van Duuren systems
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

Where large transport blocks are rate-matched and transmitted on each PUSCH segment using different redundancy versions (RVs), RV cycling with a small number of PUSCH segments might not cover the whole codeword, and/or rate-matching a large TBS across many PUSCH segments into the resource of a single PUSCH segment may lead to an effective coding rate of the self-decodable redundancy versions that is too high. To avoid these issues, the starting position of one or more RVs may be shifted by setting the starting position of a current RV to be the same as an ending position of a previous position, or by scaling the starting position by a value. Alternatively, these issues may be avoided by setting a new starting position for an RV based on the gap from the end of a previous RV to the start of a current RV.

## Claims

### Claim 1

An apparatus comprising:
at least one processor; and
at least one non-transitory memory and computer program code, wherein the at least one memory and the computer program code are configured to, with the at least one processor, cause the apparatus to:
determine a starting position of at least one redundancy version of a transport block in a circular buffer based, at least partially, on a position of another redundancy version of the transport block in the circular buffer; and
transmit one or more of the other redundancy version and/or the at least one redundancy version using the determined starting position of the at least one redundancy version of the transport block,
wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus to determine the starting position of the at least one redundancy version by determining the starting position of the at least one redundancy version based, at least partially, on at least one scalar, and
wherein the starting position of the at least one redundancy version is denoted as k0 and defined as:
k0=mod(k′0+G+β,Ncb),
where mod (A, B) is a modulo function which returns a remainder of a division of A by B, k′0 is a starting position of the other redundancy version, G is a size of the other redundancy version, β is a scalar of the at least one scalar, and Ncb is a size of the circular buffer.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein determining the starting position of the at least one redundancy version comprises the at least one memory and the computer program code being configured to, with the at least one processor, cause the apparatus to:
set the starting position of the at least one redundancy version to be the same as an ending position of the other redundancy version.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein determining the starting position of the at least one redundancy version comprises the at least one memory and the computer program code being configured to, with the at least one processor, cause the apparatus to:
determine a remainder of:
a division of a starting position of the other redundancy version plus a length of the other redundancy version, and
the size of the circular buffer,
wherein the determined starting position comprises the determined remainder.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein a number of redundancy versions of the transport block is equal to a number of physical uplink shared channel segments used for the transport block over multiple segment transmission.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus to:
determine a first value and a second value; and
determine the scalar of the at least one scalar, wherein determining the scalar comprises multiplying the first value by a closest integer number smaller than the circular buffer size divided by the second value.

### Claim 6 (depends on 5)

The apparatus of claim 5, wherein determining the first value and the second value comprises the at least one memory and the computer program code are configured to, with the at least one processor, cause the apparatus to at least one of:
receive a radio resource control configuration of at least one of the first value or the second value,
determine at least one of the first value or the second value based on a specification, or
receive an indication of at least one of the first value or the second value in a downlink control information field.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein the at least one memory and the computer program code are further configured to, with the at least one processor, cause the apparatus to determine the at least one scalar based, at least partially, on an indication of a vector, wherein the vector comprises information for determining a number of scalars of the at least one scalar that is less than a number of redundancy versions of the at least one redundancy version, and wherein the determined number of the at least one scalar are cycles across the redundancy versions of the at least one redundancy version.

### Claim 8

An apparatus comprising:
at least one processor; and
at least one non-transitory memory and computer program code, wherein the at least one memory and the computer program code are configured to, with the at least one processor, cause the apparatus to:
determine whether a user equipment should use a first method to determine a starting position of at least one redundancy version of a transport block in a circular buffer or a second method to determine the starting position of the at least one redundancy version of the transport block in the circular buffer, wherein the second method comprises determining the starting position of the at least one redundancy version based, at least partially, on one of:
a position of another redundancy version of the transport block in the circular buffer, or
a scaling factor; and
transmit, from the apparatus, an indication to determine the starting position of at least the at least one redundancy version based on at least one of the first method or the second method,
wherein the second method further comprises determining the starting position of the at least one redundancy version based, at least partially, on at least one scalar, and
wherein the starting position of the at least one redundancy version is denoted as k0 and defined as:
k0=mod(k′0+G+β,Ncb),
where mod (A, B) is a modulo function which returns a remainder of a division of A by B, k′0 is a starting position of the other redundancy version, G is a size of the other redundancy version, β is a scalar of the at least one scalar, and Ncb is a size of the circular buffer.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein the second method comprises setting the starting position of the at least one redundancy version to be the same as an ending position of the other redundancy version.

### Claim 10 (depends on 8)

The apparatus of claim 8, wherein
the second method comprises determining a remainder of:
a division of a starting position of the other redundancy version plus a length of the other redundancy version, and
a size of the circular buffer.

### Claim 11

A method comprising:
determining a starting position of at least one redundancy version of a transport block in a circular buffer based, at least partially, on a position of another redundancy version of the transport block in the circular buffer; and
transmitting one or more of the other redundancy version and/or the at least one redundancy version using the determined starting position of the at least one redundancy version of the transport block,
wherein determining the starting position of the at least one redundancy version comprises determining the starting position of the at least one redundancy version based, at least partially, on at least one scalar, and
wherein the starting position of the at least one redundancy version is denoted as k0 and defined as:
k0=mod(k′0+G+β,Ncb),
where mod (A, B) is a modulo function which returns a remainder of a division of A by B, k′0 is a starting position of the other redundancy version, G is a size of the other redundancy version, β is a scalar of the at least one scalar, and Ncb is a size of the circular buffer.

### Claim 12 (depends on 11)

The method of claim 11, wherein the determining of the starting position of the at least one redundancy version comprises:
setting the starting position of the at least one redundancy version to be the same as an ending position of the other redundancy version.

### Claim 13 (depends on 11)

The method of claim 11, wherein the determining of the starting position of the at least one redundancy version comprises:
determining a remainder of:
a division of a starting position of the other redundancy version plus a length of the other redundancy version, and
the size of the circular buffer,
wherein the determined starting position comprises the determined remainder.

### Claim 14 (depends on 11)

The method of claim 11, wherein a number of redundancy versions of the transport block is equal to a number of physical uplink shared channel segments used for the transport block over multiple segment transmission.

### Claim 15

A non-transitory computer-readable medium comprising program instructions stored thereon which, when executed with at least one processor, cause the at least one processor to:
determine a starting position of at least one redundancy version of a transport block in a circular buffer based, at least partially, on a position of another redundancy version of the transport block in the circular buffer; and
transmit one or more of the other redundancy version and/or the at least one redundancy version using the determined starting position of the at least one redundancy version of the transport block,
wherein the program instructions which, when executed by the at least one processor, cause the at least one processor to determine the starting position of the at least one redundancy version comprise program instructions which, when executed by the at least one processor, cause the at least one processor to determine the starting position of the at least one redundancy version based, at least partially, on at least one scalar, and
wherein the starting position of the at least one redundancy version is denoted as k0 and defined as:
k0=mod(k′0+G+β,Ncb),
where mod (A, B) is a modulo function which returns a remainder of a division of A by B, k′0 is a starting position of the other redundancy version, G is a size of the other redundancy version, β is a scalar of the at least one scalar, and Ncb is a size of the circular buffer.
