Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
notes:fountain [2017/02/14] gomidanotes:fountain [2017/02/20] gomida
Line 48: Line 48:
 {{ :notes:idge.png |}} {{ :notes:idge.png |}}
 RFC 5053의 인액티베이션 디코딩(표준 문서에는 이 명칭이 언급되어 있지 않다)을 실제 구현해 시간 복잡도를 비교해 보면 O(KlogK)로 유사선형을 나타내며 유효구간 K:4~8192 영역에서는 선형이라고 주장할 수 있을 만큼 효율이 좋다. 논문에 따라서는 Inactivation Decoding Gaussian Elimination IDGE로 부르기도 한다. 자료구조에 의해서도 많은 영향을 받기 때문에 어딘가 아직 핵심을 놓치고 있을 수도 있고 보완되면 완전한 선형 복잡도를 나타낼 수도 있을 것이다. 많은 응용논문에서 R10의 디코딩 복잡도가 심볼 수 K<sup>2</sup>에 비례하는 그래프를 보이고 있는데 이는 가우스 소거법을 사용하여 디코딩하는 경우로 판단된다.  RFC 5053의 인액티베이션 디코딩(표준 문서에는 이 명칭이 언급되어 있지 않다)을 실제 구현해 시간 복잡도를 비교해 보면 O(KlogK)로 유사선형을 나타내며 유효구간 K:4~8192 영역에서는 선형이라고 주장할 수 있을 만큼 효율이 좋다. 논문에 따라서는 Inactivation Decoding Gaussian Elimination IDGE로 부르기도 한다. 자료구조에 의해서도 많은 영향을 받기 때문에 어딘가 아직 핵심을 놓치고 있을 수도 있고 보완되면 완전한 선형 복잡도를 나타낼 수도 있을 것이다. 많은 응용논문에서 R10의 디코딩 복잡도가 심볼 수 K<sup>2</sup>에 비례하는 그래프를 보이고 있는데 이는 가우스 소거법을 사용하여 디코딩하는 경우로 판단된다. 
 +
 +
 +RFC6330의 랩터Q에서 개선 된 인액티베이션 디코딩은 GF(256) 영역을 PI라고 하여 처음부터 비활성화 상태로 디코딩을 시작하는 점을 제외하면 RFC5053의 디코더와 동등하다. 실제 구현할 때에도 단순히 H 영역을 비활성화하는 코드를 몇 줄 추가하는 것으로 동작 가능했는데 다만 필자가 놓친 새로운 아이디어가 포함되어 있을 수 있다. 랩터Q에서는 LT degree 분포 자체가 PI를 상정하여 솔리톤분포에 GF(256) HDPC 영역에 대한 DEGREE를 추가하고 있어서 이를 비활성화하지 않으면 DEGREE 2 조차도 거의 없는 매트릭스가 되어 BP는 도저히 돌 수 없는 상태가 된다.
 </sq> </sq>
  
Line 66: Line 69:
 ==== 랩터 인코딩에서 역행렬을 구하는 과정이 단지 Systematic Code 특성만을 위한 것인가? ==== ==== 랩터 인코딩에서 역행렬을 구하는 과정이 단지 Systematic Code 특성만을 위한 것인가? ====
 아직 완전한 이해를 못 한 부분 가운데 하나이다. 하지만 Non-systematic LT 코드에서 제약심볼 생성을 가정하면 A<sup>-1</sup>를 사용하지 않아도 될 것이기에 Systematic 속성을 위한 것이라 잠정 이해하고 있다. 아직 완전한 이해를 못 한 부분 가운데 하나이다. 하지만 Non-systematic LT 코드에서 제약심볼 생성을 가정하면 A<sup>-1</sup>를 사용하지 않아도 될 것이기에 Systematic 속성을 위한 것이라 잠정 이해하고 있다.
-</sq> 
-<sq> 
-==== 랩터Q에서의 ISI, ESI? ==== 
-ESI의 경우 RFC5053 랩터에서는 Encode Symbol Id 였는데, RFC6330 랩터Q에서는 External Symbol Id로 변경되었다. 이는 내부적으로 사용하는 Internal Symbol Id와 구분하기 위해 변경된 것으로 랩터에서 L=K+S+H 였던 것에 비하여 랩터Q에서 L=K'+S+H로 소스심볼 영역에 해당하는 K 조차도 PADDING 되어 확장되기 때문이다. 더구나 해당 PADDING은 ID 계산을 단순화하기 위해서였는지 소스 데이터의 앞 쪽에 붙는다. 제약심볼을 위한 PADDING을 포함하면 소스심볼들을 가운데 두고 앞 뒤로 ZERO 심볼들을 가진 형태를 띄는데, 프로그래머 입장에서는 구조를 이해하기 전 까지 여간 이상한 디자인이 아닐 수 없었다. ZERO PADDING 자체는 일종의 패리티 체크로 생각하면 받아들이기 쉽다. 
 </sq> </sq>

TypeError: Cannot access offset of type string on string

TypeError: Cannot access offset of type string on string

An unforeseen error has occured. This is most likely a bug somewhere.

More info has been written to the DokuWiki error log.