리드 솔로몬(Reed-Solomon) 부호화 관련

yjc99의 이미지

데이터의 오류검출및 정정이 필요하고, 이것과 관련해서 리드-솔로몬이라는 알고리즘이 있어서 좀 볼려고 하는데 너무 어렵네요.
c로된 소스가 있어 분석해야 하는데 그전에 개념부터 알려고 검색해서 자료들 찾아보려고 했는데, 알수없는 용어와 다항식의 수식으로 설명되어 있는등 도무지 이해하기가 어렵네요.;;
(이런 다항식의 수식은 또 수학어느부분에서 나온건지조차도 감이 안잡히네요;;)

리드-솔로몬 관련해서 어떻게든 이해할수있을만한 자료나, 방법 없을까요? 또 원래 이런 오류정정관련 부호화쪽이 수학적 난이도가 있는 부분인걸까요?

아시는 분 계시면 조언 부탁드립니다.

DingDong의 이미지

저는 어렵더라고요, FPGA가지고 실시간 데이터 처리하는 장치를 만드는데 이놈을 적용하는데,
IP라고해서 전문가들이 만들어준 라이브러리를 가져다 쓰는데만도 공부가 꽤 필요하던데요.
원리 이해는 신드롬 계산 어쩌고 하는 부분에서부터 머리가 못따라가는 바람에 관뒀어요 ㅠㅠ

그리고 터보니 비터비니 하는 각 부호화 방법마다 특장점이 있지만, 대부분은 데이터
전송효율을 위해서 나중에 발표된 부호화 방법을 적용하는데
제가 알기론 십년전쯤 부터인가 LDPC라는게 많이 쓰이는 모양이에요.

리드솔로몬도 심볼을 어떻게 얹냐에 따라 다르겠지만 데이터가 한번에 좌르륵 깨지는 경우에
강점이 있고 랜덤하게 깨지는 경우에는 LDPC가 좀 더 우위에 있는거 같아요.

가져다 쓰는데만 관심있는 저같은 사람들도 쉽게 이해되도록 누가 잘 가르쳐줬으면...

poplake의 이미지

LDPC가 복잡도가 더 높대요. LDPC IP를 사다 실제로
구현해본건 아니라 얼마나 더 많이 리소스를 얌냠
하는지는 몰라도 꽤 높은가 보더라고요 ...

Necromancer의 이미지

오류 검출만 필요한가요? 오류 검출과 정정이 필요한가요?

오류 검출만 할것이면 CRC로도 충분합니다.

Reed Solomon도 완벽한 것이 아닙니다. 1비트 오류만 고칠 수 있습니다.

Written By the Black Knight of Destruction

익명 사용자의 이미지

Reed Solomon code는 구성하기에 따라 2비트 이상의 오류를 고칠 수 있습니다.

RS(255,223) with 8-bit symbols 같은 구성에서는 255bytes 당 16bytes까지의 오류를 고칠 수 있지요.

yjc99의 이미지

질문이 조금 이상하지만,
오류가 발생시 , Parity 부분 심볼갯수의 절반까지 오류정정이 가능한걸로 아는데, 이때 오류정정은 Parity 부분 자체에 오류가 발생해도 정정이 가능한건가요?

익명 사용자의 이미지

네. 오류가 data 부분에서 발생하던 parity 부분에서 발생하던 상관없이 정정이 가능한겁니다.

Necromancer의 이미지

리드솔로몬은 1비트만 오류 발생했을때만 정정 가능합니다.
그이상 오류 나오면 오류 발생했다는것만 알 수 있고 정정 못합니다.

Written By the Black Knight of Destruction

익명 사용자의 이미지

위에도 달려 있지만, Reed-Solomon은 구성에 따라 1비트 이상 정정 가능합니다.

대표적인 RS 코드 구성인 RS(255,223) with 8-bit symbols은 255byte의 데이터에서 16byte까지의 에러를 고칠 수 있지요.

https://www.cs.cmu.edu/~guyb/realworld/reedsolomon/reed_solomon_codes.html

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.