تصحیح خطای Reed–Solomon

نام‌های دیگر: کد Reed-Solomon, کد RS

تعریف

تصحیح خطای Reed–Solomon ریاضیاتی است که اجازه می‌دهد کد QR آسیب‌دیده هم اسکن شود. کلمه‌کدهای بررسی را به داده اضافه می‌کند تا خوانشگر بتواند بایت‌های گم‌شده یا غلط را تا یک حد معین بازسازی کند.

خاستگاه و کاربرد گسترده

کدهای 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
  • بلوک‌ها برای پخش آسیب پیوسته در هم آمیخته می‌شوند

پرسش‌های متداول

Reed–Solomon در کد QR چیست؟

روش تصحیح خطایی است که کلمه‌کدهای اضافی به داده می‌افزاید. اسکنر از آن‌ها برای بازسازی کلمه‌کدهایی استفاده می‌کند که آسیب دیده یا ناخوانا شده‌اند.

کدهای Reed–Solomon را چه کسی ابداع کرد؟

ایروینگ اس. رید و گوستاو سولومون، که آن را در سال ۱۹۶۰ منتشر کردند. این کدها اکنون در دیسک‌های نوری، ارتباطات و بیشتر بارکدهای دوبعدی به کار می‌روند.

چرا کد QR با لوگو در وسطش باز هم کار می‌کند؟

لوگو ماژول‌هایی را می‌پوشاند که تصحیح خطای Reed–Solomon می‌تواند بازسازی کند. تا وقتی ناحیه پوشیده در ظرفیت تصحیح خطا بماند و الگوهای یاب آزاد باشند، کار می‌کند.

منابع و استانداردها

همه اصطلاحات