本文概述
SSTV的早期传输模式已在带有雷达CRT的长时间固定监视器上显示。每个图像帧的传输持续时间为7.2至8秒, 并且当接收到最后一行时, 第一行仍然可见。可以在黑暗的房间中看到整个图片。
这种传输方式最著名的格式是马丁系统。马丁系统使我们能够以四种不同的模式/速度工作。最受欢迎的版本是Martin M1, 两分钟内每帧256行。马丁系统的其他模式具有最佳质量M1的一半或一半的水平分辨率。模式M4具有最低质量和128条线路。欧洲站之间经常使用马丁M1和M2模式:
模式名称 | 转移时间 | 解析度 | 颜色顺序 | Scan line (ms) | Speed (1pm) | |||
同步 | G | 乙 | [R | |||||
马丁M1 | 114秒 | 320 X 256 | G—B—R。 | 4.862 | 146.432 | 146.432 | 146.432 | 134.394753 |
马丁M2 | 58秒 | 160 X 256 | G—B—R | 4.862 | 73.216 | 73.216 | 73.216 | 264.552598 |
马丁M3 | 57秒 | 320 X 128 | G—B—R。 | 4.862 | 146.432 | 146.432 | 146.432 | 134.394753 |
马丁M4 | 29秒 | 160 X 128 | G—B—R。 | 4.862 | 73.216 | 73.216 | 73.216 | 264.552598 |
在本文中, 我们将向你简要说明如何在Ubuntu 18.04桌面上使用Python中的pySSTV库将图像转换为SSTV音频文件。
安装要求
为了使用pySSTV库, 你将需要在系统上安装python-pil库。 Python Imaging Library(PIL)为你的Python解释器添加了图像处理功能。该库支持多种文件格式, 并提供强大的图像处理和图形功能。
你可以在终端中使用以下命令将其安装在系统上:
sudo apt-get install python-pil
你还将需要安装python的六个模块。六个提供了用于包装Python 2和Python 3之间差异的简单实用程序。它旨在支持无需修改即可在Python 2和3上运行的代码库。六个文件仅包含一个Python文件, 因此可以轻松复制到项目中。你可以使用PIP进行安装, 但是如果尚未安装pip, 请首先使用以下命令进行安装:
sudo apt-get install python-pip
并提供点子后, 安装:
pip install six
现在, 你已经拥有pySSTV所需的库, 你将能够下载它并在终端上使用它。
1.下载pySSTV
使用以下命令下载带有Git的pySSTV项目(如果尚未安装git, 请使用sudo apt-get install git安装它):
git clone https://github.com/dnet/pySSTV.git
PySSTV从PIL可以打开的任何图像(PNG, JPEG, GIF等)生成SSTV调制的WAV文件。然后, 这些WAV文件可以由连接到短波收音机的任何音频播放器播放。开发人员的主要动机是要了解SSTV的内部原理是如何工作的, 因此该库的性能远非最佳, 但结果却非常实用。该代码易于阅读, 并且仅执行了不会使代码库复杂化的优化。
有关此库的更多信息, 请访问Github上的官方存储库。
2.从图像创建SSTV音频文件
在克隆的存储库中, 你将找到pysstv.py文件, 该文件基本上是该工具的代码。你可以执行此工具以从图像生成SSTV音频文件, 然后可以使用支持此类数据的特殊工具对其进行解码。该脚本支持以下格式:
- 马丁M1
- 马丁M2
- 斯科蒂S1
- 斯科蒂S2
- 机械手36
- PasokonP3
- PasokonP5
- PasokonP7
- PD90
- PD120
- PD160
- PD180
- PD240
- 机械手8BW
- 机械手24BW
可以使用–mode标志指定模式。该命令按各自的顺序需要2个位置参数(要转换的图像的输入路径)。此外, 它还支持以下选项:
- –help:显示此帮助消息并退出
- -模式:{MartinM1, MartinM2, ScottieS1, ScottieS2, Robot36, PasokonP3, PasokonP5, PasokonP7, PD90, PD120D160, PD180, PD240, Robot8BW, Robot24BW}, 默认图像模式为Martin M1
- –rate:RATE采样率(默认值:48000)
- –bits:每个样本的BITS位(默认值:16)
- –vox:在开头添加VOX音调
- –fskid:FSKID在末尾添加FSKID
- –chan:CHAN通道数(默认值:单声道)
从图像生成音频文件的最简单方法是使用以下命令, 其中pysstv对应于脚本的路径。我们将使用MartinM1模式, 但是你可以自由使用所需的格式:
python -m pysstv --mode MartinM1 ./path-to/input-picture.jpg ./output-audio.wav
运行该命令后, 它将生成output-audio.wav文件, 其中包含具有指定格式频率的音频。 sstv模块中的SSTV类实现与SSTV相关的基本功能, 而其他模块的类(例如灰度和彩色)对此进行了扩展。大多数实例实现以下方法:
- __init__会获取一个PIL图像, 每秒的采样数以及每个采样的位数作为参数, 但是不执行任何硬计算
- gen_freq_bits生成描述正弦波段的元组, 频率为Hz, 持续时间为ms
- gen_values生成介于-1和+1之间的样本, 并根据构造期间给出的每秒样本数执行采样
- gen_samples生成离散样本, 并根据构造期间给出的每个样本值的位数执行量化
- write_wav将整个图像写入Microsoft WAV文件
上面的方法都是基于上面的方法, 例如write_wav调用gen_samples, 而后者调用gen_values, 因此通常, 仅第一个和最后一个, 也许应该直接调用最后两个, 为方便起见, 这里仅列出了其他方法完整性, 并使流程更易于理解。
如果阅读本教程, 你也可以在Ubuntu 18.04中学习如何再次将此音频文件解码为图像。
编码愉快!
评论前必须登录!
注册