PDA

Ver la versión completa : Conversión de JPEG a RAW. Exprimir las compactas al máximo



ManuelLlorens
23/10/2008, 15:37
Para los que no sepáis dónde se ha tratado este tema antes dadlo por nuevo :D:D:D, os informo de la idea.

Estamos pensando desarrollar una aplicación que coja los JPEGs de nuestras cámaras compactas, esas que nos salvan alguna buena foto cuando nos hemos dejado la réflex en casa, y sacar de ellos el máximo.

Para ello habría que obtener el JPEG en las mejores condiciones, saturación, contraste y enfoque al mínimo y no quemar la imagen.

Para eso seguiríamos el siguiente proceso:

Convertir los datos a float (32 bits).
Eliminar los datos que son fruto de la interpolación hecha por la cámara (este proceso es fácil, pero requiere conocer el formato de la matriz bayer de cada cámara, así que iríamos probando por ensayo y error y guardando una base de datos de cámaras).
Deshacer la gamma y el espacio de color sRGB.
Convertir a 16 bits.
Grabar un DNG.

Pensaréis (con razón) que este proceso producirá posterización en los degradados suaves, pues al haber pasado de 14 bits a 8 bits en la cámara y volver a pasar ahora a 16 bits habremos perdido decimales irrecuperables. Sin embargo, al tener que volver a interpolar obtendremos de nuevo gradientes suaves, haciendo casi imperceptible la pérdida de información en el proceso.

Imaginad que tomamos un JPEG tal cual sale de la cámara en las condiciones que expongo arriba y lo reinterpolamos en perfectRAW con un algoritmo mucho más nítido, como AFD o AHD. El resultado es una imagen con muchas más definición que el JPEG original y que sin embargo sale sorprendentemente de los mismos datos... ¡mola!, ¿eh?

Además se abre la posibilidad a utilizar el JPEG en perfectRAW o en cualquier otro revelador de nuestro gusto o en el futuro Zeronoise RAW (perfectBLEND o como acabe llamándose).

Es cierto que ACR ya hace algo parecido, pero NO reinterpola los JPEGs por lo que no es capaz de sacar más de lo que nosotros hacemos y, por ejemplo, no puede volver a hacer el balance de blancos sin estropear algo la imagen.

Es importante que se entienda que no es una aplicación para procesar a saco todos los JPEGs y no disparar en RAW, eso sería una tontería, pero puede salvarnos alguna que otra situación y encima permitirnos usar el mismo workflow con la compacta que con la réflex.

En cuanto tenga un rato pondré aquí un ejemplo de un JPEG tal cual sale de mi compacta y el resultado tras re-interpolarlo con AFD para que veáis la diferencia que puede obtenerse. Básicamente podemos esperar que mejoren la definición, el tratamiento del balance de blancos y las aberraciones cromáticas y el tratamiento del ruido (especialmente a ISOs altas). Creo que eso ya es bastante para una cámara compacta.

Espero vuestras opiniones.

Un saludo:

SALUDA
23/10/2008, 16:03
Cuando hablas de re-interpolar, ¿quieres decir que primero se anula o retrocede la interpolación que hace la cámara y después se le aplica la vuestra? ¿qué es AFD y AHD?

Perdón por mi ignorancia.

ariznaf
23/10/2008, 17:07
Sí, eso es la idea, pero como tienes un raw, le puedes aplicar la nuestra o cualquier otra, con el revelador de perfectraw u otro cualquiera (u otro algoritmo que pueda aparecer en el futuro).

Evidentemente sólo tiene sentido cuando el algoritmo de la cámara es pobre y deseas utilizar un algoritmo más avanzado que produzca mejores resultados como puede ser AHD (que estaba ya en dcraw) o AFD con la nueva implementación de Manuel, que donde mejores resultados da frente al AHD es en imágenes sacadas a altos ISO, por ejemplo.

ManuelLlorens
23/10/2008, 17:31
No creo que haya ninguna cámara en el mercado, ni compacta ni réflex, que haga una interpolación que se aproxime a AHD, y mucho menos a AFD. Fíjate en las comparativas de ruido a ISOs altas en dpreview y te darás cuenta.

Navarro
23/10/2008, 18:36
Lo poco que he entendido me parece muy buena idea, a la espera de cotejar los resultados.

Slds.

VALGAR
23/10/2008, 19:47
Ahora que me he enterado del proyecto gracias a la ya famosa y controvertida broma ;) :cunao: quiero felicitaros por el intento y espero ver los resultados que seguro son magníficos. :xxlmas:
Una pregunta ¿Aparte de DNG, podría ser cualquiera de los formatos de las distintas marcas? Por aquello de poder usar el Capture NX. :)
Pregunta tonta por absoluto desconocimiento :o ¿Todos estos formatos no son propiedad de alguien? ¿Se pueden generar DNGs tranquilamente?
Me voy a leer el resto de hilos para enterarme mejor de todo esto que estais montando. :foto:
Saludos.

ariznaf
23/10/2008, 21:37
Los raw son propietarios en el sentido de que no se ha hecho público su formato.
Para leerlos, Coffin ha tenido que recurrir a ténicas de ingeniería inversa (cosas de hackers y gente loca de atar ;) )
Escribir un raw propietario es mucho más complicado y delicado, porque el más mínimo error dará al traste con el contenido y lo estropeará.

En el caso de DNG es un formato propiedad de Adobe, pero sus especificaciones (instrucciones sobre su estructura internat y cómo escribir y leer un raw) las ha hecho públicas, por lo tanto es posible leerlos y escribirlos con mayor facilidad.

De hecho, la aspiración de Adobe es que todas las cámaras adopten su formato para escribir los raws.
Gracias por tu apoyo, la verdad es que viene bien ver un poco de empatía por aquí :)

VALGAR
23/10/2008, 22:17
Gracias por la respuesta. :D
Ten por seguro que mucha gente estima lo que hacéis y los que no, lo apreciarán. ;) :foto:
Saludos.

ManuelLlorens
26/10/2008, 23:52
Ya estoy de nuevo instalado en casa y tengo acceso a mi PC y a todo mi código. Quería haberos puesto un ejemplo de reinterpolación, pero me temo que es imposible adaptar el código MATLAB del algoritmo para que lea la matriz de Bayer de mi compacta Canon, porque tiene la definición de la matriz bayer puesta a fuego en demasiados sitios.

La alternativa, un poco más lenta, pero definitiva al fin y al cabo es meter una función a perfectRAW para cargar un JPEG... no me quedará más remedio que hacerlo, pero me llevará algo más de tiempo. Mañana me miraré cómo "linkar" la librería de JPEGs a ver qué puedo hacer con ella.

Un saludo:

adla
27/10/2008, 14:10
Eliminar los datos que son fruto de la interpolación hecha por la cámara (este proceso es fácil, pero requiere conocer el formato de la matriz bayer de cada cámara, así que iríamos probando por ensayo y error y guardando una base de datos de cámaras).

¿facil?.. tengo una sony p12 y me gustaria que contaseis con este modelo si necesitais alguna foto decidmelo.. saludos

ManuelLlorens
27/10/2008, 22:27
Fácil es facilísimo. La clave está en conocer el formato de la matriz bayer. Es cuestión de ensayo y error porque la cámara puede haber recortado la imagen, girado, etc.

La idea es o bien un proceso automático, o bien una decisión manual. Pero en cualquier caso, si tu Sony es una cámara con matriz bayer, funcionará.

Un saludo.

Lassus
28/10/2008, 18:22
Este programa está llamado a revolucionar muchas cosas. Se me ocurren un montón de aplicaciones, como exprimir a tope los SuperCCD de las compactas Fuji o conseguir una ráfaga muy aceptable con las compactas de gama alta sin renunciar a la flexibilidad del RAW. Por ejemplo mi LX3 tira jpgs a más de 1 fps en modo continuo, en cambio el buffer para RAW, aunque mantiene los fps, se queda en sólo tres disparos. Y ya solamente el poder re-revelar con AFD... :drool2:

Cuestión de novato total: ¿con "formato de la matriz bayer" te refieres al método de interpolación que hace el procesador de la cámara? Y digo yo, ¿el resultado no se vería afectado por la reducción de ruido o la nitidez? ¿Es entonces independiente del posprocesado que sufre el jpg en cuando a modos de color, saturación, etcétera o sólo "calibraríais" cada modelo de cámara en función de un jpg lo más neutro posible?

ManuelLlorens
28/10/2008, 22:25
Este programa está llamado a revolucionar muchas cosas. Se me ocurren un montón de aplicaciones, como exprimir a tope los SuperCCD de las compactas Fuji o conseguir una ráfaga muy aceptable con las compactas de gama alta sin renunciar a la flexibilidad del RAW.
Buena idea... aunque no esperes del programa la misma calidad que obtendrías del raw. Lo de los SuperCCDs tendría que estudiarlo un poco más a fondo.


Cuestión de novato total: ¿con "formato de la matriz bayer" te refieres al método de interpolación que hace el procesador de la cámara? Y digo yo, ¿el resultado no se vería afectado por la reducción de ruido o la nitidez? ¿Es entonces independiente del posprocesado que sufre el jpg en cuando a modos de color, saturación, etcétera o sólo "calibraríais" cada modelo de cámara en función de un jpg lo más neutro posible?
Las distintas cámaras tienen matrices bayer diferentes (aunque hay unas pocas cámaras en el mercado que no tienen este tipo de matrices):

RG GR BG GB
GB BG GR RG

Primero hay que identificar el tipo de matriz de la cámara para descartar los datos que se han interpolado. Además la imagen tiene que estar sin recortar ni girar y haber sido obtenido con el mínimo procesado posible dentro de la cámara (y por supuesto sin ningún procesado fuera de ella). Por ejemplo hay que poner el contraste, saturación y enfoque al mínimo. En caso contrario el resultado no será el adecuado.

Por otra parte es imposible eliminar el procesado al 100% en las compactas, especialmente en cuanto a reducción de ruido.

Un saludo:

Lassus
07/11/2008, 02:52
Gracias, Manuel, por la respuesta. Estuve unos días fuera y al volver la pasé por alto.

El desinterpolar usando un método para cada cámara parece bastante complejo. Por ejemplo en mi compacta, la Panasonic LX3, se corrige automáticamente la distorsión de barril comiéndose píxeles en las esquinas imposibles de recuperar, y me consta que no es la única. Imagino que ese lifting no irá demasiado bien de cara a desinterpolar.

ManuelLlorens
08/11/2008, 10:51
Gracias, Manuel, por la respuesta. Estuve unos días fuera y al volver la pasé por alto.
Sí, es que este foro empieza a ser demasiado grande ;).


El desinterpolar usando un método para cada cámara parece bastante complejo. Por ejemplo en mi compacta, la Panasonic LX3, se corrige automáticamente la distorsión de barril comiéndose píxeles en las esquinas imposibles de recuperar, y me consta que no es la única. Imagino que ese lifting no irá demasiado bien de cara a desinterpolar.
El método es el mismo, lo único que hay que hace es elegir bien la matriz bayer de cada cámara. Si esa distorsión de barril no se puede desactivar, entonces el método no funcionará en las LX3. Si sí se puede será imprescindible desactivarlo. En cualquier caso con la LX3 sí puedes disparar en RAW, no te recomiendo disparar en JPEG y convertir a RAW como método estándar de trabajo.

Un saludo:

Landaree
08/11/2008, 11:27
Manuel, sé que tú y GUI y otros sabéis cien veces más que yo, así que igual meto la pata hasta el fondo... pero no puedo dejar de mostrarme escéptico hacia esto que describes. ¿Hablas de revertir el proceso de de-mosaico? ¿Es eso posible? :eek: Obviamente no me refiero a que sea técnicamente posible, en el sentido de crear una matriz pre-Bayer que, si se procesara con un de-mosaico estándar, diese como resultado el JPEG; me refiero a hacerlo de modo que el resultado tenga alguna utilidad práctica en cuanto a ventajas de calidad de imagen. Porque de lo contrario sería simplemente re-representar los datos de imagen pero de una forma distinta, en más tamaño de archivo y que además requeriría de nuevo un cálculo para pasarlas a una imagen visible.

Dices que el proceso introduciría “gradientes suaves”... ¿pero no sería esto como aplicar un ligero desenfoque gaussiano (por más que fuese uno muy “fino” y de gran precisión)? Y al hacerlo, y no importa la precisión con que se haga, ¿no se introduciría más bien una cierta pérdida de calidad, o aún en el mejor de los casos ninguna ganancia práctica en absoluto?


Ya te digo que no soy un experto, pero es que esto me suena como si comentases que te dan cuatro números no sabidos, A, B, C y D, cuya suma da 40, y me dices que has hallado una fórmula para averiguar el valor de esos cuatro números, o incluso una aproximación más o menos fiable :eek:



De todos modos, bien está el intentarlo ;)

ManuelLlorens
08/11/2008, 11:45
Es perfectamente posible hacerlo, siempre y cuando el JPEG original no se haya procesado demasiado (especialmente no se haya "deformado"). Te explico como funciona, y perdona si desciendo a un nivel demasiado básico, pero así queda la explicación para otros.

La cámara inicialmente, tal como capta la imagen el sensor, no tiene los valores RGB para cada píxel, sino que en unos píxeles tiene el R, en otros el G y en otros el B. En concreto tiene el valor verde en dos de cada cuatro píxeles, el rojo en uno de cada cuatro y el azul en uno de cada cuatro.

RG
GB

Para poder presentar una imagen completa necesitas los valores R, G y B en cada píxel, así que lo que hace la cámara es inventarse los valores que faltan mediante algún algoritmo que le permita calcularlos a partir de los valores que sí tiene. El algoritmo que utilice la cámara dependerá de la potencia del procesador interno que lleva, del consumo eléctrico que pueda permitirse y del tiempo que tiene disponible, que debe ser muy corto para que la foto aparezca en la pantalla casi inmediatamente. Eso hace que las cámaras apliquen algoritmos de interpolación más sencillos que los que hay disponibles.

Al final de este proceso tenemos lo siguiente (en claro la información inventada por la cámara):

RR GG BB
RR GG BB

Si nosotros tomamos el JPEG y descartamos los valores R, G y B que se ha inventado la cámara para darnos una imagen completa, pero manteniendo intactos los valores que sí estaban el la matriz bayer que captó el sensor, podemos volver a inventar los valores descartados usando un algoritmo más complejo, en un procesador más potente y dedicándole más tiempo.

Es decir, volvemos a pasar de ésto...

RR GG BB
RR GG BB

... a ésto

RG
GB

Como ves, la información que perdemos fue inventada por la cámara y no estaba en la imagen original, por tanto, no hemos perdido nada importante ni que no podamos hacer mejor nosotros. Nos lo reinventamos, pero con más cuidado que la cámara.

El resultado, obviamente, es una imagen con más detalle (un algoritmo mejor implica mayor extracción de detalle, es decir, más enfocada), menos artefactos de color en los bordes (pues es donde una "mala" interpolación más se nota, prueba perfectRAW con bilineal y luego con AHD y compara el resultado de cualquier borde), etc.

Lo único delicado del proceso es que al descartar valores estemos seguros de que descartamos los inventados por la cámara, y no precisamente los buenos. Pero solo hay cuatro posibles combinaciones, así que se puede probar con las cuatro y ver cuál tiene mejor pinta.

El proceso es perfectamente factible.
__________________________________________________ ____

Lo que digo de los gradientes suaves es a parte de todo lo anterior y es lo siguiente.

La cámara, además de interpolar los valores que faltan, ha convertido los datos originales de 12 bits (en algunas réflex de alta gamma, 14) a 8 bits (JPEG). Al hacerlo ha desperdiciado bits importantes que no se pueden recuperar. Si tú conviertes un TIFF de 16 bits a 8 en PS y luego vuelves a convertirlo a 16 bits, se producirá una ligera posterización en los degradados más suaves (que también se observará como huecos en el histrograma).

Cuando nosotros convirtamos los valores de 8 bits del JPEG de la cámara a 16 bits para intentar recrear los valores originales, tendremos un efecto similar. Ahora bien, como nosotros no lo vamos a hacer con todos los valores RGB de cada píxel (como ha hecho PS) sino solo con un valor R, G o B en cada uno y luego vamos a volver a interpolar los valores que faltan, la propia interpolación producirá valores intermedios que suavizarán los gradientes (pero no los bordes de la imagen), produciendo una imagen mucho más nítida que el JPEG originial, pero sin posterización apreciable en los gradientes, y con datos de 16 bits.
__________________________________________________ ____

No digo, ni diré nunca, que el proceso sea perfecto, ni que el resultado pueda ser comparable a un raw directamente obtenido del sensor de la cámara. Lo que digo es que es el procedimiento que más información puede extraer del JPEG producido por una compacta, además de que algunos ajustes como el balance de blanco siempre funcionarán mejor sobre la matriz bayer recalculada que sobre el JPEG final, pues son ajustes que deben hacerse previos a la interpolación.

Otro ajuste que se beneficiará de esta aproximación es el filtrado de ruido que podrá hacerse en raw, si bien sería idóneo que la cámara no hubiese filtrado ruido ya en el JPEG, lo que sólo algunos modelos pueden garantizar.

No sé si se habrá entendido bien toda esta explicación, cuando tenga un rato y PS instalado, intentaré acompañarla de algunos diagramas.

Un saludo:

Landaree
08/11/2008, 17:53
Ajá, creo que ya lo he entendido; no había caído en la idea, y parece ingeniosa.

Así pues, permíteme recapitular la esencia de tu idea, y de paso que me dices si lo he entendido bien, espero que te sirva como la representación gráfica que pensabas hacer (mi modesta contribución a vuestro proyecto :o):

Partimos, para un grupo de 2x2 píxeles, con el siguiente esquema de fotodiodos (píxeles) que aún no han captado luz:

http://img505.imageshack.us/img505/6224/fase0qi1.jpg



Cuando hacemos la foto, y dado que el sensor está cubierto por el filtro Bayer en el que a un fotodiodo le toca captar el color rojo, a otro el azul, y a los dos restantes el verde, tenemos lo siguiente:

http://img145.imageshack.us/img145/9717/fase1yy3.jpg



Con lo cual, lo que en principio ha captado el sensor es esto:

http://img505.imageshack.us/img505/5808/fase2vj9.jpg



Ahora bien, como la imagen final en JPEG es una imagen RGB en la que cada píxel debe tener valores para los tres componentes (rojo, verde y azul), en principio supondremos que la cámara hace lo siguiente:

http://img505.imageshack.us/img505/5989/fase3pt7.jpg

O sea, “transplantar” el valor rojo captado por el píxel 1 a los píxeles 2, 3 y 4; hacer lo mismo con el valor azul del píxel 4 (llevándolo a los píxeles 1, 2 y 3), y luego supondremos que los respectivos valores verdes captados por los píxeles 2 y 4 se llevan a los píxeles 1 y 3, promediando ambos por ejemplo.

Este proceso sería lo que se conoce como algoritmo de “demosaico”, ya que el filtro Bayer es como un mosaico de colores, y con estos “transplantes” de colores, conseguimos que todos los píxeles tengan un valor para cada uno de los tres componentes R-G-B, bien porque lo hayan captado por sí mismos, o porque se lo hayan copiado del píxel vecino.



Así pues, lo que tendremos ahora será más o menos lo siguiente:

http://img142.imageshack.us/img142/7324/fase4eg2.jpg

Que es la imagen que buscábamos (para simplificar, ignoraremos de momento todos los otros procesos necesarios para convertir un RAW de cámara de filtro Bayer), un JPEG en formato RGB normal, visible en la pantalla RGB de nuestro ordenador, editable en Photoshop, imprimible, etc.



Y bien, lo que he entendido que tú pretendes hacer sería básicamente lo siguiente: a partir del resultado anterior...

http://img505.imageshack.us/img505/8122/fase5vr3.jpg



Con lo cual nos quedaríamos con esto, que de hecho es lo mismo que teníamos en el tercer diagrama:

http://img505.imageshack.us/img505/8121/fase6im7.jpg



O sea, la imagen antes de hacer el procesado demosaico, como si todavía fuese el RAW (con las matizaciones que tú dices de todo lo que no se puede recuperar respecto a un RAW de verdad de 12 ó 14 bits, sin ajuste gamma, sin ajuste de balance de blancos, sin procesado de nitidez-contraste-saturación-reducción de ruido, etc, etc.).

Y como tenemos de nuevo esa imagen con sólo los valores “que nos habría dado el RAW”, tu programa persigue hacer básicamente lo mismo que el diagrama 4, es decir, éste...

http://img505.imageshack.us/img505/5989/fase3pt7.jpg

... pero de una forma más sofisticada, es decir, no simplemente “copiar” tal cual los valores de un píxel al de al lado.

Vamos, un poco como la diferencia entre hacer una ampliación digital mediante el algoritmo “Por aproximación” (“Nearest Neighbour”), que lo deja todo muy pixelado porque también se limita a duplicar tal cual lo que contengan los píxeles vecinos; y hacerla con un algoritmo mejor como el bilineal, bicúbico, Lanczos, splines, etc., que sale todo mucho mejor, menos pixelado y posiblemente hasta más nítido en apariencia.

Sólo que tú propones utilizar algoritmos de demosaico como los de dcraw, los mejores, como el AFD, AHD, etc., que en efecto también han demostrado dar mejores resultados como algoritmo de demosaico, que los necesariamente poco sofisticados que debe usar una cámara digital cuando hace la foto y la transforma a JPEG o TIFF.

ManuelLlorens
08/11/2008, 18:16
Pues sí, en esencia es exactamente eso. Aunque en honor a las pobres cámaras hay que decir que efectivamente, hacen algo más que copiar píxeles de un lado a otro :D:D:D... pero sí, lo has explicado cristalinamente. Gracias.

Un saludo:

Landaree
08/11/2008, 18:36
Ajá.

Pues ahora que me lo has confirmado, te comento que sigo teniendo mis dudas.

En la explicación que ambos hemos puesto, hemos dado por sentadas bastantes cosas, cierto que para simplificar la exposición de la idea... pero las hemos dado por sentadas, y quizá demasiado.

De entrada, se me ocurre que posiblemente todas las cámaras medio decentes, pese a las limitaciones impuestas por la electrónica y la velocidad de respuesta esperada, se las apañen para hacer un demosaico algo más sofisticado que simplemente duplicar valores R, G y B; pienso que es posible que utilicen por lo menos un bilineal, y sólo con eso, ya quedaría sin efecto lo de descartar de cada píxel los valores que se presupongan inventados... ya que todos ellos, en cada píxel, tendrán un poco de inventado y un poco de real. Dicho de otro modo, que de hecho no sería prudente que simplemente descartases de cada píxel esos valores, sería mejor que los pudieras utilizar de alguna forma para obtener una aproximación mejor a los valores supuestamente originales captados por la cámara. Además, esto complicaría bastante tu tarea, ya que entonces ya no sería sólo cuestión de adivinar la colocación exacta de cada casilla del mosaico Bayer (que, como bien dices, en teoría sólo podría tener unas pocas posibilidades), sino que tendrías que combinar cada una de esas posibilidades, junto con cada uno de los posibles algoritmos exactos de interpolación demosaico empleado por cada cámara; la base de datos crecería con ello considerablemente, y también tu dificultad en analizar cada nueva cámara para tratar de deducir ambas cosas.


Y luego, por supuesto, está la intervención en realidad inevitable de todos los demás procesados internos que hace la cámara al convertir el RAW interno a JPEG: que si conversión de 12/14 a 8 bits, que si la compresión JPEG (que, por poca que sea, siempre es algo), que si el ajuste de gamma, que si el de balance de blancos, que si el contraste, saturación, nitidez, reducción de ruido... sé que dices que lo ideal sería que la cámara hiciese lo menos posible de todas esas cosas... pero claro, siendo realistas, incluso la cámara con ajustes más neutros y mínimos siempre hace todo ello de forma relativamente considerable, más que nada porque de lo contrario el JPEG resultante sería tan soso, tan poco nítido y tan ruidoso, que los compradores pensarían que es horrible; y pienso que sólo con ese procesado que haga la cámara, por poco que parezca a la vista, será suficiente para neutralizar cualquier posible ventaja de tu procedimiento. Además, sabes que particularmente entre las compactas, prácticamente no hay fabricante que parezca creer siquiera en la idea de “procesar lo mínimo”... entonces, si tu programa sólo va a funcionar aceptablemente bien por ejemplo en cámaras réflex, y aún en éstas sólo si el usuario ha escogido ajustes absolutamente neutrales... ¿para qué? Por no decir que, si un usuario tiene una réflex y hace así las fotos con ajustes tan neutros o nulos sólo para que las fotos puedan ser tratadas por tu programa... en el fondo más le valdría disparar directamente en RAW, y obtener así todas las ventajas de calidad.


No obstante, Manuel, con todo esto estoy ya “patinando” bastante, pues está justo en el límite a partir del cual me empiezo a perder con tecnicismos que no entiendo... así que es posible que haya razonado mal muchas cosas por faltarme conocimientos y comprensión del tema, y tú, que sí lo entiendes bien, sepas o al menos sospeches que sí es viable. Si así fuera, por supuesto yo encantado.

Es más, de ser viable en la práctica, aunque sólo fuese proporcionando un pequeño porcentaje de las ventajas de un RAW real, se me ocurre lo siguiente, Manuel: ya que el procedimiento permitiría “reconstruir parcialmente” el RAW y con ello obtener alguna pequeña ventaja, y dado que una de las capacidades del RAW es justamente el poder realizar ciertos procesados que dan mejor resultado que si los aplicas a la imagen convertida a JPEG o TIFF, entre los cuales se halla un mejor procesado de aumento de nitidez (ejemplos: Adobe Camera Raw, DxO Optics Pro) y de reducción de ruido (ejemplo: Bibble Pro, que tiene integrado Noise Ninja), se me ocurre que podrías utilizar el código final de “reconstrucción RAW” como base para una serie de programas (o, idealmente, filtros para Photoshop) que realizasen esos ajustes: aumento de nitidez, reducción de ruido, eliminación de moiré... quien sabe, quizá incluso recuperación de altas luces.

ManuelLlorens
08/11/2008, 19:47
De entrada, se me ocurre que posiblemente todas las cámaras medio decentes, pese a las limitaciones impuestas por la electrónica y la velocidad de respuesta esperada, se las apañen para hacer un demosaico algo más sofisticado que simplemente duplicar valores R, G y B; pienso que es posible que utilicen por lo menos un bilineal, y sólo con eso, ya quedaría sin efecto lo de descartar de cada píxel los valores que se presupongan inventados... ya que todos ellos, en cada píxel, tendrán un poco de inventado y un poco de real.
Por supuesto, hasta la cámara más mediocre aplica un algoritmo mejor que un bilineal y además sus procesadores están muy optimizados para esa labor, por lo que lo hacen rapidísimo. Pero todos esos algoritmos de interpolación, igual que los de los programas reveladores, NO tocan los píxeles originales, solo inventan los huecos. En caso contrario sería imposible obtener suficiente nitidez. Es una especie de imposición a cualquier algoritmo de interpolación que se precie (un filtrado bilineal tampoco toca los píxeles originales).


Y luego, por supuesto, está la intervención en realidad inevitable de todos los demás procesados internos que hace la cámara al convertir el RAW interno a JPEG: que si conversión de 12/14 a 8 bits, que si la compresión JPEG (que, por poca que sea, siempre es algo), que si el ajuste de gamma, que si el de balance de blancos, que si el contraste, saturación, nitidez, reducción de ruido... sé que dices que lo ideal sería que la cámara hiciese lo menos posible de todas esas cosas... pero claro, siendo realistas, incluso la cámara con ajustes más neutros y mínimos siempre hace todo ello de forma relativamente considerable
No se trata de poner los ajustes en un modo neutral, sino al mínimo. Mi Canon Powershot A-540, cuando le pongo los ajustes al mínimo, lo único que hace es filtrar algo de ruido (y bastante poco de hecho) en las ISOs altas. Pero el JPEG queda apagado, desenfocado, descontrastado... es decir ¡perfecto! :D Todos los demás ajustes son invertibles sin apenas pérdida de calidad (gamma, espacio de color, etc.).


No obstante, Manuel, con todo esto estoy ya “patinando” bastante, pues está justo en el límite a partir del cual me empiezo a perder con tecnicismos que no entiendo... así que es posible que haya razonado mal muchas cosas por faltarme conocimientos y comprensión del tema, y tú, que sí lo entiendes bien, sepas o al menos sospeches que sí es viable. Si así fuera, por supuesto yo encantado.
No te preocupes, en cuanto tenga un rato tranquilo haré una demostración del método par que veas la diferencia. Ya he hecho pruebas antes de lanzarme a sugerir la idea y desde luego funciona.


Es más, de ser viable en la práctica, aunque sólo fuese proporcionando un pequeño porcentaje de las ventajas de un RAW real, se me ocurre lo siguiente, Manuel: ya que el procedimiento permitiría “reconstruir parcialmente” el RAW y con ello obtener alguna pequeña ventaja, y dado que una de las capacidades del RAW es justamente el poder realizar ciertos procesados que dan mejor resultado que si los aplicas a la imagen convertida a JPEG o TIFF, entre los cuales se halla un mejor procesado de aumento de nitidez (ejemplos: Adobe Camera Raw, DxO Optics Pro) y de reducción de ruido (ejemplo: Bibble Pro, que tiene integrado Noise Ninja), se me ocurre que podrías utilizar el código final de “reconstrucción RAW” como base para una serie de programas (o, idealmente, filtros para Photoshop) que realizasen esos ajustes: aumento de nitidez, reducción de ruido, eliminación de moiré... quien sabe, quizá incluso recuperación de altas luces.
Claro, la idea es generar un .DNG a partir del .jpeg y dejar que el usuario haga con él lo que quiera, como si fuera un verdadero RAW.

Un saludo:

Landaree
08/11/2008, 19:54
Pues sí que parece prometedora la idea, sí (w00t)

Ya no tengo más objeciones, desde luego. Confío en tus conocimientos, y espero con interés tus muestras :punk:

ManuelLlorens
09/11/2008, 01:19
:D:D:D:D Espero no defraudar tus espectativas :o :P

Un saludo:

ummo
06/06/2010, 08:50
Vale, ya he encontrado la respuesta en el foro. Siento haberme precipitado, pero es que me interesaba tanto que pregunté antes de buscar.
Un saludo.

Fer77
01/02/2011, 23:12
Un hilo muy útil. Se agradece!

cgleroy
05/02/2011, 19:47
Joer, se me había pasado este hilo... parece prometedor, a ver si nos contais como va el tema...

puxa
06/02/2011, 10:17
¿Alguien se ha fijado que el ultimo post es del 2008?
Me temo que la cosa no cuajó al final.

PD: recuerdo que hay un programa que se deja dentro de la pastilla de memoria de algunas canon que directamente grababa el raw, aunque el modelo no te dejara. ¿será esto?