Per-SVC-layer spatial UEP: the third protection axis (#136)#146
Merged
Conversation
UEP already runs on MCS (svc_tx.h ladder) and FEC rate (svc_uep_fec.py). The spatial axis is also already in the ladder — its default flies critical/base with LDPC+STBC and leaves enhancement single-stream — but was never quantified as an axis until #132 measured the STBC gain (~2-3 dB coding + diversity). This adds the sim that shows the three knobs compound. - tools/precoder/svc_spatial_uep_sim.py (+ pytest): analytical per-layer delivery (soft FER around the MCS threshold, STBC shifting it down by the measured coding gain, RS repair budget via binomial), an SNR-sweep staircase, and --no-stbc for an A/B of the spatial axis. - docs/fused-fec.md: "The third axis: per-layer spatial diversity". Result: the staircase holds on three knobs — enhancement (T2/T1) sheds first, base/critical hold deepest, and the spatial knob extends critical/base survival SNR by the STBC coding gain (~2.5 dB) on top of MCS and FEC. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This was referenced Jul 2, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The third UEP axis — per-layer spatial diversity (#136). Unequal error
protection already runs on MCS (
svc_tx.hladder) and FEC rate(
svc_uep_fec.py). The spatial axis is also already in the ladder — its defaultflies the critical/base layers with
LDPC/STBCand leaves enhancementsingle-stream — but it was a flag, not a measured axis, until #132 quantified the
STBC gain (~2–3 dB coding + diversity that widens under motion). This adds the sim
showing the three knobs compound.
Model
Analytical (no codec dependency): each layer's per-frame PHY delivery is a soft
FER transition around its MCS threshold, shifted down by the STBC coding gain when
enabled; the layer's RS block survives if per-symbol losses stay within its repair
budget (binomial). Sweeping link SNR down produces the per-layer staircase.
Result
Default ladder (critical MCS0/STBC ov1.0, T0 MCS1/STBC ov0.75, T1 MCS4 ov0.5,
T2 MCS7 ov0.25) survival SNR:
Enhancement (T2/T1) sheds first; base/critical hold deepest; the spatial knob
buys the critical/base layers ~2.5 dB more survival on top of MCS and FEC.
Contents
tools/precoder/svc_spatial_uep_sim.py(+ pytest): staircase sweep,--no-stbcA/B,
--self-test.docs/fused-fec.md: "The third axis: per-layer spatial diversity".Testing
--self-testgreen; 6 pytest pass. Pure-Python, consistent with the sibling sims.🤖 Generated with Claude Code