Kod Golomba – kod binarny zmiennej długości, służący kodowaniu liczb całkowitych nieujemnych, o potencjalnie nieograniczonej wartości. Został opracowany w 1960 roku przez Solomona W. Golomba.

W kodowaniu Golomba zbiór liczb jest dzielony na rozłączne podprzedziały o długości tzn. zaś liczba jest przedstawiana za pomocą pary (numer przedziału do którego należy, odległość od jego początku). Wartość jest nazywana rzędem kodu; jeśli rząd jest potęgą dwójki, taki kod nazywany jest kodem Rice’a (od nazwiska pomysłodawcy, Roberta F. Rice’a).

Kod jest optymalny dla źródeł o geometrycznym rozkładzie prawdopodobieństwa, tzn. prawdopodobieństwo i-tej wartości wynosi (np. dla będą to ).

Kodowanie Rice’a z adaptacyjnym dobieraniem rzędu jest stosowane m.in. w algorytmie kompresji bezstratnej JPEG-LS oraz FLAC.

Kodowanie Kodowanie liczby wymaga znalezienia dwóch wartości: przedziału do którego należy liczba: odległości od początku przedziału:

Ogólnie

Słowo kodowe składa się z dwóch części: liczby zapisanej w kodzie unarnym, liczby zapisanej w kodzie binarnym (o prawie stałej długości, patrz następna sekcja).

Słowa kodowe nie są krótsze niż

Dla kodów rzędu kod Golomba redukuje się do kodów unarnych, nie pojawia się zakodowane