feature image

2020年12月25日 | ブログ記事

SSTVでクリスマスを聴く【AdC2020 Xmas Day】

メリークリスマス!!

こんにちは、19の@temmaです。
とっても忙しいクリスマスの貴重な時間を割いてまで、この記事を読んでくれてありがとうございます😁

SSTVとは

SSTV: Slow Scan Television(低速度走査テレビジョン)は、無線通信、特に短波帯などの狭帯域幅でモノクロまたはカラーの画像をやり取りするために用いられる伝送方式です。

最も有名な使用例は、アポロ11号のミッションで、ニール・アームストロングがはしごを降りて人類初の月面着陸を果たした以下の写真です。

SSTVはラジオファクシミリ同様、アナログ信号を用いており、伝送方式(モード)にはいくつか種類がありますが、基本的な仕組みは周波数変調(frequency modulation、FM)です。
つまり、キャリア波の周波数を上下にシフトさせることで送信したい情報を伝達します。
モノクロSSTVにおいてやり取りされる情報は各画素の明るさで、基本的には周波数の高低が明暗と対応します。
同様にカラー画像は、各色成分(通常は赤、緑、青)の明るさを別々に送ることによって表現されます。

画像は左から右の水平ラインで構成されており、色成分は行ごとに送信されます。
カラーエンコーディングと送信の順序はモードによって異なりますが、ほとんどのモードはRGBカラーモデルを使用します。
変調周波数は1,500~2,300 Hzの間で、色成分の強度(明るさ)に応じて変化します。
変調はアナログであるため、水平解像度は256 pxや360 pxと定義されることが多いですが、任意のレートでサンプリングすることができます。
画像のアスペクト比は通常4:3で、ラインは、5ミリ秒の 1,200 Hzの水平同期パルスで終了します。
つまり、幅256pxの画像をカラーを送信したい場合、R→G→Bが256サンプル分送信された後、1,200 Hz × 5 msの水平同期パルスでライン終端が通知され一行の描画が行われます。
これを画像の高さ分、繰り返すことで目的画像が得られます。

また、画像の前にはキャリブレーションヘッダが送信されます。
これは、1,900 Hzの300ミリ秒のリーダートーン、1,200 Hzの10ミリ秒のブレーク、1,900 Hzの300ミリ秒のリーダートーン、その後に使用される伝送モードを識別するデジタルVIS(垂直間隔シグナリング)コードで構成されています。
VISコードは30ミリ秒の長さのビットで構成されており、1,200 Hzのスタートビットから始まり、7つのデータビット(LSBファースト、1は1,100 Hz、0は1,300 Hz)が続きます。
偶数パリティビットがそれに続き、1,200Hzのストップビットで終わります。
例えば、10進数44または32に対応するビットは、モードがMartin M1であることを意味し、60はScottie S1を表しています。

聴く

上記で説明したように、SSTVは1200~2300 Hzを使用するので、音波にしても人間の可聴域内(20~20000 Hz)に収まっています。
もしかして、お気に入りのあの子を音としてきけるんじゃあねぇか??、、、そう、思うわけですね。

僕の推しアニメに「Guilty Crown」というのがあるんですが、ヒロインのいのりちゃんがめちゃかわいいんですね。

かわいい

ギルクラ見てください

それで、このいのりちゃんをrobot36モードでエンコードすると

こうなります。
なんだか、高貴な音に感じますね。
1/fのゆらぎかもしれません。
睡眠導入BGMに使ってもいいですよ。
僕は目覚ましにします。

デコードし直して見てみると


(ppmで出力しているのでデコード後にpngに変換しています)

みたいになります。

robot36モードはカラーコードにYUVを使用し、256 luma, 64/64 chroma × 240の表現力をもちます。
なんか、青みが強くでていますね。なんででしょう。

クリスマスに因んで、もう一枚試してみると(こっちは真名←くわしくはアニメを見てね)

こうなり

こうなります。

やっぱり、色味がだいぶ変わりますね。
encodeの実装ミスっててRとBが入れ替わってました、悲しい...
RGBを使用するMartinやScottieにすれば変わるんでしょうか?
また試してみたいですね。

最後に

通信技術の発達により、SSTVのような技術はいまではほとんど使われなくなりました。
ですが、AdCのような機会に掘り返してみるとなにか面白いことがあるかもしれませんね。

temma icon
この記事を書いた人
temma

19B 生命理工学院生命理工学系

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2020年12月4日
【一緒に始めよう】VSTプラグインをつくる【AdC2020 21日目】
liquid1224 icon liquid1224
2020年12月17日
一人でゲームを作ったハッカソン【AdC2020 34日目】
Komichi icon Komichi
2020年11月19日
ICPC国内予選2020参加記【AdC6日目】
tatyam icon tatyam
2020年12月21日
かけだしデザイナーが「ほぼ」1ヵ月間毎日ロゴを描いてみた話【AdC2020 38日目】
WhiteFox icon WhiteFox
2020年12月17日
JavaScriptの非同期処理についてのメモ【AdC2020 33日目】
reyu icon reyu
2020年12月13日
全方位木DPについて
ebi icon ebi
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記