Mitja precisió

En informàtica, mitja precisió és un format numèric de computador que ocupa la meitat d'una localització d'emmagatzemament en una determinada adreça del computador, mitja paraula. Un nombre de mitja precisió pot ser definit a ser un enter, punt fix, o punt flotant. Per enters binaris, molts cops és anomenat short.

El punt flotant de mitja precisió és relativament un nou format binari de punt flotant que utilitza 2 bytes i que no està inclòs a l'estàndard IEEE 754 per la codificació de nombres en punt flotant (però està inclòs en la proposta de revisió IEEE 754r).

Aquest format és utilitzat en bastants entorns de gràfics d'ordinador incloent OpenEXR, OpenGL, i D3DX. L'avantatge sota els enters binaris de 8 o 16 bits és que incrementen el rang dinàmic permet més detall perquè puguin ser conservats en alçament i ocultació. L'avantatge sobre formats binaris de 32 bits precisió simple és que necessiten la meitat de l'emmagatzemament i l'amplada de banda.[1]

Format de mitja precisió

Bit de signe: 1 bit
Exponent mida: 5 bits
Significant precisió: 10 (11 implícit) bits

El format és escrit amb el primer bit significatiu amb valor 1, a menys que l'exponent sigui tot zeros. Només apareixen 10 bits de la fracció. en llenguatge IEEE 754, hi ha 10 bits de significant, però hi ha 11 bits de precisió de significant (aproximadament 3 dígits decimals, log 10 ( 2 11 ) 3.311 {\displaystyle \log _{10}(2^{11})\approx 3.311} ). Els bits es defineixen de la següent manera:

syyy yyxx xxxx xxxx (10 xs)

Codificació de l'exponent

Emin (0x01) = −14
Emax (0x1e) = 15
Exponent bias (0x0f) = 15

El verdader exponent = exponent escrit - exponent bias

0x00 i 0x1f són exponents reservats 
0x00 és utilitzat per representar el zero i denormals
0x1f és utilitzat per representar l'infinit i NaNs

Tots els patrons de codificació de bits són vàlids.

Els valors màxims i mínims representables són 2-24 = 5.96E-8 (denormalitzat) i 65504 respectivament. El mínim valor no denormalitzat és 2-14 = 6.10E-5.

Exemples de mitja precisió en hexadecimal

3c00 = 1
c000 = -2
7bff = 65504 (Màx precisió mitja)
3555 ~ 0.33325... ~ 1/3 

(1/3 arrodoneix a la baixa com precisió doble, degut al nombre senar de bits al significant.)

0400 = 2-14 ~ 6.10352E-5 (Mínim normalitzat)
0001 = 2-24 ~ 5.96046E-8 (Mínim denormalitzat)
0000 = 0
8000 = -0
7c00 = Infinit
fc00 = -Infinit

Vegeu també

Enllaços externs

  • Minifloats (in Survey of Floating-Point Formats)
  • OpenEXR site
  • Half precision constants from D3DX (defunct page)
  • OpenGL treatment of half precision Arxivat 2015-07-02 a Wayback Machine.
  • Analog devices variant Arxivat 2003-10-29 a Wayback Machine. (four-bit exponent) (defunct page)

Referències

  1. «About OpenEXR». Arxivat de l'original el 2013-05-08. [Consulta: 6 maig 2014].