خاستگاه و کاربرد گسترده
کدهای Reed–Solomon را ایروینگ اس. رید و گوستاو سولومون در سال ۱۹۶۰ توصیف کردند. این کدها روی نمادهای کامل، معمولاً بایتها، کار میکنند نه بیتهای تک، و برای همین در مقابله با آسیبهای پیوسته مثل خطوخش یا لکه خوباند.
همین خانواده از کدها از داده روی CD، DVD و دیسکهای Blu-ray، بعضی پیوندهای تلویزیون دیجیتال و ماهواره، و بارکدهای دوبعدی دیگر از جمله Data Matrix ECC 200، کد Aztec و PDF417 محافظت میکند.
کدهای QR چگونه از آن استفاده میکنند
کد QR هر کلمهکد ۸ بیتی را عنصری از میدان متناهی GF(256) میگیرد که با چندجملهای اولیه x^8 + x^4 + x^3 + x^2 + 1 (در مبنای ۱۶ برابر 0x11D) ساخته شده است. کلمهکدهای داده بر یک چندجملهای مولد تقسیم میشوند و باقیمانده به کلمهکدهای تصحیح خطایی تبدیل میشود که به آنها ضمیمه میگردد.
کدهای بزرگتر دادهشان را به چند بلوک تقسیم میکنند که هرکدام کلمهکدهای تصحیح خطای خود را دارند. سپس بلوکها هنگام چیدن کلمهکدها در شبکه در هم آمیخته (interleave) میشوند، تا یک لکه آسیب بهجای اینکه یک بلوک را از پا درآورد بین بلوکهای زیادی پخش شود.
چقدر میتواند تصحیح کند
با n کلمهکد تصحیح خطا در یک بلوک، رمزگشا میتواند تا n/2 کلمهکد را که جایشان معلوم نیست، یا تا n کلمهکد را که جایشان معلوم است و حذفشده (erasure) نام دارند، تصحیح کند. حالتهای ترکیبی از این قاعده پیروی میکنند که هر خطا دو حساب میشود و هر حذفشده یکی.
به همین دلیل کدی که ناحیهای تمیز و مسطحاش زیر لوگو رفته هنوز اسکن میشود: خوانشگر هوشمند ممکن است ناحیه پوشیده را حذفشده بگیرد، ولی آسیب تصادفی را سختتر میشود اصلاح کرد چون رمزگشا اول باید آن را پیدا کند.
- خطاهای نامعلوم: تا نصف تعداد کلمهکدهای EC
- حذفشدهها (جای معلوم): تا تعداد کلمهکدهای EC
- میدان: GF(256)، چندجملهای 0x11D
- بلوکها برای پخش آسیب پیوسته در هم آمیخته میشوند