The Floating Point Engine/es: Difference between revisions

From RawPedia
Jump to navigation Jump to search
(Created page with "<div style="background-color: #363636; border-radius: 3px; font-family: serif; color: #dddddd; font-size: 2.8em; line-height: 3.0; padding-left: 2.0em; margin-bottom: 1.5em;">...")
 
m (Revised explanations. Code fixed)
Line 1: Line 1:
<div style="background-color: #363636; border-radius: 3px; font-family: serif; color: #dddddd; font-size: 2.8em; line-height: 3.0; padding-left: 2.0em; margin-bottom: 1.5em;">El Motor de Coma Flotante</div>
<div class="pagetitle">El Motor de Coma Flotante</div>
<div class="headline">El corazón de RawTherapee y la precisión de sus cálculos</div>


== Los cálculos en 32-bits con decimales ==


&nbsp;&nbsp;&nbsp; RawTherapee realiza todos los cálculos en 32-bits con precisión de [https://es.wikipedia.org/wiki/Coma_flotante coma flotante] (a diferencia de los 16-bits con precisión de enteros, como encontramos en [https://es.wikipedia.org/wiki/Dcraw dcraw] y en RawTherapee hasta la versión 3.0).
RawTherapee realiza todos los cálculos en 32-bits con precisión de [https://es.wikipedia.org/wiki/Coma_flotante coma flotante]. Esto significa que pueden haber hasta 9 decimales con precisión exacta, o más con una precisión menor.


Los conversores clásicos trabajan con números enteros de 16-bits: cada canal de un pixel tiene valores entre 0 y 65535 (para aumentar la precisión, los conversores normalmente multiplican los valores raw de 12 ó 14-bits por un factor para ajustarlos a los 16-bits). En este caso los números no tienen decimales, así que por ejemplo no existe ningún valor entre 102 y 103.


&nbsp;&nbsp;&nbsp; Los conversores clásicos trabajan con números enteros de 16-bits. Cada canal de un pixel tiene valores entre 0 y 65535 en la precisión de 16-bits (para aumentar la precisión, los conversores normalmente multiplican los valores de 12 o 14-bits por un factor para ajustarlos a los 16-bits). Los números no tienen decimales, así que por ejemplo no hay ningún valor entre 102 y 103. Por el contrario los números en coma flotante tienen valores en un rango mucho más amplio, con precisión de 6-7 cifras significativas. Ésto ayuda especialmente en las altas luces, dónde se pueden recuperar rangos más amplios. Permite que hayan pasos intermedios en la cadena de procesado que no den resultados exactos (valores enteros) sin perder información. Los valores decimales posibles también ayudan a suavizar los degradados de color y prevenir las bandas de color.
Por el contrario los números en coma flotante tienen valores entre los números enteros, lo cual ayuda especialmente en las altas luces: permite que hayan valores decimales en la cadena de procesado y que no se pierda información. Por esto mismo los valores decimales ayudan a suavizar los degradados de color y prevenir las bandas de color ([https://es.wikipedia.org/wiki/Posterización el posterizado]).


La desventaja es la cantidad de memoria RAM que requieren los números en coma flotante, que es exactamente el doble que la de los números enteros. Esto, unido al constante incremento de los megapíxeles de los sensores digitales, fácilmente puede agotar la cantidad de memoria libre de un sistema operativo de 32-bits y causar el bloqueo de RawTherapee. Por ello y para garantizar la estabilidad sólo se publican versiones para sistemas operativos de 64-bits.


&nbsp;&nbsp;&nbsp; La desventaja es la cantidad de memoria RAM que requieren los números en coma flotante, que es exactamente el doble que la de los números enteros. Ésto unido a constante incremento de los megapíxeles de los sensores digitales, fácilmente puede agotar la cantidad de memoria de un sistema operativo de 32-bits y causar el bloqueo de RawTherapee. Es por éllo que es más que recomendable un sistema operativo de 64-bits para garantizar la estabilidad.
Si aún así necesitas usar una versión antigua de RawTherapee en un sistema de 32-bits, a continuación tienes algunos consejos:
* ajusta el reparto de los 4 Gigabytes de memoria en Windows. Puedes leer ''[http://msdn.microsoft.com/en-us/library/bb613473%28VS.85%29.aspx «4-Gigabyte Tuning: BCDEdit and Boot.ini»]'' (en inglés) para ver una explicación del problema. Y puedes descubrir cómo ponerlo en práctica leyendo ''[http://avatechsupport.blogspot.se/2008/03/how-to-set-3gb-startup-switch-in.html «How to set the /3GB Startup Switch in Windows XP and Vista»]'' (en inglés)
* cierra todos los programas cuando trabajes con RawTherapee
* utiliza el ''[[Preferencias#Distribución|Editor de Pestaña Única]]''
* desactiva el inicio automático en la ''[[Queue/es|Cola]]'', añade las fotos a la cola como de costumbre y cuando estés listo para empezar a procesarlas, reinicia RawTherapee para liberar memoria (no habrá ninguna imagen abierta en el Editor). Entonces arranca el procesamiento de la ''Cola''.
* asegúrate que RawTherapee [[Preferences/es#Directorios|no carga imágenes de campo oscuro o de campo plano]] si no las vas a usar
* evita tener más de algunos cientos de fotos en cada carpeta, ya que cada foto necesita un poco de memoria (miniatura, perfil ICC incrustado, etc).


== Necesidades de Memoria ==


&nbsp;&nbsp;&nbsp; El soporte de las versiones de 32-bits finalizó con la publicación de la versión 5.0-r1, en febrero de 2017. No abras informes de fallos cuando aparezcan en sistemas de 32-bits.
Simplemente para abrir una imagen en el ''Editor'', RawTherapee necesita aproximadamente esta cantidad de memoria, en bytes:
 
* Imagen '''NO-raw'''
&nbsp;&nbsp;&nbsp; Si aún así necesitas usar RawTherapee en un sistema de 32-bits, a continuación tienes algunos consejos:
** 8-bit: <code>(ancho * alto * 3) + (ancho * alto * 4) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)</code>
:* ajusta el reparto de los 4 Gigabytes de memoria en Windows. Puedes leer ''[http://msdn.microsoft.com/en-us/library/bb613473%28VS.85%29.aspx 4-Gigabyte Tuning: BCDEdit and Boot.ini]'' (en inglés) para ver una explicación del problema y descubrir cómo ponerlo en práctica leyendo ''[http://avatechsupport.blogspot.se/2008/03/how-to-set-3gb-startup-switch-in.html How to set the /3GB Startup Switch in Windows XP and Vista]'' (en inglés).
** 16-bit: <code>(ancho * alto * 3 * 2) + (ancho * alto * 4) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)</code>
:* cierra todos los programas cuando trabajes con RawTherapee.
** 32-bit: <code>(ancho * alto * 3 * 4) + (ancho * alto * 4) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)</code>
:* Utiliza el [[Preferencias#Distribución|Editor de Pestaña Única]]
* '''Raw'''
:* Desactiva el inicio automático en la [[Cola]]: añade las fotos a la cola como de costumbre y cuando estés listo para empezar a procesarlas, reinicia RawTherapee para liberar memoria (no habrá ninguna imagen abierta en el Editor) y arranca el procesamiento de la cola.
** <code>(ancho * alto * 4 * 2) + (ancho * alto * 12) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)</code>
:* Asegúrate que RawTherapee [[Preferencias#Directorios|no carga]] imágenes de campo oscuro o de campo plano si no las vas a usar.
:* Evita tener más de algunos cientos de fotos en cada carpeta, ya que cada foto necesita un poco de memoria (miniatura, perfil ICC incrustado, etc).
 
<br>
 
== Necesidades de Memoria ==


&nbsp;&nbsp;&nbsp; Para abrir una imagen en el Editor, RawTherapee necesita aproximadamente esta cantidad de memoria, en bytes:
Además se necesita algo de memoria extra, por ejemplo para generar las miniaturas de otras imágenes existentes en la carpeta de la imagen abierta.
:* Imagen NO-raw
:** 8-bit: <code>(ancho * alto * 3) + (ancho * alto * 4) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)</code>
:** 16-bit: <code>(ancho * alto * 3 * 2) + (ancho * alto * 4) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)</code>
:** 32-bit: <code>(ancho * alto * 3 * 4) + (ancho * alto * 4) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)</code>
:* Raw
:** <code>(ancho * alto * 4) + (ancho * alto * 4) + (ancho * alto * 12) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)</code>


<br>
La memoria necesaria para procesar y guardar una imagen depende de las herramientas que uses y puede ser bastante diferente a lo indicado antes, que solo es para abrir la imagen.


&nbsp;&nbsp;&nbsp; Además se necesita algo de memoria extra, por ejemplo para generar las miniaturas de otras imágenes existentes en la carpeta de la imagen abierta.
Por ejemplo: una foto raw de ''2608x3892'' píxeles mostrada en una vista previa de ''1304x973'' píxeles consumirá unos ''227 MBytes'' de memoria nada más abrirla en el ''Editor''.


&nbsp;&nbsp;&nbsp; La memoria necesaria para procesar y guardar una imagen depende de las herramientas que uses y puede ser bastante diferente a lo indicado antes, que solo es para abrir la imagen.
Como [https://es.wikipedia.org/wiki/Regla_mnemotécnica regla mnemotécnica]: '''''cada salto duplica la cantidad de memoria necesaria'''''.
<pre class="coding-pre">Memoria para fotos raw = 2 * memoria fotos 32-bit = 4 * memoria fotos 16-bit = 8 * memoria fotos 8-bit</pre>

Revision as of 21:55, 14 December 2020

El Motor de Coma Flotante
El corazón de RawTherapee y la precisión de sus cálculos

Los cálculos en 32-bits con decimales

RawTherapee realiza todos los cálculos en 32-bits con precisión de coma flotante. Esto significa que pueden haber hasta 9 decimales con precisión exacta, o más con una precisión menor.

Los conversores clásicos trabajan con números enteros de 16-bits: cada canal de un pixel tiene valores entre 0 y 65535 (para aumentar la precisión, los conversores normalmente multiplican los valores raw de 12 ó 14-bits por un factor para ajustarlos a los 16-bits). En este caso los números no tienen decimales, así que por ejemplo no existe ningún valor entre 102 y 103.

Por el contrario los números en coma flotante tienen valores entre los números enteros, lo cual ayuda especialmente en las altas luces: permite que hayan valores decimales en la cadena de procesado y que no se pierda información. Por esto mismo los valores decimales ayudan a suavizar los degradados de color y prevenir las bandas de color (el posterizado).

La desventaja es la cantidad de memoria RAM que requieren los números en coma flotante, que es exactamente el doble que la de los números enteros. Esto, unido al constante incremento de los megapíxeles de los sensores digitales, fácilmente puede agotar la cantidad de memoria libre de un sistema operativo de 32-bits y causar el bloqueo de RawTherapee. Por ello y para garantizar la estabilidad sólo se publican versiones para sistemas operativos de 64-bits.

Si aún así necesitas usar una versión antigua de RawTherapee en un sistema de 32-bits, a continuación tienes algunos consejos:

Necesidades de Memoria

Simplemente para abrir una imagen en el Editor, RawTherapee necesita aproximadamente esta cantidad de memoria, en bytes:

  • Imagen NO-raw
    • 8-bit: (ancho * alto * 3) + (ancho * alto * 4) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)
    • 16-bit: (ancho * alto * 3 * 2) + (ancho * alto * 4) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)
    • 32-bit: (ancho * alto * 3 * 4) + (ancho * alto * 4) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)
  • Raw
    • (ancho * alto * 4 * 2) + (ancho * alto * 12) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)

Además se necesita algo de memoria extra, por ejemplo para generar las miniaturas de otras imágenes existentes en la carpeta de la imagen abierta.

La memoria necesaria para procesar y guardar una imagen depende de las herramientas que uses y puede ser bastante diferente a lo indicado antes, que solo es para abrir la imagen.

Por ejemplo: una foto raw de 2608x3892 píxeles mostrada en una vista previa de 1304x973 píxeles consumirá unos 227 MBytes de memoria nada más abrirla en el Editor.

Como regla mnemotécnica: cada salto duplica la cantidad de memoria necesaria.

Memoria para fotos raw = 2 * memoria fotos 32-bit = 4 * memoria fotos 16-bit = 8 * memoria fotos 8-bit