본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 시그널링 정보 부호화/복호화 시스템을 나타낸 블록도이다.
도 1을 참조하면, 시그널링 정보 부호화/복호화 시스템은 시그널링 정보 부호화 장치(100) 및 시그널링 정보 복호화 장치(300)를 포함한다.
시그널링 정보 부호화 장치(100) 및 시그널링 정보 복호화 장치(300)는 무선 채널(200)을 매개로 통신을 수행한다.
시그널링 정보 부호화 장치(100)는 L1-Basic이나 L1-Detail 등의 시그널링 정보를 채널부호화 및 변조한다.
시그널링 정보 부호화 장치(100)는 세그먼테이션부(110), 스크램블링부(120), BCH 인코더(130), 제로 패딩부(140), LDPC 인코더(150), 패리티 퍼뮤테이션부(160), 패리티 펑쳐링부(170), 제로 리무빙부(180), 비트 인터리빙부(190) 및 컨스틸레이션 맵핑부(195)를 포함한다.
도 1에 도시된 시그널링 정보 부호화 장치(100)는 BICM(Bit-Interleaved Coded Modulation) 장치에 상응하는 것으로 볼 수 있고, 이 때, BICM 장치의 오류정정부호화기는 도 1에 도시된 세그먼테이션부(110), 스크램블링부(120), BCH 인코더(130), 제로 패딩부(140), LDPC 인코더(150), 패리티 퍼뮤테이션부(160), 패리티 펑쳐링부(170) 및 제로 리무빙부(180)에 상응하는 것으로 볼 수 있다.
세그멘테이션부(110)는 시그널링 정보의 길이가 기설정된 길이보다 긴 경우, 시그널링 정보를 여러 개의 LDPC 코드워드(codeword)에 나누어서 송신하기 위해 시그널링 정보를 여러 그룹들로 분할한다. 즉, 시그널링 정보를 하나의 LDPC 코드워드에 담지 못하는 경우에, 세그멘테이션부는 몇 개의 코드워드에 시그널링 정보를 담을지를 결정하고, 결정된 개수에 맞추어 시그널링 정보를 분할할 수 있다.
예를 들어, 시그널링 정보의 길이가 L1-Basic과 같이 고정된 경우, 시그널링 정보 부호화 장치(100)는 세그멘테이션부(110)를 포함하지 않을 수도 있다.
예를 들어, 시그널링 정보의 길이가 L1-Detail과 같이 가변인 경우, 시그널링 정보 부호화 장치(100)는 세그멘테이션부(110)를 포함할 수 있다.
스크램블링부(120)는 시그널링 정보를 보호하기 위한 스크램블링을 수행한다. 이 때, 스크램블링은 본 기술분야에서 알려진 다양한 방식으로 수행될 수 있다.
BCH 인코더(130)는 패리티 길이 N
bch
_parity = 168비트인 BCH 패리티를 이용하여 BCH 인코딩을 수행한다.
이 때, BCH 인코딩은 데이터 BICM의 길이가 16200인 LDPC 코드를 위한 BCH 인코딩과 동일한 것일 수 있다.
이 때, BCH 인코딩에 사용되는 BCH 다항식(polynomial)은 하기 표 1과 같이 표현될 수 있고, 표 1에 표현된 BCH 인코딩은 12비트의 오류정정능력을 가질 수 있다.
[표 1]
BCH 인코딩 수행 후, 제로 패딩부(140)는 제로 패딩(zero padding) 혹은 쇼트닝(shortening)을 수행한다.
이 때, 제로 패딩(zero padding)은 비트열의 일부를 비트 '0'으로 채우는 것을 의미한다.
BCH 인코딩의 결과 비트열의 길이는 N
bch = Ksig + N
bch
_Parity와 같이 표현될 수 있다. 이 때, Ksig는 BCH 인코딩의 정보 비트들의 개수일 수 있다. 예를 들어, Ksig이 200비트로 고정된 경우, N
bch는 368비트일 수 있다.
LDPC 인코더(150)가 부호율이 3/15이고 길이가 16200인 LDPC 코드를 사용하는 경우, LDPC의 정보길이 Kldpc는 3240 비트이다. 이 때, 실제 전송하고자 하는 정보는 N
bch 비트이고, LDPC 정보부분의 길이는 Kldpc 비트이므로, Kldpc-N
bch만큼의 비트들을 비트 '0'으로 채워 넣는 과정인 제로 패딩이 수행된다.
이 때, 제로 패딩의 순서는 인코더의 성능을 결정하는 매우 중요한 역할을 하며, 제로 패딩의 순서를 쇼트닝 패턴 오더(shortening pattern order)라고 표현할 수 있다.
이 때, 제로 패딩된 비트들은 LDPC 인코딩시에만 사용되며, 실제로 전송되지는 않는다.
Kldpc 비트의 LDPC 정보 비트들 은 하기 수학식 1과 같이 N info_
group개의 그룹으로 나뉘어진다. 예를 들어, Kldpc가 3240인 경우, N info_group은 9이므로, LDPC 정보 비트들은 9개의 그룹들로 그룹핑될 수 있다.
[수학식 1]
이 때, Zj는 360개의 비트들로 이루어진 그룹을 나타낸다.
Kldpc 비트들 중에서 어느 부분을 제로 패딩할지는 아래의 과정에 의해 결정된다.
(Step 1) 먼저, 하기 수학식 2를 이용하여 모든 비트를 0으로 채울 그룹들의 수(number of groups in which all the bits shall be padded with '0')를 계산한다.
[수학식 2]
예를 들어, Kldpc가 3240이고 N
bch는 368인 경우, Npad는 7일 수 있다. Npad가 7이라는 것은 모든 비트를 0으로 채울 그룹의 수가 7개임을 나타낸다.
(Step 2) N
pad가 0이 아닌 경우에 하기 표 2의 쇼트닝 패턴 오더(shortening pattern order) π
S(j)에 따라 N
pad개의 그룹들에 대하여
순서로 제로 패딩한다. 이 때, π
S(j)는 j번째 비트 그룹의 쇼트닝 패턴 오더를 나타낼 수 있다.
Npad가 0인 경우에는 위의 절차(above procedure)가 생략된다.
[표 2]
상기 표 2의 쇼트닝 패턴 오더는 7로 인덱싱되는 8번째 그룹, 8로 인덱싱되는 9번째 그룹, 5로 인덱싱되는 6번째 그룹, 4로 인덱싱되는 5번째 그룹, 1로 인덱싱되는 2번째 그룹, 2로 인덱싱되는 3번째 그룹, 6으로 인덱싱되는 7번째 그룹, 3으로 인덱싱되는 4번째 그룹 및 0으로 인덱싱되는 첫 번째 그룹의 순서로 제로 패딩 대상이 됨을 의미한다. 즉, 상기 표 2의 예에서 7개의 그룹만이 제로 패딩의 대상으로 선택된다면, 7로 인덱싱되는 8번째 그룹, 8로 인덱싱되는 9번째 그룹, 5로 인덱싱되는 6번째 그룹, 4로 인덱싱되는 5번째 그룹, 1로 인덱싱되는 2번째 그룹, 2로 인덱싱되는 3번째 그룹, 6으로 인덱싱되는 7번째 그룹의 총 7개 그룹들이 제로 패딩 대상으로 선택된다.
특히, 상기 표 2의 쇼트닝 패턴 오더는 가변 길이 시그널링 정보에 최적화된 것일 수 있다.
모든 비트를 0으로 채울 그룹들의 수 및 해당 그룹들이 결정되면, 결정된 그룹들의 모든 비트는 '0'으로 채워진다.
(Step 3) 추가로, Zπs(Npad)에 상응하는 그룹에 대해서는 (Kldpc
- N
bch - 360 x Npad)만큼의 비트들을 해당 그룹의 앞에서부터 추가적으로 제로 패딩한다. 이 때, 해당 그룹의 앞에서부터 제로 패딩한다 함은 작은 인덱스에 해당하는 비트부터 제로 패딩함을 의미할 수 있다.
(Step 4) 제로 패딩이 모두 완료되면, 제로 패딩되지 않고 남은 부분에, BCH 인코딩된 Nbch비트들을 순차적으로 맵핑하여 LDPC 정보 비트열을 생성한다.
LDPC 인코더(150)는 제로 패딩 및 시그널링 정보가 맵핑된 Kldpc를 이용하여 LDPC 인코딩을 수행한다.
이 때, LDPC 인코더(150)는 부호율이 3/15이고, 길이가 16200인 LDPC 부호어에 상응하는 것일 수 있다. LDPC 부호어는 시스터매틱(systematic) 코드이며, LDPC 인코더(150)는 하기 수학식 3과 같은 출력 벡터를 생성한다.
[수학식 3]
예를 들어, Kldpc가 3240인 경우, 패리티 비트는 12960비트일 수 있다.
패리티 퍼뮤테이션부(160)는 패리티 펑처링(parity puncturing)을 하기 위한 사전 작업으로, 정보 부분이 아닌 패리티 부분에 대한 그룹-와이즈 패리티 인터리빙(group-wise parity interleaving)을 수행한다.
이 때, 패리티 퍼뮤테이션부(160)는 하기 수학식 4를 이용하여 패리티 인터리빙을 수행할 수 있다.
[수학식 4]
이 때, Yj는 j번째 그룹-와이즈 인터리빙된 비트 그룹(group-wise interleaved bit group)을 나타내며, π(j)는 그룹-와이즈 인터리빙 순서(order of group-wise interleaving)를 나타내는 것으로 하기 표 3과 같이 정의될 수 있다.
[표 3]
즉, 패리티 퍼뮤테이션부(160)는 LDPC 부호어의 16200개의 비트들(45개의 비트그룹들) 중 정보 비트에 해당하는 3240비트들(9개의 비트그룹들)은 그대로 출력하고, 12960개의 패리티 비트들을 각각 360개의 비트들을 포함하는 36개의 비트 그룹들로 그룹핑한 후 36개의 비트 그룹들의 순서를 상기 표 3에 상응하는 그룹-와이즈 인터리빙 순서(order of group-wise interleaving)로 인터리빙한다.
상기 표 3의 그룹-와이즈 인터리빙 순서는 9로 인덱싱되는 10번째 그룹 위치에 16으로 인덱싱되는 17번째 그룹을 위치시키고, 10으로 인덱싱되는 11번째 그룹 위치에 22로 인덱싱되는 23번째 그룹을 위치시키고, 11로 인덱싱되는 12번째 그룹 위치에 27로 인덱싱되는 28번째 그룹을 위치시키고, ..., 44로 인덱싱되는 45번째 그룹 위치에 42로 인덱싱되는 43번째 비트 그룹을 위치시키는 것을 나타낸다.
이 때, 앞쪽 위치의 비트 그룹(16으로 인덱싱되는 비트 그룹)이 중요한 패리티 비트에 해당하고, 뒤쪽 위치의 비트 그룹(42로 인덱싱되는 비트 그룹)이 중요하지 않은 패리티 비트에 해당할 수 있다.
특히, 상기 표 3의 그룹-와이즈 인터리빙 순서는 가변 길이 시그널링 정보에 최적화된 것일 수 있다.
패리티 인터리빙(패리티 퍼뮤테이션)이 완료된 후, 패리티 펑처링부(170)는 LDPC 부호어의 일부 패리티를 펑처링할 수 있다. 펑처링된 비트들은 전송되지 않는다. 이 때, 패리티 인터리빙이 완료된 후, 패리티 펑처링이 수행되기 전에 패리티 인터리빙된 LDPC 패리티 비트들의 일부분이 반복되는 패리티 리피티션(parity repetition)이 수행될 수도 있다.
패리티 펑처링부(170)는 최종 펑처링 사이즈를 계산하고, 계산된 최종 펑처링 사이즈에 해당하는 비트들을 펑처링한다. 펑처링될 비트수에 해당하는 최종 펑처링 사이즈는 BCH 인코딩된 비트열의 길이(N
bch)에 따라 다음과 같이 계산될 수 있다.
(Step 1) 임시 펑처링 사이즈(N
punc
_temp)는 하기 수학식 5를 이용하여 계산된다.
[수학식 5]
이 때, Kldpc는 LDPC 정보 비트열의 길이를 나타내고, N bch는 BCH 인코딩된 비트열의 길이를 나타내고, A는 제1 정수, B는 제2 정수를 나타낸다.
이 때, LDPC 정보 비트열의 길이 및 BCH 인코딩된 비트열의 길이의 차(Kldpc - N bch)는 제로 패딩 길이 또는 쇼트닝 길이에 해당할 수 있다.
상기 수학식 5의 계산에 필요한 펑처링 파라미터들(parameters for puncturing)은 하기 표 4와 같이 정의될 수 있다.
[표 4]
이 때, Nldpc
_parity는 LDPC 부호어의 패리티 비트수를 나타내고, ηMOD는 모듈레이션 오더(modulation order)를 나타낸다. 이 때, 모듈레이션 오더는 2일 수 있고, 이는 QPSK를 나타내는 것일 수 있다.
특히, 상기 표 4의 펑처링 파라미터들은 가변 길이 시그널링 정보에 최적화된 것일 수 있다.
(Step 2) 계산된 임시 펑처링 사이즈(N
punc
_temp)와 상기 표 4의 Nldpc
_parity를 이용하여, 하기 수학식 6과 같이 임시 전송 비트수(NFEC_temp)를 계산한다.
[수학식 6]
(Step 3) 계산된 임시 전송 비트수(NFEC_temp)를 이용하여 하기 수학식 7과 같이 전송 비트수(NFEC)를 계산한다.
[수학식 7]
전송 비트수(NFEC)는 펑처링 완료 후 정보부분과 패리티부분의 길이의 총 합을 의미한다.
(Step 4) 계산된 전송 비트수(NFEC)를 이용하여 하기 수학식 8와 같이 최종 펑처링 사이즈(Npunc)를 계산한다.
[수학식 8]
최종 펑처링 사이즈(Npunc)는 펑처링해야 하는 패리티의 사이즈를 의미한다.
즉, 패리티 펑처링부(170)는 패리티 퍼뮤테이션 및 리피티션이 완료된 전체 LDPC 코드워드의 마지막 Npunc개의 비트들을 펑처링할 수 있다.
제로 리무빙부(180)는 LDPC 코드워드의 정보 부분에서 제로 패딩된 비트들을 제거한다.
비트 인터리빙부(190)는 제로 리무빙된 LDPC 코드워드에 대하여 비트 인터리빙을 수행한다. 이 때, 비트 인터리빙은 기설정된 사이즈의 메모리에 LDPC 코드워드를 기록하는 방향과 읽는 방향을 다르게 하는 방식으로 수행될 수 있다.
컨스틸레이션 맵핑부(195)는 심볼 맵핑을 수행한다. 예를 들어, 컨스틸레이션 맵핑부(195)는 QPSK 방식으로 구현될 수 있다.
시그널링 정보 복호화 장치(300)는 L1-Basic이나 L1-Detail 등의 시그널링 정보를 복조 및 채널복호화한다.
시그널링 정보 복호화 장치(300)는 컨스틸레이션 디맵핑부(395), 비트 디인터리빙부(390), 역 제로 리무빙부(380), 역 패리티 펑처링부(370), 역 패리티 퍼뮤테이션부(360), LDPC 디코더(360), 역 제로 패딩부(340), BCH 디코더(330), 역 스크램블링부(320) 및 역 세그멘테이션부(310)를 포함한다.
도 1에 도시된 시그널링 정보 복호화 장치(300)는 BICM(Bit-Interleaved Coded Modulation) 디코딩 장치에 상응하는 것으로 볼 수 있고, 이 때, BICM 디코딩 장치의 오류정정복호화기는 도 1에 도시된 역 제로 리무빙부(380), 역 패리티 펑처링부(370), 역 패리티 퍼뮤테이션부(360), LDPC 디코더(360), 역 제로 패딩부(340), BCH 디코더(330), 역 스크램블링부(320) 및 역 세그멘테이션부(310)에 상응하는 것으로 볼 수 있다.
역 세그멘테이션부(310)는 세그먼테이션부(110)의 역과정을 수행한다.
역 스크램블링부(320)는 스크램블링부(120)의 역과정을 수행한다.
BCH 디코더(330)는 BCH 인코더(130)의 역과정을 수행한다.
역 제로 패딩부(340)는 제로 패딩부(140)의 역과정을 수행한다.
특히, 역 제로 패딩부(340)는 LDPC 디코더(350)로부터 LDPC 정보 비트열을 수신하고, 쇼트닝 패턴 오더를 이용하여 모든 비트가 0으로 채워진 그룹들을 선별하고, 상기 그룹들을 제외한 그룹들을 이용하여 상기 LDPC 정보 비트열로부터 BCH 인코딩된 비트열을 생성할 수 있다.
LDPC 디코더(350)는 LDPC 인코더(150)의 역과정을 수행한다.
역 패리티 퍼뮤테이션부(360)는 패리티 퍼뮤테이션부(160)의 역과정을 수행한다.
특히, 역 패리티 퍼뮤테이션부(360)는 LDPC 부호어의 패리티 비트들을 복수개의 그룹들로 분할하고, 상기 그룹들을 그룹-와이즈 인터리빙 오더를 이용하여 그룹-와이즈 디인터리빙하여 LDPC 디코딩될 LDPC 부호어를 생성할 수 있다.
역 패리티 펑처링부(370)는 패리티 펑처링부(170)의 역과정을 수행한다.
이 때, 역 패리티 펑처링부(370)는 LDPC 정보 비트열의 길이 및 BCH 인코딩된 비트열의 길이의 차에 곱해지는 제1 정수 및 상기 제1 정수와 상이한 제2 정수를 이용하여 임시 펑처링 사이즈(temporary puncturing size)를 계산하고, 상기 BCH 인코딩된 비트열의 길이와 12960의 합과 상기 임시 펑처링 사이즈의 차를 이용하여 임시 전송 비트수를 계산하고, 상기 임시 전송 비트수와 모듈레이션 오더를 이용하여 전송 비트수를 계산하고, 상기 임시 전송 비트수, 상기 전송 비트수 및 상기 임시 전송 비트수를 이용하여 최종 펑처링 사이즈를 계산하고, 상기 최종 펑처링 사이즈를 고려하여 상기 역 패리티 퍼뮤테이션부(360)로 제공되는 LDPC 부호어를 생성할 수 있다.
역 제로 리무빙부(380)는 제로 리무빙부(180)의 역과정을 수행한다.
비트 디인터리빙부(390)는 비트 인터리빙부(190)의 역과정을 수행한다.
컨스틸레이션 디맵핑부(395)는 컨스틸레이션 맵칭부(195)의 역과정을 수행한다.
도 2는 본 발명의 일실시예에 따른 시그널링 정보 부호화 방법을 나타낸 동작 흐름도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 시그널링 정보 부호화 방법은 먼저 시그널링 정보를 여러 그룹들로 분할한다(S210).
즉, 단계(S210)는 시그널링 정보의 길이가 기설정된 길이보다 긴 경우, 시그널링 정보를 여러 개의 LDPC 코드워드(codeword)에 나누어서 송신하기 위해 시그널링 정보를 여러 그룹들로 분할한다. 즉, 시그널링 정보를 하나의 LDPC 코드워드에 담지 못하는 경우에, 단계(S210)는 몇 개의 코드워드에 시그널링 정보를 담을지를 결정하고, 결정된 개수의 맞추어 시그널링 정보를 분할할 수 있다.
예를 들어, 시그널링 정보의 길이가 L1-Detail과 같이 가변인 경우, 시그널링 정보 부호화 방법은 단계(S210)를 포함할 수 있다.
예를 들어, 시그널링 정보의 길이가 L1-Basic과 같이 고정된 경우, 시그널링 정보 부호화 방법은 단계(S210)를 포함하지 않을 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 부호화 방법은 시그널링 정보를 보호하기 위한 스크램블링을 수행한다(S220).
이 때, 스크램블링은 본 기술분야에서 알려진 다양한 방식으로 수행될 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 부호화 방법은 패리티 길이 N
bch
_parity = 168비트인 BCH 패리티를 이용하여 BCH 인코딩을 수행한다(S230).
단계(S230)는 도 1에 도시된 BCH 인코더(130)에 의하여 수행되는 것일 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 부호화 방법은 BCH 인코딩 수행 후, 제로 패딩(zero padding) 또는 쇼트닝(shortening)을 수행한다(S240).
이 때, 제로 패딩은 도 1에 도시된 제로 패딩부(140)에 의하여 수행되는 것일 수 있다.
실제 전송하고자 하는 정보는 N
bch 비트이고, LDPC 정보부분의 길이는 Kldpc 비트이므로, 단계(S240)에서 Kldpc-N
bch만큼의 비트들을 비트 '0'으로 채워 넣는 과정인 제로 패딩이 수행된다.
단계(S240)의 제로 패딩은 상기 표 2의 쇼트닝 패턴 오더에 의하여 수행될 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 부호화 방법은 제로 패딩되고 시그널링 정보가 맵핑된 Kldpc를 이용하여 LDPC 인코딩을 수행한다(S250).
이 때, 단계(S250)는 부호율이 3/15이고, 길이가 16200인 LDPC 부호어에 상응하는 LDPC 인코더에 의하여 수행될 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 부호화 방법은 패리티 펑처링(parity puncturing)을 하기 위한 사전 작업으로, 정보 부분이 아닌 패리티 부분에 대한 그룹-와이즈 패리티 인터리빙(group-wise parity interleaving)을 수행한다(S260).
이 때, 단계(S260)는 상기 수학식 4 및 상기 표 3의 그룹-와이즈 인터리빙 순서에 따라 그룹-와이즈 패리티 인터리빙을 수행할 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 부호화 방법은 패리티 인터리빙(패리티 퍼뮤테이션)이 완료된 후, LDPC 부호어의 일부 패리티를 펑처링한다(S270).
단계(S270)에서 펑처링된 비트들은 전송되지 않는다.
이 때, 패리티 인터리빙이 완료된 후, 패리티 펑처링이 수행되기 전에 패리티 인터리빙된 LDPC 패리티 비트들의 일부분이 반복되는 패리티 리피티션(parity repetition)이 수행될 수도 있다.
단계(S270)의 패리티 펑처링은 도 1에 도시된 패리티 펑처링부(170)에 의하여 수행될 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 부호화 방법은 LDPC 코드워드의 정보 부분에서 제로 패딩된 비트들을 제거하는 제로 리무빙을 수행한다(S280).
또한, 본 발명의 일실시예에 따른 시그널링 정보 부호화 방법은 제로 리무빙된 LDPC 코드워드에 대하여 비트 인터리빙을 수행한다(S290). 이 때, 단계(S290)는 기설정된 사이즈의 메모리에 LDPC 코드워드를 기록하는 방향과 읽는 방향을 달리하는 방식으로 수행될 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 부호화 방법은 심볼 맵핑을 수행한다(S295).
도 3은 본 발명의 일실시예에 따른 시그널링 정보 복호화 방법을 나타낸 동작 흐름도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 시그널링 정보 복호화 방법은 안테나를 통하여 수신된 신호에 대하여 컨스틸레이션 디맵핑을 수행한다(S310).
이 때, 단계(S310)는 도 2에 도시된 단계(S295)의 역과정에 해당하는 것일 수 있고, 도 1에 도시된 컨스틸레이션 디맵핑부(395)에 의하여 수행되는 것일 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 복호화 방법은 비트 디인터리빙을 수행한다(S320).
이 때, 단계(S320)는 도 2에 도시된 단계(S290)의 역과정에 해당하는 것일 수 있고, 도 1에 도시된 비트 디인터리빙부(390)에 의하여 수행되는 것일 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 복호화 방법은 역 제로 리무빙을 수행한다(S330).
이 때, 단계(S330)는 도 2에 도시된 단계(S280)의 역과정에 해당하는 것일 수 있고, 도 1에 도시된 역 제로 리무빙부(380)에 의하여 수행되는 것일 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 복호화 방법은 역 패리티 펑처링을 수행한다(S340).
이 때, 단계(S340)는 도 2에 도시된 단계(S270)의 역과정에 해당하는 것일 수 있고, 도 1에 도시된 역 패리티 펑처링부(370)에 의하여 수행되는 것일 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 복호화 방법은 역 패리티 퍼뮤테이션을 수행한다(S350).
이 때, 단계(S350)는 도 2에 도시된 단계(S260)의 역과정에 해당하는 것일 수 있고, 도 1에 도시된 역 패리티 퍼뮤테이션부(360)에 의하여 수행되는 것일 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 복호화 방법은 LDPC 디코딩을 수행한다(S360).
이 때, 단계(S360)는 도 2에 도시된 단계(S250)의 역과정에 해당하는 것일 수 있고, 도 1에 도시된 LDPC 디코더(350)에 의하여 수행되는 것일 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 복호화 방법은 역 제로 패딩을 수행한다(S370).
이 때, 단계(S370)는 도 2에 도시된 단계(S240)의 역과정에 해당하는 것일 수 있고, 도 1에 도시된 역 제로 패딩부(340)에 의하여 수행되는 것일 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 복호화 방법은 BCH 디코딩을 수행한다(S380).
이 때, 단계(S380)는 도 2에 도시된 단계(S230)의 역과정에 해당하는 것일 수 있고, 도 1에 도시된 BCH 디코더(330)에 의하여 수행되는 것일 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 복호화 방법은 역 스크램블링을 수행한다(S390).
이 때, 단계(S390)는 도 2에 도시된 단계(S220)의 역과정에 해당하는 것일 수 있고, 도 1에 도시된 역 스크램블링부(320)에 의하여 수행되는 것일 수 있다.
또한, 본 발명의 일실시예에 따른 시그널링 정보 복호화 방법은 역 세그멘테이션을 수행한다(S395).
이 때, 단계(S395)는 도 2에 도시된 단계(S210)의 역과정에 해당하는 것일 수 있고, 도 1에 도시된 역 세그멘테이션부(310)에 의하여 수행되는 것일 수 있다.
도 4는 본 발명의 일실시예에 따른 방송 신호 프레임을 나타낸 도면이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 방송 신호 프레임은 부트스트랩(421), 프리앰블(423) 및 데이터 심볼들(425)로 이루어질 수 있다.
프리앰블(423)은 시그널링 정보를 포함한다.
도 4에 도시된 예에서, 프리앰블(423)은 L1-Basic 정보(431) 및 L1-Detail 정보(433)를 포함할 수 있다.
이 때, L1-Basic 정보(431)는 고정 길이 시그널링 정보일 수 있다.
예를 들어, L1-Basic 정보(431)는 200비트에 상응하는 것일 수 있다.
이 때, L1-Detail 정보(433)는 가변 길이 시그널링 정보일 수 있다.
예를 들어, L1-Detail 정보(433)는 200~2352비트에 상응하는 것일 수 있다.
LDPC(Low Density Parity Check) 부호는 AWGN(Additive White Gaussian Noise) 채널에서 쉐넌(Shannon) 한계에 근접하는 부호로 알려져 있으며, 터보부호보다 근사적으로(asymptotically) 우수한 성능, 병렬복호(parallelizable decoding) 등의 장점이 있다.
일반적으로, LDPC 부호는 랜덤하게 생성된 낮은 밀도의 PCM(Parity Check Matrix)에 의해 정의된다. 그러나, 랜덤하게 생성된 LDPC 부호는 PCM을 저장하기 위해 많은 메모리가 필요할 뿐만 아니라, 메모리를 액세스하는데 많은 시간이 소요된다. 이와 같은 문제를 해결하기 위해 쿼시-사이클릭(Quasi-cyclic) LDPC(QC-LDPC) 부호가 제안되었으며, 제로 메트릭스(zero matrix) 또는 CPM(Circulant Permutation Matrix)으로 구성된 QC-LDPC 부호는 하기 수학식 9에 의해 표현되는 PCM에 의해 정의된다.
[수학식 9]
여기서, J는 크기가 L x L인 CPM이며 하기 수학식 10과 같이 주어진다. 이하에서, L은 360일 수 있다.
[수학식 10]
또한, Ji는 L x L 항등행렬(identity matrix) I(=J0)를 오른쪽으로 i(0≤i<L)번 이동시킨 것이며, J∞는 L x L 영행렬(zero matrix)이다. 따라서, QC-LDPC 부호에서는 Ji를 저장하기 위해 지수(exponent) i만 저장하면 되기 때문에, PCM를 저장하기 위해 요구되는 메모리가 크게 줄어든다.
도 5는 본 발명의 일실시예에 따른 LDPC 부호에 상응하는 패리티 검사 행렬의 구조를 나타낸 도면이다.
도 5를 참조하면, 행렬 A와 C의 크기는 각각 g x K와 (N-K-g) x (K+g)이며, 크기가 L x L인 영행렬과 CPM으로 구성된다. 또한, 행렬 z는 크기가 g x (N-K-g)인 영행렬이고, 행렬 D는 크기가 (N-K-g) x (N-K-g)인 항등행렬(identity matrix)이며, 행렬 B는 크기가 g x g인 이중 대각행렬(dual diagonal matrix)이다. 이 때, 행렬 B는 대각선의 원소와 대각선의 아래쪽에 이웃하는 원소들 이외의 모든 원소들이 모두 0인 행렬일 수도 있고, 하기 수학식 11과 같이 정의될 수도 있다.
[수학식 11]
여기서, ILxL는 크기가 L x L인 항등행렬이다.
즉, 행렬 B는 일반적인(bit-wise) 이중 대각행렬일 수도 있고, 상기 수학식 11에 표기된 바와 같이 항등행렬을 블록으로 하는 블럭와이즈(block-wise) 이중 대각행렬일 수도 있다. 일반적인(bit-wise) 이중 대각행렬에 대해서는 한국공개특허 2007-0058438호 등에 상세히 개시되어 있다.
특히, 행렬 B가 일반적인(bit-wise) 이중 대각행렬인 경우, 이러한 행렬 B를 포함하는 도 5에 도시된 구조의 PCM에 행 퍼뮤테이션(row permutation) 또는 열 퍼뮤테이션(column permutation)을 적용하여 쿼시 사이클릭으로 변환할 수 있음은 당업자에게 자명하다.
이 때, N은 부호어(codeword)의 길이이며, K는 정보(information)의 길이를 각각 나타낸다.
본 발명에서는 아래 표 5와 같이 부호율(code rate)이 3/15이며, 부호어의 길이가 16200인 새롭게 설계된 QC-LDPC 부호를 제안한다. 즉, 길이가 3240인 정보를 입력 받아, 길이가 16200인 LDPC 부호어를 생성하는 LDPC 부호를 제안한다.
표 5는 본 발명의 QC-LDPC 부호의 A, B, C, D, Z 행렬의 크기를 나타낸다.
[표 5]
새롭게 설계된 LDPC 부호는 수열 형태로 표시될 수 있으며, 수열과 행렬(패리티 비트 체크 행렬)은 등가(equivalent) 관계가 성립하고, 수열은 하기 테이블과 같이 표현될 수 있다.
[테이블]
제1행: 8 372 841 4522 5253 7430 8542 9822 10550 11896 11988
제2행: 80 255 667 1511 3549 5239 5422 5497 7157 7854 11267
제3행: 257 406 792 2916 3072 3214 3638 4090 8175 8892 9003
제4행: 80 150 346 1883 6838 7818 9482 10366 10514 11468 12341
제5행: 32 100 978 3493 6751 7787 8496 10170 10318 10451 12561
제6행: 504 803 856 2048 6775 7631 8110 8221 8371 9443 10990
제7행: 152 283 696 1164 4514 4649 7260 7370 11925 11986 12092
제8행: 127 1034 1044 1842 3184 3397 5931 7577 11898 12339 12689
제9행: 107 513 979 3934 4374 4658 7286 7809 8830 10804 10893
제10행: 2045 2499 7197 8887 9420 9922 10132 10540 10816 11876
제11행: 2932 6241 7136 7835 8541 9403 9817 11679 12377 12810
제12행: 2211 2288 3937 4310 5952 6597 9692 10445 11064 11272
수열형태로 표기된 LDPC 부호는 DVB 표준에서 널리 사용되고 있다.
본 발명의 일실시예에 따르면, 수열형태로 표기된 LDPC 부호는 다음과 같이 부호화(encoding)된다. 정보크기(information size)가 K인 정보블록(information block) S=(s
0, s
1, ..., s
K
-
1)를 가정하자. LDPC 부호화기(encoder)는 크기가 K인 정보블록 S를 이용하여 크기가 N=K+M
1+M
2인 부호어(codeword)
를 생성한다. 여기서, M
1=g, M
2=N-K-g이다. 또한, M
1은 이중 대각행렬(dual diagonal matrix) B에 대응하는 패리티(parity)의 크기이며, M
2는 항등행렬 D에 대응하는 패리티의 크기이다. 부호화 과정은 다음과 같다.
-초기화(initialization):
[수학식 12]
-첫 번째
를 상기 테이블의 수열의 제1행에 명시된 패러티 비트 주소들(parity bit addresses)에서 누적(accumulate)한다. 예를 들어, 길이가 16200이며, 부호율이 3/15인 LDPC 부호에서의 누적 과정은 다음과 같다.
-다음 L-1개의 정보비트, 즉
들에 대해서는, 하기 수학식 13에서 계산된 패러티 비트 주소들에서 누적한다.
[수학식 13]
여기서, x는 첫 번째 비트
에 대응되는 패러티 비트 주소들, 즉 상기 테이블의 수열의 제1행에 표기된 패러티 비트 주소들을 나타내며, Q
1 = M
1/L, Q
2 = M
2/L, L = 360이다. 또한, Q
1과 Q
2는 하기 표 6에 정의된다. 예를 들어, 길이가 16200이며, 부호율이 3/15인 LDPC 부호는 M
1 = 1080, Q
1 = 3, M
2 = 11880, Q
2 = 33, L = 360이므로, 두 번째 비트
에 대해서는 상기 수학식 13을 이용하면 다음과 같은 연산이 수행된다.
표 6은 설계된 QC-LDPC 부호의 M1, M2, Q1, Q2의 크기를 나타낸다.
[표 6]
-다음의
부터
까지의 새로운 360개의 정보비트들은 상기 수열의 제2행을 이용하여, 상기 수학식 13으로부터 패러티 비트 누적기들의 주소를 계산하고, 누적한다.
-비슷한 방법으로, 새로운 L개의 정보비트들로 구성된 모든 그룹(group)들에 대해서, 상기 수열들의 새로운 행을 이용하여, 상기 수학식 13으로부터 패러티 비트 누적기들의 주소를 계산하고, 누적한다.
-
에서
까지의 모든 정보비트들이 사용된 후, i = 1부터 시작하여 하기 수학식 14의 연산을 순차적으로 수행한다.
[수학식 14]
-다음으로, 하기 수학식 15와 같은 패러티 인터리빙(interleaving)을 수행하면, 이중 대각행렬 B에 대응하는 패러티 생성이 완료된다.
[수학식 15]
K개의 정보비트(
)를 이용하여 이중 대각행렬 B에 대응하는 패러티 생성이 완료되면, M
1개의 생성된 패러티(
)을 이용하여, 항등행렬 D에 대응하는 패러티를 생성한다.
-
에서
까지의 L개의 비트들로 구성된 모든 그룹(group)들에 대해서, 상기 수열들의 새로운 행(이중 대각행렬 B에 대응하는 패러티를 생성할 때 이용한 마지막 행의 바로 다음 행부터 시작)과 상기 수학식 13을 이용하여 패러티 비트 누적기들의 주소를 계산하고, 관련 연산을 수행한다.
-
에서
까지의 모든 비트들이 사용된 후, 하기 수학식 16과 같은 패러티 인터리빙을 수행하면, 항등행렬 D에 대응하는 패러티 생성이 완료된다.
[수학식 16]
도 6은 도 1에 도시된 제로 패딩부의 동작의 일 예를 나타낸 도면이다.
도 6을 참조하면, 쇼트닝 패턴 오더가 [4 1 5 2 8 6 0 7 3]인 경우의 제로 패딩 동작을 알 수 있다.
도 6에 도시된 예에서, LDPC 정보 비트열의 길이는 3240이고, 따라서 LDPC 정보 비트들은 9개의 360비트들의 그룹들로 구성된다.
먼저, 상기 수학식 2를 이용하여 모든 비트를 0으로 채울 그룹들의 개수를 결정하면, (3240-368)/360 = 7.9이므로 7개의 그룹들이 0으로 채워질 그룹들로 결정된다.
또한, 쇼트닝 패턴 오더가 [4 1 5 2 8 6 0 7 3]이므로, 4에 의하여 인덱싱되는 5번째 그룹(610), 1에 의하여 인덱싱되는 두 번째 그룹(620), 5에 의하여 인덱싱되는 여섯 번째 그룹(630), 2에 의하여 인덱싱되는 세 번째 그룹(640), 8에 의하여 인덱싱되는 9번째 그룹(650), 6에 의하여 인덱싱되는 7번째 그룹(660), 0에 의하여 인덱싱되는 첫 번째 그룹(670)의 총 7개 그룹들이 선택되어 그룹 내의 모든 비트들이 0으로 채워진다.
또한, 0으로 인덱싱되는 첫 번째 그룹(670)의 다음 순서는 7로 인덱싱되는 8번째 그룹(680)이므로, 7로 인덱싱되는 8번째 그룹(680)의 앞에서부터 (3240 - 368 - (360 x 7)) = 352개의 비트들이 0으로 채워진다.
제로 패딩이 완료된 후, 3으로 인덱싱되는 4번째 그룹(690)의 360비트 및 7로 인덱싱되는 8번째 그룹(680)의 남은 8비트의 총 368비트에 Nbch(=368) 비트들의 BCH 인코딩된 비트열이 순차적으로 맵핑된다.
도 7은 도 1에 도시된 패리티 퍼뮤테이션부의 동작의 일 예를 나타낸 도면이다.
도 7을 참조하면, 그룹-와이즈 인터리빙 오더가 시퀀스 [20 23 25 32 38 41 18 9 10 11 31 24 14 15 26 40 33 19 28 34 16 39 27 30 21 44 43 35 42 36 12 13 29 22 37 17]에 상응하는 경우의 패리티 퍼뮤테이션 동작을 알 수 있다.
Kldpc(=3240)개의 정보 비트들은 인터리빙되지 않고, 36개의 360비트들의 그룹들(총 12960비트들)이 인터리빙 대상이 된다.
그룹-와이즈 인터리빙 오더가 시퀀스 [20 23 25 32 38 41 18 9 10 11 31 24 14 15 26 40 33 19 28 34 16 39 27 30 21 44 43 35 42 36 12 13 29 22 37 17]에 상응하므로, 패리티 퍼뮤테이션부는 9로 인덱싱되는 10번째 그룹 위치(710)에 20으로 인덱싱되는 21번째 그룹을 위치시키고, 10으로 인덱싱되는 11번째 그룹 위치(720)에 23으로 인덱싱되는 24번째 그룹을 위치시키고, ..., 43으로 인덱싱되는 44번째 그룹 위치(730)에 37로 인덱싱되는 38번째 그룹을 위치시키고, 44로 인덱싱되는 45번째 그룹 위치(740)에 17로 인덱싱되는 18번째 비트 그룹을 위치시킨다.
도 8은 도 1에 도시된 제로 리무빙부의 동작의 일 예를 나타낸 도면이다.
도 8을 참조하면, 제로 리무빙부는 LDPC 코드워드의 정보 부분에서 제로 패딩된 부분들은 제거하여, 전송을 위한 시그널링 정보를 생성하는 것을 알 수 있다.
도 9는 본 발명의 일실시예에 따른 패리티 인터리빙 장치를 나타낸 블록도이다.
도 9를 참조하면, 본 발명의 일실시예에 따른 패리티 인터리빙 장치는 프로세서(920) 및 메모리(910)를 포함한다.
프로세서(920)는 길이가 16200이고 부호율이 3/15인 LDPC 부호어의 패리티 비트들을 복수개의 그룹들로 분할하고, 그룹-와이즈 인터리빙 오더를 이용하여 상기 그룹들을 그룹-와이즈 인터리빙하여 패리티 펑처링을 위한 패리티 비트열을 생성한다.
이 때, LDPC 부호어는 제로 패딩된 가변 길이 시그널링 정보를 정보 비트들로써 포함할 수 있다. 이 때, 가변 길이 시그널링 정보는 L1-Detail 정보일 수 있다.
이 때, 패리티 비트들은 12960 비트이고, 상기 복수개의 그룹들은 각각 360개의 비트들로 구성된 36개의 그룹들일 수 있다.
이 때, LDPC 부호어는 쇼트닝 패턴 오더를 이용하여 선택된 정보 비트 그룹들의 모든 비트를 0으로 채워서 생성된 LDPC 정보 비트열을 포함할 수 있다.
이 때, 그룹-와이즈 인터리빙 오더는 상기 36개의 그룹들의 순서를 나타내는 36개의 숫자들로 이루어진 시퀀스에 상응하는 것일 수 있다.
이 때, 그룹-와이즈 인터리빙 오더는 상기 표 3에 표시된 바와 같이, 시퀀스 [16 22 27 30 37 44 20 23 25 32 38 41 9 10 17 18 21 33 35 14 28 12 15 19 11 24 29 34 36 13 40 43 31 26 39 42]에 상응하는 것일 수 있다.
이 때, 패리티 펑처링은 최종 펑처링 사이즈에 상응하는 상기 LDPC 부호어의 뒤쪽 비트들을 펑처링하고, 상기 최종 펑처링 사이즈는 임시 펑처링 사이즈(temporary puncturing size), 전송 비트수 및 임시 전송 비트수를 이용하여 계산되고, 상기 전송 비트수는 상기 임시 전송 비트수 및 모듈레이션 오더(modulation order)를 이용하여 계산되고, 상기 임시 전송 비트수는 BCH 인코딩된 비트열의 길이와 12960의 합과 상기 임시 펑처링 사이즈의 차를 이용하여 계산되고, 상기 임시 펑처링 사이즈는 상기 LDPC 정보 비트열의 길이 및 BCH 인코딩된 비트열의 길이의 차에 곱해지는 제1 정수 및 상기 제1 정수와 상이한 제2 정수를 이용하여 계산되는 것일 수 있다.
메모리(910)는 상기 패리티 펑처링을 위한 패리티 비트열을 패리티 펑처링부로 제공한다.
도 9에 도시된 패리티 인터리빙 장치는 도 1에 도시된 패리티 퍼뮤테이션부(160)에 상응하는 것일 수 있다.
또한, 도 9에 도시된 구조는 역 패리티 인터리빙 장치에 상응하는 것일 수 있다. 이 때, 역 패리티 인터리빙 장치는 도 1에 도시된 역 패리티 퍼뮤테이션부(360)에 상응하는 것일 수 있다.
도 9에 도시된 구조가 역 패리티 인터리빙 장치에 상응하는 경우, 메모리(910)는 패리티 비트열을 저장한다.
프로세서(920)는 상기 패리티 비트열을 복수 개의 그룹들로 분할하고, 상기 그룹들을 그룹-와이즈 인터리빙 오더를 이용하여 그룹-와이즈 디인터리빙하여 길이가 16200이고 부호율이 3/15인 LDPC 부호어의 패리티 비트들을 생성한다.
이 때, LDPC 부호어는 가변 길이 시그널링 정보에 상응하는 것일 수 있다.
이 때, 패리티 비트들은 12960 비트이고, 상기 복수개의 그룹들은 각각 360개의 비트들로 구성된 36개의 그룹들일 수 있다.
이 때, 그룹-와이즈 인터리빙 오더는 상기 36개의 그룹들의 순서를 나타내는 36개의 숫자들로 이루어진 시퀀스에 상응하는 것일 수 있다.
이 때, 그룹-와이즈 인터리빙 오더는 상기 표 3에 표시된 바와 같이, 시퀀스 [16 22 27 30 37 44 20 23 25 32 38 41 9 10 17 18 21 33 35 14 28 12 15 19 11 24 29 34 36 13 40 43 31 26 39 42]에 상응하는 것일 수 있다.
도 10은 본 발명의 일실시예에 따른 패리티 인터리빙 방법을 나타낸 동작 흐름도이다.
도 10을 참조하면, 본 발명의 일실시예에 따른 패리티 인터리빙 방법은, 길이가 16200이고 부호율이 3/15인 LDPC 부호어의 패리티 비트들을 복수개의 그룹들로 분할한다(S1010).
이 때, LDPC 부호어는 제로 패딩된 가변 길이 시그널링 정보를 정보 비트들로써 포함할 수 있다.
이 때, 패리티 비트들은 12960 비트이고, 상기 복수개의 그룹들은 각각 360개의 비트들로 구성된 36개의 그룹들일 수 있다.
이 때, LDPC 부호어는 쇼트닝 패턴 오더를 이용하여 선택된 정보 비트 그룹들의 모든 비트를 0으로 채워서 생성된 LDPC 정보 비트열을 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 패리티 인터리빙 방법은, 그룹-와이즈 인터리빙 오더를 이용하여 상기 그룹들을 그룹-와이즈 인터리빙하여 패리티 펑처링을 위한 패리티 비트열을 생성한다(S1020).
도 10에는 명시적으로 도시되지 아니하였으나, 본 발명의 일실시예에 따른 패리티 인터리빙 방법은 상기 패리티 펑처링을 위한 패리티 비트열을 패리티 펑처링부로 제공하는 단계를 더 포함할 수 있다.
이 때, 그룹-와이즈 인터리빙 오더는 상기 36개의 그룹들의 순서를 나타내는 36개의 숫자들로 이루어진 시퀀스에 상응하는 것일 수 있다.
이 때, 그룹-와이즈 인터리빙 오더는 상기 표 3에 표시된 바와 같이, 시퀀스 [16 22 27 30 37 44 20 23 25 32 38 41 9 10 17 18 21 33 35 14 28 12 15 19 11 24 29 34 36 13 40 43 31 26 39 42]에 상응하는 것일 수 있다.
이 때, 패리티 펑처링은 최종 펑처링 사이즈에 상응하는 상기 LDPC 부호어의 뒤쪽 비트들을 펑처링하고, 상기 최종 펑처링 사이즈는 임시 펑처링 사이즈(temporary puncturing size), 전송 비트수 및 임시 전송 비트수를 이용하여 계산되고, 상기 전송 비트수는 상기 임시 전송 비트수 및 모듈레이션 오더(modulation order)를 이용하여 계산되고, 상기 임시 전송 비트수는 BCH 인코딩된 비트열의 길이와 12960의 합과 상기 임시 펑처링 사이즈의 차를 이용하여 계산되고, 상기 임시 펑처링 사이즈는 상기 LDPC 정보 비트열의 길이 및 BCH 인코딩된 비트열의 길이의 차에 곱해지는 제1 정수(7) 및 상기 제1 정수와 상이한 제2 정수(0)를 이용하여 계산될 수 있다.
이상에서와 같이 본 발명에 따른 패리티 인터리빙 장치, 패리티 인터리빙 방법 및 역 패리티 인터리빙 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.