RIFP 是一个实验性协议和 Python 实现,用于通过低速率无线电链路发送图像,默认使用 433.92 MHz 的二进制 CPFSK 配置,支持 CCITT Group 3/4、JPEG、PNG 等编解码器。

Stars

8

7 天增长

暂无数据

Fork 数

2

开放 Issue

0

开源协议

BSD-2-Clause

最近更新

2026-07-28

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

它提供了一个可扩展的、基于 CCITT 传真协议的帧协议,具有强大的错误检测(CRC-32、SHA-256)、乱序交付功能,并发布了 IETF 互联网草案,面向低带宽无线电环境。

适合谁使用

  • 对图像传输感兴趣的业余无线电爱好者
  • 从事低速率无线电链路开发的嵌入式系统工程师
  • 遥感与物联网数据中继项目
  • 探索新协议的包无线电爱好者

典型使用场景

  • 通过低功率无线电传输气象或卫星图像
  • 从远程传感器通过 UHF 频段发送相机快照
  • 对图像无线电链路进行离线测试与一致性验证
  • 在带宽极有限的应急通信中实验使用

项目优势

  • 采用真正的 CCITT Group 3/4 压缩实现高效的传真式图像
  • 每个帧都有 CRC-32 校验,完整编码图像还有 SHA-256 验证
  • 可扩展的 TLV 头部和带命名空间的 JSON 清单
  • 支持多种编解码器(group3, group4, jpeg, png, zlib)并自动选择无损方案

使用前须知

  • 需要 SDR 硬件(发送端需 HackRF 等,接收端可用 RTL-SDR)并遵守频率和占空比监管要求
  • 目前为实验性协议(IETF 草案 -00),尚未广泛采用
  • 离线回环测试需手动配置采样/符号速率,未内置模拟监管占空比延迟

README 快速开始

RIFP radio image sender and receiver

The Radio Image Framing Protocol (RIFP) 1.0 is an experimental, extensible standard for sending images over low-rate radio links.

The default rifp-cpfsk-4800 profile uses binary continuous-phase FSK and can be deployed around 433.92 MHz where local regulation permits it. RIFP itself is not tied to 433 MHz or to FSK.

The implementation is not an analogue WEFAX receiver. The group3 and group4 codecs nevertheless use real CCITT Group 3/4 TIFF facsimile compression.

Protocol properties

RIFP 1.0 provides:

  • a 28-byte versioned base header;
  • 64-bit random session identifiers;
  • 32-bit sequence and chunk-count fields;
  • advisory and critical flags;
  • extensible 16-bit type/length/value header fields;
  • MANIFEST, DATA, END and CANCEL frame types;
  • JSON manifests with namespaced extension data;
  • CRC-32 on every frame;
  • CRC-32 and SHA-256 verification of the complete encoded image;
  • out-of-order delivery, repetition and duplicate detection;
  • explicit media types and content-encoding names; and
  • named radio profiles that are independent of the framing protocol.

Unknown advisory extensions are ignored. Unknown critical extensions cause the individual frame to be rejected, allowing future features such as encryption, signatures, FEC and repair requests to be introduced safely.

Dependencies

python3 -m pip install -r requirements_radiofax.txt

For live RF, install SoapySDR, its Python bindings and the hardware module for your SDR. Transmission requires TX-capable hardware such as a HackRF, LimeSDR, PlutoSDR or USRP. Many RTL-SDR devices are receive-only but can run the receiver.

Offline conformance loopback

Run the commands from the directory containing all three Python files:

python3 radiofax_sender.py example.png \
  --preset small --codec group4 --bits 1 \
  --packet-repeats 1 --manifest-repeats 1 \
  --sender-id CIRCL \
  --content-hint "scheduled weather image" \
  --manifest-extension 'org.example.source={"camera":"north"}' \
  --duty-cycle 1 --iq-output example.cf32

python3 radiofax_receiver.py \
  --iq-input example.cf32 \
  --output-dir received-radiofax

Both sides must use the same sample and symbol rates. Defaults are 96 ksample/s and 4,800 symbols/s. IQ-file mode uses --iq-gap and does not add long silence representing regulatory duty-cycle pacing.

Manif

项目描述

Radio Image Framing Protocol

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

lopopolo
精选
lopopolo GitHub avatar

harness-engineering

Harness Engineering is a methodology for improving coding agent outputs by carefully crafting the environment around them—providing curated context, tools, and executable constraints that encode an organization’s nonfunctional requirements and cumulative lessons.

AI 与机器学习AI 智能体
2,390
slvDev
精选
slvDev GitHub avatar

esp32-ai

A 28.9 million parameter language model runs on an $8 ESP32-S3 microcontroller entirely on-device, generating simple stories at about 9.5 tokens per second.

AI 与机器学习大语言模型
1,960
littledivy
精选
littledivy GitHub avatar

mimic

mimic captures traffic from any iOS or web app and automatically generates a Python client library that lets you call the app's API like a regular library.

AI 与机器学习
1,482