Patent KR-101512078-B1 (KR)
Title: 특정밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치
IPC: H03M13/00
Filed: 2013-02-07
Granted: 2015-04-14
Abstract: 본 발명은 특정 밀도를 기반으로 하는 저밀도 역 코드를 이용한 부호화/복호화 방법 및 장치에 관한 것이다.  
부호화 방법은 원본 메시지 데이터의 각 비트를 n 개의 열(column)로 정렬한 제1 행(row)으로 배열하거나 원본 메시지 데이터의 각 비트를 n 개의 행(row)으로 정렬한 제1 열(column)로 배열하고, 상기 원본 메시지 데이터를 제1 행에 배열하는 경우에는 상기 제1 행에서 최초로 '1'이 존재하는 열을 제i 열이라고 할 때 제2 행부터 제i 행까지 1≤j＜i를 만족하는 j에 대하여 제j+1 행의 제j 열의 성분을 '1'로 하고, 제j+1 행의 나머지 성분은 '0'이 되도록 구성하고, i＜j≤n을 만족하는 j에 대하여 상기 제1 행의 제j 열의 성분이 '0'이면 제j 행의 제j 열의 성분은 '1'이고 제j 행의 나머지 성분은 '0'으로 구성하며, 상기 제1 행의 제j 열의 성분이 '1'이면 제j 행의 제1 열부터 제j-1 열까지 성분은 '0'으로 하고, 제j 행의 제j  열부터 제n 열까지 상기 제 1행의 제j 열부터 제n 열까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성하고, 상기 원본 메시지 데이터를 제1 열에 배열하는 경우에는 상기 제1 열에서 최초로 '1'이 존재하는 행을 제i 행이라고 할 때 제2 열부터 제i 열까지 1≤j＜i를 만족하는 j에 대하여 제j+1 열의 제j 행의 성분을 '1'로 하고, 제j+1 열의 나머지 성분은 '0'이 되도록 구성하고, i＜j≤n을 만족하는 j에 대하여 상기 제1 열의 제j 행의 성분이 '0'이면 제j 열의 제j 행의 성분은 '1'이고 제j 열의 나머지 성분은 '0'으로 구성하며, 상기 제1 열의 제j 행의 성분이 '1'이면 제j 열의 제1 행부터 제j-1 행까지 성분은 '0'으로 하고, 제j 열의 제j  행부터 제n 행까지 상기 제 1열의 제j 행부터 제n 행까지의 성분과 동일하도록 구성하여 이루어진 n x n 크기의 제1 행렬을 생성하는 단계 ; 상기 제1 행렬의 역행렬을 구하고, 상기 역행렬에 대하여 2를 법(modulus)으로 하는 법 연산(modulus operation)을 적용하여 제2 행렬을 생성하는 단계; 및 상기 제2 행렬을 이용하여 코드워드(codeword)를 생성하여 전송하는 단계를 포함하는 특정 밀도를 기반으로 하는 저밀도 역 코드(sparse inverse code)를 이용한 부호화 방법으로 이루어진다.  
또한, 복호화 방법은 전송 메시지를 수신하는 단계; 상기 수신한 전송 메시지를 n 블록으로 구분하고, 상기 n 블록의 각 블록을 순서대로 행 또는 열로 배열하여 n x n 크기의 제3 행렬을 생성하는 단계; 상기 n 블록의 각 블록을 순서대로 행으로 배열하여 제3 행렬을 생성한 경우에는 상기 제3 행렬에서 행의 성분들의 합이 2 이상인 최초의 행을 제i 행 또는 제1 열의 성분이 '1'이고 동시에 그 행의 성분들의 합이 2 이상인 행을 제i 행이라고 할 때, 1≤j＜i에 대하여 제3 행렬의 제j 행의 제j+1 열의 성분이 '1'이고 제j 행의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 행의 제1 열부터 제i-1 열까지 성분은 '0'으로 하고 제i 행의 제i 열의 성분은 '1'로 하며, i+1≤j≤n에 대하여 제3 행렬의 제j 행의 제j 열 성분을 '1'로 하고 제j 행의 제1 열부터 제j-1 열까지의 성분은 '0'으로 하여 제4 행렬을 생성하고, 상기 n 블록의 각 블록을 순서대로 열로 배열하여 제3 행렬을 생성한 경우에는 상기 제3 행렬에서 열의 성분들의 합이 2 이상인 최초의 열을 제i 열 또는 제1 행의 성분이 '1'이고 동시에 그 열의 성분들의 합이 2 이상인 열을 제i 열이라고 할 때, 1≤j＜i에 대하여 제3 행렬의 제j 열의 제j+1 행의 성분이 '1'이고 제j 열의 나머지 성분은 '0'으로 하며, 제3 행렬의 제i 열의 제1 행부터 제i-1 행까지 성분은 '0'으로 하고 제i 열의 제i 행의 성분은 '1'로 하며, i+1≤j≤n에 대하여 제3 행렬의 제j 열의 제j 행 성분을 '1'로 하고 제j 열의 제1 행부터 제j-1 행까지의 성분은 '0'으로 하여 제4 행렬을 생성하는 단계; 상기 제4 행렬에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 행에 배치되는 경우에, 행(row) 복호화 메시지는 1≤j≤n에 대하여 제i 행의 성분의 합이 '2'이상인 마지막 행을 제j 행이라고 할 때, 1≤i≤j에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 제j 행의 제j 열을 제외하고 j＜k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 행의 제k 열의 성분이 제j 행의 제j 열의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 열의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제k 번째의 성분은 '1'로 하며, j＜i＜k와 k＜i≤n을 만족하는 i에 대하여 제i 행의 성분의 합이 '2'미만이면 행(row) 복호화 메시지의 제i 번째의 성분은 '0'이고 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 열(column) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 열의 성분의 합이 '2' 미만이면 열(column)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 열의 성분의 합이 '2' 이상이면 열(column)복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성하고, 상기 제4 행렬에서 제1 행렬을 생성할 때 n개의 비트로 구성된 메시지 데이터가 열에 배치되는 경우에, 열(column) 복호화 메시지는 1≤i≤n에 대하여 제i 열의 성분의 합이 '2'이상인 마지막 열을 제j 열이라고 할 때, 1≤i≤j에 대하여 제i 열의 성분의 합이 '2'미만이면 열(row) 복호화 메시지의 제i 번째의 성분은  '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 제j 열의 제j 행을 제외하고 j＜k를 만족하는 k에 대하여 상기 제4 행렬에서 제j 열의 제k 행의 성분이 제j 열의 제j 행의 성분을 제외한 최초의 '1'이고 상기 제4 행렬의 제k 행의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제k 번째의 성분은 '1'로 하며, j＜i＜k와 k＜i≤n을 만족하는 i에 대하여 제i 열의 성분의 합이 '2'미만이면 열(column) 복호화 메시지의 제i 번째의 성분은  '0'이고 제i 열의 성분의 합이 '2' 이상이면 열(column) 복호화 메시지의 제i 번째의 성분은 '1'로 하고, 행(row) 복호화 메시지는 상기 제4 행렬에서 1≤i≤n에 대하여 제i 행의 성분의 합이 '2' 미만이면 행(row)복호화 메시지의 제i 번째의 성분은 '0'이고 상기 제4 행렬에서 제i 행의 성분의 합이 '2' 이상이면 행(row) 복호화 메시지의 제i 번째의 성분은 '1'로 하여 행(row) 복호화 메시지와 열(column) 복호화 메시지를 생성하는 행(row)과 열(column) 복호화 메시지 단계; 및 1≤i≤n에 대하여 상기 행(row) 복호화 메시지의 제i 번째 성분과 열(column) 복호화 메시지의 제i 번째 성분을 비교하여 동일한 경우에 복호화 메시지의 제i 번째 성분을 상기 동일한 값으로 선택하여 복호화하고 상기 행(row) 복호화 메시지와 열(column) 복호화 메시지를 비교하여 동일하지 않은 경우에는 메시지 입력 데이터의 길이 n과 동일한 길이의 복호화 메시지를 얻을 때까지 상기 유사한 부호화 과정과 복호화 과정을 반복 실행하며 이전 단계에서 이미 복호화된 메시지의 성분은 최종 복호화 메시지 성분으로 정하여 그대로 두고 이전단계에서 동일하지 않았던 성분들을 복호화하는 복호화 단계로 이루어진다.