En lov

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 13. marts 2013; checks kræver 9 redigeringer .

A-law  er en tabsgivende komprimeringsalgoritme, der bruges til at komprimere lyddata .

Implementeringer til 16-bit signerede heltal

Princippet for indkodning ligner kodningen af ​​flydende kommatal . Hver prøve er kodet ind i et 8-bit felt. Den mest signifikante bit er fortegnsbitten, de næste 3 bit er eksponenten uden fortegn , og de sidste 4 bit er mantissen . Af de anvendte 16 bit er det således kun 12 bit, der indeholder meningsfuld information, og 4 bit ud af 16 bliver nogle gange kasseret.

Trin 1

Hvis tallet er negativt, inverteres det, og det antages, at s = 0, ellers s = 1.

Trin 2

Et 16-bit tal konverteres til et 8-bit tal i henhold til følgende tabel. For klarhedens skyld er nibbles  - nibbles -  adskilt af et backtick (`); s er fortegnsbitten; stjerner angiver bits, der går tabt under komprimering.

originalt nummer komprimeret
s000`0000`wxyz`**** s000`wxyz
s000`0001`wxyz`**** s001`wxyz
s000`001w`xyz******* s010`wxyz
s000`01wx`yz**`**** s011`wxyz
s000`1wxy`z***`**** s100`wxyz
s001`wxyz`****`**** s101`wxyz
s01w`xyz*`****`**** s110`wxyz
s1wx`yz**`****`**** s111`wxyz
Trin 3

Bits inverteres gennem én, startende fra længst til højre (det vil sige, et 8-bit tal er XORed  0x55).

Eksempler

I eksemplerne nedenfor angiver subscript bitdybden ( decimal eller binær ); i trin 1 er mantissen understreget (en del af cifrene, der bliver til wxyz i trin 2).

Eksempel 1 666 10 = 0000`0010`1001`1010 2 Trin 1. Fortegnsbit s = 1: 0000`001 0`100 1`1010 2 Trin 2. Selve komprimeringen (svarer til s001`wxyz): 1010`0100 2 Trin 3. Inverter: 1111`0001 2 = F1 16 = 241 10 . Eksempel 2 -6666 10 = 1110`0101`1111`0110 2 Trin 1. Vend tallet om, fortegn bit s = 0: 0001` 1010 `0000`1001 2 Trin 2. Selve komprimeringen (svarer til s011`wxyz): 0101`1010 2 Trin 3. Inverter: 0000`1111 2 =15 10

Se også