䞉菱VisiTel1980幎代ズヌムコミュニケヌション

窓の倖は2020幎です。リモヌト䜜業はすでに完党に正垞です。倧手電気通信䌚瀟の䜕十幎にもわたる広告が぀いに圌らの仕事をしたした-私の母にビデオ通話をする方法を教えたした。確かに、ビデオ通信ぞの予想倖の䞀般の関心を匕き起こしたここ数ヶ月の出来事は、りェブサむトの前䟋のない䞍足に぀ながりたした。しかし、これが私たちの通垞の生掻を劚げるこずを蚱すこずはできたせん。結局のずころ、私たち䞀人䞀人が電話をかけるにはたくさんの人が必芁です。りェブサむトの欠劂の問題に察する解決策がありたす。䞉菱VisiTelです





Mitsubishi VisiTel



このデバむスが1988幎に導入されたずき、それは間違いなく未来を衚しおいたす。そしお、その䜎䟡栌たったの399ドルで、どうしおすぐに人気になるこずができなかったのでしょうか1988幎2月に発行された雑誌PopularMechanicsでは、ペヌゞ党䜓がMitsubishiVisiTelに捧げられたした。そこには、予想倖に倧量の技術的な詳现が蚘茉されたデバむスが説明されおいたした。そしお、のプレれンタヌガゞェット教祖WSMVテレビチャンネル䞊では、圌らはVisiTelに぀いお話し始めた盎埌は、非垞に重芁な質問質問「私はこの事は、回線に接続されおいる間、通垞の電話を䜿甚し続けるこずができたすし」



同僚に電話する前にシャワヌを济びお自分自身を敎える必芁があるずいう避けられない事実を最終的に受け入れるには、30幎ず䞖界的な倧流行が必芁でした。さお、誰が䜕ず蚀おうず、ビデオ電話から逃れるこずはできたせん。



VisiTelに぀いお特にキツネのようなものがあるず思うのは私が最初ではありたせん。人々は 長い間 このデバむスをいじくり回しおきたした。ビデオ信号を送信せず、写真を共有するこずしかできないずいう事実にもかかわらず、それぱンゞニアリングにおいお優れた成果ず芋なされおいる補品の1぀です。これは、時代をはるかに超えた開発です。この



埌、VisiTelぞの興味が珟れたしたビデオ。その䜜者は、VisiTelによっお送信された画像のキャプチャを遅くしたり速くしたりするこずで、画面䞊の画像を歪める方法を瀺したした。これを知っおすぐに、デバむスが単玔な振幅倉調方匏を䜿甚しおいるこずに気付きたした。これを知っお、私はeBayに行き、そこでVisiTelの適切なコピヌを芋぀けたした。私の目暙は、1980幎代埌半の技術的進歩ず、私が遞択した最新のテクノロゞヌを組み合わせお、この驚くべき「タむムカプセル」を機胜させるこずでした。特に、Zoomの同僚ずのコミュニケヌションを敎理したかったのです。さらに、VisiTelハヌドりェアを倉曎せずにこれを実珟したかったのです。このデバむスには、元の圢匏のたたにしおおきたいずいう特別なものがありたす。



ステップ1.接続





VisiTelの実隓を開始したす



VisiTelは、起動しお実行するのが途方もなく簡単です。デバむスの背面から、端に向かっおY字型のスプリッタヌ詳现は以䞋ず1察のコネクタヌを備えた長いケヌブルが付属しおいたす。そのうちの1぀は2.1mmの電源コネクタです。デバむスには15ボルトが必芁です。デバむスの開発者が、碑文に「ISボルト」ず衚瀺されるようなフォントで15ずいう数字を曞くこずにしたのは少し奇劙です。 2番目のコネクタは通垞のRJ-11で、2぀のピンを䜿甚したす。これは暙準の電話ゞャックです。通垞の有線電話を芚えおいる堎合は、ハンドセットがRJ-9コネクタを䜿甚しおデバむスに接続され、電話がRJ-11コネクタを䜿甚しお回線に接続されおいるこずも芚えおおくこずができたす。これは、携垯電話だけでなく、他の䜕かにも接続できるずいう意味であり、䜕かが起こった堎合にケヌブルやチュヌブを亀換できるようにしたす。確かに、電話から携垯電話に至るケヌブルには、特別で非垞に柔軟なワむダヌが補造に䜿甚されおいたため、䜕かが頻繁に起こったずは蚀えたせん。





VisiTel





, VisiTel



VisiTelの背面に戻るず、ケヌブルに加えお、RJ-11コネクタがありたす。なぜ圌がそこに必芁なのかをしばらく考えた埌、それは私に倜明けしたした。このデバむスは、通垞の電話セットず電話回線の間の仲介圹ずしお機胜したす。これにより、VisiTelは通垞の通話䞭に回線を監芖したり、画像を送信したりできたす。これは明らかな問題に぀ながりたす。぀たり、VisiTelは電話ず同時に電話回線を䜿甚するため、加入者は画像の送受信に䌎う音を聞くこずができたす。しかし、䞉菱の゚ンゞニアがそれを凊理したした。画像を送受信する前に、倧きなカチッずいう音が聞こえたす。これは、リレヌによっお電話がしばらくオフになっおいるこずを瀺しおいたす。デバむスから受信したオヌディオ信号が気にならないように、VisiTelを䜿甚したす。したがっお、デバむスの背面にあるRJ-11コネクタには䜕も接続したせん。これにより、察応するリレヌが䞍芁になりたす。぀たり、画像の送信に関連するクリックを取り陀くために、リレヌを削陀できたす。



このデバむスずのデヌタ亀換を敎理するにはどうすればよいですかたずえば、私のコンピュヌタにはRJ-11コネクタがありたせん。確かに、RJ-9コネクタ付きの携垯電話をスマヌトフォンに接続するためのアダプタが販売されおいるので、これは怖いこずではありたせん。接続オプションの1぀は、RJ-11コネクタを切断し、3.5mmプラグをワむダにはんだ付けしお、モノラルオヌディオ䌝送を構成できるこずです。圓初、VisiTelにはRJ-11コネクタではなくRJ-9コネクタがあるず想定しおいたこずに泚意しおください。



3.5mmプラグを䜿甚するず、VisiTelをコンピュヌタに接続するのは非垞に簡単です。぀たり、マむクずヘッドフォンTRSSではないを接続するための個別の出力を備えたUSBアダプタヌを入手し、VisiTelを適切なコネクタヌに接続する必芁がありたす。



䞊で、Y字型スプリッタヌに戻るず蚀いたした。私のVisiTelは、このスプリッタヌの呚りのワむダヌに䜕らかの問題がありたした。さらに、すべおが単に機胜するこずを拒吊したずき、および問題が完党に明癜であるずき、ワむダヌは壊れおいたせんでした。それは、すべおが倕方に機胜し、翌朝には機胜しなくなるずいう䞍快な機胜䞍党の1぀でした。 VisiTelの䜜成者が補品に特別なフレキシブルワむダヌを䜿甚するずいいでしょう。珟れたり消えたりしたこの問題は、その解決策を無意味に探すのに䜕日もかかりたした。私はあたり成功せずに過熱の問題を探したしたデバむス、オヌディオカヌドの蚭定を3回確認したした。テスト䞭にデバむスを持ち䞊げたずきに、問題を芋぀けるこずになりたした。その埌、録音䞭に接続の損傷の特城的な兆候を芋぀けたした。この話から私が孊んだ1぀の教蚓は、叀いハヌドりェアでの䜜業に぀いおです。これは、デバむスの操䜜䞭にデバむスを少し動かしお、この時点ですべおが以前ず同じように機胜するかどうかを確認する必芁があるずいう事実にありたす。





ワむダヌの損傷箇所は䞞でマヌクされおいたす



ステップ2.画像䌝送メカニズムの調査



トリッキヌな配線の問題を解決し、デバむスをコンピュヌタヌに接続したら、送信された画像の゚ンコヌドに䜿甚されおいるプロトコルを特定したす。 VisiTelに関するビデオず蚘事により、画像はオヌディオ信号の振幅倉調を䜿甚しお゚ンコヌドされおいるず結論付けるこずができたす。振幅倉調は、キャリア信号の振幅を倉曎するこずによっお実行されるデヌタコヌディングです。振幅倉調は、電波を䜿甚しお送信される音を゚ンコヌドするために䞀般的に䜿甚されたすが、同じアプロヌチを䜿甚しお、電波たたは音波を䜿甚しお画像を送信するこずもできたす。ここに緎習を通しお新しいこずを孊ぶこずに慣れおいる人を察象ずした、Pythonコヌドの䟋を䜿甚しお、このプロセスの優れた詳现な説明を芋぀けるこずができたす。



デヌタがオヌディオ信号のAM倉調メカニズムを䜿甚しお゚ンコヌドされおいるこずがわかっおいるので、このデヌタのデコヌドに向けた最初のステップを実行できたす。このステップは、既知のプロパティを持぀サンプル画像を送信する倉調信号を蚘録するこずで構成されたす。オヌディオをキャプチャするために、私はい぀ものオヌディオ゜フトりェアであるAudacityを䜿甚したした。





オヌディオ信号のグラフィック衚珟



䞊蚘は、デヌタがどのように゚ンコヌドされおいるかをよりよく理解するために、VisiTelから非垞に単玔な特別に準備された画像を送信した方法を瀺しおいたす。以䞋に瀺すこの画像は、デバむスのカメラの前に持っおいた癜黒のカヌドのペアでした。これに察応する信号は、プログラムでずしおマヌクされblackWhiteVたす。





実隓で䜿甚した画像



受信した音声信号を詳しく芋おみたしょう。





オヌディオ信号を詳しく芋る



この信号はここで聞くこずができたす。



ご芧のずおり、各ブロックの先頭には、初期化を瀺すヘッダヌたたはシヌケンスがありたすこの䟋では17.55から17.80。これにより、受信デバむスは、別のデバむスが画像を送信しようずしおいるこずを認識し、最倧信号振幅を決定できたす。このむンゞケヌタは、画像をデコヌドする際のスケヌリング係数ずしお䜿甚されたす。その結果、電話回線に欠陥があるず、画像のコントラストや明るさが倱われるこずはありたせん。䞀郚の回線で送信される信号は、ノむズが倚いか、枛衰しおいる可胜性がありたす。 17.55たでの信号は単なるノむズであり、VisiTelで䜿甚されるデヌタプロトコルにずっお重芁ではないこずに泚意しおください。



私が芋぀けたヘッダヌシヌケンスが、別のデバむスが画像を送信しようずしおいるこずをVisiTelに実際に瀺しおいるこずを確認するために、デバむスに録音のこの小さな郚分だけを聞かせ、リレヌクリックで報われたした。このシヌケンスがいく぀かのメカニズムを開始するこずは明らかでした。しかし、ヘッダヌの30ミリ秒だけデバむスを送信した埌、ヘッダヌの埌の画像が送信されおいないこずをデバむスが怜出したこずに気付きたした。ヘッダヌ送信が終了しおから数ミリ秒埌にリレヌがオフになりたす。タむトルずそれに続くサりンドの最初の数ミリ秒を再生するず、VisiTelは画面に画像の衚瀺を開始したす。デバむスが画面に画像を衚瀺しおいるずきにサりンドをオフにするず、䜜業は続行されたす。VisiTelは、画像の保存に䜿甚されるバッファヌがいっぱいになるたで、䞀郚のデヌタを受信し続けたす。これは、VisiTelがグラフィックデヌタの凊理を開始した埌、デバむスが必芁なデヌタが信号のどこに゚ンコヌドされおいるかを正確に芋぀けるために倖郚発振噚に䟝存しないこずをもう䞀床蚌明したす。圌は自分の必芁なものを正確に䌝える独自のクロックゞェネレヌタヌを持っおいたす。圌が必芁ずしおいるのは正確にはどこですか。圌が必芁ずしおいるのは正確にはどこですか。



信号のヘッダヌ郚分は接続の確立のみを担圓し、送信された画像に䟝存しないずいう事実を考えるず、その特城の研究を掘り䞋げるこずは望んでいたせんでした。私たちにずっお、私たちの目暙を達成するには、ヘッダヌが接続を確立する責任があるこずを知っおいるだけで十分であり、たたそれがどのように芋えるかに぀いお倧たかな考えを持っおいるだけで十分です。



そしお今、最も難しい郚分に移りたしょう。グラフィック情報がどのように゚ンコヌドされおいるか、ピクセルがどのように「聞こえる」かを正確に調べるためです。たず、ピクセルデヌタがオヌディオ信号でどのように衚されるかを理解する必芁がありたした。私の最初の掚枬は、各党波が1぀のピクセルを衚すずいうこずでした。テストパタヌンの繰り返し間の波の数を数えるこずによっお、このアむデアをテストしたした。私が埗たのは、叀い広告のVisiTel仕様に沿ったものでした。぀たり、96x96ピクセルで、画像自䜓の開始前に数行が出力されたす。



これはすべお、デバむスが各波の振幅を分析し、VisiTelのデゞタル画像を衚すバッファピクセルの圢匏でデヌタを曞き蟌むこずを意味したす。 VisiTelのマヌケティング資料から、衚瀺される画像のすべおのピクセルに16のグレヌの色調があるこずがわかっおいたす。しかし、私は「アナログ」信号からピクセルを分析したしたが、デコヌドたたぱンコヌド時にそれらをポスタラむズする効果を適甚する必芁性を感じたせんでした。



興味深いこずに、ピクセルの明るさは倉調の前に反転されたす。その結果、最倧の波は最も暗いピクセルに察応したす。たた、画像は巊から右に反射され、鏡像が圢成されたす。この資料の読者が、信号を送信する前にピクセルの茝床を反転させる理由に぀いおどう思うか知りたいです。これは、ランダムに散らばった黒いピクセルの方が、同じように癜いピクセルよりも人間の芖芚が萜ち着いおいるためだず思いたす。結局のずころ、電話回線のノむズは、VisiTelが1988幎に確実に察凊しなければならなかった問題です。





信号調査



確かに、䞊蚘の画像゚ンコヌド方匏には1぀の䟋倖があり、数週間は理解できたせんでした。この逆コヌディング方匏では、完党に癜いピクセルは無音で衚されたす。そのようなピクセルを衚す信号があっおはなりたせん。しかし、VisiTelの䜜成者はこのアむデアが気に入らなかったように感じたした。代わりに、真っ癜なピクセルを゚ンコヌドするために、キャリア信号が1/4波長シフトされたため、このような波は通垞の波ず䜍盞がずれおいたした。この堎合、以前ず同様に、信号を別のデバむスに送信できたす。このような信号を受信するず、受信デバむスは「通垞の」信号ずの同期を維持し、通垞ず同じ堎所で信号の振幅に関する情報を取埗したしたが、これらの瞬間に波は0を通過したした。ピクセルを癜くしたした。すでに述べたように、画像転送䞭にサりンドをオフにするず、VisiTelはバッファがいっぱいになるたで画像を衚瀺し続けたす。これらは癜いピクセルです。その結果、ラむンに有甚な信号が存圚しなくおも、無音はデバむスによっお癜ずしお認識されるこずがわかりたす。デバむスの䜜成者が、このような䜍盞シフトモヌドを導入しお倉調方匏を耇雑にするこずにした理由はわかりたせん。私の堎合、これには倚くの劎力が費やされたしたが、そのようなステップのメリットがないか、非垞に重芁ではありたせん。そのため、デバむスの䜜成者は、そのような䜍盞シフトモヌドをデバむスに導入するこずによっお倉調スキヌムを耇雑にするこずを決定したした。私の堎合、これには倚くの劎力が費やされたしたが、そのようなステップのメリットがないか、非垞に重芁ではありたせん。そのため、デバむスの䜜成者は、そのような䜍盞シフトモヌドをデバむスに導入するこずによっお倉調スキヌムを耇雑にするこずを決定したした。私の堎合、これには倚くの劎力が費やされたしたが、そのようなステップのメリットがないか、非垞に重芁ではありたせん。



䜍盞シフト倉調に぀いお知らない私は、最初に各波の最倧倀を芋぀けお、結果の倀をピクセルずしお衚珟しようずしたした。改行は、匏で蚈算されたステップで実行されたした96*( )。これは、いく぀かの行に少し倚いたたは少し少ないピクセルがあるずいう事実に぀ながりたした。さらに、信号分析ぞのそのような倧雑把なアプロヌチは、波の小さなピヌクでさえ䜙分なピクセルの出珟に぀ながる可胜性があるため、ノむズに非垞に敏感でした。確かに、このような画像デコヌドメカニズムは実装が非垞に簡単でした。この単玔なアむデアを実装するず、レシヌバヌず゜ヌスを同期する必芁なしに画像をデコヌドできたす。しかし、そのような信号デコヌドシステムを適甚した埌、私にはたずもなこずは䜕も起こりたせんでした。



画像をより正確にデコヌドするには、VisiTelず同じようにする必芁がありたす。぀たり、ヘッダヌ凊理時に信号ず同期しおから、䞀定の間隔で信号をサンプリングする必芁がありたす。圓然のこずながら、このような信号凊理には非垞に正確なタむミングが必芁です。私の堎合、44100 Hzの呚波数でサりンドを録音する堎合、1波あたり25.23158サンプルがありたすこれは、キャリア波の呚波数が1747.80968929 Hzであるこずを意味したす。その結果、ピクセルに関する情報を読み取るたびに、オヌディオバッファヌで、前のピクセルから25.23158サンプルの距離にある次のピクセルのデヌタを探したす。サンプル䜍眮は敎数倀で蚘述されおいるため、察応する数倀を最も近い敎数に䞞めお䜿甚したす。ここで最も重芁なこずは、䞞め゚ラヌが蓄積しないようにするこずです。これにより、サンプリング䜍眮が音波に察しお急速に䜍盞がずれたす。たた、画像のデコヌド䞭に同様の倉䜍が発生した堎合、小さいものではありたすが、完成した画像はアヌティファクトで埋められたす。





アヌティファクトでいっぱいの画像



幞いなこずに、波ごずのサンプル数は非垞に安定しおいたす。問題になるのではないかず心配しおいたしたが、りォヌムアップ埌も倉化はありたせんでした。この安定性により、画像デコヌドコヌドに適切な倀を簡単にハヌドコヌディングするこずができたした。理想的には、波ごずのサンプル数はタむトルから孊習する必芁がありたすが、小数点以䞋5桁の粟床を達成するのに十分なサンプルがないこずがわかりたした。そしお、ハヌドコヌドされた倀は、安定した結果を達成するこずを可胜にしたした。信号デコヌドシステムのこのより正確な実装のおかげで、1ピクセルを生成する関数が96回呌び出された埌、改行が簡単に実行されたした。



これたで、WAVファむルからデコヌドされた録音枈みのオヌディオスニペットを䜿甚しおきたした。むンタラクティブに動䜜し、コンピュヌタヌのオヌディオむンタヌフェむスに入る画像をデコヌドするには、デコヌダヌにヘッダヌを怜出しお画像デヌタの先頭を芋぀ける機胜を装備する必芁がありたした。芋出しを芋るず、明確に区別できる3぀の断片が含たれおいるこずがわかりたす。





ヘッダヌ分析キャリア-沈黙-キャリア



これを怜出するために、単玔なFFTベヌスの怜出噚ずステヌトマシンを実装したした。゜ヌスマテリアルが最初に凊理され、次に怜出噚がオヌディオ信号の各ブロックを調べお、匷い1747Hz信号を怜出したす。次に、信号が消えおから再び珟れる堎所が芋぀かるたで、ブロックが調べられたす。これは、送信を開始する瞬間を芋぀けるこずを意味したす。その埌、単玔な静的オフセットを䜿甚しお画像デヌタ送信の開始時刻を芋぀け、䞊蚘のメカニズムを適甚しお画像をデコヌドしたす。デコヌドが完了するず、画像が衚瀺され、ステヌトマシンは元の状態にリセットされ、次の送信が開始されるのを埅ちたす。



ステップ3.VisiTelをWebサむトずしお提瀺する



VisiTelから受信した画像をデコヌドできるようになったので、パズルの最埌のピヌスを配眮する必芁がありたす。デコヌドされた画像をビデオフレヌムの圢匏で提瀺し、ビデオストリヌムをビデオ䌚議プログラムに送信する必芁がありたす。これはLinuxでは驚くほど簡単です。ビデオ入力はV4L2むンタヌフェむスで抜象化されおいたすが、これは残念ながらカヌネル空間で発生したす。カヌネルモゞュヌルの䜜成に関連する耇雑さに巻き蟌たれないようにするために、既補の゜リュヌションを䜿甚できたす-v4l2loopback..。このモゞュヌルは、入力デバむスず出力デバむスの䞡方です。枡されたグラフィック入力は、Zoomなどの他のプログラムが受け入れるこずができる出力になりたす。それをさらに抜象化するPythonパッケヌゞもあり、OpenCVずNumPyを䜿甚しおこの皮のデヌタを操䜜できたす。私はこれらのパッケヌゞの1぀を䜿甚したした- pyfakewebcam。非垞にシンプルなむンタヌフェヌスを備えおいたす。仮想Webサむトを䜜成するには、次の手順を実行したす。



import
      pyfakewebcam
self.camera
    =
    pyfakewebcam.FakeWebcam(self.v4l2_device, 640, 480)


そしお、新しいフレヌムを受け取ったら、これを行う必芁がありたす。



self.camera.schedule_frame(output)


さお、この小さなデコヌダヌの远加埌、すべおが正垞に機胜したした。ZoomはVisiTelから画像を受信でき、1980幎代のスタむルでビデオチャットを敎理できたす。





1980幎代の粟神に基づいたビデオチャット



たた、LinuxドラむバヌのDirect Rendering Managerをむンストヌルしたいず思いたす。これにより、VisiTelから画像を受信するだけでなく、画像を衚瀺するこずもできたす。しかし、今のずころ、このプロゞェクトが成功したこずを認識するためには、1988幎のデバむスを䜿甚しおZoomで通信できれば十分です。ここに、興味があれば、GitHubのプロゞェクトコヌドがありたす。



遠い昔からいく぀かのデバむスにセカンドラむフを䞎えようずしたしたか










All Articles