demo.stackurl.pl
PLEN

Jak to działa

Skąd bierze się mediana 0,35

Adres jest rozbierany na części, a każda część kodowana względem tego, jak taka część zwykle wygląda. Nic nie ma stałej szerokości — każde pytanie ma cenę wynikającą z prawdopodobieństwa.

1. Adres to ciąg decyzji, nie ciąg bajtów

Schemat, prefiks www., host, segmenty ścieżki, parametry zapytania i fragment są zapisywane jako osobne decyzje. Schemat to jedno pytanie — w dziewięciu przypadkach na dziesięć odpowiedź brzmi https, więc kosztuje ułamek bitu, a nie bit.

Host trafia do kodu Huffmana zbudowanego z rankingu domen. Przy trafieniu w słownik host kosztuje kilka bitów zamiast kilkunastu znaków. Przy pudle zapisujemy kod sufiksu publicznego i resztę jako tekst.

2. Koder arytmetyczny wycenia każdą decyzję

Wszystko przechodzi przez binarny koder arytmetyczny z prawdopodobieństwami wytrenowanymi na korpusie i adaptowanymi w trakcie kodowania. Decyzja, której wynik jest niemal pewny, kosztuje ułamek bitu — dlatego flagi formatu to tylko około 30 bitów całego payloadu.

3. Tekst jest przewidywany znak po znaku

Dwie trzecie typowego payloadu to tekst dowolny: slug ścieżki, wartość parametru. Każdy znak jest kodowany względem kilku poprzednich — czterech dla hostów i zapytań, pięciu dla ścieżek. Entropia rzędu 0 dla tekstu ścieżki to 4,9 bitu na znak; ten model schodzi do około 3,3.

Tekst kończy się symbolem terminatora wycenianym w kontekście, a nie prefiksem długości — po literach lmth koniec literału jest niemal pewny i kosztuje prawie nic.

Literał, który wygląda na nieprzezroczysty identyfikator, dostaje płaski zestaw sześciobitowy. Model kontekstowy proszony o przewidywanie danych losowych wypada gorzej niż brak modelu.

4. Ścieżka i zapytanie są modelowane per serwis

256 najpopularniejszych domen ma własne prawdopodobieństwa kształtu ścieżki. YouTube to prawie zawsze /watch?v=…, a serwis informacyjny prawie zawsze zaczyna od roku. Host jest zapisywany przed ścieżką, więc dekoder liczy tę samą klasę serwisu co koder.

5. Bity zamieniają się w tekst

Strumień bitów jest przeliczany na jeden z dwóch alfabetów: 68 znaków bezpiecznych przy kopiowaniu dla linków, albo podzbiór alfanumeryczny QR, w którym dwa znaki pakują się w 11 bitów i kod QR zostaje mały.

6. Czego to nie potrafi

Nic tu nie łamie entropii. Link, który jest w większości losowym identyfikatorem, nie da się skrócić. Kiedy koder strukturalny przegrywa z surowymi bajtami, zostaje forma surowa, a wynik jest oznaczony jako passthrough.

7. Stabilność formatu

Payload ma sens tylko razem ze słownikami i prawdopodobieństwami, które go wyprodukowały. Każda zmiana słownika, układu kontekstów albo kolejności pól zmieniłaby znaczenie istniejących linków, więc wymaga podbicia wersji formatu i zachowania starych tablic obok nowych. Zamrożone payloady w testach pilnują, żeby to była decyzja, a nie skutek uboczny.