UIImage al espacio de color YUV 422

He estado tratando de resolver esto durante un tiempo sin éxito, me preguntaba si alguien podría ayudarme o señalarme en la dirección correcta.

Necesito convertir un UIImage o un JPG almacenado para obtener sus datos YUV422, de modo que pueda aplicar algunas mejoras de imagen y, con el resultado, convertirlo de nuevo a JPG o UIImage.

Estoy un poco atascado en este momento, en este punto solo estoy tratando de llevarlo a YUV422.

Cualquier ayuda sería muy apreciada.

Gracias de antemano.

preguntado el 09 de enero de 11 a las 00:01

1 Respuestas

Primero debe leer los marcadores JPEG para determinar los metadatos. Los metadatos como el tamaño, la frecuencia de muestreo (generalmente 4: 2: 2 pero no siempre), las tablas de cuantificación y las tablas de huffman.

A continuación, debe des-codificar huffman el segmento de datos codificados en entropía. Esto le dará el coeficiente de CC seguido de cualquier coeficiente de CA para el canal de color de cada canal en forma de zig zag. a continuación, debe des zigzag las entradas y multiplicarlas por la tabla de cuantificación correspondiente. Finalmente, debe realizar la Transformación de coseno discreto inverso en el macrobloque decodificado.

Esto le dará 3 canales en YCrCb (YUV es para analógico) a la frecuencia de muestreo a la que se codificó el JPEG. Si necesita que sea 4: 2: 2, tendrá que volver a muestrear.

Es de esperar que tenga una biblioteca para realizar la decodificación JPEG real, ya que escribir una que sea compatible no es una tarea trivial.

Aquí hay una muy básica y defectuoso Decodificador JPEG Empecé a escribir para darte más detalles técnicos. Decodificador Ruby JPEG No implementa con éxito el IDCT

Para una correcta implementación en C Sugiero IJG

Respondido el 09 de enero de 11 a las 03:01

Las imágenes JPEG son casi siempre 4: 2: 0, lo que significa que la resolución cromática tanto horizontal como vertical se reduce a la mitad. 4: 2: 2 significa que solo la resolución horizontal se reduce a la mitad. - grahamparks

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.