KR20190099045A - 데이터 패킷들을 검색하기 위한 저-레이턴시 오류들을 보정하는 방법 및 장치 - Google Patents

데이터 패킷들을 검색하기 위한 저-레이턴시 오류들을 보정하는 방법 및 장치 Download PDF

Info

Publication number
KR20190099045A
KR20190099045A KR1020197021436A KR20197021436A KR20190099045A KR 20190099045 A KR20190099045 A KR 20190099045A KR 1020197021436 A KR1020197021436 A KR 1020197021436A KR 20197021436 A KR20197021436 A KR 20197021436A KR 20190099045 A KR20190099045 A KR 20190099045A
Authority
KR
South Korea
Prior art keywords
data block
symbols
sub
block
data
Prior art date
Application number
KR1020197021436A
Other languages
English (en)
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 KR20190099045A publication Critical patent/KR20190099045A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/251Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with block coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/353Adaptation to the channel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3769Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using symbol combining, e.g. Chase combining of symbols received twice or more
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명은 데이터 송신 방법에 관한 것으로, 송신될 데이터를 데이터 블록(DB)으로 그룹화된 소스 심볼들(S)의 형태로 인코딩하는 단계, 상기 데이터 블록의 소스 심볼들을 서브-블록들(SB)에 분배하는 단계, 각각의 서브-블록에 대해 상기 서브-블록의 소스 심볼들 간의 선형 조합에 의해 각각의 복구 심볼(R1-R9)을 계산하는 단계, 및 연속적으로 상기 데이터 블록의 각 서브-블록을 송신하고, 각 서브-블록은 해당 서브-블록의 소스 심볼들을 송신하고 후속하여 해당 서브-블록의 복구 심볼을 송신함으로써 송신되는, 상기 데이터 블록을 데이터 블록들의 스트림으로 송신하는 단계를 포함한다.

Description

데이터 패킷들을 검색하기 위한 저-레이턴시 오류들을 보정하는 방법 및 장치
본 발명은 송신 장치와 수신 장치 간의 통신 채널에서의 데이터 송신, 및 특히 데이터 에러들 또는 손실에 대한 보정 메커니즘의 구현에 관한 것이다.
데이터 손실 또는 손상을 초래하는 송신 채널들을 통한 파일 또는 데이터 스트림 송신들의 신뢰성을 보장하기 위해 많은 오류 보정 코드들이 제안되었다.
모바일 네트워크들의 분야에서, 및 특히 점-대-다점 및 방송 통신들에서, forward error correction application layer(AL-FEC)는 대규모 콘텐츠의 신뢰성있는 배포를 보장하는 데 중요한 역할을 한다. AL-FEC는 extended multimedia broadcast services(eMBMS)에 대한 3rd Generation Partnership Project(3GGP)에 의해 의무적으로 규정되었다. 리드-솔로몬(Reed-Solomon, RS) 코딩은 AL-FEC 에러 보정에 사용되는 코드들 중에서 일반적으로 사용된다. 이러한 코딩 방식은 (n-k)개의 복구 심볼들을 포함하는 n개의 송신된 심볼들 중에서 k개의 소스 심볼들을 재구성할 수 있는, Maximum Distance Separable(MDS) 코드의 카테고리에 속한다. 패킷 데이터 송신 프로토콜의 경우, 파일들, 데이터 스트림들, 또는 데이터 블록들은 동일한 크기일 수도 있고 그렇지 않을 수도 있는 심볼들로 분할된 데이터 패킷들의 형태로 송신된다. 심볼의 크기는 비트들의 수로 나타낼 수 있다. 복구 심볼들(RS)은 GF(2m)와 같은 갈루아체(Galois field, GF)에 걸쳐 수행되는 연산들에 의해 획득된다. 따라서, 복구 심볼들은 GF(2m)에 속하는 계수들을 사용하여 소스 심볼들의 선형 조합에 의해 계산된다. 일반적으로, 복구 심볼 계산들은 GF(28)에 걸쳐 수행되며, 이는 프로세싱된 데이터 블록들의 크기(n)을 256개 심볼들 미만으로 제한한다.
AL-FEC 블록 인코딩들은 데이터 블록 내의 손실 또는 오류가 있는 심볼을 복원하기 위해 데이터 블록의 단부에서 송신된 복구 심볼들을 기다릴 필요가 있다는 단점이 있다. 따라서, 소스 블록의 복구 지연은, 데이터 블록의 제 1 소스 심볼 상에서 오류가 발생하면, 데이터 블록의 수신 시간에 도달할 수 있다. 유사하게, 데이터 블록들의 스트림에 대한 액세스 지연은, 제 1 및 제 2 소스 심볼들이 시작되는 시간들 사이에서 스트림에 대한 액세스 시간이 발생할 때, 블록의 수신 기간에 도달할 수 있다. 반면에, 모든 복구 심볼들이 블록의 모든 소스 심볼들로부터 계산되기 때문에 데이터 블록의 모든 소스 심볼들은 동일한 높은 수준의 보호를 갖는다.
Low-Density Parity Check(LDPC), Raptor/RaptorQ와 같은 다른 코드들은 더 큰 블록 크기들을 지원한다. 그러나, 실시간 어플리케이션들에서 레이턴시(latency) 제한들로 인해 데이터 블록들의 크기가 제한된다. 블록-기반 AL-FEC 코드들은 특히 복구 용량, 복잡성, 및 유연성 측면에서의 여러 성능 이점들로 인해 널리 사용된다. 반면에, 블록-기반 AL-FEC 코드들은 높은 복구 레이턴시를 갖는다. 데이터 블록의 제 1 심볼들 중 하나가 잘못되었거나 손실된 경우, 이는 블록 단부의 복구 심볼들이 수신될 때까지 복원될 수 없다.
슬라이딩 윈도우 메커니즘을 적용하는, 컨벌루션 코드들(Convolutional codes)도 제안되었다. 이러한 코드들에 따르면, 복구 심볼들은 슬라이딩 윈도우에 속하는 소스 심볼들 상에서 즉석에서 계산되고 윈도우의 소스 심볼들 다음에 송신된다. 예를 들어, 복구 심볼은 최대 W개의 소스 심볼들에 대해 계산되고, k<W인, 매 k개의 소스 심볼들마다 송신된다. 따라서 모든 소스 심볼들이 수신되기 전에, 복구 심볼이 수신되자마자 손실되거나 오류가 있는 소스 심볼의 복구가 수행될 수 있다. 결국, 이러한 유형의 코드는 송신이 시작된 후 단말이 방송 또는 점-대-다점(point-to-multipoint) 송신의 데이터 스트림에 액세스할 때 액세스 레이턴시 문제를 발생시킨다. 실제로, 단말은 제 1 사용가능한 복구 심볼을 수신하기 전에 적어도 W개의 소스 심볼들을 대기해야 한다. 또한, 소스 심볼의 각 손실은 (k+1)개의 소스 심볼들만큼 데이터 스트림에 대한 액세스 지연을 증가시킨다. 드리프트 효과는 심볼 손실률이 복구 심볼들의 수와 송신된 소스 심볼들의 수의 비율에 접근할 때 발생한다. 이 경우, 분실되거나 오류가 있는 심볼를 복원할 수 없다.
그러므로, 저 액세스 레이턴시 및 각 소스 심볼에 대한 충분한 레벨의 보호를 제공하면서 손실되거나 오류가 있는 소스 심볼을 복원하기 위한 저 레이턴시를 갖는 코드를 제공하는 것이 바람직하다.
데이터 송신 방법을 위한 실시형태들이 제공되며, 상기 데이터 송신 방법은, 데이터 블록들로 그룹화된 소스 심볼들의 형태로 송신될 데이터를 인코딩하는 단계, 각 데이터 블록에 다수의 복구 심볼들(repair symbols)을 할당하는 단계로서, 데이터의 각 블록에 대해: 상기 데이터 블록의 상기 소스 심볼들을 서브-블록들로 분포시키는 단계로서, 상기 서브-블록들의 수는 상기 데이터 블록에 할당된 복구 심볼들의 수와 동일한, 상기 소스 심볼들을 상기 서브-블록들로 분포시키는 단계; 및 복구 심볼을 상기 데이터 블록의 각 서브-블록에 할당하는 단계를 포함하는, 각 데이터 블록에 다수의 복구 심볼들(repair symbols)을 할당하는 단계, 상기 데이터 블록 내의 상기 서브-블록의 소스 심볼들과 선행하는 서브-블록들의 소스 심볼들 간의 선형 조합에 의해 상기 데이터 블록의 각 서브-블록의 복구 심볼을 계산하는 단계, 및 상기 데이터 블록을 데이터 블록들의 스트림에서 송신하는 단계를 포함하며, 상기 데이터 블록을 데이터 블록들의 스트림에서 송신하는 단계는 상기 데이터 블록의 각 서브-블록을 연속적으로 송신하며, 각 서브-블록은 해당 서브-블록의 상기 소스 심볼들을 송신하고 후속하여 해당 서브-블록의 복구 심볼을 송신함으로써 송신된다.
일 실시형태에 따르면, 상기 데이터 블록의 각 복구 심볼은 상기 데이터 블록의 상기 소스 심볼들의 적어도 일부의 선형 조합에 의해 계산되어, 상기 데이터 블록의 각 소스 심볼이 상기 데이터 블록의 복구 심볼들 중 하나만큼 상이하거나 동일한 수를 계산하는 데 사용된다.
일 실시형태에 따르면, 상기 데이터 블록의 각 복구 심볼은 상기 데이터 블록의 이전에 송신된 소스 심볼들 모두의 선형 조합에 의해 계산된다.
일 실시형태에 따르면, 상기 데이터 블록의 최종 서브-블록(last sub-block)의 소스 심볼들의 적어도 일부로부터 계산된 복수의 복구 심볼들은 상기 데이터 블록의 단부에서 송신된다.
일 실시형태에 따르면, 상기 데이터 블록의 각 서브-블록은 소스 심볼들 중 하나만큼 상이하거나 동일한 수를 포함한다.
일 실시형태에 따르면, 상기 데이터 블록은 상기 데이터 블록의 단부에서 송신되는 복구 심볼들만큼의 서브-블록들을 포함한다.
일 실시형태에 따르면, 상기 방법은 상기 데이터 블록의 포맷을 규정하기 위한 단계를 포함하며, 상기 상기 데이터 블록의 포맷을 규정하기 위한 단계는, 상기 데이터 블록의 단부에서 송신될 복구 심볼들의 제 1 수를 규정하는 단계, 상기 제 1 수 및 상기 데이터 블록에 할당된 복구 심볼들의 수에 따라 상기 데이터 블록의 서브-블록들의 수를 결정하는 단계, 또는 상기 데이터 블록의 서브-블록들의 수 및 상기 제 1 수에 따라 상기 데이터 블록에 할당된 복구 심볼들의 수를 결정하는 단계, 상기 데이터 블록 내의 소스 심볼들의 수를 상기 서브-블록들의 수로 분할함으로써 서브-블록 당 소스 심볼들의 최소 수를 계산하는 단계로서, 상기 소스 심볼들의 최소 수는 상기 분할로부터 획득된 결과보다 적거나 같은 최대 정수와 동일하게 설정되는, 상기 서브-블록 당 소스 심볼들의 최소 수를 계산하는 단계, 및 상기 데이터 블록 내의 소스 심볼들의 수와, 상기 데이터 블록 내의 서브-블록들의 수와 서브-블록 당 소스 심볼들의 최소 수의 곱 간의 차를 계산하는 단계로서, 상기 차는 상기 데이터 블록의 상기 서브-블록들에 추가될 소스 심볼들의 수를 규정하는, 상기 차를 계산하는 단계를 포함한다.
일 실시형태에 따르면, 상기 방법은, 점-대-점 모드(point-to-point mode)로 사용자 단말로부터 열악한 수신 상태들을 시그널링하는 메시지를 수신하는 단계, 및 상기 메시지에 응답하여, 상기 메시지를 수신한 후에 송신된 각 데이터 블록에 대한 적어도 하나의 복구 심볼을 점-대-점 모드로 상기 단말로 송신하는 단계를 포함한다.
또한, 실시형태들은 이전에 정의된 송신 방법에 따라 송신된 데이터를 수신하는 방법에 관한 것이며, 상기 수신 방법은 데이터 블록의 소스 심볼들의 서브-블록들을 수신하는 연속적인 단계들을 포함하며, 각 서브-블록의 수신은 상기 서브-블록과 연관된 복구 심볼의 수신이 후속되며, 각 복구 심볼은 상기 복구 심볼과 연관된 서브-블록의 소스 심볼들의 선형 조합에 대응한다.
일 실시형태에 따르면, 상기 수신 방법은 상기 데이터 블록에서 분실되거나(missing) 오류가 있는(erroneous) 소스 심볼을 검출하는 단계, 및 상기 분실 또는 오류가 있는 소스 심볼에 후속하는 제 1 복구 심볼의 수신시, 상기 제 1 복구 심볼과 상기 제 1 복구 심볼에 대응하는 선형 조합 간의 동등성(equality)으로부터 발생하는 방정식을 푸는 것에 의해 상기 분실 또는 오류가 있는 소스 심볼을 계산하는 단계를 포함한다.
일 실시형태에 따르면, 상기 수신 방법은 다중-송출(multi-cast) 모드로 송신된 데이터 블록들의 열악한 수신 상태들을 검출하는 단계, 열악한 수신 상태들을 시그널링하는 메시지를 서버로 점-대-점 모드로 송신하는 단계, 및 상기 다중-송출 모드로 수신된 데이터 블록들에 대해, 상기 수신된 데이터 블록들 내의 손실된 소스 심볼들을 계산하기 위해 사용가능한 추가 복구 심볼들을 점-대-점 모드로 수신하는 단계를 포함한다.
또한, 실시형태들은 이전에 규정된 송신 방법을 구현하도록 구성된 데이터 송신 장치에 관련될 수 있다.
또한 실시형태들은 상기 규정된 수신 방법을 구현하도록 구성된 데이터 수신 장치에 관련될 수 있다.
본 발명의 예시적인 실시예들이 첨부 도면들과 관련하여 제한없이 이하에 설명될 것이다:
도 1은 데이터 송신 시스템을 개략적으로 나타낸다,
도 2는 송신 시스템의 송신 장치 내에서 생성된 데이터를 송신하기 위한 종래의 포맷을 도식적으로 나타낸다,
도 3은 도 2에 도시된 포맷 상의 복구 심볼들을 계산하는 방법을 도시한다,
도 4는 송신 시스템의 송신 장치 내에서 생성된 데이터를 송신하기 위한 또 다른 종래의 포맷을 도식적으로 나타낸다,
도 5는 도 4에 도시된 포맷 상의 복구 심볼들을 계산하기 위한 데이터 송신 포맷 및 방법을 도시한다,
도 6은 일 실시예에 따른, 데이터 송신 포맷을 결정하기 위한 절차의 단계들을 나타낸다,
도 7은 도 6에 도시된 절차를 사용하여 획득된 예시적인 데이터 송신 포맷을 도시한다,
도 8은 또 다른 실시예에 따른, 데이터 송신 포맷을 결정하기 위한 절차의 단계들을 나타낸다,
도 9 내지 도 14는 도 8에 도시된 절차를 이용하여 획득된 데이터 송신 포맷들의 예들 및 복구 심볼들을 계산하는 방법들의 예들을 도시한다,
도 15 내지 도 23은 상기 나타낸 데이터 송신 포맷들을 사용하여 획득된 성능들을 도시하는 곡선들이다,
도 24는 복수의 이동 단말기들에 콘텐츠를 전달하기 위한 시스템을 개략적으로 도시한다.
도 1은 데이터 송신 시스템을 개략적으로 도시한다. 입력 데이터 파일 또는 스트림(IDT)는, 입력 데이터(IDT)를 통신 채널(CH)를 통해 수신기 장치(RDV)로 송신하도록 구성된 송신기 장치(TDV)에 제공된다. 수신기 장치는 입력 데이터에 대응하는 출력 데이터(ODT)를 제공하도록 구성된다. 송신기 장치(TDV)는 심볼 생성기(ISG), 인코더 모듈(ENC), 및 송신 모듈(XMT)을 포함한다. 심볼 생성기(ISG)는 입력 데이터(IDT)를 나타내는 소스 심볼들을 M-비트 이진 워드들의 형태로 생성하도록 구성된다. 따라서, 입력 데이터는 2M개의 상이한 소스 심볼들로서 표현될 수 있다. 파라미터(M)의 값은 통신 시스템에 적응된다. 심볼 생성기(ISG)에 의해 생성된 소스 심볼들은 인코딩을 위해 인코딩 모듈(ENC)에 제공되고 나서 송신 모듈(XMT)에 공급된다. 인코딩 모듈(ENC)은 소스 심볼들을 복구 심볼들(repair symbols)을 포함하는 데이터 블록들 내로 어셈블하도록 구성된다. 송신 모듈(XMT)은 인코딩 모듈(ENC)로부터 수신된 데이터 블록들의 데이터를 송신 채널(CH)에 적합한 송신 포맷으로 포맷팅하도록 구성된다. 송신 채널(CH)은 실시간 채널, 예를 들어 인터넷을 통해 설정된 링크일 수도 있고, 복수의 단말들에 콘텐츠를 방송하는 링크, 또는 음성 또는 비디오를 송신하기 위한 점-대-점 링크일 수도 있다.
수신기 장치(RDV)는 송신된 데이터(IDT)를 그의 초기 포맷으로 복원하는 수신 모듈(REC), 디코딩 모듈(DEC), 및 어셈블리 모듈(DASM)을 포함한다. 수신 모듈(REC)은 송신 채널(CH)을 통해 송신된 신호들을 소스 심볼들 및 복구 심볼들을 포함하는 심볼들로 변환한다. 디코딩 모듈(DEC)은 수신 모듈(REC)에 의해 생성된 심볼들 내에서 에러들 또는 가능한 심볼들의 부재를 검출하고, 수신된 복구 심볼들을 사용하여 임의의 손실되거나 오류가 있는 소스 심볼들을 재구성하려고 시도한다. 예를 들어, 송신된 심볼들의 패리티 비트들(parity bits)을 사용하여 오류들이 검출될 수 있다. 어셈블리 모듈(DASM)은 디코더 모듈(DEC)에 의해 제공된 소스 심볼들을 어셈블링하여, 송신된 입력 데이터(IDT)에 대응하는 출력 데이터(ODT)를 생성한다.
도 2는 인코딩 모듈(ENC)에 의해 제공될 수 있는 데이터 블록(DB[k,k+r])의 종래 포맷을 나타낸다. 데이터 블록(DB)은 r(=n-k)개의 복구 심볼들(R1[1,k] 내지 Rr[1,k])이 후속하는 k개의 소스 심볼들(S[1] 내지 S[k])를 포함한다. 도 3은, k=49개의 소스 심볼들(S[1] 내지 S[49])를 갖고, r=9 복구 심볼들인 데이터 블록 포맷의 경우에, 복구 심볼들(R1[1,k] 내지 Rr[1,k])를 계산하는 방법을 도시한다. 도 3에서, 각각의 복구 심볼(R1[1,k] 내지 Rr[1,k])은 그것이 계산되는 모든 소스 심볼들에 걸쳐 연장된 화살표에 의해 표현된다. 따라서, 데이터 블록(DB[49,58])의 49개 소스 심볼들로부터 복구 심볼들(R1[1,49] 내지 R9[1,49]) 각각이 계산된다.
복구 심볼(Rp[i,j])는 다음의 방정식에 의해 소스 심볼들의 각각의 선형 조합에 의해 계산될 수 있다:
Figure pct00001
(1)
여기서 αpl은 예를 들어 m=8인 필드(GF(2m))에서 임의로 선택된 계수들을 나타내며, p는 1과 (n-k) 사이에 있다. 계수들(αpl)은 크기 kx(n-k)의 행렬에서 수집될 수 있고, 복구 심볼(Rp)의 계산에서 고려되지 않은 소스 심볼들(S[1])의 계수들(αpl)은 0이다. 이 경우, 복구 심볼들은 다음 방정식에 의해 획득될 수 있다:
Figure pct00002
(2)
계수들(αpl)의 행렬 및 송신된 데이터 블록들의 포맷을 규정하는 파라미터들은 디코딩 모듈(DEC)에 송신될 수 있다.
도 3의 예에서, 제 1 소스 심볼들(S[i]) 중 하나가 손실되거나 오류가 있는 경우, 손실된 또는 오류가 있는 소스 심볼을 복원할 수 있도록 (수신된 데이터 블록(DB)이 더 이상의 에러들을 갖지 않으면) 적어도 제 1 복구 심볼(R1[1,49])의 수신을 기다릴 필요가 있다. 실제로, 복원을 위해 각 소스 심볼에 대해 적어도 하나의 복구 심볼이 있어야 하며, 이러한 복원은 x개의 미지수들(x는 복원될 소스 심볼들의 수임)이 있는 x 방정식들의 시스템을 통해 가능해야 한다. 따라서, 도 2 및 도 3에 도시된 코딩 포맷은 49개의 소스 심볼들의 데이터 블록 내에서 오류가 있거나 손실된 최대 9개의 소스 심볼들을 복원하는 것을 가능하게 한다. 또한, 스트림에 대한 액세스 시간이 제 1 수신된 데이터 블록에서 r=9보다 큰 수의 손실되거나 오류가 있는 소스 심볼들을 내포한다면, 그리고 제 2 수신된 데이터 블록에서 적어도 하나의 에러가 검출된다면, 데이터 블록들(B[49,58])의 스트림에 대한 액세스 지연은 2개의 데이터 블록들의 송신 시간에 가까울 수 있다.
도 4는 인코딩 모듈(ENC)에 의해 제공될 수 있는 심볼 스트림(SST[k,w])의 또 다른 종래의 포맷을 나타낸다. 심볼 플로우는 k개의 소스 심볼들(S[1] 내지 S[k], S[k+1] 내지 S[2k], ..., S[(n-1)k+1] S[n·k], ...)의 그룹들의 연속을 포함하며, 각각의 그룹에는 데이터 스트림 내 w개의 이전 소스 심볼들에 대해 계산된 복구 심볼([R1[k-w,k], R1[2k-w,2k], ..., R1[n·k-w,n·k])이 후속하며, w> k이다.
도 5는 데이터 스트림(SST[3,15])에 대한 복구 심볼들(R1[n·k-w,n·k])(n=1, 2, ...)을 계산하는 방법을 도시하며, 상기 복구 심볼들은 w(=15)개의 소스 심볼들(S)의 슬라이딩 윈도우에 속하는 소스 심볼들로부터 계산되고, 복구 심볼은 k(=3)개의 소스 심볼들의 그룹(SB[n·k-2,n·k]) 후에 발행된다. 도 5에서, 각각의 복구 심볼(R[xw,x])은 그것이 계산되는 w개의 소스 심볼들에 걸쳐 연장된 화살표에 의해 나타난다. 따라서, 복구 심볼(R[7,21])은 소스 심볼 그룹(SB[18,21]) 다음에 송신되고, 소스 심볼들(S[7] 내지 S[21])로부터 계산된다. 스트림(SST[3,15]) 내의 다음 복구 심볼(R[10,24])은 소스 심볼 그룹(SB[21,24]) 다음에 송신되고 소스 심볼들(S[10] 내지 S[24])로부터 계산된다. 또한, 복구 심볼(R[i,j])은 방정식 (1) 또는 (2)에 의해 계산될 수 있다.
도 5의 예에서, 다음 복구 심볼의 수신시 손실된 또는 오류가 있는 소스 심볼을 복원하는 것이 가능하다. 따라서 소스 심볼을 복원하기 위한 레이턴시(latency)는 k=3개의 소스 심볼들의 수신 시간보다 적다. 수신된 3개의 소스 심볼들의 제 1 그룹에서 소스 심볼이 손실된 경우, 스트림(SST[3,15])의 제 1 소스 심볼에 대한 액세스 지연은 w=15 심볼들의 수신 지속시간과 적어도 동일하다. 또한, 상기 스트림의 송신이, 상기 복구 심볼들이 계산되는 3개의 소스 심볼들의 연속적인 그룹들(SB[n·k-2,n·k]) 각각에서 적어도 하나의 에러를 생성한다면,스트림의 소스 심볼에 대한 액세스 지연은 무한할 수 있다.
일 실시예에 따르면, 복원 및 액세스 레이턴시들은 데이터 블록들 내의 데이터 스트림을 분할하고, 각각의 송신된 데이터 블록을 서브-블록들로 분할하고, 데이터 블록의 각 서브-블록에 서브-블록의 최종 소스 심볼 바로 다음에 송신되는 복구 심볼을 할당함으로써 감소된다. 임의의 나머지 복구 심볼들은 데이터 블록의 최종 서브-블록 다음에 송신된다.
도 6은 일 실시예에 따른, 데이터 블록 포맷을 규정하기 위한 절차(P1)의 단계들(S1 내지 S4)을 나타낸다. 특히, 절차(P1)는 서브-블록들의 수(NB) 및 서브-블록 당 소스 심볼들의 수(KB)를 결정한다. 절차(P1)은 인코딩 모듈(ENC)에서 구현될 수 있다. 절차(P1)은 데이터 블록을 데이터 블록에 할당된 복구 심볼들의 수와 동일한 다수의 서브-블록들로 분할하는 것에 기초한다. 절차(P1)은 데이터 블록에 존재하는 소스 심볼들의 수(k)와 복구 심볼들을 포함하여 데이터 블록의 심볼의 총 개수(n)을 입력으로서 수신한다. 단계(S1)에서, 서브-블록들의 수(NB)는 데이터 블록에 할당된 복구 심볼들의 수, 즉, n-k와 동일하게 설정된다.
단계(S2)에서, 데이터 블록의 서브-블록 당 소스 심볼들의 수(KB)는 다음의 방정식에 의해 계산된다:
KB=FL(k/(n-k)) (3)
함수 FL(x)는 x보다 적거나 같은 가장 큰 정수를 제공한다. 단계(S3)에서, 데이터 블록 내의 소스 심볼들의 수(k)와 수들(KB 및 NB)의 곱 간의 차(Δ)가 계산된다. 수(Δ)는 데이터 블록의 모든 서브-블록들이 KB개의 소스 심볼들을 포함한다면, 데이터 블록의 서브-블록들 중 하나에 할당되지 않은, 나머지 소스 심볼들의 수를 나타낸다. 수(Δ)는 데이터 블록을 서브-블록들로 분할하는 것이 KB개의 소스 심볼들의 (KB+1)개의 소스 심볼들 및 (NB-Δ)개의 서브-블록들의 Δ개의 서브-블록들을 포함하도록 지정하는 데 사용된다. (KB+1)개의 소스 심볼들의 Δ개의 서브-블록들은 데이터 블록의 시작 또는 끝에 무관하게 배치될 수 있다. 대안적으로, Δ개의 소스 심볼들은 서브-블록들 중 하나, 예를 들어 데이터 블록의 제 1 또는 최종 서브-블록으로부터 제거될 수 있다. 단계(S4)에서, 절차(P1)은 수들(KB, NB, 및 Δ)을 제공함으로써 종료한다. 따라서, 절차(P1)은 각각의 데이터 블록의 KB개의 소스 심볼들의 (KB+1)개의 소스 심볼들 및(NB-Δ)개의 서브-블록들(SB)로의 분할을 야기한다.
예를 들어, 데이터 블록은, b가 0부터 (NB-Δ-2)까지 변화하는, (b·KB+1)로부터 ((b+1)·KB)까지의 KB개의 소스 심볼들을 각각 그룹화하는 (NB-Δ)개의 제 1 서브-블록(SB)와, b가 (NB-Δ-1)부터 (NB-1)까지 변화하는, (b·KB+b-NB+Δ-1)로부터 ((b+1)·KB+b-NB+Δ)까지의 (KB+1)개의 소스 심볼들을 각각 그룹화하는 Δ개의 최종 서브-블록들(SB)을 포함한다.
따라서, 데이터 블록 내의 p개의 소스 심볼들(p<n-k)의 손실의 경우에, 데이터 스트림에 대한 복구 또는 액세스의 레이턴시는, 데이터 블록 다음의 p개의 복구 심볼들(R[i,j])의 수신 시간보다 적다. 물론, 데이터 블록에서 손실된 소스 심볼들의 수가 데이터 블록 당 복구 심볼들의 수(n-k)보다 크다면, 수신되는 데이터 블록은 복구될 수 없다; 그러므로, 다음 데이터 블록의 수신을 기다릴 필요가 있다.
도 7은 절차(P1)에 의해 규정된 데이터 블록(DB)의 예시적인 포맷 및 복구 심볼을 계산하는 방법을 나타낸다. 이 예에서, 데이터 블록은 총 n=58개의 심볼들에 대해 k=49개의 소스 심볼들, 즉 n-k=9개의 복구 심볼들(R1 내지 R9)을 포함한다. 절차(P1)은, 일부 서브-블록들에서 분포될 (Δ=4)개의 소스 심볼들의 차를 갖는, 데이터 블록(DB)의 KB=5개의 소스 심볼들을 포함하는 NB=9개의 서브-블록들로의 분할을 규정한다. 서브-블록들에서 분포될 Δ(=4) 소스 심볼들은 예를 들어 데이터 블록(DB)의 최종 4개의 서브-블록들에 부가될 수 있다. 결과적으로, 데이터 블록(DB)는, 서브-블록들(각각은 5개의 소스 심볼들을 포함하는, SB[1-5](데이터 블록(DB)의 소스 심볼들 1 내지 5를 포함함), SB[6-10], SB[11-15], SB[16-20], SB[21-25], 및 각각 6개의 소스 심볼들을 포함하는, SB[26-31], SB[32-37], SB[38-43], 및 SB[44-49])를 포함한다. 소스 심볼들(S[1] 내지 S[5])의 선형 조합에 의해 획득된 제 1 복구 심볼(R1[1,5])는 제 1 서브-블록(SB[1-5])의 직후, 따라서 소스 심볼(S[5]) 후에 송신된다. 소스 심볼들(S[1] 내지 S[10])의 선형 조합에 의해 획득된 제 2 복구 심볼(R1[1,10])은 제 2 서브-블록(SB[6-10])의 직후에 송신되는 등이다.
도 7의 예에서, 소스 심볼의 손실의 경우에, 데이터 스트림에 대한 복구 또는 액세스의 레이턴시는 5개의 소스 심볼들 및 뒤따르는 복구 심볼의 수신 시간보다 적다.
도 7의 예에서, 제 1 서브-블록(SB[1,5])의 소스 심볼들(S[1] 내지 S[5])는 데이터 블록(DB)에 할당된 모든 복구 심볼들(R1 내지 R9)에 의해 보호된다. 한편, 최종 서브-블록(SB[44,49])의 소스 심볼들(S[44] 내지 S[49])는 최종 복구 심볼(R9)에 의해서만 보호된다. 따라서, 데이터 블록(DB)의 최종 서브-블록(SB[44,49])를 보호하는 소스 심볼 복구 심볼들의 수를 증가시키는 것이 바람직할 수 있다. 이를 위해, 도 8은 또 다른 실시예에 따라, 데이터 블록 포맷을 결정하기 위한 절차(P2)의 단계들(S10 내지 S13)을 도시한다. 특히, 절차(P2)는 데이터 블록 당 소스 심볼들의 수(k)로부터 데이터 블록 당 서브-블록들(SB)의 수(NB) 및 서브-블록 당 소스 심볼들의 수(KB), 데이터 블록에 의한 총 심볼들의 수(n), 및 각 데이터 블록의 최종 서브-블록에 할당될 복구 심볼들의 수(Q)를 결정한다. 그 다음, 절차(P1)(도 6)에 의해 제공되는 파라미터들(KB 및 NB)은 수(KB)에 대한 최소 값 및 수(NB)에 대한 최대 값으로 고려된다. 상기 절차(P1)에서, 최종 서브-블록에 할당된 복구 심볼들의 수(Q)는 1로 설정된다.
단계(S10)에서, 데이터 블록 당 복구 심볼들의 수(n-k)로부터 양(Q-1)을 감산함으로써 서브-블록의 수(NB)가 계산된다. 단계(S11)에서, 소스 심볼들의 수(KB)는 데이터 블록 당 소스 심볼들의 수(k)를 단계(S10)에서 획득된 서브-블록들의 수(NB)로 나눔으로써 계산된다. 수(KB)는 나누기의 결과(k/NB)보다 적은 가장 큰 정수와 동일하게 설정된다. 따라서, 수들(NB 및 KB)은 다음 방정식들에 의해 획득된다:
NB=n-k-Q+1, KB=FL(k/NB) (4)
단계(S12)에서, 데이터 블록 내의 소스 심볼들의 수(k)와 수들(KB 및 NB)의 곱 간의 차(Δ)가 계산된다. 따라서, 수(Δ)는 k-NB×KB와 동일하다. 단계(S13)에서, 절차(P2)는 이렇게 계산된 수들(KB, NB, 및 Δ)를 반환한다. 따라서, 절차(P2)는, 예를 들어, KB개의 소스 심볼들의 (NB-Δ)개의 서브-블록들 및 (KB+1)개의 소스 심볼들의 Δ개의 서브-블록들을 포함하는, k개의 소스 심볼들 및 (n-k)개의 복구 심볼들의 데이터 블록의 분할을 규정하며, 각각의 서브-블록은, 예를 들어 방정식(1) 또는 (2)에 의해 데이터 블록 내 이전 소스 심볼들의 적어도 일부에 대해 계산된 복구 심볼(R[i,j])이 후속된다. 이렇게 계산된 파라미터들(KB, NB, 및 Δ)은 디코딩 모듈(DEC)로 송신되어, 송신된 데이터 블록들에서 서브-블록들 및 복구 심볼들을 찾을 수 있다.
파라미터(Q)가 1로 설정되면, 절차(P1)에 의해 규정된 포맷에 따라, 절차(P2)는 n-k(데이터 블록 내의 복구 심볼들의 수)와 동일한 NB개의 서브-블록들 및 FL(k/(n-k))과 동일한 서브-블록 당 소스 심볼들의 수(KB)를 제공한다. k=49 및 n=58인 예에서, 절차(P2)는 9와 동일한 수인 (NB)개의 서브-블록들 및 4와 동일한 수인 차(Δ)를 갖는 5와 동일한 수의 서브-블록 당 소스 심볼들의 수(KB)를 제공한다. 따라서, 도 7의 데이터 블록 포맷이 달성된다. 파라미터(Q)가 n-k로 설정되면, 절차(P2)는 1과 동일한 수인 (NB)개의 서브-블록들(SB)을 제공하고, 따라서 데이터 블록 내의 소스 심볼들의 수(k)와 동일한 수의 서브-블록 당 소스 심볼들의 수(KB)를 제공한다. 따라서, 도 3의 포맷은 데이터 블록을 서브-블록들로 분할하지 않고 달성된다.
물론, 각 데이터 블록의 서브-블록들의 수(NB)가 고정되어, 절차(P2)의 입력에서 제공될 수도 있다. 이 경우, 단계(S10)은 데이터 블록 당 복구 심볼들의 수(r) 또는 데이터 블록 당 총 심볼들의 수(n)을 계산하는 단계로 대체된다. 따라서, 데이터 블록 당 복구 심볼들의 수(r)은 데이터 블록의 최종 서브-블록에 할당된 복구 심볼을 포함하지 않고, 데이터 블록 당 서브-블록들의 수(NB)에 데이터 블록의 끝에서 추가될 복구 심볼의 수(Q-1)를 더한 것과 동일하며, 단계(S13)에서, 절차(P2)는 데이터 블록 당 서브-블록들의 수(NB) 대신에 데이터 블록 당 복구 심볼들의 수(r) 또는 총 심볼들의 수(n)를 제공한다. 이는 데이터 블록 당 복구 심볼들의 수(r)을 고정된 값으로 설정하고, 데이터 블록 당 서브-블록들의 수(r) 및 수(NB)에 따라, 데이터 블록의 끝에서 복구 심볼들의 수(Q)를 결정하도록 제공될 수도 있다.
도 9는 절차(P2)에 의해 획득된, 49개의 소스 심볼들 및 9개의 복구 심볼들을 갖는 데이터 블록(DB)의 예시적인 포맷을 나타낸다. 이러한 예에서, 데이터 블록(DB)의 단부에 있는 복구 심볼들의 수(Q)는 3과 동일하게 선택된다. 절차(P2)는, 데이터 블록(DB)을, 각각 KB=7개의 소스 심볼들을 포함하는 NB=7개의 서브-블록들로 분할하는 것을 규정하고, 그 차(Δ)는 0이다. 따라서, 도 9의 데이터 블록(DB)는 서브-블록들(SB[1,7], SB[8,14], SB[15,21], SB[22,28], SB[29,35], SB[36,42], 및 SB[42,49])를 포함하며, 각 서브-블록은 3과 동일하게 선택된 파라미터(Q)에 따라, 복구 심볼들, 각각 R1[1,7], R2[1,14], R3[1,21], R4[1,28], R5[1,35], R6[1,42], 및 R7[1,49]가 바로 후속된다. 따라서, 소스 심볼의 손실의 경우에 그러한 데이터 블록에 대한 복구 또는 액세스의 레이턴시는 7개의 소스 심볼들과 복구 심볼의 수신 시간의 합보다 작거나 같다.
도 7 및 도 9의 예들에서, 제 1 서브-블록(SB[1,5], SB[1,7])의 소스 심볼들은 데이터 블록(DB)에 할당된 모든 복구 심볼들에 의해 보호된다는 것을 주목해야 한다. 한편, 데이터 블록(DB)의 최종 서브-블록(SB[44,49], SB[43,49])는 도 7의 예에서는 하나의 복구 심볼(R9[1,49])에 의해서만 보호되고, 도 9의 예에서는 3개의 복구 심볼들(R7[1,49], R8[1,49], 및 R9[1,49])에 의해 수행된다. 결과적으로, 블록의 시작에서 손실된 소스 심볼들의 수가 복구 심볼들의 수보다 크다면, 데이터 블록(DB)의 손실된 소스 심볼들을 복원하는 것이 가능하지 않고, 다음 데이터 블록의 소스 심볼들의 수신을 기다릴 것을 요구한다.
데이터 블록 내의 각 소스 심볼을 보호하는 복구 심볼들의 수를 표준화하는 것이 바람직할 수 있다. 이를 위해, 데이터 블록이, b가 0부터 (NB-Δ-2)까지 변하는, (b·KB+1)부터 ((b+1)·KB)까지의 KB 소스 심볼들을 각각 포함하는, (NB-Δ)개의 제 1 서브-블록들을 갖는 (NB)개의 서브-블록들로 분할되며, Δ개의 최종 서브-블록들(SB) 각각은, b가 (NB-Δ-1)로부터 (NB-1)까지 변하는, (b·KB+b-NB+Δ-1)로부터 ((b+1)·KB+b-NB+Δ)까지의 (KB+1)개의 소스 심볼들을 포함하는 경우를 고려한다. b가 (NB-Δ-1)보다 작으면, 최종 (NB-1)개의 복구 심볼들은 (b·KB+1)부터 k인 소스 심볼들에 걸쳐 계산될 수 있고, b가 (NB-Δ-2)보다 크면, (b·KB+b-NB+Δ-1)부터 k인 소스 심볼들에 걸쳐 계산될 수 있다. 일부 복구 심볼들이 계산되는 소스 심볼들의 수가 감소됨에 따라, 복구 심볼들의 계산 및 소스 심볼의 복원 계산들이 단순화된다.
따라서, 도 10은 도 9의 포맷으로부터 기인한, 49개의 소스 심볼들 및 9개의 복구 심볼들을 갖는 데이터 블록(DB)의 예시적인 포맷을 도시하며, 여기서 각각의 소스 심볼은 Q(=3)개의 복구 심볼들에 의해 보호된다. 데이터 블록(DB) 내의 서브-블록의 크기 및 분포는 도 9에 도시된 포맷으로부터 변화되지 않는다. 복구 심볼들(R1 내지 R3)은 항상 데이터 블록(DB)의 제 1 소스 심볼(S[1])로부터 계산된다. 한편, 복구 심볼들(R4[8,28], R5[15,35], R6[22,42], 및 R7[29,49])은 21개의 선행 소스 심볼들로부터 계산되며, 복구 심볼(R8[36,49])은 데이터 블록(DB)의 최종 14개의 소스 심볼들(S[36] 내지 S[49])로부터 계산되고, 복구 심볼(R9[43,49])은 데이터 블록(DB)의 최종 7개의 소스 심볼들(S[43] 내지 S[49])로부터 계산된다.
도 10의 예에서, 3개 이상의 소스 심볼들이 데이터 블록(DB)의 제 1 서브-블록(SB[1,7])에서 손실되면, 손실된 소스 심볼들을 복원할 수 없다. 한편, 복구 심볼(R4[8,14])이 수신되자 마자 후속 3개의 서브-블록들(SB[8,14], SB[15,21], 및 SB[22,28])에서 손실된 소스 심볼을 복원할 수 있으며, 이는 손실된 것으로 간주되는 제 1 서브-블록의 심볼들의 지식을 필요로 하지 않는다.
도 11은 절차(P2)에 의해 획득된, 49개의 소스 심볼들 및 9개의 복구 심볼들을 갖는 데이터 블록(DB)의 예시적인 포맷을 도시한다. 이러한 예에서, 데이터 블록(DB)의 단부에 있는 복구 심볼들의 수(Q)는 CL((n-k)/2), 즉 5와 같도록 선택되며, 함수(CL(x))는 수(x)와 같거나 더 큰 최소 정수를 나타낸다. 절차(P2)는 NB=5개의 서브-블록들로의 데이터 블록(DB)의 분할을 규정하며, 각각은 (KB=9)개의 소스 심볼들을 포함하고, 차(Δ)는 4와 같다. 결과적으로, 5로 설정된 Q의 선택은 데이터 블록(DB)의 9개의 소스 심볼들의 서브-블록 및 10개의 소스 심볼들의 4개의 서브-블록들로의 분할을 야기한다. 따라서, 도 11의 데이터 블록(DB)는 10개의 소스 심볼들의 4개의 서브-블록들(SB[1,10], SB[11,20], SB[21,30], SB[31,40]) 및 9개의 소스 심볼들의 하나의 서브-블록(SB[41,49])를 포함하며, 각각의 서브-블록은 복구 심볼(R1[1,10], R2[1,20], R3[1,30], R4[1,40], 및 R5[1,49])이 바로 후속된다. 최종 서브-블록(SB[41,49])은, 5와 동일하게 선택된 파라미터(Q)에 따라, 5개의 복구 심볼들(R5[1,49], R6[1,49], R7[1,49], R8[1,49], 및 R9[1,49])가 후속된다.
앞에서와 같이, 이러한 형식에서는 소스 심볼 당 복구 심볼들의 수를 표준화할 수 있다. 따라서, 도 12는 도 11의 포맷으로부터 유도된, 49개의 소스 심볼들 및 9개의 복구 심볼들을 갖는 데이터 블록(DB)의 예시적인 포맷을 도시하며, 여기서 각각의 소스 심볼은 5개의 복구 심볼들에 의해 보호된다. 데이터 블록(DB) 내의 서브-블록들의 크기 및 분포는 도 11에 도시된 포맷으로부터 변하지 않는다. 복구 심볼들(R1 내지 R5)은 모두 데이터 블록(DB)의 제 1 소스 심볼(S[1])로부터 계산된다. 한편, 다른 복구 심볼들(R6[11,49], R7[21,49], R8[31,49], 및 R9[41,49])는 소스 심볼들(S[11], S[21], S[31], 및 S[41])로부터 각각 계산된다.
도 13은 데이터 블록(DB)의 단부에서의 복구 심볼들의 수(Q)가 6과 동일하게 선택될 때, 절차(P2)에 의해 획득된 49개의 소스 심볼들 및 9개의 복구 심볼들을 갖는 데이터 블록(DB)의 예시적인 포맷을 도시한다. 절차(P2)는 데이터 블록(DB)의 (KB=12)개의 소스 심볼들을 각각 포함하는 (NB=4)개의 서브-블록들로의 분할을 규정하는데, 수(△)는 1과 동일하다. 따라서, 이러한 분포는 서브-블록들 중 하나, 예를 들어, 최종 서브-블록에 소스 심볼을 추가하는 것을 의미한다. 따라서, 도 13의 데이터 블록(DB)는 12개의 소스 심볼들과 13개의 소스 심볼들의 서브-블록(SB[37,49])를 포함하는 3개의 서브-블록들(SB[1,12], SB[13,24], 및 SB[25,36])을 포함하며, 각각의 서브-블록은 복구 심볼(R1[1,12], R2[1,24], R3[1,36], 및 R4[1,49])가 바로 후속된다. 최종 서브-블록(SB[37,49])는, 6과 동일하게 선택된 파라미터(Q)에 따라, 6개의 복구 심볼들(R4[1,49], R5[1,49], R6[1,49], R7[1,49], R8[1,49], 및 R9[1,49])이 후속된다.
앞에서와 같이, 이러한 포맷에서는 소스 심볼 당 복구 심볼의 수를 표준화할 수 있다. 따라서, 도 14는, 도 13의 포맷으로부터 기인한, 49개의 소스 심볼들 및 9개의 복구 심볼들을 갖는 데이터 블록(DB)의 예시적인 포맷을 도시하며, 여기서, 각각의 소스 심볼은 6개의 복구 심볼들에 의해 보호된다. 데이터 블록(DB) 내의 서브-블록들의 크기 및 분포는 도 13에 도시된 포맷으로부터 변하지 않는다. 복구 심볼들(R1 내지 R6)은 항상 데이터 블록(DB)의 제 1 소스 심볼(S[1])로부터 계산된다. 한편, 다른 복구 심볼들(R7[13,49], R8[25,49], 및 R9[37,49])은 소스 심볼들(S[13], S[25], 및 S[37])로부터 각각 계산된다.
도 15 내지 도 18은 상이한 데이터 블록 포맷들에 대한, 손실된 심볼 복구 시간(RT)의 변동 곡선들을 도시한다. 이러한 곡선들은 1Mb/s의 비트 레이트로, 총 100개의 소스 심볼들과 125개의 심볼들의 블록들의 송신을 시뮬레이션하여 획득된 것이다. 송신 시간은 100ms로 설정되었다. 각각의 측정은 107개의 소스 심볼들, 즉 데이터의 105개의 블록들의 송신을 시뮬레이션함으로써 획득되었다. 심볼 손실들은 베르누이 손실 모델(Bernoulli loss model)로부터 획득된다. 소스 심볼의 복구 시간은, 소스 심볼이 오류 없이 수신된 순간과 소스 심볼이 복원된 순간 사이의 시간에 해당한다.
도 15는 모든 복구 심볼들이 데이터 블록(도 3)의 단부에서 송신될 때, 복구 시간의 함수로서 복구 확률의 변화의 곡선들(C1 내지 C5)을 도시한다. 곡선들(C1 내지 C5)는 심볼 손실률들이 각각 1, 5, 10, 15, 및 20%로 획득되었다. 곡선(C1)로부터, 복구 확률은 각각 약 50ms 및 90ms의 복구 시간들에 대해 0.4 및 1에 이른다. 손실된 심볼 복구 시간은 심볼 손실률이 증가함에 따라 점진적으로 증가한다. 따라서, 곡선(C2)에 따르면, 복구 시간은 약 82ms 및 92ms에 각각 0.4 및 1의 확률로 도달한다. 곡선(C3)으로부터, 복구 시간은 각각 0.4 및 1의 확률들로 약 91ms 및 96ms로 증가한다. 곡선(C4)으로부터, 복구 시간은 각각 0.4 내지 1의 확률들로 약 94ms 및 98ms로 증가한다. 곡선(C5)으로부터, 복구 시간은 각각 0.4및 1의 확률들로 약 96ms 및 100ms로 증가한다.
도 16은 송신된 데이터 블록들의 포맷이 데이터 블록의 단부에서 복구 심볼들만큼의 서브-블록들을 포함할 때, 그리고 모든 서브-블록들이 동일한 수의 복구 심볼들에 의해 실질적으로 보호되는 경우(도 12)의 복구 시간의 함수로서의 손실된 심볼들의 복구 확률의 변화의 곡선들(C11 내지 C15)을 도시한다. 곡선들(C11 내지 C15)는 각각 1, 5, 10, 15, 및 20%의 심볼 손실률들로 획득되었다. 곡선들(C11 내지 C15)로부터, 손실된 심볼 복구 시간은 0.4의 확률로 약 3 내지 7ms이다. 곡선(C11)으로부터, 약 16ms의 손실된 심볼 복구 시간에 대해 복구 확률은 1이다. 이러한 복구 시간은 심볼 손실률이 증가함에 따라 점차적으로 증가한다. 따라서, 곡선(C12)에 따르면, 손실 심볼 복구 시간은 1에 가까운 확률로 약 50ms에 이른다. 커브(C13)에서, 이러한 복구 시간은 각각 0.9 및 1의 확률들로 약 50ms 및 96ms로 증가한다. 곡선(C14)로부터, 손실된 심볼 복구 시간은 각각 0.8 및 1의 확률들로 약 74ms 및 98ms로 증가한다. 곡선(C15)으로부터, 손실된 심볼 복구 시간은 각각 0.8 및 1의 확률들로 약 84ms 및 98ms로 증가한다. 따라서, 도 12의 포맷은 도 3의 종래의 포맷보다 손실된 심볼 복구 레이턴시의 관점에서 훨씬 더 우수한 성능을 나타낸다.
도 17은 송신된 데이터 블록들의 포맷이 데이터 블록의 단부에서 2개 또는 3개의 복구 심볼들을 포함할 때(도 9 또는 도 10), 복구 시간의 함수로서 손실된 심볼들을 복구할 확률의 변화의 곡선들(C21 내지 C25)을 도시한다. 곡선들(C21 내지 C25)는 각각 1, 5, 10, 15, 및 20%의 심볼 손실률들로 획득되었다. 곡선들(C21 내지 C25)로부터, 복구 시간은 0.6의 확률로 약 7ms 미만이다. 곡선(C21)으로부터, 복구 확률은 약 10ms에서 1이다. 복구 시간은 심볼 손실률이 증가함에 따라 점차 증가한다. 곡선(C22)에 따르면, 복구 시간은 1에 가까운 확률로 약 20ms에 이른다.
곡선(C23)으로부터, 복구 시간은 1의 확률로 약 46ms이다. 곡선(C24)에 따르면, 복구 시간은 1의 확률로 약 80ms로 증가한다. 곡선(C25)에 따르면, 복구 시간은 확률이 0.95보다 클 때 70ms보다 적으며 1의 확률로 98ms에 도달한다. 따라서, 도 9 또는 도 10의 포맷은 도 12의 형식보다 복구 레이턴시 측면에서 더 우수한 성능을 나타낸다.
도 18은 송신된 데이터 블록들의 포맷이 복구 심볼들만큼의 서브-블록들을 포함하는 경우(도 7)의, 복구 시간의 함수로서 손실된 심볼들을 복구할 확률의 변화의 곡선들(C31 내지 C35)을 도시한다. 곡선들(C31 내지 C35)은 각각 1, 5, 10, 15, 및 20%의 심볼 손실률들로 획득되었다. 곡선들(C31 내지 C35)로부터, 복구 시간은 0.8의 확률로 약 10ms 미만이다. 곡선(C31)으로부터, 복구 확률은 약 7ms에서 1이다. 복구 시간은 심볼 손실률이 증가함에 따라 점차 증가한다. 곡선(C32)에 따르면, 손실 심볼 복구 시간은 1에 가까운 확률로 약 20ms에 이른다. 곡선(C33)에 따르면, 이러한 복구 시간은 1의 확률로 약 34ms로 증가한다. 곡선(C34)에 따르면, 이러한 복구 시간은 1의 확률로 약 56ms로 증가한다. 곡선(C35)에 따르면, 이러한 복구 시간은, 확률이 0.95보다 클 때 30ms보다 적고, 1의 확률로 74ms에 도달한다. 따라서, 도 7의 포맷은 도 9 또는 도 10의 포맷보다 복구 레이턴시 측면에서 더 우수한 성능을 갖는다.
도 19 내지 도 23은 상이한 데이터 블록 포맷들에 대한, 데이터 스트림에 대한 액세스 지연 확률의 변화 곡선들을 도시한다. 또한, 이러한 곡선들은 1Mb/s의 비트 레이트로, 총 100개의 소스 심볼들 및 125개의 심볼들의 블록 송신을 시뮬레이션함으로써 획득되었다. 송신 시간은 100ms로 설정되었다. 각각의 측정은 107개의 소스 심볼들, 즉 105개의 데이터 블록들의 송신을 시뮬레이션함으로써 획득되었다. 심볼 손실들은 베르누이 손실 모델로부터 획득된다. 데이터 스트림에 대한 액세스 지연은 제 2 송신된 데이터 블록의 50번째 소스 심볼에서 발생하는 플로우 액세스 시간을 고려하여 계산된다. 데이터 스트림으로의 액세스 시간과 수신된 제 1 데이터 블록의 최종 심볼 또는 슬라이딩 윈도우의 수신 순간 사이에서 심볼 손실이 없는 경우, 스트림에 대한 액세스 지연은 0ms로 고정된다. 도 19는, 송신된 데이터 블록들의 포맷이 단일 서브-블록을 포함하고, 모든 복구 심볼들이 데이터 블록의 단부에서 송신되는 경우(도 3), 데이터 플로우에 대한 액세스 지연 확률의 변화의 곡선들(C41 내지 C45)을 도시한다. 곡선들(C41 내지 C45)는 각각 1, 5, 10, 15, 및 20%의 심볼 손실률들로 획득되었다. 곡선들(C41 내지 C45)는 액세스 지연이 약 150ms(1의 확률로 도달)를 초과하지 않음을 나타낸다. 곡선(C41)에 따르면, 0.6 보다 약간 큰 확률로, 액세스 지연은 0이다. 액세스 지연은 약 0.75의 확률로 50ms에 도달하고, 0.85보다 큰 확률로 150ms에 도달한다. 곡선(C42)으로부터, 데이터 스트림에 대한 액세스 지연은 약 0.12 미만의 확률로, 150ms보다 적다. 곡선들(C43 내지 C45)에 따르면, 액세스 지연은 0에 가까운 확률로 150ms보다 적다.
도 20은 송신된 데이터 블록들의 포맷이 데이터 블록의 단부에서 그룹화된 복구 심볼들만큼의 서브-블록들을 포함하는 경우(도 12)의, 액세스 지연 확률의 변화의 곡선들(C51 내지 C55)을 도시한다. 곡선들(C51 내지 C55)은 각각 1, 5, 10, 15 및 20%의 심볼 손실률들로 획득되었다. 곡선들(C51 내지 C55)로부터, 액세스 지연은 0.75보다 큰 확률로 약 50ms보다 적다. 곡선(C51)에 따르면, 액세스 지연은 0.6에 가가운 확률로 제로이다. 곡선들(C51 및 C52)에 따르면, 1에 가까운 확률로 50ms의 액세스 지연에 도달한다. 곡선(C53)으로부터, 1의 확률은 약 100ms의 액세스 지연으로 도달된다. 곡선들(C54 및 C55)로부터, 약 150ms의 액세스 지연으로 1의 확률이 도달된다. 곡선(C54)에 따르면, 액세스 지연은 0.9보다 큰 확률로 50 내지 150ms이다. 곡선(C55)으로부터, 액세스 지연은 0.75보다 높은 확률로, 50 내지 150ms이다. 따라서, 도 9 또는 도 10의 포맷은 도 3의 포맷보다 액세스 레이턴시 측면에서 더 나은 성능을 갖는다.
도 21은 송신된 데이터 블록들의 포맷이 데이터 블록의 단부에서 2개 또는 3개의 복구 심볼들을 포함하는 경우(도 9 또는 도 10)의, 액세스 지연 확률의 변화의 곡선들(C61 내지 C65)을 도시한다. 곡선들(C61 내지 C65)은 각각 1, 5, 10, 15, 및 20%의 심볼 손실률들로 획득되었다. 곡선들(C61 내지 C65)로부터, 액세스 지연은 0.9보다 큰 확률로 약 50ms보다 적다. 곡선(C61)에 따르면, 액세스 지연은 0.6에 가까운 확률로 제로이다. 곡선들(C61, C62, 및 C63)에 따르면, 1에 가까운 확률로 50ms의 액세스 지연에 도달된다. 곡선(C64)로부터, 약 130ms의 액세스 지연으로 1의 확률에 도달한다. 곡선(C65)에 따르면, 액세스 지연은 0.95보다 큰 확률로 약 150ms로 증가한다. 따라서, 도 9 또는 도 10의 포맷은 도 11 또는 도 12의 포맷보다 액세스 레이턴시 측면에서 더 나은 성능을 갖는다.
도 22는 송신된 데이터 블록들의 포맷이 복구 심볼들만큼 많은 서브-블록들을 포함하는 경우(도 7)의, 액세스 지연 확률의 변화의 곡선들(C71 내지 C75)을 나타낸다. 곡선들(C71 내지 C75)은 각각 1, 5, 10, 15, 및 20%의 손실률들로 획득되었다. 곡선들(C71 내지 C75)로부터, 액세스 지연은 0.95보다 큰 확률로 약 50ms보다 적다. 곡선(C71)에 따르면, 액세스 지연은 0.6에 가까운 확률로 제로이다. 곡선들(C71 및 C72)에 따르면, 1에 가까운 확률로 50ms의 액세스 지연이 도달된다. 곡선(C73)으로부터, 1의 확률은 약 70ms의 액세스 지연으로 도달된다. 곡선들(C74 및 C75)로부터, 약 150ms의 액세스 지연으로 1의 확률이 도달된다. 곡선(C74)에 따르면, 액세스 지연은 0.9보다 큰 확률로 50 내지 150ms이다. 곡선(C75)에 따르면, 액세스 시간은 0.8보다 큰 확률로 50 내지 150ms이다. 따라서, 도 7의 포맷은 도 9 또는 도 10의 포맷보다 액세스 레이턴시 측면에서 더 나은 성능을 갖는다.
도 19 내지 도 22의 곡선들로부터, 데이터 스트림에 대한 액세스 지연(JT)는 데이터가 데이터 블록들로 조직화될 때 약 150㎳보다 적은 값으로 제한된다. 도 23은 송신된 데이터 블록들의 포맷이 50개의 소스 심볼들의 윈도우(w)를 갖는 도 5의 포맷인 경우의, 액세스 레이턴시 확률의 변화의 곡선들(C81 내지 C84)을 도시한다. 곡선들(C81 내지 C84)은 각각 1, 5, 10 및 15%의 심볼 손실률들로 획득되었다. 심볼 손실률들이 20% 이상인 경우, 데이터 스트림에 대한 액세스 지연은 무한대가 되는 경향이 있다. 곡선(C81)에 따르면, 액세스 지연은 0.6에 가까운 확률로 0이며, 1의 확률로 50ms보다 약간 크다. 곡선(C82)은 약 80ms의 액세스 지연으로, 1에 가까운 확률에 도달한다. 곡선(C83)으로부터, 약 150ms의 액세스 지연으로 1에 가까운 확률에 도달한다. 곡선(C84)에 따르면, 1에 가까운 확률은 약 500ms의 액세스 지연으로 도달된다. 따라서, 도 5의 포맷은 연구된 다른 포맷들보다 액세스 레이턴시 측면에 있어서 성능이 떨어진다.
일 실시예에 따르면, 송신기 장치(TDV)를 포함하거나 이에 결합되는 컨텐츠 서버는 수신기 장치(RDV)를 포함하는 모바일 단말들과 같은 단말들의 세트에 컨텐츠를 다중송출한다. 따라서, 도 24는 멀티미디어 방송 다중송출 서비스(Multimedia Broadcast Multicast Service, MBMS) 또는 eMBMS 서비스(강화된 MBMS)를 구현하는 서버(MBMS)를 통해, 인터넷 네트워크와 같은 네트워크(IPN)에 접속된 컨텐츠 서버(CNTP)의 예를 나타낸다. 단말들(UE)은 게이트웨이들(MGW)을 통해 네트워크(IPN)에 접속된, 모바일 네트워크들TRN)에 각각 접속된다. 서버(CNTP)에 의해 제공된 콘텐츠는 상술한 포맷들 중 하나에 따라 방송된다. 열악한 수신 상태들을 갖는 단말들(UE) 중 일부는 반환 채널을 통해 수신 상태들이 열악하다는 것을 나타내는 리턴 메시지를 콘텐츠 서버(CNTP)로 송신할 수 있다. 따라서, 리턴 메시지는 패킷 손실률, 복구 심볼들을 사용한 후의 잔여 손실률, 및 수신된 신호의 품질과 관련된 다른 특성들을 나타낼 수 있다.
응답으로, 컨텐트 서버(CNTP)는, 유니캐스트 채널들 상에서, 콘텐츠 서버(CNTP)의 송신기 장치(TDV)에 의해 일정 기간 동안 송신된 각각의 데이터 블록에 대한 하나 이상의 추가 복구 심볼들을 열악한 수신 상태들을 보고한 단말들로 송신한다. 따라서, 콘텐츠 서버(CNTP)는 수만개의 단말들(UE)에 다중송출 콘텐츠를 송신할 수 있고, 점-대-점 모드로, 부가적인 복구 심볼들을 열악한 수신 품질 상태들을 보고하는 수백 개의 단말들(UE)로 송신할 수 있다. 복구 심볼들만이 이러한 채널들에 의해 송신되기 때문에, 이러한 방식들은, 점-대-점 채널들 상의 큰 대역폭을 사용하지 않으면서, 수신 품질을 보장하면서, 다중송출 콘텐츠 서비스를 제공하는 것을 가능하게 한다.
양호한 수신 상태들을 나타내는 리턴 메시지의 단말에 의한 서버로의 송신은이러한 단말에 대한 추가적인 복구 심볼들의 송신을 종료할 수 있다. 이러한 송신은 방송된 콘텐츠의 송신 종료시에 정지되는 것 외에, 특정 기간의 종료시에 종료될 수도 있다. 그 다음, 단말들은 열악한 수신 상태들을 시그널링하는 새로운 리턴 메시지들을 송신하여, 점-대-점 송신 모드에서 추가의 복구 심볼들의 송신을 다시 트리거할 가능성을 항상 갖는다.
양호한 또는 열악한 수신 상태들의 시그널링 메시지의 프로세싱 및 추가적인 복구 심볼들의 송신은 콘텐츠 서버(CNTP) 이외의 서버, 예를 들어 MBMS 서버와 같은 서버에 의해 수행되어, 콘텐츠를 단말들(UE)에 송신하는 것을 보장함을 주목해야 한다. 또한, 다중송출 서비스는 도 24의 예로서 도시된 것들 이외의 다른 수단 및 다른 프로토콜들에 의해 구현될 수 있다. 예를 들어, 다중송출 서비스는 Wi-Fi 네트워크에서 구현될 수 있다.
본 발명이 다양한 대안적인 실시예들 및 다양한 용도들에 종속될 수 있음은 당업자에게 명백할 것이다. 특히, 각 서브-블록에 2개(또는 초과)의 복구 심볼들을 할당하는 것이 제공될 수 있다. 그러나, 이러한 해결책은 데이터 블록 당 서브-블록들의 수를 두 배로 하고, 각 서브-블록에 하나의 복구 심볼을 할당하는 해결책에 비해 보정 레이턴시 측면에서 차선책으로 간주될 수 있다.
반면에, 복구 심볼들 각각이 계산되는 소스 심볼들은 반드시 데이터 블록에서 연속적일 필요는 없고, 복구 심볼 바로 전에 송신된 소스 심볼을 반드시 포함할 필요는 없다.

Claims (14)

  1. 데이터 송신 방법으로서,
    송신될 데이터를 데이터 블록들(DBs)로 그룹화된 소스 심볼들(S)의 형태로 인코딩하는 단계,
    각 데이터 블록에 다수의 복구 심볼들(repair symbols)(R1 내지 R9)을 할당하는 단계로서, 데이터의 각 블록에 대해:
    상기 데이터 블록의 소스 심볼들을, 상기 데이터 블록에 할당된 복구 심볼들의 수와 동일한 수의 서브-블록들(SB)로 분포시키는 단계; 및
    복구 심볼을 상기 데이터 블록의 각 서브-블록에 할당하는 단계;를 포함하는, 각 데이터 블록에 다수의 복구 심볼들(repair symbols)(R1 내지 R9)을 할당하는 단계,
    상기 데이터 블록 내의 서브-블록의 소스 심볼들과 선행하는 서브-블록들의 소스 심볼들 간의 선형 조합에 의해 상기 데이터 블록의 각 서브-블록의 복구 심볼을 계산하는 단계, 및
    상기 데이터 블록을 데이터 블록들의 스트림으로 송신하는 단계로서, 연속적으로 상기 데이터 블록의 각 서브-블록을 송신하고, 각 서브-블록은 해당 서브-블록의 소스 심볼들을 송신하고 후속하여 해당 서브-블록의 복구 심볼을 송신함으로써 송신되는, 상기 데이터 블록을 데이터 블록들의 스트림으로 송신하는 단계를 포함하는, 데이터 송신 방법.
  2. 제 1 항에 있어서,
    상기 데이터 블록의 각 복구 심볼(R1 내지 R9)은 상기 데이터 블록의 소스 심볼들(S)의 적어도 일부의 선형 조합에 의해 계산되어, 상기 데이터 블록의 각 소스 심볼이 상기 데이터 블록의 복구 심볼들 중 하나만큼 상이하거나 동일한 수를 계산하는 데 사용되는, 데이터 송신 방법.
  3. 제 1 항에 있어서,
    상기 데이터 블록(DB)의 각 복구 심볼(R1 내지 R9)은 상기 데이터 블록의 이전에 송신된 소스 심볼들(S) 모두의 선형 조합에 의해 계산되는, 데이터 송신 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 데이터 블록(DB)의 최종 서브-블록(last sub-block)(SB[..., 49])의 소스 심볼들(S)의 적어도 일부로부터 계산된 복수의 복구 심볼들(R)이 상기 데이터 블록의 단부에서 송신되는, 데이터 송신 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 데이터 블록(DB)의 각 서브-블록(SB)은 소스 심볼들(S) 중 하나만큼 상이하거나 동일한 수를 포함하는, 데이터 송신 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 데이터 블록(DB)은 상기 데이터 블록의 단부에서 송신되는 복구 심볼들(R)만큼의 서브-블록들(SB)을 포함하는, 데이터 송신 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 데이터 블록(DB)의 포맷을 규정하기 위한 단계를 포함하며,
    상기 상기 데이터 블록(DB)의 포맷을 규정하기 위한 단계는,
    상기 데이터 블록의 단부에서 송신될 복구 심볼들(R)의 제 1 수(Q)를 규정하는 단계,
    상기 제 1 수 및 상기 데이터 블록에 할당된 복구 심볼들의 수에 따라 상기 데이터 블록의 서브-블록들(SB)의 수(NB)를 결정하는 단계, 또는 상기 데이터 블록의 서브-블록들의 수 및 상기 제 1 수에 따라 상기 데이터 블록에 할당된 복구 심볼들(R)의 수(n-k)를 결정하는 단계,
    상기 데이터 블록 내의 소스 심볼들의 수(k)를 상기 서브-블록들의 수로 분할함으로써 서브-블록 당 소스 심볼들(S)의 최소 수(KB)를 계산하는 단계로서, 상기 소스 심볼들의 최소 수는 상기 분할로부터 획득된 결과보다 적거나 같은 최대 정수와 동일하게 설정되는, 상기 서브-블록 당 소스 심볼들(S)의 최소 수(KB)를 계산하는 단계, 및
    상기 데이터 블록 내의 소스 심볼들의 수와, 상기 데이터 블록 내의 서브-블록들의 수와 서브-블록 당 소스 심볼들의 최소 수의 곱(NB·KB) 간의 차(Δ)를 계산하는 단계로서, 상기 차는 상기 데이터 블록의 상기 서브-블록들에 추가될 소스 심볼들의 수를 규정하는, 상기 차(Δ)를 계산하는 단계를 포함하는, 데이터 수신 방법.
  8. 제 7 항에 있어서,
    상기 차(Δ)는 서브-블록 당 소스 심볼들의 최소 수(KB)와 동일한 수의 소스 심볼들(S)을 갖는 상기 데이터 블록(DB)의 서브-블록들(SB)의 수를 규정하는, 데이터 수신 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    점-대-점 모드(point-to-point mode)로 사용자 단말(UE)로부터 열악한 수신 상태들을 시그널링하는 메시지를 수신하는 단계, 및
    상기 메시지에 응답하여, 상기 메시지를 수신한 후에 송신된 각 데이터 블록에 대한 적어도 하나의 복구 심볼(R)을 점-대-점 모드로 상기 단말로 송신하는 단계를 포함하는, 데이터 수신 방법.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 따른 송신 방법에 따라 송신된 데이터의 수신 방법으로서,
    데이터 블록(DB)의 소스 심볼들(S)의 서브-블록들(SB)을 수신하는 연속적인 단계들을 포함하며, 각 서브-블록의 수신은 상기 서브-블록과 연관된 복구 심볼(R)의 수신이 후속되며, 각 복구 심볼은 상기 복구 심볼과 연관된 서브-블록의 소스 심볼들의 선형 조합에 대응하는, 데이터 수신 방법.
  11. 제 10 항에 있어서,
    상기 데이터 블록에서 분실되거나(missing) 오류가 있는(erroneous) 소스 심볼(S)을 검출하는 단계, 및
    상기 분실 또는 오류가 있는 소스 심볼에 후속하는 제 1 복구 심볼(R)의 수신시, 상기 제 1 복구 심볼과 상기 제 1 복구 심볼에 대응하는 선형 조합 간의 동등성(equality)으로부터 발생하는 방정식을 푸는 것에 의해 상기 분실 또는 오류가 있는 소스 심볼을 계산하는 단계를 포함하는, 데이터 수신 방법.
  12. 제 10 항 또는 제 11 항에 있어서,
    다중-송출(multi-cast) 모드로 송신된 데이터 블록들의 열악한 수신 상태들을 검출하는 단계,
    열악한 수신 상태들을 시그널링하는 메시지를 서버(CNTP 및 MBMS)로 점-대-점 모드로 송신하는 단계, 및
    상기 다중-송출 모드로 수신된 데이터 블록들(DBs)에 대해, 상기 수신된 데이터 블록들 내의 손실된 소스 심볼들(S)을 계산하기 위해 사용가능한 추가 복구 심볼들을 점-대-점 모드로 수신하는 단계를 포함하는, 데이터 수신 방법.
  13. 제 1 항 내지 제 9 항 중 어느 한 항에 따른 방법을 구현하도록 구성된 데이터 송신 장치.
  14. 제 10 항 내지 제 12 항 중 어느 한 항에 따른 방법을 구현하도록 구성된 데이터 수신 장치.
KR1020197021436A 2016-12-22 2017-12-21 데이터 패킷들을 검색하기 위한 저-레이턴시 오류들을 보정하는 방법 및 장치 KR20190099045A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1663227 2016-12-22
FR1663227A FR3061379B1 (fr) 2016-12-22 2016-12-22 Procede de transmission de donnees incluant une correction d’erreur directe
PCT/FR2017/053795 WO2018115775A1 (fr) 2016-12-22 2017-12-21 Procédé et dispositif de correction d'erreurs à faible latence pour recouvrement de paquets de données

Publications (1)

Publication Number Publication Date
KR20190099045A true KR20190099045A (ko) 2019-08-23

Family

ID=58501569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197021436A KR20190099045A (ko) 2016-12-22 2017-12-21 데이터 패킷들을 검색하기 위한 저-레이턴시 오류들을 보정하는 방법 및 장치

Country Status (7)

Country Link
US (1) US20190319645A1 (ko)
EP (1) EP3560104A1 (ko)
JP (1) JP2020503742A (ko)
KR (1) KR20190099045A (ko)
CN (1) CN110121840B (ko)
FR (1) FR3061379B1 (ko)
WO (1) WO2018115775A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11411584B2 (en) * 2020-09-28 2022-08-09 Western Digital Technologies, Inc. Data storage device channel encoding current data using redundancy bits generated over preceding data
CN114244476B (zh) * 2021-12-25 2024-03-15 秦柏林 一种基于倍率码的数据编码传输方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870412A (en) * 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US7930617B1 (en) * 2007-06-20 2011-04-19 Rockwell Collins, Inc. Sliding window block codes for cross-packet coding
KR20130094160A (ko) * 2012-01-20 2013-08-23 삼성전자주식회사 스트리밍 서비스를 제공하는 방법 및 장치
WO2014169015A1 (en) * 2013-04-09 2014-10-16 Carlson Frederic Roy Jr Multiprocessor system with independent direct access to bulk solid state memory resources

Also Published As

Publication number Publication date
JP2020503742A (ja) 2020-01-30
WO2018115775A1 (fr) 2018-06-28
CN110121840B (zh) 2023-09-15
CN110121840A (zh) 2019-08-13
EP3560104A1 (fr) 2019-10-30
US20190319645A1 (en) 2019-10-17
FR3061379A1 (fr) 2018-06-29
FR3061379B1 (fr) 2022-08-12

Similar Documents

Publication Publication Date Title
US6141788A (en) Method and apparatus for forward error correction in packet networks
CN101359981B (zh) 一种数据包冗余编解码的方法、装置及系统
EP1512228B1 (en) Forward error correction method and system for reliable transmission of real time data over a packet based networks
US9276702B2 (en) Apparatus and method for transmitting and receiving an application layer-forward error correction packet in multimedia communication system
Shi et al. Integration of Reed-Solomon codes to licklider transmission protocol (LTP) for space DTN
CN103023813B (zh) 抖动缓冲器
CN102239658B (zh) 按需差错控制
CN106571893B (zh) 一种语音数据的编解码方法
JP2023157921A (ja) メディア内容に基づく自己適応システムコードfec符号化および復号化方法、装置、システムおよび媒体
Sastry Performance of hybrid error control schemes of satellite channels
CN111935485A (zh) 一种rs码前向纠错方法及装置
CN110121840B (zh) 用于校正用于恢复数据分组的低等待时间错误的方法和设备
Fong et al. Low-latency network-adaptive error control for interactive streaming
RU2646346C2 (ru) Устройство и способ передачи и приема пакета с прямой коррекцией ошибок
CN108322286B (zh) 一种获得前向纠错fec参数的方法、装置
KR20080093924A (ko) 중요도에 따라 손실 복원율을 차별화하는 비균일 랩터 코딩방법
CN113301387B (zh) 数据编解码方法、相关设备及系统
CN109687934A (zh) 基于媒体内容的自适应系统码fec方法、装置及系统
RU2423004C2 (ru) Способ передачи информации по каналам связи в реальном времени и система для его осуществления
Tan et al. On the architecture of erasure error recovery under strict delay constraints
RU2711354C1 (ru) Способ передачи данных по асинхронным сетям связи с возможностью восстановления данных при их потере из-за наличия ошибок соединения в сетях связи
Chen Analysis of forward error correcting codes
Pandya et al. Performance analysis of AL-FEC Raptor code over 3GPP EMBMS network
Tan et al. Hybrid Error Correction schemes under strict delay constraints: Framework, optimization and analysis
Deng et al. New point-to-multipoint communication protocols