fullseye

fly_hex_quantize — FLYVISION sample op

使い方

個眼信号を眼と同じやり方で量子化する: 対数圧縮してから個眼あたり n ビット(mode="onoff" は ON / OFF の 2 チャネル)。

複眼は生まれつき量子化器で、片眼およそ 800 個眼(間隔 4.6°)、光受容器は強度を対数圧縮して平均に適応し、 ラミナの L1 / L2 が平均からの偏差を ON と OFF に分ける。この op はその予算を再現し、下流のモデル (reservoir・網膜部位対応の検査)に「本当に何ビット要るか」を問えるようにする。

A compound eye is a quantizer by construction: ~800 ommatidia per eye at 4.6 deg spacing, photoreceptors that log-compress intensity and adapt to the mean, and lamina cells (L1/L2) that split the deviation into ON and OFF channels. This op reproduces that budget so a downstream model (reservoir, retinotopy test) can be asked how many bits it really needs.

Parameters

signal : (n,) float Per-ommatidium intensities >= 0 (fly_hex_resample output). bits : int 1..8 levels = 2**bits (mode="onoff" ignores it: the output is the signed pair below). mode : str "log": log1p-compress relative to the mean, shift the darkest ommatidium to 0, then uniform levels over the compressed range; "linear": uniform levels over [0, max]; "onoff": deviation from the mean relative to contrast clipped to [-1, 1] and returned as 2 * n values [ON..., OFF...] (ON = positive part, OFF = negative part), each >= 0. contrast : float Michelson-style contrast that saturates the ON/OFF channels (mode="onoff" only).

Returns

(n,) float in [0, 1] (levels / (2**bits - 1)); for "onoff" (2n,) in [0, 1].

Notes

Non-finite or negative inputs are refused. A constant signal quantizes to all-zeros ("log" / "onoff") — there is no contrast to encode.

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(signal を入力に取れる)

fly_emd_response · fly_lgmd_eta · fly_tau_from_expansion · fly_dsi

同カテゴリ(sample)

fly_hex_resample


Provenance: flyvision.py — FLYVISION operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.