reed-solomon - 为 reed-solomon 编码选择伽罗瓦域
问题描述
当使用 reed-solomon 算法对任意大小的任意消息进行编码时,是什么决定了 galois 域的大小?是符号大小,还是消息的大小?
例如,如果我要对 ASCII 字符进行编码,并且我使用 GF(2^8),因为 ASCII 是 8 位,我最终会得到 2^8 - 1 = 255 个 ASCII 字符的最大码字长度。然后我必须将消息拆分为长度为 255 的子消息。
或者,如果我使用 GF(2^s) 使得 2^s - 1 >= 消息的长度,则无需拆分消息,但在这种情况下,即使我正在编码 8 位的 ASCII 字符,码字中的每个符号将被视为 2^s 位。
哪个是首选?还是有什么其他因素决定了伽罗瓦场的选择?
解决方案
消息的固定大小或最大大小决定了符号大小。GF(2^2) 最多 15 个半字节(7.5 字节),GF(2^8) 最多 255 个字节,GF(2^10) 最多 1023 个 10 位符号或 1278.75 字节(通常用于 HDD 512数据字节扇区),GF(2^12) 最多 4095 个 12 位符号或 6142.5 字节(通常用于 HDD 4096 数据字节扇区)。
推荐阅读
- c# - 工作服务关闭时如何发送通知
- mysql - RDS 授予权限(删除特定表上的删除权限?) MySQL
- powershell - 查找网络备份失败代码及其各自的消息
- python - How to explain the following behavior when is and == are used in one statement?
- shopify - 如何将文本与购物车 API 集成?
- python - 如何正确安装 sklearn 模块?
- c# - 当您在 WPF 中的 gridview 上滚动时尝试去抖动事件时,您将如何解决这种情况?需要学生练习的提示
- c# - 在查询中使用全文参数执行缓慢的查询(c#,SQL-Server 2019)
- mysql - 无法更新存储函数/触发器中的表“配置文件”,因为它已被调用此存储函数/触发器的语句使用
- node.js - 访问 mongoose 中的嵌套字段