Layer-first, not coefficient-first.
Classical codecs pack an entire block's coefficients together before moving to the next. FQL inverts that: it sends all layer-0 bits for every coefficient first, then all layer-1 bits, and so on. The result: truncation at any boundary still decodes cleanly.
Four inversions of classical streaming.
Each bit halves the uncertainty interval.
Instead of writing 12 bits per coefficient as one atomic package, RBIQ splits them: layer-0 gets the sign and magnitude range, layer-1 halves the range, layer-2 halves again. Drop the last 5 layers — output is still a valid lower-precision representation.
Every packet describes the whole.
Packets never contain "coefficient 142 through 167." They contain "layer-0 for coefficients 1 through 8192." Lose one — and the global resolution drops by 1/12. Lose half the packets — and the output is at half the quality. Never silence.
Base layers ride with FEC.
Layer 0 is transmitted with 3× redundancy. Layer 1 with 2×. Top layers go unprotected. Available bandwidth is spent protecting the information that matters — the coarse shape of your signal.
No return channel needed.
No retransmit requests, no ABR ladder negotiation, no ACK storms. Broadcast to a satellite, a drone, an underwater acoustic modem — if a fraction of packets arrive, the decoder extracts a proportionally coarser signal from them.
HLS · SRT · RIST · FQL.
| HLS / DASH | SRT / RIST | FQL | |
|---|---|---|---|
| Files on server | 6 renditions | 1 file | 1 file |
| Quality switching | 2–10 s rebuffer | fixed quality | 0 ms, no buffer |
| Graceful to | ~5% loss | ~30–50% loss | 90% loss |
| Return channel | required (TCP) | required (ACKs) | not required |
| Rebuffering | yes | yes, then stall | never |
| Startup time | 500 ms – 3 s | 100–300 ms | < 100 ms |
| Protocol | TCP/HTTP | UDP + ARQ | pure UDP |
Read the specification.
Full protocol documentation, client SDKs, reference implementations, and patent status.