Exponenciální-Golombovo kódování - Exponential-Golomb coding - Wikipedia
An exponenciálně-Golombův kód (nebo prostě Kód Exp-Golomb) je typ univerzální kód. Zakódovat libovolné nezáporné celé číslo X pomocí kódu exp-Golomb:
- Zapsat X+1 v binárním formátu
- Počítejte zapsané bity, odečtěte jednu a zapište tento počet počátečních nulových bitů předcházejících předchozímu bitovému řetězci.
Prvních několik hodnot kódu je:
0 ⇒ 1 ⇒ 1 1 ⇒ 10 ⇒ 010 2 ⇒ 11 ⇒ 011 3 ⇒ 100 ⇒ 00100 4 ⇒ 101 ⇒ 00101 5 ⇒ 110 ⇒ 00110 6 ⇒ 111 ⇒ 00111 7 ⇒ 1000 ⇒ 0001000 8 ⇒ 1001 ⇒ 0001001...[1]
Toto je totožné s Eliasův gama kód z X+1, což umožňuje kódování 0.[2]
Rozšíření na záporná čísla
Kódování Exp-Golomb se používá v H.264 / MPEG-4 AVC a H.265 Vysoce efektivní kódování videa standardy komprese videa, ve kterých existuje také variace pro kódování podepsaných čísel přiřazením hodnoty 0 binárnímu kódovému slovu „0“ a přiřazením následných kódových slov k vstupním hodnotám rostoucí velikosti (a střídavé znaménko, pokud pole může obsahovat a záporné číslo):
0 ⇒ 0 ⇒ 1 ⇒ 1 1 ⇒ 1 ⇒ 10 ⇒ 010−1 ⇒ 2 ⇒ 11 ⇒ 011 2 ⇒ 3 ⇒ 100 ⇒ 00100−2 ⇒ 4 ⇒ 101 ⇒ 00101 3 ⇒ 5 ⇒ 110 ⇒ 00110−3 ⇒ 6 ⇒ 111 ⇒ 00111 4 ⇒ 7 ⇒ 1000 ⇒ 0001000−4 ⇒ 8 ⇒ 1001 ⇒ 0001001...[1]
Jinými slovy, celé kladné číslo X≤0 je mapováno na sudé celé číslo −2X, zatímco kladné celé číslo X> 0 je mapováno na liché celé číslo 2X−1.
Kódování Exp-Golomb se také používá v Dirac video kodek.[3]
Zobecnění na zakázku k
Chcete-li kódovat větší čísla na méně bitů (na úkor použití více bitů ke kódování menších čísel), lze to zobecnit pomocí nezáporné celé číslo parametrk. Zakódovat nezáporné celé číslo X v objednávce -k exp-Golomb kód:
- Kódovat ⌊X/2k⌋ poté pomocí výše popsaného kódu order-0 exp-Golomb
- Zakódovat X mod 2k v binárním formátu
Ekvivalentní způsob vyjádření je:
- Zakódovat X+2k−1 pomocí kódu exp-Golomb objednávky-0 (tj. Kódování X+2k pomocí Eliasova gama kódu)
- Vymazat k úvodní nulové bity z výsledku kódování
X | k=0 | k=1 | k=2 | k=3 | X | k=0 | k=1 | k=2 | k=3 | X | k=0 | k=1 | k=2 | k=3 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 10 | 100 | 1000 | 10 | 0001011 | 001100 | 01110 | 010010 | 20 | 000010101 | 00010110 | 0011000 | 011100 | ||
1 | 010 | 11 | 101 | 1001 | 11 | 0001100 | 001101 | 01111 | 010011 | 21 | 000010110 | 00010111 | 0011001 | 011101 | ||
2 | 011 | 0100 | 110 | 1010 | 12 | 0001101 | 001110 | 0010000 | 010100 | 22 | 000010111 | 00011000 | 0011010 | 011110 | ||
3 | 00100 | 0101 | 111 | 1011 | 13 | 0001110 | 001111 | 0010001 | 010101 | 23 | 000011000 | 00011001 | 0011011 | 011111 | ||
4 | 00101 | 0110 | 01000 | 1100 | 14 | 0001111 | 00010000 | 0010010 | 010110 | 24 | 000011001 | 00011010 | 0011100 | 00100000 | ||
5 | 00110 | 0111 | 01001 | 1101 | 15 | 000010000 | 00010001 | 0010011 | 010111 | 25 | 000011010 | 00011011 | 0011101 | 00100001 | ||
6 | 00111 | 001000 | 01010 | 1110 | 16 | 000010001 | 00010010 | 0010100 | 011000 | 26 | 000011011 | 00011100 | 0011110 | 00100010 | ||
7 | 0001000 | 001001 | 01011 | 1111 | 17 | 000010010 | 00010011 | 0010101 | 011001 | 27 | 000011100 | 00011101 | 0011111 | 00100011 | ||
8 | 0001001 | 001010 | 01100 | 010000 | 18 | 000010011 | 00010100 | 0010110 | 011010 | 28 | 000011101 | 00011110 | 000100000 | 00100100 | ||
9 | 0001010 | 001011 | 01101 | 010001 | 19 | 000010100 | 00010101 | 0010111 | 011011 | 29 | 000011110 | 00011111 | 000100001 | 00100101 |
Viz také
Reference
- ^ A b Richardson, Iain (2010). Standard pokročilé komprese videa H.264. Wiley. 208, 221. ISBN 978-0-470-51692-8.
- ^ Rupp, Markus (2009). Video a multimediální přenosy po celulárních sítích: analýza, modelování a optimalizace v živých mobilních sítích 3G. Wiley. p. 149. ISBN 9780470747766.
- ^ "Specifikace Dirac" (PDF). BBC. Archivovány od originál (PDF) dne 2015-05-03. Citováno 9. března 2011.