The present invention relates to a technique for decoding information encoded by a polar code.
The polar code proposed by Arikan is a code that can implement characteristics asymptotically approaching the Shannon limit by using communication channel polarization, and is used for communication channel encoding in 5G, for example.
Further, as a method of decoding a code word encoded by a polar code, there are a successive cancellation decoding method, a successive cancellation list decoding method, and the like. The successive cancellation decoding method is a method of sequentially decoding bits of a message one by one. The successive cancellation list decoding method is a method in which, when the bits are decoded, L sequences (L is a list size) having high likelihood are set as survival paths, and only the most probable sequence is finally output as a decoding result.
Non-Patent Literature 1: I. Tal, A. Vardy, “List decoding of polar codes, “IEEE Transactions on Information Theory, vol. 61, no. 5, May 2015.
Non-Patent Literature 2: E.Arikan, et al. “Source polarization, “Proc. 2010IEEE International Symposium on Information Theory, 2010, pp. 899-903.
As a conventional technique of decoding a polar code, for example, there is a technique disclosed in Non-Patent Literature 1 and the like. However, in the conventional technique disclosed in Non-Patent Literature 1 and the like, there is a problem that the memory amount used in the decoding processing increases. When the used memory amount increases, for example, the calculation amount (calculation time) related to processing, such as copying states of candidates in list decoding, also increases.
The present invention has been made in view of the above points, and an object thereof is to provide a technique capable of reducing the memory amount in decoding of a polar code.
According to the disclosed technique, a decoding device is provided that includes: an input unit that inputs a code word encoded by a polar code from an original message; a computation unit that decodes the original messaue from the code word based on a conditional probability expressed by a symmetric parameterization and having observation information as a condition; and an output unit that outputs the decoded original message.
According to the disclosed techniques, a technique capable of reducing a memory amount in decoding of a polar code is provided.
3 is a configuration diagram of a decoding device.
Hereinafter, embodiments of the present invention (present embodiments) will be described with reference to the drawings. The embodiments described below are merely examples, and embodiments to which the present invention is applied are not limited to the following embodiments.
Note that, in the text of the main body of the present description, a hat “{circumflex over ( )}” will be added to the head of characters for convenience of description. “{circumflex over ( )}M” is an example. Furthermore, in the text of the main body of the present specification, in a case where a superscript or a subscript C is used for a subscript B of a certain character A, the subscript B of the character A is not represented by a subscript but is represented by using “_” as in A_BC.
In the present embodiment, the encoding device 100 encodes an input message M with a polar code, and outputs a code word X as a communication channel input. The decoding device 200 receives Y, which is a communication channel output in which noise is mixed into the code word, performs polar code decoding processing, and outputs a reproduction message {circumflex over ( )}M. As will be described later, the decoding device 200 performs decoding by a successive cancellation decoding method or a successive cancellation list decoding method. The successive cancellation decoding method is a method of sequentially decoding bits of a message one by one. The successive cancellation list decoding method is a method in which, when the bits are decoded, L sequences (L is a list size) having high likelihood are set as survival paths, and only the maximum likelihood sequence is finally output as a decoding result. The processing (algorithm) of the decoding device 200 will be described in detail later.
The decoding algorithm in the present embodiment can uniformly handle decoding of a communication channel code and decoding of an information source code.
In the configuration illustrated in
In the present embodiment, an “algorithm” may also be called a “processing procedure”, a “program”, “software”, or the like.
The decoding device 200 according to the present embodiment can be implemented, for example, by causing a computer to execute a program in which processing contents described in the present embodiment are described. Note that the “computer” may be a physical machine or a virtual machine on a cloud. In a case where a virtual machine is used, “hardware” described herein is virtual hardware.
The above program can be stored and distributed by having it recorded on a computer-readable recording medium (portable memory or the like). Furthermore, the above program can also be provided through a network such as the Internet or e-mail.
The program for implementing the processing in the computer is provided by, for example, a recording medium 1001 such as a CD-ROM or a memory card. When the recording medium 1001 storing the program is set in the drive device 1000, the program is installed from the recording medium 1001 to the auxiliary storage device 1002 via the drive device 1000. However, the program is not necessarily installed from the recording medium 1001, and may be downloaded from another computer via a network. The auxiliary storage device 1002 stores the installed program and also stores necessary files, data, and the like.
In a case where an instruction to start the program is made, the memory device 1003 reads and stores the program from the auxiliary storage device 1002. The CPU 1004 implements a function related to the decoding device 200 in accordance with a program stored in the memory device 1003. The interface device 1005 is used as an interface for connecting to the network. The display device 1006 displays a graphical user interface (GUI) or the like by the program. The input device 1007 includes a keyboard and mouse, buttons, a touch panel, or the like, and is used to input various operation instructions. The output device 1008 outputs a computation result. Note that the display device 1006 and the input device 1007 may not be provided.
Hereinafter, algorithms (corresponding to the above program) executed by the decoding device 200 will be described in detail. Hereinafter, first, definitions and basic related techniques will be described, and then each algorithm will be described. In the following description, Reference Literature is indicated as [1], [2], and the like. The names of the Reference Literature are described at the end of the specification. Note that the polar information source code/communication channel code is introduced in Arikan [1], [2], and [3], and Arikan proposes a successive cancellation decoding method that can be implemented with a calculation amount O (Nlog2N) with respect to a block length N.
In the present embodiment, an algorithm of the successive cancellation decoding method and an algorithm for the successive cancellation list decoding method based on what is introduced in Tal and Vardy [9] will be described. As described above, the technique according to the present embodiment can be applied to both the polar information source code and the polar communication channel code. Furthermore, the decoding algorithm in the present embodiment can reduce the memory amount and the calculation amount as compared with the conventional technique such as [9].
In the description of the algorithm of the present embodiment, the following definitions and notations will be used.
For a certain n, N=2n indicates a block length. is given as a constant, and all the algorithms of the present embodiment can refer to this n. In the present embodiment, bit indexing introduced in [1] is used. The index of the N-dimensional vector can be expressed as XN=(X_0n, . . . , X_1n) as a set of n-bit strings. Here, 0n and 1n represent n-bit all-0 sequences and all-1 sequences, respectively. To represent integer intervals, the following notations are used.
[0n:bn]={0n, . . . , bn}
[0n:bn]=[0n:bn]\{bn}
[bn:1n]=[0n1n]\[0n:bn)
(bn:1n]=[0n:1n]\[0n:bn] [Math. 1]
For a certain subset I of [0n:1n], a subsequence of XN is defined as follows.
X
I
={X
b
[Math. 2]
It is assumed that clbk∈{0, 1}l+k is a concatenation of bk∈{0, 1}k and cl∈{0, 1}l. For a given bk∈{0, 1}k and cl∈{0, 1}l, subsets of cl[0:bk] and cl[0:bk) of {0, 1}k+l can be defined as
b [Math. 3]
is defined as
Here, the binary polar information source/communication channel code introduced in the existing techniques [1], [2], [3], and [7] will be described. It is assumed that {0,1} is a body having a characteristic of 2. For a given positive integer n, polar conversion G is defined as follows.
Here, a symbol on the right shoulder of the matrix represent the n-th Kronecker product and ΠBR is the bit inverted permutation matrix [1]. A vector u∈{0,1}N is then defined as u=xG for a given vector x∈{0,1}N. It is assumed that {I0, I1} is a division of [0n:1n], and I0∩I1=ϕ and I0∩I1=[0n:1n] are satisfied. {I0, I1} will be defined later.
It is assumed that X=(X_0n, . . . , X_1n) and Y=(Y_0n, . . . , Y_1n) are random variables, and U=(U_0n, . . . , U_1n) is a random variable defined as U=XG.
Y of (, , Y) [Math. 6]
using a joint distribution PXY of (X,Y),
Y(, , )=PXY((, )G−1, ) [Math. 7]
is defined.
In the above formula, the elements of (u_I1, u_I0) are sorted in the order of indices before the processing of G−1. u_I1 and u_I0 are referred to as a frozen bit and a non-frozen bit, respectively.
It is assumed that
is a conditional probability distribution defined as follows.
For the vector u_I1 and the auxiliary information y∈yN, a successive cancellation (SC) decoder f that outputs {circumflex over ( )}u=f(u_I1, y) is recursively defined as
The set of functions {f_bn}_bn∈I0 used in the above formula is defined as
which is the maximum posterior probability discrimination rule after the observation (u_[0n:bn), y).
In the case of a polar information source code (with auxiliary information), x∈{0,1}N is an information source output, u_I1 is a code word, and y∈YN is an auxiliary information source output. The decoder reproduces the information source output f(u_I1, y)G−1 from code words u_I1 and y. The (block) decoding error probability is given as Prob(f(U_I1, Y)G−1≠X).
In the systematic polar communication channel code [3], I0′ and I1′ for a given (I0, I1) are defined as follows.
[Math. 12]
={b0b1 . . . bn−1:bn−1 . . . b1b0∈} (1)
={b0b1 . . . bn−1:bn−1 . . . b1b0∈} (2)
It is assumed that the encoder and the decoder share a vector u_I1. The encoder calculates (x_I1′, u_I0) satisfying (x_I1′, x_I0′)=(u_I1, u_I0)G−1 from a message x_I0′ and the shared vector u_I1. Here, the elements of (x_I1′, x_I0′) and (u_I1, u_I0) are sorted in the order of indices before the operation of G−1.
The encoder generates a communication channel input x=(x_I0′, x_I1′). Here, the elements of (x_I0′, x_I1′) are sorted in the order of indices. The decoder reproduces the communication channel input {circumflex over ( )}x=f(u_I1, y)G−1 from the communication channel output y∈yN and the shared vector u_I1. {circumflex over ( )}x_I0′ is reproduction of the message. The (block) decoding error probability is also given as Prob(f(U_I1, Y)G−1≠X).
In a non-systematic polar communication channel code, u_I0 is a message, and a vector u_I1 is shared by an encoder and a decoder. The encoder generates a communication channel input x∈{0,1}N with x=(u_I1, u_I0)G−1. Here, the elements of (u_I1, u_I0) are rearranged in the order of indices before G−1 is operated. The decoder generates a pair of vectors (u_I1, {circumflex over ( )}u_I0)=f(u_I1, y) from the communication channel output y∈yN and the shared vector u_I1. Then, {circumflex over ( )}u_I0 is reproduction of the message. The (block) decoding error probability is given as Prob(f(U_I1, Y)≠(U_I0, U_I1)).
Lemmas will be described below.
Lemma 1 ([2, Theorem 2], [7, Theorem 4.10]):I0 is defined as follows.
where Z is a function [2] that gives a Battacharyya parameter. For any β∈[0, ½),
are obtained.
There is the following lemma which can be proven as in the previous proof [1].
Lemma 2 ([6, Lemma 2], [8, Formula (1)], [7, Proposition 2.7]):
From the above lemma, a fact is obtained that the rate of the polar code reaches the fundamental limit, and the decoding error probability becomes zero with n→∞. For example, I0 can be obtained by using a technique introduced in [8]. In the following, it is assumed that any I0 is given.
Here, a polar conversion based on the symmetric parameterization used in the expression of the conditional probability in the present embodiment will be described. For a given probability distribution PU of a binary random variable U, θ is defined as follows.
θ=PU(0)−PU(1)
then,
is obtained.
u [Math. 17]
is the bipolar binary conversion of u.
In the basic polar conversion, a pair of binary random variables (U0, U1) is converted as follows.
U
0
′=U
0
⊕U
1
U1′=U1 [Math. 18]
where
⊕ [Math. 19]
indicates addition in a field of characteristic 2. It is assumed that the random variables U0, U1∈{0,1} are independent. For each i∈{0,1}, θi is defined as follows.
θi=PU
Here, the following equalities are obtained.
The first equality is obtained from the definition of U0′ and the fact that U0 and U1 are independent of each other.
Furthermore, the following equalities are obtained.
From Formula (3) and Formula (4),
is obtained.
u
′ [Math. 24]
is the bipolar binary conversion of u0′. θ0′ is defined as
[Math. 25]
θ0′=PU
From Formula (3) to Formula (6),
θ0′=θ1θ0 (7)
is obtained.
Since the symmetric parameterization is a binary version of the Fourier transform of a probability distribution [5, Definitions 24 and 25], the right side of Formula (7) corresponds to the Fourier transform of the convolution.
Here,
is obtained. The first equality is derived from the definition of U0′ and U1′ and the fact that U0 and U1 are independent of each other. Further,
is obtained.
θ1′ is defined as follows.
From Formula (9) to Formula (11),
is obtained. Here, the second equality is obtained from Formula (7).
Next, an algorithm of successive cancellation decoding executed by the decoding device 200 according to the present embodiment will be described.
Note that, in the present embodiment, notations of the algorithm illustrated in each drawing are general by themselves. For example, “for A do B” means executing B on each element defined by A. “if C then D else E” means that D is executed in a case where the condition C is satisfied (in a case of true), and E is executed in a case where the condition is not satisfied.
The decoding device 200 performs decoding processing of the polar code by executing Algorithm 1 of successive cancellation decoding illustrated in
Here, each element of Θ is a conditional probability of 0 and 1 expressed by one parameter by applying the symmetric parameterization, and corresponds to a conditional probability expressing how much the value of the bit to be decoded deviates from ½. This Θ is updated by updateΘ(Θ, U, n, bn).
As illustrated in line 7 of Algorithm 1, whether the value of the bit is 0 or 1 is determined by comparing Θ[n][0] and 0. Note that “0 or 1” in line 7 of Algorithm 1 indicates that the value of the bit may be either 0 or 1.
The computation unit 220 that executes Algorithms 1 to 3 can access (refer to) the number n of times of polar conversion, the frozen bit u(n)_I1, and the following memory space. The memory space corresponds to the data storage unit 240 of the decoding device 200. The successive cancellation decoding processing executed by Algorithms 1 to 3 will be described below.
In the above formula, Θ[k][cn−k] is a real variable, U[k][cn−k][b] is a binary variable, and c0 is a null character string. Note that Θ has Σnk=02n−k=2n+1−1 variables, and U has 2Σnk=02n−k=2n+2−2 variables.
In the following,
is a memoryless information source. That is,
is defined as
where
is given depending on the context. In addition,
is allowed to be a non-steady state.
U(n)_bn is recursively defined (calculated) as
for a certain bn∈{0,1}n and cn−k∈{0,1}n−k.
At this time,
U[0
obtained. This is a polar conversion of U(0)_[0n:1n]. updateΘ(Θ, U, n, bn) in line 3 of Algorithm 1 starts from the following Formula (16), and
is calculated recursively.
Processing contents of updateΘ(Θ, U, n, bn) in line 3 in Algorithm 1 are shown. In Algorithm 2 of
are calculated for each cn−k for a given bn∈{0, 1}n. By using Formulas (7), (12), (13), (14), and (17), relations of
can be obtained. Here,
u [Math. 42]
is the bipolar binary conversion of u=u(k)_cn−kbk−10. The purpose of updateU(U, n, bn−1) in line 9 of Algorithm 1 is to calculate u(k)_cn−kbk−10 from u(n)_[0n:bn−10] using the relation of
[Math. 43]
u
c
0b
(k−1)
=u
c
b
0
(k)
⊕u
c
b
1
(k) (20)
u
c
1b
(k−1)
=u
c
b
1
(k) (21)
Formulas (20) and (21) are obtained from Formulas (13) and (14). Here, it is assumed that u(n)_[0n:bn−10] is normally decoded.
Formulas (18) and (19) correspond to lines 5 and 7 of Algorithm 2, respectively, and formulas (20) and (21) correspond to lines 2 and 3 of Algorithm 3, respectively.
After applying lines 3 and 9 of Algorithm 1, respectively, the relation of
[Math. 44]
Θ[k][cn−k]=θc
U[k][c
n−k
][b
k−1
]=u
c
b
(k) (23)
is obtained.
Further, line 7 of Algorithm 1 corresponds to a maximum posterior probability discrimination defined as follows.
In a case where Algorithm 1 is used in a decoder of a polar information source code in which the code word u(n)_I1 and the auxiliary information vector y_[0n:1n] are used as inputs,
is defined,
[Math. 47]
c
U[0][cn][{circumflex over (b)}−1] (25)
is defined, and
reproduction
{c
is obtained. Here, {circumflex over ( )}b−1 is a null character string.
In a case where Algorithm 1 is used for a decoder of a systematic polar communication channel code in which the communication channel output vector y_[0n:1n] and the shared vector u(n)_I1 are used as inputs,
{PY
an input distribution
{PX
and y_cn∈Y,
is defined. Then, the reproduction {{circumflex over ( )}x_cn}_cn∈I0′ defined by Formula (25) is obtained. Here, I0′ is defined by Formula (1).
In a case where Algorithm 1 is applied to a decoder of a non-systematic polar communication channel code, a series of binary variables {M[bn]}_bn∈I0 is prepared, and immediately after U[n][c0][bn−1] (line 7 of Algorithm 1) is updated,
M[bn]←U[n][c0][bn−1]
is inserted. Algorithm 1 with this modification is shown in
As a result, reproduction {circumflex over ( )}u_I0 defined by {circumflex over ( )}u_bn=M[bn] can be obtained.
Remark 1: In a case where Algorithm 1 is applied to a binary erasure channel, the value that can be taken by Θ[k][cn−k] is limited to {−1, 0, 1}, and
which is a value in line 1 of Algorithm 1 can be replaced by
for a given communication channel output y_[0n:1n].
As described below as Algorithm 2, Algorithm 2 can be improved. Furthermore, this technique can also be used with systematic communication channel codes, as introduced in [3]. There, for a given message vector x_I0′, y_[0n:1n] is defined as
Next, an algorithm of successive cancellation list decoding executed by the decoding device 200 according to the present embodiment will be described. This algorithm is based on a technique introduced in [9].
In the technique according to the present embodiment, a fixed address memory space is used instead of using the stacking memory space in [9]. In the technique according to the present embodiment, since the size of the memory space for calculating the conditional probability is approximately half of that used in [9], the calculation amount of the algorithm according to the present embodiment is approximately half of that introduced in [9].
The decoding device 200 performs decoding processing of the polar code by executing Algorithm 4 of successive cancellation decoding illustrated in
In the calculation by the procedure of Algorithms 2 to 9, the computation unit 220 of the decoding device 100 shown in
Note that Θ[λ] and U[λ] are calculated in Algorithms 2 and 3. {P[λ]}2L−1λ=1 is a series of real variables, and {Active [λ]}2L−1λ=1 is a series of binary variables.
After applying Algorithm 4, the calculation result is stored in {U[λ]}L−1λ=0 and {P[λ]}2L−1λ=0 to satisfy
where
û[0
is the λth survival path. In line 5 of Algorithm 7 that performs the processing of selecting the survival path, L paths {circumflex over ( )}u(n)_[0n:bn] with the highest probability (likelihood)
are selected where
û[0
is the λth survival path.
In a case where Algorithm 4 is used in a decoder of a polar information source code, accessing the code word u_I1 and the auxiliary information vector {y_bn}_bn∈[0n:1n],
is defined by Formula (24), and reproduction
{c
is obtained. The above reproduction is defined below.
[Math. 62]
c
(l)=U[l][0][cn][b−1] (29)
where
That is, 1 in Formula (30) is the most probable path (sequence).
In a case where s=parity(xn) is added to the code word u_I1 by using an external parity check function parity,
with respect to 1 satisfying
parity ({c
reproduction is defined as (29).
In a case where Algorithm 4 is used in a decoder of a systematic polar communication channel code, accessing the communication channel output vector {y_bn}_bn∈[0n:1n] and the shared vector u_I1, reproduction defined by Formulas (29) and (30)
{c
is obtained. Here, I0′ is defined by Formula (1).
In a case where the code word (for example, polar code with CRC [9]) having a check vector s satisfying s=parity(xn) for all the communication channel inputs xn is used using the external parity check function parity,
with respect to 1 satisfying
parity ({c
reproduction
{c
is defined as (29).
In a case where Algorithm 4 is used for a decoder of a non-systematic polar communication channel code, the binary variable
{M[λ][bn] [Math. 68]
is prepared, and immediately after U[λ][n][c0][bn−1] and U[∧+λ][n][c0][bn−1] are updated (lines 5 and 6 of Algorithm 6, lines 8, 11, 15, and 26 of Algorithm 7), respectively,
M[λ][b
n
]←U[λ][n][c
0
][b
n−1]
M[Λ+λ][b
n
]←U[Λ+λ][n][c
0
][b
n−1] [Math. 69]
is inserted.
[Math. 70]
ûb
is defined, and reproduction
{ûb
is obtained. Here, l is a maximum likelihood sequence defined by Formula (30). The modified Algorithm 6 is shown in
In a case where the code word (for example, polar code with CRC [9]) having a check vector s satisfying s=parity(xn) for all the communication channel inputs xn is used using the external parity check function parity, with respect to l in which the corresponding communication channel input, which is defined by Formula (29),
{c
satisfies
parity ({c
reproduction of non-systematic code
{ûb
is defined as Formula (31).
Remark 2: Line 17 of Algorithm 4 is unnecessary in a case where a real variable with infinite precision is used. In the above description, it is assumed to use a real variable with finite precision (floating point) in order to avoid P[λ] becoming 0 due to truncation when bn increases. Regardless of whether P[λ] is infinite precision or not, while (bn=0n) and bn∈I1 are continuously satisfied from the beginning, line 17 of Algorithm 4 and line 2 of Algorithm 5 can be skipped.
Note that this type of technique is used in [9, Algorithm 10, lines 20 to 25], and this technique has been repeated Nn times. In contrast to that, Algorithm 4 in the present embodiment uses this technique outside the update of the parameter {Θ[λ]}L−1λ=0 (Algorithm 2), and magnifyP(λ) is repeated N times.
Remark 3: Assuming that L is a power of 2, Λ=L is always satisfied in line 13 of Algorithm 4. Therefore, since Λ+l≥L is always satisfied, line 14 of Algorithm 4 and lines 9 to 12 of Algorithm 7 can be omitted.
Remark 4: Since Algorithm 6 and Algorithm 7 have the same lines 2 to 3, lines 2 to 3 of Algorithm 6 can be omitted, and then lines 1 to 4 of Algorithm 7 can be moved between the line 8 and the line 9 of Algorithm 4.
The description so far has used a binary representation of the index. Implementation of this representation will now be described.
In an implementation, the binary representation bk∈[0k:1k] may be represented by a corresponding integer in {0, . . . , 2k−1}. It is assumed that i(bk) is the corresponding integer of bk.
For a given bk∈[0k:1k], bk−1 is the least significant bit of bk, and the corresponding integer can be obtained as i(bk−1)==i(bk)mod2. This is used in lines 5, 7, and 9 of Algorithm 1 and lines 2, 3, and 5 of the algorithm.
In line 9 of Algorithm 1 (
In lines 5 and 7 of Algorithm 2 and lines 2 and 3 of Algorithm 3, cn−k0 can be obtained by setting the least significant bit of cn−k0 to 1 and using cn−k and a 1-bit left shift of cn−k1. Alternatively, the corresponding integer can be obtained using the following relational expression.
i(cn−k0)=2i(cn−k)
i(cn−k1)=2i(cn−k)+1 [Math. 75]
In lines 5 and 7 of Algorithm 1, line 3 of Algorithm 5, lines 5 and 6 of Algorithm 6, and lines 8, 11, 15, and 26 of Algorithm 7, the corresponding integer of the null character string c0 can be defined as i(c0)=0. When k=n, this also appears in lines 5 and 7 of Algorithm 2 and lines 2 and 3 of Algorithm 3. Here, the null character string is distinguished from the binary symbol 0 according to the value k. In lines 2 and 3 of Algorithm 3, the null character string b−1 appears when k=1. i(b−1)=0 can be defined and can be distinguished from the binary symbol 0 according to the value k. The following relational expression is obtained.
i(c00)=2i(c0)
i(c01)=2i(c0)+1
i(b−1)=floor(i(b1)/2) [Math. 76]
As described in Remark 1, in a case where Algorithm 1 is applied to the binary erasure channel, Θ[k][cn−k]∈{−1,0,1} is obtained. Given this, two refinements to Algorithm 2 can be introduced.
First,
It is assumed that
Θ[k][cn−k]=(Θ_[k][cn−k], Θ1[k][cn−k]) [Math. 77]
is a 2-bit signed integer including a sign bit
Θ_[k][cn−k] [Math. 78]
and two bits representing an absolute value bit Θ1[k][cn−k]. Further, line 7 of Algorithm 1 can be replaced with
or simply with
U[n][c0][bn−1]←Θ_[n][0] [Math. 80]
In this Algorithm 2, ∧ represents an AND computation, ∨ represents an OR computation, and
⊕ [Math. 81]
represents an XOR computation.
Here, the content of the algorithm in line 5 of Algorithm 7 shown in
Algorithms 7-1 to 7-4 can access the memory spaces {P[λ]}2L−1λ=0, {Index [λ]}2L−1λ=1, and {Active [λ]}2L−1λ=0. Here, Index [X]∈{0, . . . 2L−1} is an integer variable. The calculation result is stored in {Active [λ]}2Λ−1λ=0.
Remark 5: As mentioned in [9], instead of adopting selectPath(0, 2·Λ−1) in line 5 of Algorithm 7-1, {Index[λ]}Λ−1λ=0 may be simply sorted to obtain P[Index[0]]≥P[Index[1]]≥ . . . ≥P[Index[Λ−1]]. The time complexity of sorting is O(ΛlogΛ), but in a case where Λ is small, the time complexity may be faster than selectPath(0,2·Λ−1).
Remark 6: Line 1 (can be omitted) of Algorithm 7-3 guarantees that the average time complexity of selectPath(0,2·Λ−1) is O(Λ). By selecting the index corresponding to the median of {P[λ]}rightλ=left, this line can be replaced, and the worst-case time complexity O(Λ) can be guaranteed (refer to [4]).
Hereinafter, as a summary of each algorithm, input, output, and the like for each algorithm will be described. Note that the number n of times of polar conversion is a constant, and can be referred to from all the algorithms. The block length is N=2n.
For example, the input information described below is input from the input unit 210 in the decoding device 200 shown in
The input to Algorithm 1 is as follows.
The code word in the case of the information source code is more specifically as follows.
The encoding device 100 defines u(0)_bn=x_bn for the information source output x_[0n:1n], and applies a known polar conversion algorithm to obtain {u[lsb(n)][bn]}_bn∈[0n:1n]. At this time,
{u[lsb(n)][bn]}_bn∈I1
is a code word.
This is set as follows by the computation unit 220 depending on the object to be applied.
PX
after the observation of the auxiliary information y_[0n:1n],
is set by the above-described Formula (24).
PY
At this time, after observing the communication channel output y_[0n:1n],
is set by the above-described Formula (26).
The communication channel input for the systematic communication channel code is more specifically as follows.
The encoding device 100 sets x_I0′ as a message vector and u(0)_I1 as information shared by the encoding device 100 and the decoding device 200 (for example, all are set to 0). Then, a known polar code algorithm is applied to obtain (x_I1′, u_I0) from (x_I0′, u_I1). Here, the relationship of I0, I1, I0′, and I1′ is defined by the above-described Formulas (1) and (2). At this point, the communication channel input (also referred to as a code word) that is the output of encoding device 100 is obtained by aligning (x_I0′, x_I1′) in the order of indices.
The communication channel input for the non-systematic communication channel code is more specifically as follows.
The encoding device 100 sets u(0)_I0 as a message vector and u(0)_I1 as information shared by the encoding device 100 and the decoding device 200 (for example, all are set to 0). By applying a known polar code algorithm to this,
{u[lsb(n)][bn]}_bn∈[0n:1n]
is obtained and set as a communication channel input (also referred to as a code word) which is an output of the encoding device 100.
As described above, the output from Algorithm 1 is stored in the memory space shown in [Math. 30].
The reproduction information as the decoding result is obtained by the following interpretation depending on the object to be applied.
The input to Algorithm 2 is as follows.
The output from Algorithm 4 is stored in the memory spaces (memory areas) of Θ, U, and P as described above. Specifically, this is as follows.
The reproduction information as the decoding result is obtained by the following interpretation depending on the object to be applied.
[0
:1
](l) [Math. 90]
Here, the memory
{Active [λ]:λ∈{0, . . . , 2L−1}}
is used.
Algorithm 8 is an algorithm corresponding to copyPath(λ′,λ) in line 4 of Algorithm 6 (
The algorithm 9 is an algorithm that implements rewriting of content of the above memory P (setting the maximum value to 1 without change of ratio of real number stored in memory).
Algorithm 2 illustrated in
Algorithms 7-1 to 7-4 are algorithms that set Active[λ]=1 only to the top L values of P[λ] as described in line 5 of Algorithm 7 (
As described above, in order to simplify the configuration, Algorithm 4 and Algorithm 7 in a case where it is assumed that the set I0 is not an empty set, L is a power of 2, and only a real number computation with finite accuracy is possible (although not realistic, in the case of infinite accuracy, line 27 of algorithm 4 in
As described in Remark 1, in the case of the decoding device 200 for the erasure channel, it can be assumed that the value Θ[k][cn−k] takes any value of {−1,0,1}.
When line 7 of Algorithm 1 (
regardless of the method of encoding {−1,0,1} into Θ[k][cn−k], processing in lines 4 to 8 of Algorithm 1 (
In a case of being applied to Algorithms 4 to 9, Θ[λ][k][cn−k] can be a variable having a value of {−1,0,1}, and P[λ] can be an N-bit unsigned integer variable. In this case, the processing of magnifyP in line 17 of Algorithm 4 is unnecessary. Further,
1Θ[λ][n][bn]∈{0, 1, 2} [Math. 92]
is established, for line 2 of Algorithm 5, lines 2 to 3 of Algorithm 6, and lines 2 to 3 of Algorithm 7,
in a case of
1Θ[λ][n][bn]=2 [Math. 93]
calculation is possible using 1-bit left shift. cl Example A: Method Using Integer Addition/Subtraction
The division can be omitted by using Algorithm 2 illustrated in
Note that, when this method is applied to successive cancellation list decoding (Algorithm 4), a change may be made only by regarding a real variable as an integer variable.
Further, Θ[k][cn−k] is represented as illustrated in
Θ_[k][cn−k], Θ1[k][cn−k] [Math. 94]
may also be encoded with two bits.
In this case, the tables illustrated in
This can be implemented by replacing line 7 of Algorithm 1 (
Note that, when this method is applied to successive cancellation list decoding (Algorithm 4),
Θ[k][cn−k]=(Θ_[k][cn−k], Θ1[k][cn−k]) [Math. 96]
is interpreted as a 2-bit signed integer of a sign part 1-bit and a numerical part 1-bit.
In a case where the technique according to the present embodiment (referred to as a proposed method) is compared with the technique of Reference Literature [9] (referred to as a conventional method), two values Pλ[β][0] and Pλ[β][1] indicated by P of the conventional method are expressed by one value Θ[k][cn−k] by applying the symmetric parameterization in the proposed method [Algorithm 2], and thus, in the proposed method, the used memory amount is half that in the conventional method. As a result, the calculation amount can also be reduced. In particular, in list decoding, it is possible to greatly reduce a processing time in a case where states of candidates are copied.
In addition, a stack memory is used in the processing of the conventional method, but a memory space having a fixed address is directly operated in the proposed method. Thus, the operation in the conventional method regarding the stack memory is simplified in the proposed method.
Furthermore, with the technique according to the present embodiment, it is possible to uniformly perform decoding for the communication channel code and decoding for the information source code.
In the present specification, at least a decoding device, a decoding method, and a program described in clauses described below are described.
A decoding device, including:
The decoding device according to clause 1, in which
The decoding device according to clause 1, in which
The decoding device according to clause 3, in which
The decoding device according to clause 3, in which
The decoding device according to any one of clauses 1 to 5, in which
A decoding method executed by a decoding device, including:
A program for causing a computer to function as each unit in the decoding device according to any one of clauses 1 to 6.
Although the present embodiment has been described above, the present invention is not limited to such a specific embodiment, and various modifications and changes can be made within the scope of the gist of the present invention described in the claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2021/000035 | 1/4/2021 | WO |