const__pageData=JSON.parse('{"title":"QMK QGF/QFF RLE data schema","description":"","frontmatter":{},"headers":[],"relativePath":"quantum_painter_rle.md","filePath":"quantum_painter_rle.md"}');
const_sfc_main={name:"quantum_painter_rle.md"};
const_hoisted_1=/* @__PURE__ */createStaticVNode('<h1 id="qmk-qp-rle-schema" tabindex="-1">QMK QGF/QFF RLE data schema <a class="header-anchor" href="#qmk-qp-rle-schema" aria-label="Permalink to "QMK QGF/QFF RLE data schema {#qmk-qp-rle-schema}""></a></h1><p>There are two "modes" to the RLE algorithm used in both <a href="./quantum_painter_qgf">QGF</a>/<a href="./quantum_painter_qff">QFF</a>:</p><ul><li>Non-repeating sections of octets, with associated length of up to <code>128</code> octets <ul><li><code>length</code> = <code>marker - 128</code></li><li>A corresponding <code>length</code> number of octets follow directly after the marker octet</li></ul></li><li>Repeated octet with associated length, with associated length of up to <code>128</code><ul><li><code>length</code> = <code>marker</code></li><li>A single octet follows the marker that should be repeated <code>length</code> times.</li></ul></li></ul><p>Decoder pseudocode:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>while !EOF</span></span>\n<span class="line"><span> marker = READ_OCTET()</span></span>\n<span class="line"><span></span></span>\n<span class="line"><span> if marker >= 128</span></span>\n<span class="line"><span> length = marker - 128</span></span>\n<span class="line"><span> for i = 0 ... length-1</span></span>\n<span class="line"><span> c = READ_OCTET()</span></span>\n<span class="line"><span> WRITE_OCTET(c)</span></span>\n<span class="line"><span></span></span>\n<span class="line"><span> else</span></span>\n<span class="line"><span> length = marker</span></span>\n<span class="line"><span> c = READ_OCTET()</span></span>\n<span class="line"><span> for i = 0 ... length-1</span></span>\n<span class="line"><span> WRITE_OCTET(c)</span></span></code></pre></div>',5);