KR100942211B1 - 부호화 장치, 복호 장치, 부호화 프로그램을 기록한 기록매체, 복호 프로그램을 기록한 기록 매체, 데이터 전송시스템 - Google Patents

부호화 장치, 복호 장치, 부호화 프로그램을 기록한 기록매체, 복호 프로그램을 기록한 기록 매체, 데이터 전송시스템 Download PDF

Info

Publication number
KR100942211B1
KR100942211B1 KR20080002126A KR20080002126A KR100942211B1 KR 100942211 B1 KR100942211 B1 KR 100942211B1 KR 20080002126 A KR20080002126 A KR 20080002126A KR 20080002126 A KR20080002126 A KR 20080002126A KR 100942211 B1 KR100942211 B1 KR 100942211B1
Authority
KR
South Korea
Prior art keywords
data
unit
acquisition
pairs
decoding
Prior art date
Application number
KR20080002126A
Other languages
English (en)
Other versions
KR20080066571A (ko
Inventor
히로아키 가메야마
유이치 사토
신이치 사자와
Original Assignee
후지쯔 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Publication of KR20080066571A publication Critical patent/KR20080066571A/ko
Application granted granted Critical
Publication of KR100942211B1 publication Critical patent/KR100942211B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0072Error control for data other than payload data, e.g. control data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0096Channel splitting in point-to-point links

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명은 효율적으로 데이터를 분산하여 전송하고, 복원할 수 있는 부호화 장치, 복호 장치, 부호화 프로그램, 복호 프로그램, 데이터 전송 시스템을 제공하는 것을 목적으로 한다.
원데이터를 분할함으로써 N개의 부분 데이터를 생성하고, 이 N개의 부분 데이터에 순서를 나타내는 번호를 붙이는 분할부와, N개의 번호 중에서 적어도 하나의 번호를 지정하는 데이터인 제1 데이터를 취득하는 제1 취득부와, 제1 데이터에 의해 지정된 번호가 붙여진 부분 데이터에 대하여 소정의 연산을 행함으로써 제2 데이터를 산출하는 산출부와, 제1 취득부의 처리와 산출부의 처리를 L회 반복하여, 제1 취득부에 의해 얻어진 제1 데이터와 이 제1 데이터에 기초하여 산출부에 의해 얻어진 제2 데이터로 이루어진 L개의 쌍을 출력하는 출력부와, L개의 쌍을 분할하여 복수의 정보 송신 장치에 배포하는 배포부를 구비하였다.

Description

부호화 장치, 복호 장치, 부호화 프로그램을 기록한 기록 매체, 복호 프로그램을 기록한 기록 매체, 데이터 전송 시스템{ENCODING APPARATUS, DECODING APPARATUS, RECORDING MEDIUM HAVING ENCODING PROGRAM RECORDED, RECORDING MEDIUM HAVING DECODING PROGRAM RECORDED, DATA TRANSFER SYSTEM}
본 발명은 데이터를 분산시켜 전송하는 부호화 장치, 복호 장치, 부호화 프로그램, 복호 프로그램, 데이터 전송 시스템에 관한 것이다.
송신 장치로부터 수신 장치로의 데이터 전송이 한창일 때에, 수신 상태의 변화나 통신의 혼잡 등에 의해 데이터의 일부가 소실되어 버리는 경우가 있다. 이러한 경우, 수신 장치로부터 송신 장치로 어떠한 메시지를 보낼 수 있는 구성이라면, 소실된 데이터를 다시 전송함으로써 원래의 데이터를 복원할 수 있다. 그러나, 멀티캐스트 등, 수신 장치로부터 송신 장치로 메시지를 보낼 수 없는 구성의 경우, 소실된 데이터만을 다시 전송하는 것이 곤란하기 때문에, 몇 가지 데이터 전송 방식이 제안되어 있다.
또한, 본 발명이 관련된 종래 기술로서, 연속된 소실에 대한 내성을 높이는 비동기 전송 모드 통신 방식이 있다(예컨대, 특허 문헌 1 참조). 또한, 배타적 논 리합 연산을 이용하여 패리티 데이터를 생성하는 송수신 시스템이 있다(예컨대, 일본 특허 문헌 2 참조).
[특허 문헌 1] 일본 특허 공개 평성 제5-235979호 공보
[특허 문헌 2] 일본 특허 공개 제2005-223683호 공보
수신 장치로부터 송신 장치로 메시지를 보낼 수 없는 구성인 경우를 위한 몇 가지 데이터 전송 방식이 제안되어 있다.
우선, 데이터 캐로셀(carousel)이라 불리는 데이터 전송 방식이 있다. 디지털 방송 등에서 이용되고 있는 데이터 전송 방식으로서, 송신 장치는 송신할 데이터를 복수개로 분할한 후, 회전목마와 같이 반복하여 송신하기 때문에, 이러한 이름이 붙어 있다. 데이터 캐로셀 방식에서는 이하와 같이 원데이터(D)를 복수(n개)의 부분 데이터열로 분할하고, 부분 데이터를 몇 회에 나누어 반복하여 송신한다.
원데이터 D={D1, D2, ···, Dn}
송신 데이터 D'={D1, D2, ···, Dn, D1, D2,···, Dn, D1, D2,·‥}
수신 데이터 D"={D1, D3, ···, Dn, D1, D2}
이 방식에 따르면, 전술한 예와 같이, 수신 데이터(D2)가 소실되어 버린 경에도, 1주기분 대기하면 또 동일한 데이터가 전송되어 오기 때문에, 원데이터를 복원하는 것이 가능하다. 그러나, 송신해야 하는 데이터량이 증가되어 버린다고 하는 문제가 있다. 또한, 1주기분 대기했다고 해도 동일한 부분 데이터가 소실되는 경우도 있고, 그 경우, 1주기분 더 대기하지 않으면 안 되는 경우도 발생할 수 있다.
다음에, 미리 송신할 데이터에 패리티라고 불리는 용장(冗長)한 데이터를 부가하여 송신하는 데이터 전송 방식이 있다. 이 데이터 전송 방식은 이하에 나타내 는 바와 같이, 원데이터(D)가 n개의 부분 데이터열로서 표시된다고 했을 경우, 일정수(정수)(m개)의 부분 데이터마다 배타적 논리합(XOR: eXclusive OR)을 계산한 것을 패리티 데이터로서 원데이터와 함께 송신하는 방식이다. 이후, "+"는 배타적 논리합 연산자를 나타내는 것으로 한다.
원데이터 D={D1, D2, ···, Dn}
송신 데이터 D'={D1, D2, ···, Dm, P1, Dm+1, ···, Dn, Pk}
패리티 데이터 Pk=Dk+Dk+1+ ···+Dk+m-1
이 방식에 따르면, 송신 도중에 부분 데이터 중 하나가 소실되어 버려도 나머지 부분 데이터와 패리티 데이터의 배타적 논리합을 계산함으로써, 소실된 데이터를 복원할 수 있다. 복원한 예를 이하에 나타낸다.
원데이터 D={D1, D2, D3}
송신 데이터 D'={D1, D2, D3, P1}
패리티 데이터 P1=D1+D2+D3
수신 데이터 D"={D1, D2, P1}(D3가 소실)
소실된 데이터의 복원: D3=D1+D2+P1
그러나, 패리티 데이터 1개에 대해, 1개까지의 데이터 소실은 복원할 수 있지만, 복수의 데이터가 소실되면 복원할 수 없다고 하는 문제가 있다. 특허 문헌 2의 기술에 따르면, 연속된 부분 데이터가 아니라 n-1개 간격으로 부분 데이터의 배 타적 논리합을 취함으로써 연속된 소실에 대한 내성을 높이고 있지만, 랜덤으로 소실된 경우의 내성이 낮아진다고 하는 문제가 있다.
그래서, 패리티를 복수 작성하여 1개 이상의 데이터의 소실도 복원할 수 있도록 한 데이터 전송 방식이 제안되고 있다. 여기서, 패리티를 작성하기 위해서 리드 솔로몬 부호(Reed-Solomon Code)와 같은 오류 정정 부호가 이용되고 있다. 리드 솔로몬 부호에서는, 이하와 같이 원데이터(D)를 복수(n개)의 부분 데이터로 분할하고, 갈로아 체(Galois Field)라고 불리는 유한체로부터 k개의 선형 독립의 벡터(α11, α21, α31, ···αn1)를 선택하여 이하와 같이 패리티 데이터를 작성한다.
원데이터 D={D1, D2, D3, ···, Dn}
송신 데이터 D'={C1, C2, C3, ···, Cm}
패리티 데이터 Ck=α11·D121·D2+···+αn1·Dn
데이터를 복원할 때에는 n개의 부분 데이터가 취득되고 있으면, 대응하는 n개의 벡터로부터 n×n의 행렬 A=(αij)1i,jn을 구성하고, 취득한 부분 데이터에 A의 역행열을 곱하면 원데이터를 취득할 수 있다. 즉, 이하와 같이 하여 원데이터를 복원한다.
Figure 112008001473445-pat00001
Figure 112008001473445-pat00002
여기서, n×n의 역행열을 구할 때에 O(n3)의 계산량이 필요해지기 때문에, n의 값이 커지면 매우 큰 계산 시간이 필요해진다고 하는 문제가 있다.
그래서, 특허 문헌 2의 기술과 같이 패리티 데이터의 생성 방법에 배타적 논리합(XOR)만을 이용함으로써 계산량을 줄이고 있는 것도 있다.
이상, 송신 장치가 1개인 경우에 대해서 설명해 왔지만, 송신 장치가 1개이면 송신 장치에 큰 부하가 걸리게 된다. 또한, 수신 장치측의 통신 속도가 송신 장치측의 통신 속도보다 빠른 경우, 송신 장치의 속도가 병목이 되어 수신 장치측이 기대하는 속도로 데이터를 전송할 수 없게 될 가능성이 있다. 이러한 경우, 송신 장치를 복수대 준비하고, 수신 장치는 임의의 송신 장치로부터 데이터를 수신하도록 함으로써, 송신 장치의 부하를 분산시킬 수 있다.
전술한 데이터 전송 방식을 송신 장치가 복수인 경우에 확장하고자 하면, 이하의 2개의 데이터 전송 방식을 생각할 수 있다.
·데이터 전송 방식 A
모든 송신 장치가 원데이터를 유지하고, 상기 방식을 이용하여 데이터를 송신한다.
·데이터 전송 방식 B
원데이터를 분할하여 각각의 데이터로 하고, 각 송신 장치가 각각의 데이터를 송신한다.
도 10은 종래의 데이터 전송 방식 A의 동작의 일례를 도시한 블록도이다. 이 데이터 전송 방식 A는 분산기(111), 2개의 송신기(112a, 112b), 수신기(113)를 구비한다. 분산기(111)는 부분 데이터(A, B, C, D, E)로 이루어진 송신해야 할 원데이터 전부를 송신기(112a, 112b)의 양쪽으로 송신한다. 다음에, 송신기(112a, 112b)는 각각 부분 데이터(A, B, C, D, E) 전부를 수신기(113)로 송신한다. 수신기(113)는 송신기(112a, 112b)로부터 수신한 부분 데이터로부터 원데이터를 복원한다.
이 데이터 전송 방식 A에 따르면, 송신기의 수가 증가하면, 원데이터를 복원할 수 있게 될 가능성이 높아지지만 각 송신기가 동일한 데이터를 가지고 있기 때문에 송신기가 보존하는 데이터량이나 송신하는 총데이터량의 관점에서 낭비가 크다.
도 11은 종래의 데이터 전송 방식 B의 동작의 일례를 도시한 블록도이다.
이 데이터 전송 방식 B는 분산기(121), 2개의 송신기(122a, 122b), 수신기(123)를 구비한다. 분산기(121)는 부분 데이터(A, B, C, D, E)로 이루어진 송신해야 할 원데이터를 분할하고, 부분 데이터(A, B, C)를 송신기(122a)로 송신하며, 부분 데이터(D, E)를 송신기(122b)로 송신한다. 수신기(123)는 송신기(122a, 122b)로부터 수신한 부분 데이터로부터 원데이터를 복원한다.
데이터 전송 방식 B에 따르면, 송신기에 있어서의 기억 장치의 용량은 작게 할 수 있지만, 만일 1대로부터 부분 데이터를 전혀 취득할 수 없는 경우에는, 원데이터를 복원할 수 없게 될 가능성이 있다.
또한, HDD(Hard Disk Drive)나 통신에 있어서, LDPC(Low Density Parity Check) 행렬을 이용하는 오류 정정 방식이 있다. 그러나, 이 오류 정정 방식은 반복 처리를 이용하기 때문에, 계산량이 방대해진다고 하는 문제가 있다.
본 발명은 전술한 문제점을 해결하기 위해서 이루어진 것으로서, 효율적으로 데이터를 분산하여 전송하고, 복원할 수 있는 부호화 장치, 복호 장치, 부호화 프로그램, 복호 프로그램, 데이터 전송 시스템을 제공하는 것을 목적으로 한다.
전술한 과제를 해결하기 위해서, 본 발명은 하나의 원데이터로부터 복수의 부호화된 데이터로의 부호화를 행하는 부호화 장치로서, 원데이터를 분할함으로써 N(2 이상의 정수)개의 부분 데이터를 생성하고, 이 N개의 부분 데이터에 순서를 나타내는 번호를 붙이는 분할부와, 상기 분할부에 의해 붙여진 N개의 번호 중에서 적어도 하나의 번호를 지정하는 데이터인 제1 데이터를 취득하는 제1 취득부와, 상기 제1 취득부에 의해 취득된 제1 데이터에 의해 지정된 번호가 붙여진 부분 데이터에 대하여 소정의 연산을 행함으로써 제2 데이터를 산출하는 산출부와, 상기 제1 취득부의 처리와 상기 산출부의 처리를 L(2 이상의 정수)회 반복하여, 상기 제1 취득부에 의해 얻어진 제1 데이터와 이 제1 데이터에 기초하여 상기 산출부에 의해 얻어진 제2 데이터로 이루어진 L개의 쌍을 출력하는 출력부와, 상기 L개의 쌍을 분할하 여 복수의 정보 송신 장치에 배포하는 배포부를 구비하는 것이다.
또한, 본 발명은 복수의 부호화된 데이터로부터 하나의 원데이터로의 복호를 행하는 복호 장치로서, 복수의 정보 송신 장치로부터 송출되는 부호화 데이터를 수신하는 수신부와, 상기 부호화 데이터에 포함되는 제1 데이터와 제2 데이터로 이루어진 복수개의 쌍을 순차적으로 취득하는 제2 취득부와, 상기 제2 취득부에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제1 데이터에 조작을 행함으로써 상기 복수개의 제1 데이터를 제3 데이터로 변환하는 제1 조작부와, 상기 제2 취득부에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제2 데이터에 상기 제1 조작부와 동일한 조작을 행함으로써 상기 복수개의 제2 데이터를 제4 데이터로 변환하는 제2 조작부를 구비하는 것이다.
또한, 본 발명은 하나의 원데이터로부터 복수의 부호화된 데이터로의 부호화를 컴퓨터로 실행시키는 부호화 프로그램으로서, 원데이터를 분할함으로써 N(2 이상의 정수)개의 부분 데이터를 생성하고, 이 N개의 부분 데이터에 순서를 나타내는 번호를 붙이는 분할 단계와, 상기 분할 단계에 의해 붙여진 N개의 번호 중에서 적어도 하나의 번호를 지정하는 데이터인 제1 데이터를 취득하는 제1 취득 단계와, 상기 제1 취득 단계에 의해 취득된 제1 데이터에 의해 지정된 번호가 붙여진 부분 데이터에 대하여 소정의 연산을 행함으로써 제2 데이터를 산출하는 산출 단계와, 상기 제1 취득 단계와 상기 산출 단계를 L(2 이상의 정수)회 반복하여, 상기 제1 취득 단계에 의해 얻어진 제1 데이터와 이 제1 데이터에 기초하여 상기 산출 단계에 의해 얻어진 제2 데이터로 이루어진 L개의 쌍을 출력하는 출력 단계와, 상기 L 개의 쌍을 분할하여 복수의 정보 송신 장치에 배포하는 배포 단계를 컴퓨터로 실행시키는 것이다.
또한, 본 발명은 복수의 부호화된 데이터로부터 하나의 원데이터로의 복호를 컴퓨터로 실행시키는 복호 프로그램으로서, 복수의 정보 송신 장치로부터 송출되는 부호화 데이터를 수신하는 수신 단계와, 상기 부호화 데이터에 포함되는 제1 데이터와 제2 데이터로 이루어진 복수개의 쌍을 순차적으로 취득하는 제2 취득 단계와, 상기 제2 취득 단계에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제1 데이터에 조작을 행함으로써 상기 복수개의 제1 데이터를 제3 데이터로 변환하는 제1 조작 단계와, 상기 제2 취득 단계에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제2 데이터에 상기 제1 조작 단계와 동일한 조작을 행함으로써 상기 복수개의 제2 데이터를 제4 데이터로 변환하는 제2 조작 단계를 컴퓨터로 실행시키는 것이다.
또한, 본 발명은 원데이터를 분할함으로써 N(2 이상의 정수)개의 부분 데이터를 생성하고, 이 N개의 부분 데이터에 순서를 나타내는 번호를 붙이는 분할부와, 상기 분할부에 의해 붙여진 N개의 번호 중에서 적어도 하나의 번호를 지정하는 데이터인 제1 데이터를 취득하는 제1 취득부와, 상기 제1 취득부에 의해 취득된 제1 데이터에 의해 지정된 번호가 붙여진 부분 데이터에 대하여 소정의 연산을 행함으로써 제2 데이터를 산출하는 산출부와, 상기 제1 취득부의 처리와 상기 산출부의 처리를 L(2 이상의 정수)회 반복하여, 상기 제1 취득부에 의해 얻어진 제1 제이터와 이 제1 데이터에 기초하여 상기 산출부에 의해 얻어진 제2 데이터로 이루어진 L 개의 쌍을 출력하는 출력부와, 상기 출력부에 의해 출력된 L개의 쌍을 분할하여 배포하는 배포부와, 상기 배포부에 의해 배포된 복수개의 쌍을 순차적으로 취득하는 제2 취득부와, 상기 제2 취득부에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제1 데이터에 조작을 행함으로써 상기 복수개의 제1 데이터를 제3 데이터로 변환하는 제1 조작부와, 상기 제2 취득부에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제2 데이터에 상기 제1 조작부와 동일한 조작을 행함으로써 상기 복수개의 제2 데이터를 제4 데이터로 변환하는 제2 조작부를 구비하는 것이다.
본 발명에 따르면, 효율적으로 데이터를 분산하여 전송하고, 복원할 수 있다.
이하, 본 발명의 실시 형태에 대해서 도면을 참조하면서 설명한다.
본 실시 형태에 있어서는, 본 발명에 따른 데이터 전송 시스템 및 데이터 전송 방법을 적용한 멀티캐스트 배신(distribution) 시스템에 대해서 설명한다.
우선, 멀티캐스트 배신 시스템의 구성에 대해서 설명한다.
도 1은 본 실시 형태에 따른 멀티캐스트 배신 시스템의 구성의 일례를 도시한 블록도이다. 이 멀티캐스트 배신 시스템은 분산 장치(부호화 장치)(1), 송신 장치(2a, 2b), 수신 장치(복호 장치)(3a, 3b, 3c)를 구비한다. 분산 장치(1)와 송신 장치(2a), 분산 장치(1)와 송신 장치(2b)는 각각 네트워크를 통해 접속되어 있다. 송신 장치(2a)와 수신 장치(3a, 3b, 3c), 송신 장치(2b)와 수신 장치(3a, 3b, 3c)는 각각 네트워크를 통해 접속되어 있다.
도 2는 본 실시 형태에 따른 멀티캐스트 배신 시스템에 있어서의 각 장치의 구성의 일례를 도시한 블록도이다. 분산 장치(1)는 통신부(11), 기억부(12), 부호화부(13), 부호화 행렬 생성부(14)를 구비한다. 송신 장치(2a, 2b)는 동일한 구성으로서, 통신부(21), 기억부(22)를 구비한다. 수신 장치(3a, 3b, 3c)는 동일한 구성으로서, 통신부(31), 기억부(32), 복호부(33)를 구비한다.
다음에, 멀티캐스트 배신 시스템의 동작에 대해서 설명한다.
이 멀티캐스트 배신 시스템은 분산 장치(1)가 원데이터를 n(청구항에 있어서의 N, 2 이상의 정수)개의 부분 데이터로 분할하고, 부호화 행렬을 이용하여 1(청구항에 있어서의 L, 2 이상의 정수)개의 부호화 데이터로 부호화하며, 부호화 데이터를 송신 장치(2a, 2b)로 송신한다. 송신 장치(2a, 2b)는 각각 수신한 부호화 데이터를 멀티캐스트에 의해 수신 장치(3a, 3b, 3c)로 송신한다. 수신 장치(3a, 3b, 3c)는 각각 수신한 부호화 데이터를 복호하여 원데이터를 복원하는 것이다.
우선, 분산 장치(1)에 의한 부호화 행렬 생성 처리에 대해서 설명한다.
도 3은 본 실시 형태에 따른 부호화 행렬 생성 처리의 일례를 도시한 흐름도이다. 우선, 부호화 행렬 생성부(14)는 부호화 행렬의 열수(부분 데이터수) n과 부호화 행렬의 행수(부호화 데이터의 최대수) l을 결정한다(S11). 여기서, 원데이터(D)는 n개의 부분 데이터{D1, D2, ···, Dn}로 분할되어 n개의 부분 데이터가 부호화 데이터로 변환되고, m대의 송신 장치로 분산되어 수신 장치로 송신되는 것으로 한다. n은 임의의 수이지만, 클수록 효율이 좋다. 다음에, 부호화 행렬 생성부(14)는 부분 데이터의 총수에 대한 각 송신 장치가 담당하는 부분 데이터의 갯수의 비인 배포 사이즈비(n을 1로서 나타냄)를 S1, S2, ···Sm으로 하고, S1, S2, ···Sm의 총합계를 M으로 한다. 여기서, S1, S2, ···Sm은 각 송신 장치의 정보인 송신 장치 정보에 기초하여 결정된다. 여기서, 송신 장치 정보는 송신 장치의 기억 용량, 통신 속도, 부하 등이며, 예컨대, 기억 용량이 큰 송신 장치(i)일수록 Si의 값을 크게 한다. S1, S2, ···Sm이 변화될 가능성이 있는 경우, M은 크게 해둔다. 다음에, 부호화 행렬 생성부(14)는 l=n×M으로 한다.
다음에, 부호화 행렬 생성부(14)는 h=(M-1)×n으로 하고, 부호화 행렬 A의 각 열에 있어서의 1의 수가 h개가 되도록 자연 난수를 이용하여 0과 1로 이루어진 l행 n열의 부호화 행렬 후보를 생성하는 후보 생성 처리를 행한다(S12). h에 따라, 부호화 행렬 중의 1의 수는 0의 수에 비하여 적다고 하는 특징이 있다.
다음에, 부호화 행렬 생성부(14)는 부호화 행렬 후보의 후보 평가 처리(S13∼S18)를 행한다. 우선, 부호화 행렬 생성부(14)는 k=1로 하고(S13), 부호화 행렬 후보의 행 중 k행의 조합을 취출(取出)하여 k행의 부분 후보를 생성하는 부분 후보 생성 처리를 행한다(S14). 다음에, 부호화 행렬 생성부(14)는 부분 후보에 대하여 후술하는 복호 판정 처리를 행하고, 복호 판정 처리의 횟수, 복호 판정 처리에 의해 복호 가능하다고 판정된 횟수를 기록한다(S15). 다음에, 부호화 행렬 생성 부(14)는 k행의 조합 모두를 취출했는지 여부의 판단을 행하여 아직 전부를 취출하지 않은 경우(S16, "아니오"), 처리 S14로 이행하고, 부호화 행렬 생성부(14)는 다음 조합을 취출한다. 조합의 전부를 취출한 경우(S16, "예"), 부호화 행렬 생성부(14)는 k>1-n의 조건을 만족하는지 여부의 판단을 행하고, 이 조건을 만족하지 않는 경우(S17, "아니오"), 부호화 행렬 생성부(14)는 k를 1증가시키고, 처리 S14로 이행한다. 이 조건을 만족하는 경우(S17, "예"), 부호화 행렬 생성부(14)는 (복호 효율)=(복호 가능하다고 판정된 횟수)/(복호 판정 처리의 횟수)로 하고, 생성된 부호화 행렬 후보 중에서 가장 복호 효율이 높은 것을 기억부(12)에 보존시켜 둔다(S18).
k가 커지면 k행의 조합수가 방대해지기 때문에, 부호화 행렬 생성부(14)는 적당한 조건(예컨대, k가 소정의 값을 초과한 경우)으로 후보 평가 처리를 종료한다.
다음에, 부호화 행렬 생성부(14)는 후보 생성 처리와 후보 평가 처리를 소정의 횟수만큼 반복했는지 여부의 판단을 행하고, 소정의 횟수만큼 반복하지 않은 경우(S19, "아니오"), 처리 S12로 되돌아가며, 소정의 횟수만큼 반복한 경우(S19, "예"), 이 흐름을 종료시킨다. 부호화 행렬 생성부(14)는 기억부(12)에 보존된 부호화 행렬 후보, 즉 가장 복호 효율이 높은 부호화 행렬 후보를 부호화 행렬 A로 한다.
도 4는 본 실시 형태에 따른 부호화 행렬의 일례를 도시한 도면이다. 여기서는, 부분 데이터수 n=8, 송신 장치수 m=2로 한다. 송신 장치(2a)의 기억 용량이 송 신 장치(2b)의 기억 용량보다 크다는 등의 이유에 의해 배포 사이즈비는 S1=4/4=1, S2=3/4=0.75로 한다. 따라서, M=1.75, 1=14가 되고, 부호화 행렬 A는 14행 8열이 된다.
이 부호화 생성 처리에 따르면, 복호 효율이 높은 부호화 행렬 A를 생성할 수 있다.
또한, 부호화 행렬 A는 미리 외부에서 생성되어 분산 장치(1)에 저장되어도 좋다. 이 경우, 분산 장치(1)는 부호화 행렬 생성부(14)를 필요로 하지 않는다.
다음에, 분산 장치(1)에 의한 분산 처리에 대해서 설명한다.
도 5는 본 실시 형태에 따른 분산 처리의 일례를 도시한 흐름도이다. 미리 생성된 부호화 행렬 A에 있어서의 M을 M0로 한다. 우선, 부호화 행렬 생성부(14)는 송신에 사용하는 송신 장치(2a, 2b)의 송신 장치 정보를 수집한다(S31). 다음에, 부호화 행렬 생성부(14)는 송신 장치 정보에 기초하여 송신 장치(2a, 2b)의 배포 사이즈비(S1, S2)를 결정하고, S1, S2의 총합계를 M으로 한다(S32). 부호화 행렬 생성부(14)는 M이 M0보다 큰지 여부의 판단을 행한다(S33). M이 M0보다 큰 경우(S33, "예") 부호화 행렬 생성부(14)는 M의 값을 이용하여 새로운 부호화 행렬 A의 생성을 행하는 부호화 행렬 생성 처리를 행하고(S34), 처리 S35로 이행한다. M이 M0보다 크지 않은 경우(S33, "아니오"), 처리 S35로 이행한다.
다음에, 부호화부(13)는 기억부(12)에 저장된 원데이터(D)의 부호화 처리를 행함으로써, l개의 부호화 데이터를 생성한다(S35). 부호화 데이터는 헤더부와 데이터부로 이루어지고, 청구항에 있어서의 제1 데이터와 제2 데이터로 이루어진 쌍에 대응한다. 다음에, 통신부(11)는 l개의 부호화 데이터 중 l×S1/M개의 부호화 데이터를 송신 장치(2a)로 송신하고, l×S2/M개의 부호화 데이터를 송신 장치(2b)로 송신(배포)하며(S36), 이 흐름은 종료된다.
n=2, m=2, S1=4/4=1, S1=3/4=0.75의 경우, M=1.75, l=14이다. 따라서, 분산 처리에 의해 원데이터로부터 8개의 부분 데이터가 생성되고, 14개의 부호화 데이터가 생성되며, 분산 장치(1)로부터 송신 장치(2a)로 l×S1/M=8개의 부호화 데이터가 송신되고, 분산 장치(1)로부터 송신 장치(2b)로 l×S2/M=6개의 부호화 데이터가 송신된다.
이 분산 처리에 따르면, 송신 장치의 성능차 등에 따라 자유롭게 배포 사이즈비를 결정할 수 있기 때문에, 각 송신 장치가 효율적으로 부호화 데이터의 송신을 행할 수 있다.
다음에, 분산 장치(1)에 의한 부호화 처리에 대해서 설명한다.
도 6은 본 실시 형태에 따른 부호화 처리의 일례를 도시한 흐름도이다. 우선, 부호화부(13)는 기억부(12)에 저장된 원데이터(D)를 n개로 분할하여, 번호를 붙여 부분 데이터{D1, D2, ···, Dn}를 생성한다(S41). 다음에, 부호화부(13)는 n개째의 부분 데이터의 길이가 다른 부분 데이터의 길이에 대하여 부족한지 여부의 판단을 행하고, 짧은 경우(S42, "예"), n개째의 부분 데이터의 부족분을 더미 데이터(0 등)로 매립하여(S43) 다음 처리로 이행하고, n개째의 부분 데이터의 길이가 다른 부분 데이터의 길이와 같은 경우(S42, "아니오"), 다음 처리로 이행한다. 다음에, 부호화부(13)는 부호화 행렬 A로부터 1행씩을 취득하여 선택 데이터로 하고, 선택 데이터를 부호화 데이터의 헤더부(제1 데이터)로 한다(S44).
다음에, 부호화부(13)는 선택 데이터 중의 비트가 1인 위치의 번호를 취득하고, 이 번호에 대응하는 부분 데이터를 취득하며, 취득한 부분 데이터끼리에 대해서 비트 위치마다의 배타적 논리합(XOR) 연산을 행하고, 그 결과를 부호화 데이터의 데이터부로 한다(S45).
도 7은 본 실시 형태에 따른 부호화 처리의 일례를 도시한 개념도이다. 여기서는, n=4인 경우에 대해서 설명한다. 처리 S41에 있어서, 부호화부(13)는 원데이터(D)를 부분 데이터{D1, D2, D3, D4}로 분할한다. 처리 S44에 있어서, 부호화부(13)는 부호화 행렬 A의 1행씩을 취득하여 선택 데이터 및 헤더부로 한다. 여기서는, 부호화 행렬 A의 첫 번째 행{1, 0, 1, 0}을 선택 데이터로 한다. 처리 S45에 있어서, 부호화부(13)는 선택 데이터 중의 비트가 1인 위치에 따라 부분 데이터 중 D1과 D3을 취득하며, D1과 D3에 대해서 비트 위치마다의 배타적 논리합 연산을 행하고, 그 결과를 부호화 데이터의 데이터부(제2 데이터)로 한다. 다음에, 부호화부(13)는 부호화 행렬 A의 두 번째 행 {0, 1, 1, O} 이후에 대해서도 동일한 처리를 반복한다.
다음에, 부호화부(13)는 1개의 선택 데이터를 다 취득했는지(1개의 데이터부를 다 생성했는지) 여부의 판단을 행한다(S46). 1개의 선택 데이터를 다 취득하지 못한 경우(S46, "아니오"), 처리 S44로 되돌아가고, 부호화부(13)는 다음 선택 데이터를 취득한다. 1개의 선택 데이터를 다 취득한 경우(S46, "예"), 이 흐름은 종료된다.
이 부호화 처리에 의해, 선택 데이터인 헤더부로 하고, 부분 데이터의 연산결과인 데이터부로 한 부호화 데이터를 1개 생성할 수 있다. 또한, 부호에 이용하는 연산이 배타적 논리합 연산이기 때문에, 분산 장치의 부담이 작아 고속으로 부호화를 행할 수 있다.
다음에, 송신 장치(2a, 2b)에 의한 송신 처리에 대해서 설명한다.
송신 장치(2a, 2b)의 통신부(21)는 분산 장치(1)로부터 수신한 몇 가지 부호화 데이터를 기억부(22)에 저장한다. 다음에, 송신 장치(2a, 2b)의 통신부(21)는 기억부(22)에 저장된 부호화 데이터를 수신 장치(3a, 3b, 3c)에 송신한다.
다음에, 수신 장치(3a, 3b, 3c)에 의한 복호 처리에 대해서 설명한다.
기억부(32)의 스택에는 부호화 데이터 길이의 스택 데이터를 n개만큼 스택시킬 수 있다. 스택 데이터는 부호화 데이터와 같이 헤더부와 데이터부를 갖는다.또한, n개의 스택 데이터의 헤더부는 각 스택 데이터의 헤더부를 행으로 하는 행렬로서 취급할 수 있고, n개의 스택 데이터의 데이터부는 각 스택 데이터의 데이터부를 행으로 하는 행렬로서 취급할 수 있다.
도 8은 본 실시 형태에 따른 복호 처리의 일례를 도시한 흐름도이다. 우선, 통신부(31)는 송신 장치(2a, 2b)로부터 하나의 부호화 데이터를 수신한다(S51). 다음에, 복호부(33)는 i=1로 하고(S52), 부호화 데이터의 헤더부의 i번째의 비트가 1인지 여부의 판단을 행한다(S53). 1이 아닌 경우(S53, "아니오"), 복호부(33)는 i를 1증가시키고, 처리 S53으로 되돌아간다. 1인 경우(S53, "예"), 복호부(33)는 기억부(32)의 스택 상에 i번째의 스택 데이터가 존재하는지 여부의 판단을 행한다(S54). i번째 부호화 데이터가 존재하는 경우(S54, "예"), 복호부(33)는 부호화 데이터와 스택 상의 i번째의 스택 데이터에 대해서 비트 위치마다의 배타적 논리합 연산을 행하고, 부호화 데이터를 그 연산 결과에 갱신한다(S55). i번째의 부호화 데이터가 존재하지 않는 경우(S54, "아니오"), 복호부(33)는 부호화 데이터를 스택에 실어 새로운 스택 데이터로 한다(S56).
다음에, 복호부(33)는 스택 데이터수가 n개 이상인지 여부의 판단을 행한다(S57). n개 이상이 아닌 경우(S57, "아니오"), 복호부(33)는 처리 S51로 되돌아가 다음 부호화 데이터를 수신한다. n개 이상인 경우(S57, "예"), 복호부(33)는 스택 데이터의 헤더 부분으로 이루어진 행렬인 헤더 행렬이 상삼각 행렬(upper-triangular matrix)인지 여부의 판단을 행한다(S58). 상삼각 행렬이 아닌 경우(S58, "아니오"), 복호부(33)는 복호 불가능하다고 판단하고, 처리 S51로 되돌아가 다음 부호화 데이터를 수신한다. 상삼각 행렬인 경우(S58, "예"), 복호부(33)는 복호 가능하다고 판단하고, 헤더 행렬을 단위 행렬(제3 데이터)로 하는 행렬 조작을 행하며(S59), 스택 데이터의 데이터부로 이루어진 행렬인 데이터 행렬에 대하여 동일한 행렬 조작을 행한다(S60). 이 행렬 조작에 의해 데이터 행렬은 원래의 부분 데이터를 각 행으로 하는 행렬(제4 데이터)로 변환되고, 이 흐름은 종료된다.
도 9는 본 실시 형태에 따른 복호 처리의 일례를 도시한 개념도이다. 여기서는, n=4인 경우에 대해서 설명한다. 처리 S56까지의 처리에 의해 복호부(33)는 스택에 스택 데이터를 싣는다. 이에 따라, 스택 데이터의 헤더부는 헤더 행렬의 행이 되고, 스택 데이터의 데이터부는 데이터 행렬의 행이 된다. 처리 S58까지의 처리에 의해 복호부(33)는 헤더 행렬을 상삼각 행렬화할 때까지 행렬 조작을 행하고, 처리 S59에 의해 복호부(33)는 헤더 행렬을 단위 행렬화하는 행렬 조작을 더 행한다. 처리 S60에 의해 복호부(33)는 헤더 행렬에 행한 행렬 조작과 동일한 행렬 조작을 데이터 행렬에 행한다. 이에 따라, 데이터 행렬의 각 행은 원래의 부분 데이터{D1, D2, D3, D4}로 변환된다.
이 복호 처리에 있어서, 복호부(33)는 가우스 소거법을 이용하여 헤더 행렬을 단위 행렬로 한다. 따라서, 헤더 행렬이 상삼각 행렬이 될 때까지 부호화 데이터의 수신과 헤더 행렬로의 행렬 조작을 계속하여 행렬 조작에 의해 헤더 행렬이 상삼각 행렬이 되면 복호 가능하다고 판단하고, 한층 더한 행렬 조작에 의해 헤더 행렬을 단위 행렬로 한다. 또한, 헤더 행렬을 단위 행렬로 하는 조작이라면, 가우스 소거법 이외의 방법을 이용하여도 좋다.
이 복원 처리에 따르면, n개 이상의 부호화 데이터의 데이터부로부터 원데이터를 복호할 수 있다. 복호에 필요한 부호화 데이터의 수는 어떤 부호화 행렬 A를 이용하는지에 따라 다르다. 부호화 행렬 A의 1의 배치는 랜덤일수록 복호 효율이 높다. 또한, 복호에 이용하는 연산이 배타적 논리합 연산이기 때문에, 수신 장치의 부담이 작아 고속으로 복호를 행할 수 있다.
다음에, 분산 장치(1)에 의한 복호 판정 처리에 대해서 설명한다.
부호화 행렬 생성부(14)는 복호 판정 처리로서, 전술한 복호 처리 중 처리 S51∼S58을 실행하지만, 부호화 데이터의 헤더부의 수신 대신에 부분 후보의 각 행의 입력을 행한다. 부호화 행렬 생성부(14)는 처리 S58에 있어서 헤더 행렬이 상삼각 행렬이 된 경우에 복호 가능하다고 판정하고, 부분 후보의 모든 행을 입력하여도 헤더 행렬이 상삼각 행렬이 되지 않는 경우에 복호 불가능하다고 판정한다.
복호 처리 및 복호 판정 처리에 따르면, 수신 장치(3a, 3b, 3c)는 1개의 부호화 데이터 중, n+α(1<α≤(1-n))개 이상 부호화 데이터를 정상적으로 수신할 수 있으면, 원데이터의 복호가 가능해진다. 전술한 복호 효율과 마찬가지로 α의 값은 부호화 행렬 A에 따라 다르고, α가 가장 작은(1에 가까운) 부호화 행렬 후보를 부호화 행렬 A로서 채용하여도 좋다.
본 실시 형태에 따르면, 송신 장치가 송신해야 할 데이터량을 줄일 수 있는 동시에, 수신 장치는 모든 부호화 데이터를 수신하지 않아도 복원할 수 있다. 결과적으로, 데이터의 전송에 걸리는 시간적인 효율을 개선할 수 있다.
또한, 분할부, 제1 취득부, 산출부, 출력부는 실시 형태에 있어서의 부호화부(13)에 대응한다. 또한, 생성부는 실시 형태에 있어서의 부호화 행렬 생성부(14)에 대응한다. 배포부는 실시 형태에 있어서의 통신부(11)에 대응한다. 또한, 제2 취득부는 실시 형태에 있어서의 통신부(31)에 대응한다. 또한, 제1 조작부 및 제2 조작부는 실시 형태에 있어서의 복호부(33)에 대응한다.
또한, 분할 단계는 실시 형태에 있어서의 처리 S41∼S43에 대응한다. 또한, 제1 취득 단계는 실시 형태에 있어서의 처리 S44에 대응한다. 또한, 산출 단계는 실시 형태에 있어서의 처리 S45에 대응한다. 또한, 출력 단계는 실시 형태에 있어서의 처리 S46에 대응한다. 또한, 배포 단계는 실시 형태에 있어서의 처리 S36에 대응한다. 또한, 제2 취득 단계는 실시 형태에 있어서의 처리 S51에 대응한다. 또한, 제1 조작 단계는 실시 형태에 있어서의 처리 S52∼S59에 대응한다. 또한, 제2 조작 단계는 실시 형태에 있어서의 처리 S60에 대응한다.
또한, 본 실시 형태에 따른 부호화 장치 및 복호 장치는 정보 처리 장치에 용이하게 적용할 수 있고, 정보 처리 장치의 성능을 더욱 높일 수 있다. 여기서, 정보 처리 장치에는 예컨대 서버, PC(Personal Computer) 등이 포함될 수 있다.
또한, 부호화 장치 및 복호 장치를 구성하는 컴퓨터에 있어서 전술한 각 단계를 실행시키는 프로그램을 각각 부호화 프로그램 및 복호 프로그램으로서 제공할 수 있다. 전술한 프로그램은 컴퓨터에 의해 판독 가능한 기록 매체에 기억시킴으로써, 각각 부호화 장치 및 복호 장치를 구성하는 컴퓨터로 실행시키는 것이 가능해진다. 여기서, 상기 컴퓨터에 의해 판독 가능한 기록 매체로서는 ROM이나 RAM 등의 컴퓨터에 내부 실장되는 내부 기억 장치, CD-ROM이나 플렉시블 디스크, DVD 디스크, 광 자기 디스크, IC 카드 등의 휴대형 기억 매체나 컴퓨터 프로그램을 유지하는 데이터 베이스 또는 다른 컴퓨터 및 그 데이터 베이스나 회선 상의 전송 매체도 더 포함하는 것이다.
(부기 1)
하나의 원데이터로부터 복수의 부호화된 데이터로의 부호화를 행하는 부호화 장치로서,
원데이터를 분할함으로써 N(2 이상의 정수)개의 부분 데이터를 생성하고, 이 N개의 부분 데이터에 순서를 나타내는 번호를 붙이는 분할부와,
상기 분할부에 의해 붙여진 N개의 번호 중에서 적어도 하나의 번호를 지정하는 데이터인 제1 데이터를 취득하는 제1 취득부와,
상기 제1 취득부에 의해 취득된 제1 데이터에 의해 지정된 번호가 붙여진 부분 데이터에 대하여 소정의 연산을 행함으로써 제2 데이터를 산출하는 산출부와,
상기 제1 취득부의 처리와 상기 산출부의 처리를 L(2 이상의 정수)회 반복하여, 상기 제1 취득부에 의해 얻어진 제1 데이터와 이 제1 데이터에 기초하여 상기 산출부에 의해 얻어진 제2 데이터로 이루어진 L개의 쌍을 출력하는 출력부와,
상기 L개의 쌍을 분할하여 복수의 정보 송신 장치에 배포하는 배포부를 구비하는 부호화 장치.
(부기 2)
부기 1에 있어서, 상기 소정의 연산은 상기 제1 데이터에 의해 지정된 번호가 붙여진 부분 데이터끼리의 비트 위치마다의 배타적 논리합 연산인 것을 특징으로 하는 부호화 장치.
(부기 3)
부기 1 또는 부기 2에 있어서, 상기 분할부는 상기 N개의 부분 데이터의 길 이를 가지런히 하는 것을 특징으로 하는 부호화 장치.
(부기 4)
부기 1 내지 부기 3 중 어느 하나에 있어서, 제1 데이터는 N 비트의 비트열이고, 제1 데이터 중 적어도 1비트의 값이 1이며, 이 값이 1인 비트의 비트 위치가 상기 번호에 대응하고, L회의 상기 제1 취득부의 처리에 의해 취득되는 L개의 제1 데이터는 각각 다른 것을 특징으로 하는 부호화 장치.
(부기 5)
부기 1 내지 부기 4 중 어느 하나에 있어서, L회의 상기 제1 취득부의 처리에 의해 취득되는 L개의 제1 데이터 중의 1의 수는 0의 수보다 적은 것을 특징으로 하는 부호화 장치.
(부기 6)
부기 1 내지 부기 5 중 어느 하나에 있어서, 적어도 L개의 각각 다른 제1 데이터를 생성하는 생성부를 더 구비하는 것을 특징으로 하는 부호화 장치.
(부기 7)
부기 6에 있어서, 상기 생성부는 난수에 기초하여 적어도 L개의 제1 데이터의 후보를 생성하고, 상기 제1 데이터의 후보 중에서 적어도 N개인 복수개의 제1 데이터의 후보를 순차적으로 취득하며, 이 취득 순서에 기초하여 상기 복수개의 제1 데이터의 후보에 조작을 행함으로써 상기 복수개의 제1 데이터의 후보를 소정의 데이터로 변환하는 것이 가능한지 여부의 판단을 행하고, 이 변환이 가능한 경우, 상기 복수개의 제1 데이터의 후보의 수에 기초하여 상기 적어도 L개의 제1 데이터 의 후보를 제1 데이터로서 채용할지 여부의 판단을 행하는 것을 특징으로 하는 부호화 장치.
(부기 8)
복수의 부호화된 데이터로부터 하나의 원데이터로의 복호를 행하는 복호 장치로서,
복수의 정보 송신 장치로부터 송출되는 부호화 데이터를 수신하는 수신부와,
상기 부호화 데이터에 포함되는 제1 데이터와 제2 데이터로 이루어진 복수개의 쌍을 순차적으로 취득하는 제2 취득부와,
상기 제2 취득부에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제1 데이터에 조작을 행함으로써 상기 복수개의 제1 데이터를 제3 데이터로 변환하는 제1 조작부와,
상기 제2 취득부에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제2 데이터에 상기 제1 조작부와 동일한 조작을 행함으로써 상기 복수개의 제2 데이터를 제4 데이터로 변환하는 제2 조작부를 구비하는 복호 장치.
(부기 9)
부기 8에 있어서, 모든 상기 제1 데이터의 길이는 N(2 이상의 정수)비트이고,
상기 제3 데이터는 N행 N열의 단위 행렬이며,
상기 제4 데이터는 N행의 행렬이고,
상기 제2 취득부는 적어도 N개의 상기 쌍을 취득하는 것을 특징으로 하는 복 호 장치.
(부기 10)
부기 9에 있어서, 상기 제2 조작부는 추가로 상기 제4 데이터의 각 행을 차례로 연결하여 하나의 데이터로서 출력하는 것을 특징으로 하는 복호 장치.
(부기 11)
부기 9 또는 부기 10에 있어서, 상기 제1 조작부는 상기 N개의 제1 데이터에 조작을 행함으로써 상기 N개의 제1 데이터를 상삼각 행렬로 변환할 수 없는 경우, 상기 제2 취득부에 추가로 쌍을 취득시키는 것을 특징으로 하는 복호 장치.
(부기 12)
부기 9 내지 부기 11 중 어느 하나에 있어서, 상기 조작은 가우스의 소거법을 이용하는 것을 특징으로 하는 복호 장치.
(부기 13)
하나의 원데이터로부터 복수의 부호화된 데이터로의 부호화를 컴퓨터로 실행시키는 부호화 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
원데이터를 분할함으로써 N(2 이상의 정수)개의 부분 데이터를 생성하고, 이 N개의 부분 데이터에 순서를 나타내는 번호를 붙이는 분할 단계와,
상기 분할 단계에 의해 붙여진 N개의 번호 중에서 적어도 하나의 번호를 지정하는 데이터인 제1 데이터를 취득하는 제1 취득 단계와,
상기 제1 취득 단계에 의해 취득된 제1 데이터에 의해 지정된 번호가 붙여진 부분 데이터에 대하여 소정의 연산을 행함으로써 제2 데이터를 산출하는 산출 단계 와,
상기 제1 취득 단계와 상기 산출 단계를 L(2 이상의 정수)회 반복하여, 상기 제1 취득 단계에 의해 얻어진 제1 데이터와 이 제1 데이터에 기초하여 상기 산출 단계에 의해 얻어진 제2 데이터로 이루어진 L개의 쌍을 출력하는 출력 단계와,
상기 L개의 쌍을 분할하여 복수의 정보 송신 장치에 배포하는 배포 단계를 컴퓨터로 실행시키는 부호화 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
(부기 14)
복수의 부호화된 데이터로부터 하나의 원데이터로의 복호를 컴퓨터로 실행시키는 복호 프로그램으로서,
복수의 정보 송신 장치로부터 송출되는 부호화 데이터를 수신하는 수신 단계와,
상기 부호화 데이터에 포함되는 제1 데이터와 제2 데이터로 이루어진 복수개의 쌍을 순차적으로 취득하는 제2 취득 단계와,
상기 제2 취득 단계에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제1 데이터에 조작을 행함으로써 상기 복수개의 제1 데이터를 제3 데이터로 변환하는 제1 조작 단계와,
상기 제2 취득 단계에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제2 데이터에 상기 제1 조작 단계와 동일한 조작을 행함으로써 상기 복수개의 제2 데이터를 제4 데이터로 변환하는 제2 조작 단계를 컴퓨터로 실행시키는 복호 프로그램.
(부기 15)
원데이터를 분할함으로써 N(2 이상의 정수)개의 부분 데이터를 생성하고, 이 N개의 부분 데이터에 순서를 나타내는 번호를 붙이는 분할부와,
상기 분할부에 의해 붙여진 N개의 번호 중에서 적어도 하나의 번호를 지정하는 데이터인 제1 데이터를 취득하는 제1 취득부와,
상기 제1 취득부에 의해 취득된 제1 데이터에 의해 지정된 번호가 붙여진 부분 데이터에 대하여 소정의 연산을 행함으로써 제2 데이터를 산출하는 산출부와,
상기 제1 취득부의 처리와 상기 산출부의 처리를 L(2 이상의 정수)회 반복하여, 상기 제1 취득부에 의해 얻어진 제1 데이터와 이 제1 데이터에 기초하여 상기 산출부에 의해 얻어진 제2 데이터로 이루어진 L개의 쌍을 출력하는 출력부와,
상기 출력부에 의해 출력된 L개의 쌍을 분할하여 배포하는 배포부와,
상기 배포부에 의해 배포된 복수개의 쌍을 순차적으로 취득하는 제2 취득부와,
상기 제2 취득부에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제1 데이터에 조작을 행함으로써 상기 복수개의 제1 데이터를 제3 데이터로 변환하는 제1 조작부와,
상기 제2 취득부에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제2 데이터에 상기 제1 조작부와 동일한 조작을 행함으로써 상기 복수개의 제2 데이터를 제4 데이터로 변환하는 제2 조작부를 구비하는 데이터 전송 시스템.
도 1은 본 실시 형태에 따른 멀티캐스트 배신 시스템의 구성의 일례를 도시한 블록도.
도 2는 본 실시 형태에 따른 멀티캐스트 배신 시스템에 있어서의 각 장치의 구성의 일례를 도시한 블록도.
도 3은 본 실시 형태에 따른 부호화 행렬 생성 처리의 일례를 도시한 흐름도.
도 4는 본 실시 형태에 따른 부호화 행렬의 일례를 도시한 도면.
도 5는 본 실시 형태에 따른 분산 처리의 일례를 도시한 흐름도.
도 6은 본 실시 형태에 따른 부호화 처리의 일례를 도시한 흐름도.
도 7은 본 실시 형태에 따른 부호화 처리의 일례를 도시한 개념도.
도 8은 본 실시 형태에 따른 복호 처리의 일례를 도시한 흐름도.
도 9는 본 실시 형태에 따른 복호 처리의 일례를 도시한 개념도.
도 10은 종래의 데이터 전송 방식 A의 동작의 일례를 도시한 블록도.
도 11은 종래의 데이터 전송 방식 B의 동작의 일례를 도시한 블록도.
〈부호의 설명〉
1 : 분산 장치
2a, 2b : 송신 장치
3a, 3b, 3c : 수신 장치
11, 21, 31 : 통신부
12, 22, 32 : 기억부
13 : 부호화부
14 : 부호화 행렬 생성부
33 : 복호부

Claims (8)

  1. 하나의 원(元)데이터로부터 복수의 부호화된 데이터로의 부호화를 행하는 부호화 장치로서,
    원데이터를 분할함으로써 N(2 이상의 정수)개의 부분 데이터를 생성하고, 이 N개의 부분 데이터에 순서를 나타내는 번호를 붙이는 분할부와,
    상기 분할부에 의해 붙여진 N개의 번호 중에서 적어도 하나의 번호를 지정하는 데이터인 제1 데이터를 취득하는 제1 취득부와,
    상기 제1 취득부에 의해 취득된 제1 데이터에 의해 지정된 번호가 붙여진 부분 데이터끼리의 비트 위치마다의 배타적 논리합 연산을 행함으로써 제2 데이터를 산출하는 산출부와,
    상기 제1 취득부의 처리와 상기 산출부의 처리를 L(2 이상의 정수)회 반복하여, 상기 제1 취득부에 의해 얻어진 제1 데이터와 이 제1 데이터에 기초하여 상기 산출부에 의해 얻어진 제2 데이터로 이루어진 L개의 쌍을 출력하는 출력부와,
    상기 L개의 쌍을 분할하여 복수의 정보 송신 장치에 배포하는 배포부
    를 구비하는 부호화 장치.
  2. 삭제
  3. 제1항에 있어서, 상기 제1 데이터는 N 비트의 비트열이고, 제1 데이터 중 적어도 1비트의 값은 1이며, 이 값이 1인 비트의 비트 위치가 상기 번호에 대응하고, L회의 상기 제1 취득부의 처리에 의해 취득되는 L개의 제1 데이터는 각각 다른 것을 특징으로 하는 부호화 장치.
  4. 복수의 부호화된 데이터로부터 하나의 원데이터로의 복호를 행하는 복호 장치로서,
    복수의 정보 송신 장치로부터 송출되는 부호화 데이터를 수신하는 수신부와,
    상기 부호화 데이터에 포함되는 제1 데이터와 제2 데이터로 이루어진 복수개의 쌍을 순차적으로 취득하는 제2 취득부와,
    상기 제2 취득부에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제1 데이터에 조작을 행함으로써 상기 복수개의 제1 데이터를 단위행렬로 변환하는 제1 조작부와,
    상기 제2 취득부에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제2 데이터에 상기 제1 조작부와 동일한 조작을 행함으로써 상기 복수개의 제2 데이터를 상기 원데이터의 부분 데이터를 각 행으로 하는 행렬로 변환하는 제2 조작부
    를 구비하는 복호 장치.
  5. 제4항에 있어서, 상기 조작은 가우스의 소거법을 이용하는 것을 특징으로 하는 복호 장치.
  6. 하나의 원데이터로부터 복수의 부호화된 데이터로의 부호화를 컴퓨터로 실행시키는 부호화 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
    원데이터를 분할함으로써 N(2 이상의 정수)개의 부분 데이터를 생성하고, 이 N개의 부분 데이터에 순서를 나타내는 번호를 붙이는 분할 단계와,
    상기 분할 단계에 의해 붙여진 N개의 번호 중에서 적어도 하나의 번호를 지정하는 데이터인 제1 데이터를 취득하는 제1 취득 단계와,
    상기 제1 취득 단계에 의해 취득된 제1 데이터에 의해 지정된 번호가 붙여진 부분 데이터끼리의 비트 위치마다의 배타적 논리합 연산을 행함으로써 제2 데이터를 산출하는 산출 단계와,
    상기 제1 취득 단계와 상기 산출 단계를 L(2 이상의 정수)회 반복하여, 상기 제1 취득 단계에 의해 얻어진 제1 데이터와 이 제1 데이터에 기초하여 상기 산출 단계에 의해 얻어진 제2 데이터로 이루어진 L개의 쌍을 출력하는 출력 단계와,
    상기 L개의 쌍을 분할하여 복수의 정보 송신 장치에 배포하는 배포 단계
    를 컴퓨터로 실행시키는 부호화 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  7. 복수의 부호화된 데이터로부터 하나의 원데이터로의 복호를 컴퓨터로 실행시키는 복호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
    복수의 정보 송신 장치로부터 송출되는 부호화 데이터를 수신하는 수신 단계와,
    상기 부호화 데이터에 포함되는 제1 데이터와 제2 데이터로 이루어진 복수개의 쌍을 순차적으로 취득하는 제2 취득 단계와,
    상기 제2 취득 단계에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제1 데이터에 조작을 행함으로써 상기 복수개의 제1 데이터를 단위 행렬로 변환하는 제1 조작 단계와,
    상기 제2 취득 단계에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제2 데이터에 상기 제1 조작 단계와 동일한 조작을 행함으로써 상기 복수개의 제2 데이터를 상기 원데이터의 부분 데이터를 각 행으로 하는 행렬로 변환하는 제2 조작 단계
    를 컴퓨터로 실행시키는 복호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  8. 원데이터를 분할함으로써 N(2 이상의 정수)개의 부분 데이터를 생성하고, 이 N개의 부분 데이터에 순서를 나타내는 번호를 붙이는 분할부와,
    상기 분할부에 의해 붙여진 N개의 번호 중에서 적어도 하나의 번호를 지정하는 데이터인 제1 데이터를 취득하는 제1 취득부와,
    상기 제1 취득부에 의해 취득된 제1 데이터에 의해 지정된 번호가 붙여진 부분 데이터끼리의 비트 위치마다의 배타적 논리합 연산을 행함으로써 제2 데이터를 산출하는 산출부와,
    상기 제1 취득부의 처리와 상기 산출부의 처리를 L(2 이상의 정수)회 반복하여, 상기 제1 취득부에 의해 얻어진 제1 데이터와 이 제1 데이터에 기초하여 상기 산출부에 의해 얻어진 제2 데이터로 이루어진 L개의 쌍을 출력하는 출력부와,
    상기 출력부에 의해 출력된 L개의 쌍을 분할하여 배포하는 배포부와,
    상기 배포부에 의해 배포된 복수개의 쌍을 순차적으로 취득하는 제2 취득부와,
    상기 제2 취득부에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제1 데이터에 조작을 행함으로써 상기 복수개의 제1 데이터를 단위 행렬로 변환하는 제1 조작부와,
    상기 제2 취득부에 의해 취득된 상기 복수개의 쌍의 취득 순서에 기초하여 상기 복수개의 제2 데이터에 상기 제1 조작부와 동일한 조작을 행함으로써 상기 복수개의 제2 데이터를 상기 원데이터의 부분 데이터를 각 행으로 하는 행렬로 변환하는 제2 조작부
    를 구비하는 데이터 전송 시스템.
KR20080002126A 2007-01-12 2008-01-08 부호화 장치, 복호 장치, 부호화 프로그램을 기록한 기록매체, 복호 프로그램을 기록한 기록 매체, 데이터 전송시스템 KR100942211B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2007-00004858 2007-01-12
JP2007004858A JP2008172617A (ja) 2007-01-12 2007-01-12 符号化装置、復号装置、符号化プログラム、復号プログラム、データ転送システム

Publications (2)

Publication Number Publication Date
KR20080066571A KR20080066571A (ko) 2008-07-16
KR100942211B1 true KR100942211B1 (ko) 2010-02-11

Family

ID=39186103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20080002126A KR100942211B1 (ko) 2007-01-12 2008-01-08 부호화 장치, 복호 장치, 부호화 프로그램을 기록한 기록매체, 복호 프로그램을 기록한 기록 매체, 데이터 전송시스템

Country Status (5)

Country Link
US (1) US20080170591A1 (ko)
EP (1) EP1944898A2 (ko)
JP (1) JP2008172617A (ko)
KR (1) KR100942211B1 (ko)
CN (1) CN101222295B (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL1033542C2 (nl) * 2007-03-14 2008-09-16 Livesafer B V Werkwijze voor het opslaan van een bestand.
WO2011039874A1 (ja) * 2009-09-30 2011-04-07 富士通株式会社 データ送信装置、データ生成プログラムおよびデータ送受信方法
JP5397179B2 (ja) * 2009-11-17 2014-01-22 富士通株式会社 データ符号化プログラム、データ復号化プログラムおよび方法
CN102088331B (zh) * 2009-12-03 2015-01-14 株式会社Ntt都科摩 一种数据传输方法及网络节点
US10795766B2 (en) 2012-04-25 2020-10-06 Pure Storage, Inc. Mapping slice groupings in a dispersed storage network
US9380032B2 (en) * 2012-04-25 2016-06-28 International Business Machines Corporation Encrypting data for storage in a dispersed storage network
US10621044B2 (en) 2012-04-25 2020-04-14 Pure Storage, Inc. Mapping slice groupings in a dispersed storage network
WO2014103078A1 (ja) * 2012-12-28 2014-07-03 富士通株式会社 情報処理システム、情報処理システムの管理方法および情報処理システムの管理プログラム
JP5952971B2 (ja) * 2013-08-16 2016-07-13 日本電信電話株式会社 通信路復号方法及び通信路復号装置
CN104602196B (zh) * 2013-10-30 2018-02-09 株式会社理光 多播通信方法、多播发送设备、多播接收设备
KR102140301B1 (ko) * 2014-03-07 2020-07-31 에스케이플래닛 주식회사 블루투스 기반 데이터 전송 시스템 및 그 방법, 그리고 이에 적용되는 장치
CN107171769B (zh) * 2017-05-25 2020-01-07 电子科技大学 一种分包发送数据同步头设定方法及排序方法
JP7027788B2 (ja) * 2017-10-16 2022-03-02 富士通株式会社 伝送装置、伝送方法および処理装置
US11601135B2 (en) * 2020-02-27 2023-03-07 BTS Software Solutions, LLC Internet of things data compression system and method
JP2023000031A (ja) * 2021-06-17 2023-01-04 富士通株式会社 データ配置プログラム、プロセッサ、及びデータ配置方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050195755A1 (en) 2002-09-27 2005-09-08 Fujitsu Limited Data distributing method, system transmitting method, and program
US20060083236A1 (en) 2004-10-05 2006-04-20 Jon Rachwalski Method and system for loss-tolerant multimedia multicasting
US20070253548A1 (en) 2006-04-28 2007-11-01 Fujitsu Limited Data protection system, method, and program

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768389A (en) * 1995-06-21 1998-06-16 Nippon Telegraph And Telephone Corporation Method and system for generation and management of secret key of public key cryptosystem
KR0180164B1 (ko) * 1995-07-27 1999-05-01 배순훈 가변길이 부호기
KR100250803B1 (ko) * 1995-09-05 2000-04-01 다니구찌 이찌로오 데이타 변환장치 및 데이타 변환방법
JP2001320349A (ja) * 2000-05-08 2001-11-16 Mitsubishi Heavy Ind Ltd 分散通信装置
JP3663151B2 (ja) * 2001-06-07 2005-06-22 日本電信電話株式会社 データ転送方法、データ転送システム、および受信装置
DE10148415C2 (de) * 2001-09-29 2003-07-31 Univ Braunschweig Tech Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
JP3723960B2 (ja) * 2001-11-19 2005-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体
JP4699099B2 (ja) * 2005-06-14 2011-06-08 富士通株式会社 通信制御装置および通信制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050195755A1 (en) 2002-09-27 2005-09-08 Fujitsu Limited Data distributing method, system transmitting method, and program
US20060083236A1 (en) 2004-10-05 2006-04-20 Jon Rachwalski Method and system for loss-tolerant multimedia multicasting
US20070253548A1 (en) 2006-04-28 2007-11-01 Fujitsu Limited Data protection system, method, and program

Also Published As

Publication number Publication date
KR20080066571A (ko) 2008-07-16
US20080170591A1 (en) 2008-07-17
EP1944898A2 (en) 2008-07-16
CN101222295B (zh) 2011-10-26
JP2008172617A (ja) 2008-07-24
CN101222295A (zh) 2008-07-16

Similar Documents

Publication Publication Date Title
KR100942211B1 (ko) 부호화 장치, 복호 장치, 부호화 프로그램을 기록한 기록매체, 복호 프로그램을 기록한 기록 매체, 데이터 전송시스템
JP5485302B2 (ja) ファイルダウンロードおよびストリーミングのシステム
JP4157041B2 (ja) 通信システムのための多段符号発生器及び復号器
Filler et al. Minimizing additive distortion in steganography using syndrome-trellis codes
KR100808664B1 (ko) 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
CN101427495B (zh) 用于通信系统的基于多域的码生成器和解码器
KR101270815B1 (ko) 다양한 클래스의 코드들을 인코딩 및 디코딩하는 애플리케이션을 갖는 인-플레이스 변환
US8533555B2 (en) Efficient encoding and decoding methods for representing schedules and processing forward error correction codes
KR20190052054A (ko) 극성 코드를 이용하여 데이터를 인코딩하기 위한 방법 및 장치
US11108411B2 (en) Polar coding with dynamic frozen bits
KR20040036460A (ko) Ldpc 복호화 장치 및 그 방법
JPH06224777A (ja) 符号化方法、符号化装置、復号方法、復号器、データ圧縮装置、ビットストリーム生成方法及び遷移マシン生成方法
KR20120058556A (ko) 인코딩 및 디코딩 프로세스들을 위해 심볼들의 영속적 비활성화에 의한 fec 코드들을 활용하는 방법 및 장치
JP2006502440A (ja) 連鎖的暗号化反応の系統的記号化および復号化
JP4917023B2 (ja) 誤り訂正符号化装置
JP2004104159A (ja) 可変長符号生成装置、可変長復号装置、可変長符号生成方法、及び可変長復号方法
US20130283119A1 (en) Method and Apparatus for Elementary Updating a Check Node During Decoding of a Block Encoded with a Non-binary LDPC Code
KR100669152B1 (ko) 저밀도 패리티 검사 코드의 부호화 장치 및 방법
KR100943602B1 (ko) 통신 시스템에서 신호 수신 장치 및 방법
KR100975696B1 (ko) 통신 시스템에서 부호화 장치 및 방법
KR100874484B1 (ko) 준순환 저밀도 패리티 검사 부호화 방법 및 장치
JP5642651B2 (ja) 復号装置、符号化復号システム、符号化復号方法、及び復号プログラム
US20220006475A1 (en) Performance enhancement of polar codes for short frame lengths considering error propagation effects
JP4618293B2 (ja) 復号装置及び検査行列生成方法
JP2003283341A (ja) 線形ブロック符号に従って符号化されたデータを訂正するための装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee