web-dev-qa-db-ja.com

エラー訂正を使用して、ペンと紙でファイルを転送する方法

ペンと紙だけでファイルを転送する方法を探しています。

これは paperbak にいくぶん似ていますが、探している密度がはるかに低く、プリンターやスキャナーを使用したくない点が異なります。

明らかに、最初の答えは Base64 エンコーディングです。しかし、このように多数の文字を読み書きすると、エラーが発生することになります。私の目的では、エラーは許容できません。

2番目の答えは リードソロモンエラー訂正コード (たとえば、 rsbep を使用)です。ただし、これも問題です。私の理解では、リードソロモンコードは挿入/削除エラーを修正しないためです。この場合、置換エラーよりも可能性が高くなります。

挿入/削除を意識したエラー訂正コードで任意のファイルをエンコード/デコードするプログラムはありますか?できれば、Windows、Linux、Mac OSXで動作するはずです

明らかに、一般的な問題に対する他の解決策は大歓迎です。

23
Jeremy Salwen

otherwise transcribing it will be too difficultが問題になるかどうかは疑問です。

赤、緑、青、黒があるとしましょう。データをRGBYからの文字のコレクションに変換するスクリプトを作成できます(例:RGBYGBRYBGBYRYYBYBRYYG(またはExcelシートではRed Green Blue Black Green Blue Red Black...))。バイナリデータを基数2から(または基数16からの16進データ)、使用する色の量(この例では4)で基数に変換するだけです。

さて、最も論理的なアプローチは、16色を自分で取得することです。このように、4分の1のドットを使用する必要があります。これにより、ペンを切り替える価値があります。これにより、必要に応じて4倍のデータを紙に書き込むことができます。または、ドットを配置するときに4倍精度が低くなる可能性がありますが、スケーリングは自由です。私は本当にすべてのビットを描くことはお勧めしません。

たとえば、5565 bytesグリッドに配置できる11130 hexadecimals44520 bitsではなく)である16進数の量を取得するには、106 x 106に2を掛ける必要があります。 。

データの種類に応じて、おそらくいくつかの最適化を行うことができます...

ヒント:最も明確な(最も対照的な)色を選択してみてください...

1本のペンを使用できる代替案:

  • さまざまな16進数をさまざまな記号-/|\+、..で表します。

  • さまざまな16進数を小さなピクセルフォントで表します。アバターを参照してください。

    これにより、Base 32(またはBase 36)のようなものを使用することも便利になります。 Q9は同じであるため、明確に区別するために、Qの右上のピクセルを白にする必要があることに注意してください。 Base 32では、例として53 x 53グリッドと、文字を区別するためのわずかな間隔のみが必要です。

4
Tamara Wijsman

人々がデータを読み書きできるようにしたい場合、Base64と多くのテキストエンコーディングの問題は、人々が混乱させるI、l、1、|、/、0、O、oなどの文字を使用することです。お互いに。

Douglas Crockfordの Base32 エンコーディングを調査します。そのアルファベットは、類似した文字を避けるために特別に選択されており、エラー検出が含まれています。

3
Dour High Arch

以前は、この目的で S-Records を使用していました。エラー検出のために、行ごとに簡単なチェックサムがありました。通常、最後の行を除くすべてが固定長であったため、行末マーカーは挿入と削除のチェックとして機能しました。ただし、行の欠落のチェックはありませんでした。このために、単に行数を数えました。ほとんどのファイルは短く、100行未満でしたが、少なくとも1つは300行以上でした。それは非常にシステムにファイルを入力するのが面倒でした。もちろん、この方法で転送された最初のプログラムの中にはダウンローダーがありました;)

1
Retired Spy

光学式マーク認識 機械可読な手書きフォームを作成するために何十年も使用されてきました。ウィキペディアのページには、いくつかのオープンソースバージョンへのリンクがあります。

学校は長い間OMRをテストに使用してきました。フォームは使いやすく、読みやすく、通常、キーボード入力よりも精度が高くなります。精度を高めるために、ScantronやReMarkなどの商用メーカーはカスタムフォームを作成できます。

0
Dour High Arch