The present invention relates to a network for permutation or de-permutation, especially a butterfly network for permutation or de-permutation utilized by channel coding and a channel coding security concept thereof.
Turbo Code (TC), which is an example of the so-called channel coding, was invented in 1993 and can produce a near Shannon limit performance by applying an iterative decoding algorithm. In co-pending U.S. patent application Ser. No. 11/176,829 by Zheng et. al., innovative encoder and decoder designs were presented with real-time performance, wherein inter-sequence permutation and intra-sequence permutation are both utilized. Conventionally, many algorithms, e.g. lookup tables, can be used in performing permutations, but they are either complex or inflexible, and a new algorithm is preferred.
A so-called “butterfly network” is used to perform a method to illustrate FFT (Fast Fourier Transform), which is intensively used in the field of signal processing. However, its concept is also applied in other fields, for instance, U.S. Pat. No. 6,618,371 B1 and US Publication No. 2006/0039555 A1. In U.S. Pat. No. 6,618,371 B1, the butterfly network is used to create two independent paths ending at the same point for the purposes of load balancing, fault tolerance, or multicasting. In US Publication No. 2006/0039555 A1, the butterfly network is used in performing arbitrary permutation of a sequence in a processor. However, none of the prior art references applies the concept in the field of channel coding permutation and de-permutation.
The present invention provides an innovative but simple algorithm and hardware architecture for performing inter-sequence permutation at either the encoder end or decoder end with this concept. Preferably, the channel coding applying this concept is referred as “ZYX code” hereinafter.
Examples of the present invention may provide a butterfly network for channel coding permutation and de-permutation. The butterfly network may include a first side and a second side. Each of the first side and the second side may have at least one terminal. The butterfly network may further include two or more columns of nodes located between the first side and the second side. A first column of the columns may interface the first side, and a second column of the columns may interface the second side. Each of the columns may include at least one node. Each node of the columns may be connected to a first number of nodes of each of adjacent columns to the columns. The first number may be identical for all the nodes in the butterfly network. The nodes that are selected as switches may be concurrently controlled to perform switching operations.
Some examples of the present invention may also provide a butterfly network for channel coding permutation and de-permutation. The butterfly network may include a first side and a second side, wherein each of the first side and second side has at least one terminal, two or more columns of nodes located between the first and second sides, wherein a first column of the columns interfaces the first side, a second column of the columns interfaces the second side and each of the columns comprises at least one node, wherein each node of one of the columns is connected to at least one node of an adjacent column next to the one of the columns, and wherein the nodes which are selected as switches are concurrently controlled to perform switching operations.
Additional features and advantages of the present invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The features and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
The foregoing summary, as well as the following detailed description of the invention, will be better understood when read in conjunction with the appended drawings. For the purpose of illustrating the invention, there are shown in the drawings examples which are presently preferred. It should be understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown.
In the drawings:
Reference will now be made in detail to the present examples of the invention illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like portions.
In one example, each of the columns (105, 106) may comprise a second number of nodes being identical for each of the columns. In some examples, the second number may be different for each column. One reason for making the second number different for each column is memory management, and part of such examples will be discussed later in the specification.
Between the nodes (105, 106) and the terminals (103), certain logics of connection may exist. For example, the terminals of the first side (101) and second side (102) may have an exclusive node in the first column (105) and second column (106) respectively, and each of the terminals may be connected to each of the exclusive nodes. That is, one terminal may be connected to only one node and this node may be exclusively connected to this terminal in the present invention. However, exceptions may exist, for example, for the purpose of memory management, which will also be discussed later in the specification.
In the first paragraph of “DETAILED DESCRIPTION OF THE INVENTION”, a person of ordinary knowledge in related fields should understand that connections between nodes, and between nodes and terminals are not limited to the present invention, which is in the form of a FFT butterfly network. For example, referring to
Also in the first paragraph of “DETAILED DESCRIPTION OF THE INVENTION”, the nodes that are selected as switches may be concurrently controlled to perform switching operations. For example in
One skilled in the art may have noted that every node of the second column (106) has only one choice to output the data flow through the butterfly network. Therefore, every node of the second column (106) may not serve as a switch. However, some or all of the nodes of the second column (106) may serve as switches if said some or all of the nodes outputting data to more than one terminal (103) in some examples.
The terminals of the first side (101) may be intra-block permuters and the terminals of the second side (102) may be memory buffers, or vice versa.
The terminals of the first side (101) may be a posteriori probability (APP) decoders and the terminals of the second side (102) may be memory buffers, or vice versa.
In one example, for purposes of memory management, cost saving, space saving, fewer terminals or nodes may be used after the procedure of “folding and combination” in
Again in
As shown in
The control elements determine what can be included in any of the control signals. Each of the control elements can be represented by a binary number, or a number within a limited numerical range or set. For example, in a digital system, the control signals are composed of binary control elements. The control elements are set to be “0” and “1.” In some communication systems, the control elements may be chosen within a set of numbers, such as a set of “100”, “0” and “−100”, in order to alleviate signal deterioration due to the presence of noise.
For instance, some or all of the nodes of a column in the butterfly network can be switched to output data through horizontal connections upon receipt of the control element “0” and through oblique connections upon receipt of the control element “1”, or vice versa. For example, in
Furthermore, if the data flow is not completely transmitted, normally step (f) is repeated for reading another control signal, and subsequently performing steps (g) and (h) until the whole data flow is transmitted.
In this example, the number of control signals in the control sequence is 4, which is identical to the number of data elements in each of the input sequences. However, in some cases, the control sequence may be shorter or longer than the length of each of the input sequences for various purposes such as efficiency or security. If a control sequence is shorter than the length of each of the input sequences, at least one of the control signals is read more than once at the step (f), and used by more than one step (g). For example, the control sequence can be used again from the beginning if all 4 control signals are used and a fifth control signal is requested. On the contrary, at least one of the control signals may not be read in step (f) if the control sequence is longer than the length of each of the input sequences. Whether a control signal is used or not can depend on a security algorithm, for example.
The method of the present invention is particularly designed for permutation or de-permutation utilized in channel coding algorithms, wherein the data flow can be permuted in an encoder and permuted/de-permutated in a decoder. Note that permutations and de-permutations can both be performed in the decoder due to the internal algorithm of the decoder. De-permutations are actually performed in the same way as the permutations discussed above. As what can be seen from
For the purpose of security, the control sequence can be made different between two or more encoder-decoder pairs, and the control sequence can be applied in turbo code. In the case that multiple encoder-decoder pairs are utilized, an encoder can be repeatedly used in more than one encoder-decoder pairs. LDPC code can apply the same concept to construct a parity-check matrices. In a broad sense the control sequence can also be applied in LDPC code to attain the purpose of heightening security. In such a design, a third party without holding the correct control sequence cannot convert the manipulated data flow into original one, even if the transmission is intercepted between the encoder and decoder. Preferably, the control sequence is encrypted when delivered from the encoder to the decoder. The term “delivered” is not limited to wireless communication. For example, if the encoder is a wireless service provider and the decoder is an user, the control sequence can be delivered to the user by a mailed security data sheet (or card), encrypted Internet connection, and so on.
It will be appreciated by those skilled in the art that although in describing the above examples the specification may take the 4×4 block as the examples. However, it will be appreciated by those skilled in the art that the method of the present invention may also be capable of applying to an 8×8 block, 16×16 block or any other possible type of blocks in an H.264 video sequence. Therefore in the type of the block applied in the examples should not be construed as limitations on the claims.
Furthermore, in describing representative examples of the present invention, the specification may have presented the method and/or process of the present invention as a particular sequence of steps. However, to the extent that the method or process does not rely on the particular order of steps set forth herein, the method or process should not be limited to the particular sequence of steps described. As one of ordinary skill in the art would appreciate, other sequences of steps may be possible. Therefore, the particular order of the steps set forth in the specification should not be construed as limitations on the claims. In addition, the claims directed to the method and/or process of the present invention should not be limited to the performance of their steps in the order written, and one skilled in the art can readily appreciate that the sequences may be varied and still remain within the spirit and scope of the present invention.
It will be appreciated by those skilled in the art that changes could be made to the examples described above without departing from the broad inventive concept thereof. It is understood, therefore, that this invention is not limited to the particular examples disclosed, but it is intended to cover modifications within the spirit and scope of the present invention as defined by the appended claims.
Number | Date | Country | |
---|---|---|---|
Parent | 11414433 | Apr 2006 | US |
Child | 12057283 | US |