> kodowanie arytmetyczne | bity ułamkowe | optymalne <
// Kodowanie arytmetyczne – kodowanie z użyciem bitów ułamkowych zbliżone do granicy entropii
Bliskie optimum
Osiąga współczynniki kompresji bardzo bliskie teoretycznej granicy entropii.
Bity ułamkowe
Koduje symbole przy użyciu bitów ułamkowych zależnych od prawdopodobieństwa.
Przetwarzanie strumieniowe
Może kodować i dekodować dane stopniowo, w miarę ich napływu.
>> informacje techniczne
Jak działa kodowanie arytmetyczne:
Kodowanie arytmetyczne reprezentuje całą wiadomość jako jedną liczbę z przedziału [0,1). Każdy symbol zawęża ten przedział w zależności od swojego prawdopodobieństwa. Końcowy przedział jest kodowany jako ułamkowa liczba binarna, co daje kompresję bardzo bliską granicy entropii.
Proces kodowania:
Tekst: "AAB" Prawdopodobieństwa: A=0.67, B=0.33 1. Start: [0, 1) 2. 'A': [0, 0.67) 3. 'A': [0, 0.45) 4. 'B': [0.30, 0.45) Wynik: dowolna liczba z przedziału [0.30, 0.45) Binarnie: 0.010011...
Dlaczego używać kodowania arytmetycznego:
- >Bardzo dobre współczynniki kompresji
- >Zbliża się do granicy entropii
- >Obsługuje dowolne rozkłady prawdopodobieństwa
- >Wykorzystywane w JPEG2000/H.264
- >Wygasłe patenty (2024)
>> najczęstsze pytania
Czym jest kodowanie arytmetyczne?
Kodowanie arytmetyczne to rodzaj kodowania entropijnego, który zamienia sekwencję symboli w jedną liczbę ułamkową. W przeciwieństwie do kodowania Huffmana, które używa całych bitów, kodowanie arytmetyczne może używać bitów ułamkowych na symbol.
Dlaczego jest lepsze od Huffmana?
Kodowanie arytmetyczne może osiągnąć kompresję dowolnie bliską granicy entropii, podczas gdy Huffman jest ograniczony do całych bitów na symbol. Przy silnie skośnych rozkładach prawdopodobieństwa kodowanie arytmetyczne może być znacznie skuteczniejsze.
Czym jest parametr precyzji?
Precyzja określa liczbę bitów używanych w obliczeniach wewnętrznych. Wyższa precyzja pozwala kodować dłuższe wiadomości, ale wymaga więcej pamięci. Dla krótkich tekstów zwykle wystarcza 16 bitów.
Gdzie stosuje się kodowanie arytmetyczne?
Kodowanie arytmetyczne jest używane w nowoczesnych standardach kompresji, takich jak wideo H.264/H.265, obrazy JPEG2000 oraz tryb DEFLATE64 w ZIP. Wcześniej było objęte patentami, lecz kluczowe patenty wygasły.