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.