ES2769593T3 - Procedimiento y aparato para crear una función EOTF para un mapeo de código universal para una imagen HDR - Google Patents

Procedimiento y aparato para crear una función EOTF para un mapeo de código universal para una imagen HDR Download PDF

Info

Publication number
ES2769593T3
ES2769593T3 ES14736345T ES14736345T ES2769593T3 ES 2769593 T3 ES2769593 T3 ES 2769593T3 ES 14736345 T ES14736345 T ES 14736345T ES 14736345 T ES14736345 T ES 14736345T ES 2769593 T3 ES2769593 T3 ES 2769593T3
Authority
ES
Spain
Prior art keywords
luminescence
function
code
value
partial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES14736345T
Other languages
English (en)
Inventor
Der Vleuten Renatus Josephus Van
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips NV filed Critical Koninklijke Philips NV
Application granted granted Critical
Publication of ES2769593T3 publication Critical patent/ES2769593T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/741Circuitry for compensating brightness variation in the scene by increasing the dynamic range of the image compared to the dynamic range of the electronic image sensors
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/10Intensity circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/82Camera processing pipelines; Components thereof for controlling camera response irrespective of the scene brightness, e.g. gamma correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/20Circuitry for controlling amplitude response
    • H04N5/202Gamma control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0271Adjustment of the gradation levels within the range of the gradation scale, e.g. by redistribution or clipping
    • G09G2320/0276Adjustment of the gradation levels within the range of the gradation scale, e.g. by redistribution or clipping for the purpose of adaptation to the characteristics of a display device, i.e. gamma correction
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • G09G2320/0673Adjustment of display parameters for control of gamma adjustment, e.g. selecting another gamma curve
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0428Gradation resolution change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/04Exchange of auxiliary data, i.e. other than image data, between monitor and graphics controller
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/12Use of DVI or HDMI protocol in interfaces along the display data pipeline

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Picture Signal Circuits (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Studio Devices (AREA)

Abstract

Un procedimiento para codificar una imagen que comprende los pasos de: - recibir una imagen de entrada de alto rango dinámico que comprende píxeles que tienen luminancias lineales; - construir una función de asignación de código (107) para mapear una luminancia de un píxel a un valor de código de luminiscencia; - mapear las luminancias de píxel con los valores de código de luminiscencia de píxel que codifican estas luminancias utilizando la función de asignación de código generando los valores de código de luminiscencia de píxel correspondientes a las luminancias de píxeles en la imagen de alto rango dinámico de entrada aplicando la función de asignación de código (107), y almacenar para los píxeles los valores del código de luminiscencia en una señal de imagen para transmisión o almacenamiento; en el que la función de asignación de código (107) que mapea una luminancia lineal de un píxel a un valor de código de luminiscencia se construye a partir de al menos dos funciones parciales (111, 113): - una primera función parcial (111) de las al menos dos funciones parciales (111, 113), la primera función parcial (111) define un mapeo invertible no lineal de un rango completo de luminancia de un valor de entrada de luminancia lineal a un rango de luminiscencia completa de un primer valor de código de luminiscencia de salida, y - una segunda función parcial (113) de las al menos dos funciones parciales (111, 113), la segunda función parcial mapea un primer valor de código de luminiscencia de salida de la primera función parcial (111) de las al menos dos funciones parciales (111, 113) a un segundo valor de código de luminiscencia de salida, y la segunda función parcial (113) que define un mapeo invertible no lineal de un rango de luminiscencia completo de un valor de código de luminiscencia de entrada que es el primer valor de código de luminiscencia de salida a un rango de luminiscencia completo del segundo valor de salida de código de luminiscencia, en el que la función de asignación de código define un mapeo no lineal de luminancias lineales a valores de código de luminiscencia en la que el procedimiento comprende almacenar en la señal de imagen para datos de control de transmisión o almacenamiento que definen la primera función parcial y la segunda función parcial, y en la que el procedimiento utiliza como una de las al menos dos funciones parciales (111, 113): - una curva gamma no lineal de acuerdo con la especificación sRGB; - una curva gamma no lineal de acuerdo con la especificación ITU-R BT.709-5; - una función de cuantificador perceptual Dolby; o - una función definida como: donde Y es un valor de luminiscencia, V es un valor de entrada de luminancia lineal en el rango de [0;1], L es una constante que refleja un punto blanco, y m, n, c1, c2 y c3 son parámetros de diseño; o - una función definida como: donde x es el valor de salida en el rango de [0;1], v es el valor de entrada en el rango de [0;1], y los valores a, b, c y d son parámetros de diseño.

Description

DESCRIPCIÓN
Procedimiento y aparato para crear una función EOTF para un mapeo de código universal para una imagen HDR Campo de la invención
La invención se refiere al mapeo entre valores de luminancia lineal y códigos de luminiscencia, y en particular, pero no exclusivamente, a la codificación de una o más imágenes (es decir, video) de alto rango dinámico (HDR), que se ajustan a los marcos actuales de la tecnología existente, como por ejemplo almacenamiento en disco blu-ray o conexiones de cable HDMI.
Antecedentes de la invención
Convencionalmente, el rango dinámico de las imágenes reproducidas ha tendido a reducirse sustancialmente en relación con la visión normal. De hecho, los niveles de luminancia encontrados en el mundo real abarcan un rango dinámico de hasta 14 órdenes de magnitud, que varía desde una noche sin luna hasta mirar directamente al sol. El rango dinámico de luminancia instantánea y la respuesta del sistema visual humano correspondiente pueden caer entre 10.000:1 y 100.000:1 en días soleados o en la noche (reflejos brillantes versus regiones de sombras oscuras). Tradicionalmente, el rango dinámico de las pantallas se ha limitado a aproximadamente 2-3 órdenes de magnitud, y también los sensores tenían un rango limitado, por ejemplo < 10.000:1 dependiendo de la aceptabilidad del ruido. En consecuencia, tradicionalmente ha sido posible almacenar y transmitir imágenes en formatos codificados con gamma de 8 bits sin introducir artefactos perceptualmente notables en los dispositivos de renderizado tradicionales. Sin embargo, en un esfuerzo por grabar imágenes más precisas y vivas, se han desarrollado nuevos sensores de imagen de alto rango dinámico (HDR) que son capaces de grabar rangos dinámicos de más de 6 órdenes de magnitud. Además, la mayoría de los efectos especiales, la mejora de gráficos por ordenador y otros trabajos de posproducción ya se realizan de manera rutinaria a profundidades de bits más altas y con rangos dinámicos más altos.
Además, el contraste y la luminancia máxima de los sistemas de pantalla del estado de la técnica continúa aumentando. Recientemente, se han presentado nuevos prototipos de pantallas con una luminancia máxima de hasta 3.000 cd/m2 y relaciones de contraste de 5-6 órdenes de magnitud (pantalla nativa, el entorno de visualización también afectará la relación de contraste finalmente renderizada, que puede ser incluso inferior a 50:1 para la visualización de televisión durante el día). Se espera que las pantallas futuras puedan proporcionar rangos dinámicos aún más altos y específicamente luminancias máximas y relaciones de contraste más altas.
Las imágenes HDR pueden generarse, por ejemplo, combinando una pluralidad de imágenes de bajo rango dinámico (LDR). Por ejemplo, pueden capturarse tres imágenes LDR con diferentes rangos y las tres imágenes LDR pueden combinarse para generar una sola imagen con un rango dinámico igual a la combinación de los rangos dinámicos de las imágenes LDR individuales.
SEGALL A Y OTROS: "Tone mapping SEI", 19. REUNIÓN JVT; 31-03-2006 - 07-04-2006; GINEBRA, CH; (JOINT VIDEOTEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16)" número JVT-S087, 1 de abril de 2006 (2006-04­ 01), XP030006466, ISSN: 0000-0409 divulga un enfoque en el que se usa un mensaje SEI para sugerir una curva de mapeo de tonos.
FRANCESCO BANTERLE Y OTROS: "High Dynamic Range Imaging and Low Dynamic Range Expansion for Generating HDR Content", COMPUTER GRAPHICS FORUM, vol. 28, número 8, 1 de diciembre de 2009 (2009-12­ 01), páginas 2343-2367, XP055031838, ISSN: 0167-7055, DOI: 10.1111/.1467-8659.2009.01541.x proporciona una visión general de los aspectos de imágenes HDR.
YASIR SALIH Y OTROS: "Tone mapping of HDR images: A review", INTELLIGENT AND ADVANCED SYSTEMS (ICIAS), 2012 4TH INTERNATIONAL CONFERENCE ON, IEEE, 12 de junio de 2012 (2012-06-12), páginas 368­ 373, XP032238666, DOI: 10.1109/1CIAS.2012.6306220; ISBN: 978-1-4577-1968-4 proporciona una descripción general de algunos algoritmos de mapeo de tonos para imágenes HDR.
LI Y OTROS: "Compressing and companding high dynamic range images with subband architectures", ACM TRANSACTIONS ON GRAPHICS (TOG), ACM, EE.UU., Vol. 24, número 3, 1 de julio de 2005 (2005-07-01), páginas 836-844, XP003010943, ISSN: 0730-0301, DOI: 10.1145/ 1073204.1073271 divulga el uso de multiescalas para convertir una imagen HDR en una imagen LDR.
ZICONG MAI Y OTROS: "Optimizing a Tone Curve for Backward-Compatible High Dynamic Range Image and Video Compression", IEEE TRANSACTIONS ON IMAGE PROCESSING, IEEE SERVICE CENTER, PISCATAWAY, NJ, EE.UU., Vol. 20, número 6, 1 de junio de 2011 (2011-06-01), páginas 1558-1571, XP011411814, ISSN: 1057-7149, DOI: 10.1109/ TIP.2010.2095866 divulga una curva de tonos para una imagen HDR.
TAKAO JINNO Y OTROS: "High Contrast HDR Video Tone Mapping Based on Gamma Curves", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS,COMMUNICATIONS AND COMPUTER SCIENCES, ENGINEERING SCIENCES SOCIETY, TOKYO, JP, vol. E94A, número 2, 1 de febrero de 2011 (2011-02-01), páginas 525-532, XP001560934, ISSN: 0916-8508, DOI: 10.1587/TRANSFUN.E94.A.525 divulga una curva de mapeo de tonos basada en una curva gamma.
Para introducir con éxito las imágenes HDR y aprovechar plenamente la promesa de HDR, es importante que se desarrollen sistemas y enfoques que puedan manejar el rango dinámico aumentado. Además, es conveniente que se introduzcan funciones que permitan reutilizar varios elementos y funciones del procesamiento de imágenes LDR con HDR. Por ejemplo, sería conveniente que algunas de las interfaces, medios de comunicación o medios de distribución definidos para LDR puedan reutilizarse para imágenes HDR.
Una característica importante asociada con las imágenes HDR es cómo codificar eficientemente los datos de imágenes HDR.
Recientemente se han propuesto varias tecnologías de codificación HDR, como por ejemplo el procedimiento de doble capa de Dolby como es divulgado en WO2005/1040035.
Para, por ejemplo, procesar eficientemente imágenes HDR, en muchos escenarios es importante que el rango dinámico más grande de HDR típicamente representado por un número relativamente grande de bits se convierta en una representación usando un número de bits sustancialmente reducido.
Por ejemplo, en algunos escenarios, puede ser ventajoso ver imágenes HDR en una pantalla que tiene una interfaz de entrada desarrollada para LDR. Por lo tanto, puede ser conveniente generar valores que puedan tratarse como valores LDR, por ejemplo, mediante la interfaz de pantalla. En otros escenarios, puede ser conveniente codificar los valores HDR con velocidades de bits más bajas y con cierta compatibilidad con LDR.
Con el fin de representar imágenes LDR en un formato adecuado, a menudo se utiliza una función de asignación de código que mapea desde valores de luminancia lineal HDR a códigos de luminiscencia cuantificados adecuados. Los valores de luminancia lineal HDR a menudo se representan como, por ejemplo, valores de coma flotante con un número relativamente alto de bits por valor (por ejemplo, 16 bits). En contraste, los códigos de luminiscencia cuantificados típicamente representan valores de luminiscencia en un número relativamente bajo de bits (por ejemplo, 8 bits), y a menudo como valores enteros.
La diferencia entre LDR y HDR no es solo el tamaño del rango dinámico, sino que la distribución relativa de intensidades en la mayoría de las escenas también es sustancialmente diferente para las representaciones LDR y HDR.
De hecho, las imágenes/video HDR generalmente tienen una distribución de intensidad diferente que las imágenes/video convencionales (LDR). Especialmente la relación de luminancia máxima a promedio de los datos de imagen de alto rango dinámico es mucho mayor. Por lo tanto, las curvas de asignación de código aplicadas actualmente o las funciones de transferencia electroóptica (EOTF) tienden a ser subóptimas para los datos HDR. Por lo tanto, si se utiliza un mapeo LDR convencional de valores de luminancia HDR a valores de luminiscencia codificados, normalmente se produce una degradación de imagen significativa. Por ejemplo, la mayor parte del contenido de la imagen solo puede representarse con unos pocos valores de código, ya que una gran cantidad de códigos están reservados para el rango de brillo aumentado que, sin embargo, generalmente solo se usa para unos pocos objetos de imagen muy brillantes.
Como ejemplo de un escenario práctico, la gradación del color (véase referencia [1]) o la corrección del color es una parte integral de la producción de películas o fotografías comerciales. En particular, forma parte de la etapa de postproducción (referencia [2]). El artista de gradación de color, o colorista, opera en un conjunto de gradación de color, que proporciona herramientas de gradación/corrección de color, así como una vista previa en tiempo real de los efectos de las operaciones de la herramienta de gradación de color en la imagen o video que se está gradando/corrigiendo.
Con la introducción de cámaras y pantallas HDR para capturar y mostrar imágenes y videos HDR, el conjunto de gradación de color también debe ser adecuado para gradar este contenido de alto rango dinámico. Para facilitar la introducción de HDR, es beneficioso habilitar la gradación/corrección de color con cambios mínimos en las herramientas existentes.
Vídeo de rango dinámico estándar actual, destinado a visualizarse en un monitor de referencia de, por ejemplo, 100 cd/m2 de brillo máximo, generalmente se codifica en los dominios de luminiscencia/luminancia estándar actuales, que se especifican utilizando sus curvas logarítmicas o EOTF (funciones de transferencia electroópticas). Ejemplos de esto son las curvas utilizadas para sRGB (referencia [4]) o la recomendación ITU Rec. 709 (referencia [5]) datos logarítmicos. Los datos de video se envían en este dominio logarítmico desde la herramienta de gradación de color (por ejemplo, software en un ordenador) a través de una interfaz de hardware (típicamente HD-SDI) a la pantalla de vista previa. La profundidad de bits de la interfaz de hardware suele estar limitada, por ejemplo, a 8 o 10 bits.
Las imágenes/video HDR generalmente tienen una distribución de brillo diferente (por ejemplo, cuando se define como luminancia renderizada en la pantalla) que las imágenes de rango dinámico estándar actuales. Por ejemplo, mientras que la distribución actual del contenido de video suele alcanzar máximos de alrededor del 20% del brillo máximo (lo que significa que los códigos de luminiscencia se distribuyen muy bien alrededor de la mitad de, por ejemplo, 255 valores), el contenido de HDR a menudo suele alcanzar un porcentaje mucho más bajo, por ejemplo, 1%, de brillo máximo (datos de al menos las regiones más oscuras de las imágenes HDR distribuidas alrededor del código 1/100° de código máximo). Por lo tanto, la mayor parte del contenido HDR relevante estará contenido en solo algunos de los niveles de video de 8 bits o 10 bits cuando se codifica utilizando las curvas logarítmicas estándar actuales. Esto conducirá a artefactos de cuantificación severos e inaceptables en la imagen de vista previa, evitando así que el colorista grade/corrija las imágenes HDR.
En consecuencia, si se utilizan funciones de asignación de códigos convencionales para imágenes HDR para generar códigos adecuados para pantallas existentes con dichos formatos de entrada de 8 o 10 bits, se obtendrá una calidad sustancialmente reducida de la imagen mostrada, por ejemplo, con la mayoría de las intensidades presentes en la imagen que se distribuye en solo unos pocos niveles de entrada.
La función de asignación de código que mapea las luminancias lineales de la luz en la forma en que se deben ver en la renderización de la pantalla a códigos técnicos reales, o viceversa, se ha basado en gran medida en modelos LDR (como gamma 2,2), pero fueron óptimos solo para pantallas LDR de brillo máximo de alrededor de 100 nit o cd/m2 (en adelante, se utilizarán ambos términos nit y cd/m2). Si uno codifica de manera grosera el video HDR para su transmisión a través de un cable de conexión a una pantalla HDR (por ejemplo, un brillo máximo de 5.000 nit), se corre el riesgo de ver artefactos, como bandas en las partes más oscuras del video (por ejemplo, bandas en un cielo azul oscuro, especialmente para desvanecimientos).
En consecuencia, para, por ejemplo, habilitar la gradación de color de las imágenes HDR utilizando las herramientas e interfaces de gradación de color actuales, se debe usar una curva de asignación de código diferente para codificar los datos de video, de modo que se asigne un número suficiente de niveles de cuantificación a los datos de video más importantes.
Sin embargo, encontrar una función de asignación de código adecuada no solo es crítico sino también difícil. De hecho, un desafío al determinar las funciones de asignación de código es cómo mapear mejor entre los valores de luminancia de entrada y los códigos de luminiscencia. De hecho, este es un problema crítico ya que el mapeo seleccionado tiene un fuerte impacto en la calidad resultante (por ejemplo, debido a un error de cuantificación). Además, el impacto en la calidad de la imagen puede depender de las características y propiedades de las imágenes que se codifican/decodifican, así como del equipo utilizado para renderizar las imágenes.
Por supuesto, el enfoque más simple sería simplemente usar una cuantificación uniforme. Sin embargo, este enfoque tiende a dar como resultado un rendimiento subóptimo en muchos escenarios. En consecuencia, se han desarrollado funciones de asignación de código en las que se ha aplicado una cuantificación no uniforme. Esto puede realizarse específicamente aplicando una función no lineal (función de mapeo de código de luminiscencia/mapeo de tonos) a los valores de luminancia de entrada seguidos de una cuantificación lineal. Sin embargo, como se mencionó, se ha encontrado que las funciones definidas en muchos escenarios proporcionan un resultado subóptimo. Por ejemplo, la aplicación de una función de asignación de código a las imágenes HDR para, por ejemplo, permitir que estos sean procesados por circuitos LDR con un número relativamente bajo de bits por valor (típicamente 8 bits) tiende a dar como resultado una conversión subóptima de la imagen HDR y específicamente en los valores de la imagen que se concentran alrededor de unos pocos niveles/códigos de cuantificación.
Aunque puede ser posible desarrollar y definir funciones explícitas que estén específicamente optimizadas para, por ejemplo, imágenes HDR, esto puede no ser práctico en muchos escenarios. De hecho, este enfoque requiere el desarrollo de funciones individuales y especializadas para cada escenario. Además, normalmente requiere una gran cantidad de funciones posibles para su selección a fin de compensar las diferencias en las imágenes y/o equipos. Esto complica aún más el funcionamiento e introduce requisitos de recursos adicionales.
Por ejemplo, el uso de funciones dedicadas no solo requiere que el codificador comunique qué funciones específicas se utilizan, sino que además el codificador y el decodificador necesitan almacenar representaciones locales de todas las funciones posibles. Esto aumentará sustancialmente los requisitos de almacenamiento de memoria. Otra opción sería que el codificador codifique datos que definan completamente la función de asignación de código utilizada, pero este enfoque aumentará sustancialmente la velocidad de datos.
Además, el uso de funciones de asignación de código HDR dedicadas y explícitas requerirá en muchos escenarios un trabajo sustancial en la estandarización y especificación de funciones adecuadas. Además, la compatibilidad con versiones anteriores será un problema ya que los equipos existentes no admitirán nuevas funciones. Por ejemplo, los circuitos existentes no podrán admitir nuevas funciones definidas específicamente para admitir imágenes HDR.
D1 (Segall y otros: Tone Mapping SEI; 19a Reunión JVT MPEG/ITU: Ginebra, Suiza, 1-10 de abril de 2006) solo se trata de agregar funciones de mapeo de tonos (sugeridas) al video de mayor profundidad de bits, que está codificado con Rec. 709 CAF, para obtener una imagen LDR de buena apariencia para la pantalla.
D2 (Banterle y otros: "High Dynamic Range Imaging and Low Dynamic Range Expansion for Generating HDR Content"; foro COMPUTER GRAPHICS vol. 28 (2009), número 8 páginas 2343-2367) divulga una visión general de varias técnicas relacionadas con el procesamiento de imágenes HDR, en particular para expandir imágenes LDR a imágenes HDR correspondientes, y más en particular con operadores de mapeo de tonos inversos que pueden ser inversos de los operadores utilizados en el lado de codificación de imágenes (llamado compresiónexpansión en D2). En particular, describe un procedimiento de la familia de códecs JPEG para comprimir imágenes HDR mediante mapeo de tonos y mapeo de tonos inverso, para lo cual la división de las luminancias de la imagen HDR original por las luminancias mapeadas por tonos se codifica como una imagen de iluminación reducida para la reconstrucción multiplicativa píxel por píxel en el lado de decodificación (Figura 10). En segundo lugar, el documento enseña el procedimiento HDR-JPEG2000, en el que puede usarse la compresión de imagen LDR JPEG 2000 clásica si la imagen HDR se degrada a LDR mediante una función logarítmica fija. Finalmente, la Figura 12 describe un procedimiento en el cual la función de mapeo de luminancia que cambia el rango dinámico necesario se co-comunica como una función con potencialmente cualquier forma monótona, pero una función única y no una función compuesta de funciones de asignación de código parcial contempladas técnicamente como en nuestra invención reivindicada. El procedimiento de la Figura 12 también necesita comunicar una segunda corriente residual de datos de imagen.
D3 (Salih y otros. "Tone Mapping of HDR images: A Review"; Conferencia IEEE Intelligent and advanced systems 2012, páginas 368-373) simplemente analiza varios enfoques para el mapeo de tonos para comprimir imágenes HDR en imágenes LDR. En particular, en la sección 111.B. 1, se divulga un mapeo de tonos logarítmico (específicamente la ecuación 3). Esto es solo para poder renderizar una imagen LDR correspondiente a la pantalla HDR en una pantalla LDR, y no se enseña nada sobre la codificación de imagen HDR, ni construir las funciones de asignación de código para ello de una manera muy diferente.
D4 (Yuanzhen Li y otros: « Compressing and Companding HDR images with subband architectures"; ACM trans. On Graphics, vol. 24, número 3, julio de 2005, páginas 836-844) aunque en general se relaciona con una forma de codificación de imagen HDR mediante el uso de una imagen LDR correspondiente comunicada de forma reexpandible, lo hace de manera complicada al hacer una descomposición de subbanda (que puede compararse aproximadamente con una representación de Fourrier de la imagen). Cualquier procedimiento que funcione en transformaciones complejas de la imagen de luminancias de píxeles, no funciona de una manera directa basada en la transformación global como nuestro enfoque reivindicado (es decir, trabajando entre rangos completos de luminancia de píxeles de imagen o luminiscencias correspondientes), y mucho menos usando definiciones de función de asignación de código parcial secuencial.
D5 (Zicong Mai y otros: Optimizing a tone curve for backwards-compatible HDR image and video compression; IEE Tr. On image Processing, vol. 20, número 6, 1 de junio de 2011, páginas 1558-1571) enseña que, basándose en el análisis estadístico de la imagen HDR a codificar, puede encontrarse una función de mapeo de tonos de forma variable como la multilineal de la Figura 3. D5 divulga como antecedentes que los mensajes SEI definidos en D1 podrían usarse para señalar al operador de mapeo de tonos. D1 define una función sigmoidea.
D6 (Jinno y otros: High Contrast HDR video tone mapping based on gamma curves; IEICE Tr. On fundamentals of electronics, communications and computer sciences, engineering sciences society, Tokio, vol E94A, número 2, febrero de 2011, páginas 525-532) se refiere a un procedimiento de mapeo de tonos para mejorar una imagen que como imagen de entrada ya puede tener un contraste reducido, por ejemplo, típicamente en el subrango de las luminiscencias más brillantes. Como muestra la Figura 4d, puede diseñarse una función de mapeo de tonos con una pendiente alta para las luminiscencias de entrada más altas, lo que devuelve algo de contraste para que se visualice esa parte de la imagen LDR. Pero no se enseña nada sobre si esto podría usarse en un codificador o cómo debería funcionar.
Por consiguiente, sería ventajoso un enfoque mejorado para proporcionar y/o generar funciones de asignación de código.
Sumario de la invención
La invención se define mediante las reivindicaciones adjuntas.
La invención puede permitir, por ejemplo, facilitar o mejorar la comunicación, el almacenamiento, el procesamiento o la manipulación de imágenes en muchos escenarios.
El enfoque puede permitir en particular facilitar o mejorar, por ejemplo, la comunicación, el almacenamiento, el procesamiento o la manipulación de imágenes HDR en muchos escenarios, y en particular puede permitir que las imágenes HDR utilicen la funcionalidad existente diseñada para imágenes LDR. Por ejemplo, la función de asignación de código puede permitir una representación de imagen HDR mejorada a través de un enlace o una funcionalidad restringida a un número reducido de bits.
Se ha encontrado que el uso de funciones parciales como se define proporciona una representación de imagen mejorada y/o facilita el funcionamiento en muchas realizaciones. En particular, en muchas realizaciones puede permitirse que las funciones de mapeo de tonos existentes se reutilicen para nuevas aplicaciones y escenarios. En particular, en muchas realizaciones puede permitirse que las funciones existentes, por ejemplo, definidas o determinadas para el procesamiento y la representación de imágenes LDR, se reutilicen para mapear luminancias lineales HDR a representaciones de luminiscencia proporcionando una representación de la imagen HDR con un número menor de bits por píxel. Además, mediante el uso de algunas funciones parciales en combinación, pueden admitirse una gran variedad de funciones de asignación de código mientras solo se requiere, por ejemplo, el almacenamiento o la comunicación de las pocas funciones parciales.
Un valor o código de luminiscencia puede ser cualquier función no lineal de un valor de luminancia (incoloro). Por lo tanto, el valor de luminiscencia típicamente proporciona una representación no lineal monótona de la luminancia correspondiente, pero la función que relaciona el valor de luminiscencia con la luminancia puede ser cualquier función adecuada y específicamente no lineal.
Para el valor de luminancia lineal, existe una relación lineal directa entre el valor de luminancia y la luz radiada deseada, es decir, una relación lineal directa entre el valor de luminancia lineal y una radiación de luz correspondiente desde el píxel.
En algunas realizaciones, la función de asignación de código puede ser parte de un codificador. Los valores de luminancia de píxeles pueden ingresarse a la función de asignación de código generando de esta manera valores de luminiscencia cuantificados. Estos valores pueden, por ejemplo, comunicarse, procesarse o codificarse.
Las funciones parciales pueden aplicarse secuencialmente. La aplicación de la primera función parcial puede preceder a la segunda función parcial, y específicamente el primer valor de salida de luminiscencia puede ser alimentado en algunas realizaciones a la segunda función parcial, es decir, el valor de entrada de luminiscencia puede ser el primer valor de salida de luminiscencia.
La función de asignación de código puede incluir una cuantificación del segundo valor de salida de luminiscencia para generar los valores de código de luminiscencia. Los códigos de luminiscencia pueden generarse a partir del segundo valor de salida de luminiscencia en respuesta a una cuantificación que típicamente es una cuantificación lineal. La cuantificación puede proporcionar una reducción del número de bits que representan cada valor de luminiscencia de píxeles, y puede incluir una conversión de representación, por ejemplo, de un valor de coma flotante a un valor entero.
Un rango máximo para un valor incluye todos los valores que el valor puede tomar. El rango de luminancia máximo de los valores de entrada de luminancia lineal de píxeles incluye todos los valores posibles del valor de entrada de luminancia lineal. El rango máximo de luminiscencia de un primer valor de salida de luminiscencia incluye todos los valores posibles del primer valor de salida de luminiscencia. El rango máximo de luminiscencia del valor de entrada de luminiscencia incluye todos los valores posibles del valor de entrada de luminiscencia. El rango máximo de luminiscencia del valor de entrada de luminiscencia incluye todos los valores posibles del valor de entrada de luminiscencia. El rango máximo de luminiscencia del segundo valor de salida de luminiscencia incluye todos los valores posibles del segundo valor de salida de luminiscencia.
Uno o más de los rangos máximos pueden ser iguales. Por ejemplo, todos los rangos máximos de luminiscencia pueden normalizarse al intervalo [0; 1]. El rango de luminancia lineal máximo puede representarse de manera similar mediante valores en el intervalo [0;1].
Las funciones parciales pueden ser funciones fijas o pueden depender de uno o más parámetros.
Esto puede proporcionar un sistema eficiente y flexible y puede permitir que un origen o extremo transmisor optimice de manera flexible la función de asignación de código mientras permite que un colector o receptor extremo se adapte a la función específica de asignación de código utilizada.
La representación puede codificarse como cualquier dato indicativo de una característica de la función de asignación de código, como por ejemplo codificando una representación de la función de asignación de código completa o una indicación de una o más de las funciones parciales, y/o un parámetro de estas.
La invención puede permitir, por ejemplo, facilitar o mejorar la comunicación, el almacenamiento, el procesamiento o la manipulación de imágenes en muchos escenarios.
El enfoque puede permitir en particular facilitar o mejorar, por ejemplo, la comunicación, el almacenamiento, el procesamiento o la manipulación de imágenes HDR en muchos escenarios, y en particular puede permitir que las imágenes HDR utilicen la funcionalidad existente diseñada para imágenes LDR. Por ejemplo, la función de asignación de código puede permitir una representación de imagen HDR mejorada a través de un enlace o una funcionalidad restringida a un número reducido de bits.
La función de mapeo de código puede incluir una inversión de al menos parte de una función de asignación de código utilizada para generar los códigos de luminiscencia. La primera función parcial puede ser una función inversa de un mapeo de un valor de luminiscencia a un código de luminiscencia de una función de asignación de código utilizada para generar los códigos de luminiscencia. La segunda función parcial puede ser una función inversa de un mapeo de un valor de luminancia lineal a un valor de luminiscencia de una función de asignación de código utilizada para generar los códigos de luminiscencia.
Se ha encontrado que el uso de funciones parciales como se define proporciona una representación de imagen mejorada y/o facilita el funcionamiento en muchas realizaciones. En particular, en muchas realizaciones puede permitirse que las funciones de mapeo de tonos existentes se reutilicen para nuevas aplicaciones y escenarios. En particular, en muchas realizaciones puede permitirse que las funciones existentes, por ejemplo, definidas o determinadas para el procesamiento y la representación de imágenes LDR se reutilicen para mapear luminancias lineales HDR a representaciones de luminiscencia que proporcionan una representación de la imagen HDR con un número menor de bits por píxel, y para deshacer esta asignación en el lado receptor/colector. Además, mediante el uso de algunas funciones parciales en combinación, pueden admitirse una gran variedad de funciones de asignación de código mientras solo se requiere, por ejemplo, el almacenamiento o la comunicación de las pocas funciones parciales.
En algunas realizaciones, la función de mapeo de código puede ser parte de un decodificador. Los códigos de luminiscencia pueden recibirse, por ejemplo, de una fuente remota y convertirse en valores de píxeles de luminancia lineal.
Las funciones parciales pueden aplicarse secuencialmente. La aplicación de la primera función parcial puede preceder a la segunda función parcial, y específicamente el valor de salida de luminiscencia de la primera función parcial puede alimentarse en algunas realizaciones a la segunda función parcial, es decir, el valor de luminiscencia de entrada de la segunda función parcial puede ser el valor de salida de luminiscencia de la primera función parcial. La función de mapeo de código puede incluir una descuantificación de, por ejemplo, el código de luminiscencia antes del mapeo por la primera función parcial.
Un rango máximo para un valor incluye todos los valores que el valor puede tomar. El rango de luminancia máximo de los valores de entrada de luminancia lineal de píxeles incluye todos los valores posibles del valor de entrada de luminancia lineal. El rango máximo de luminiscencia de un valor de salida de luminiscencia incluye todos los valores posibles del valor de salida de luminiscencia. El rango máximo de luminiscencia del valor de entrada de luminiscencia incluye todos los valores posibles del valor de entrada de luminiscencia. El rango máximo de luminiscencia del código de luminiscencia incluye todos los valores posibles del código de luminiscencia.
Uno o más de los rangos máximos pueden ser iguales. Por ejemplo, todos los rangos máximos de luminiscencia pueden normalizarse al intervalo [0;1]. El rango de luminancia lineal máximo puede representarse de manera similar mediante valores en el intervalo [0;1].
Las funciones parciales pueden ser funciones fijas o pueden depender de uno o más parámetros.
En algunas realizaciones, las funciones parciales pueden generarse en respuesta a los datos recibidos junto con los datos de imagen para convertir de códigos de luminiscencia a valores de luminancia lineal de acuerdo con la función de mapeo de código.
Breve descripción de los dibujos
Estos y otros aspectos del procedimiento y aparato de acuerdo con la invención serán evidentes y se aclararán con referencia a las implementaciones y realizaciones descritas a continuación, y con referencia a los dibujos adjuntos, que sirven meramente como ilustraciones específicas no limitantes que ejemplifican los conceptos más generales. La Figura 1 ilustra un ejemplo de un aparato para generar una función de asignación de código de acuerdo con algunas realizaciones de la invención;
La Figura 2 ilustra un ejemplo de un aparato para generar una función de mapeo de código de acuerdo con algunas realizaciones de la invención;
La Figura 3 ilustra un ejemplo de una función de mapeo de código de acuerdo con algunas realizaciones de la invención;
La Figura 4 muestra esquemáticamente cómo puede aplicarse una curva antes de una fase de cuantificación a N bits en una codificación y una curva inversa, para reconstruir aproximadamente la señal de entrada original.
La Figura 5 muestra esquemáticamente la forma en que normalmente se aplica dicha estrategia a tres coordenadas de color de un píxel, por ejemplo, RGB.
La Figura 6 muestra esquemáticamente una realización de nuestra invención en la que se aplicará nuestra curva de asignación de código total (luminiscencia Y, o R (, G, B) no lineal = f [coordenada correspondiente de la representación del espacio de color lineal de la imagen de entrada típicamente HDR]) está formado por tres formas funcionales de mapeo parcial.
La Figura 7 muestra esquemáticamente otras realizaciones, en las que algunas partes tienen una acción de compresión sobre las luminiscencias de un rango de luminancia del espacio de código total, y otras una acción expansiva en ese subrango.
La Figura 8 muestra esquemáticamente qué primera función parcial hemos encontrado para dar una asignación de código optimizada cuando HDR está típicamente en un rango que termina con un brillo máximo de alrededor de 5.000 nit, y un extremo inferior alrededor de 0,1 nit o menos, en caso de que la segunda función parcial sea la función de asignación de código del estándar sRGB.
La Figura 9 muestra esquemáticamente una primera función parcial que funciona de manera óptima para la codificación HDR sobre palabras de código de menor cantidad de bits (por ejemplo, 8 bits, 10 bits, 12 bits) cuando se usa como segundo parcial el mapeo de código Rec. 709.
La Figura 10 muestra esquemáticamente un primer parcial que funciona de manera óptima (o, por supuesto, también podría usarse la última en la sucesión de la aplicación real) cuando se utiliza la función PQ de Dolby como segundo parcial.
La Figura 11 muestra esquemáticamente que también puede construirse la función de asignación de código total a partir de funciones más parciales, en este caso se utilizan dos mapeos sRGB en sucesión, después de una corrección gamma final que dobla la función de asignación en la forma final correcta, de manera que existan suficientes códigos para todas las regiones de luminancia típicas de una imagen HDR.
La Figura 12 muestra esquemáticamente lo mismo cuando se usan dos funciones Rec. 709 clásicas, pero en una aplicación doble no clásica.
La Figura 13 muestra esquemáticamente cómo se ven esas funciones de asignación de código sobre el espacio de código, al mapear valores de código de entrada del eje X a las luminancias del eje Y de salida.
Las Figuras 14-16 ilustran ejemplos de una función de mapeo de código;
La Figura 17 muestra esquemáticamente cómo pueden usarse ventajosamente tales composiciones parciales de funciones de asignación de código en una aplicación de gradación de color, para obtener imágenes de salida HDR correctamente gradadas.
Descripción detallada de los dibujos
La Figura 1 ilustra un ejemplo de un sistema de procesamiento de imágenes HDR de acuerdo con algunas realizaciones de la invención. La Figura ilustra una fuente, codificación o transmisión lateral para un sistema HDR. En el ejemplo, se utiliza una función de asignación de código para asignar desde valores de entrada que son luminancias lineales HDR a códigos de luminiscencia. En el ejemplo, la función de asignación de código mapea desde valores de entrada representados por N bits a valores de salida representados por M bits donde N>M. Además, en el ejemplo, los valores de luminancia lineal HDR de entrada se representan como valores de coma flotante (por ejemplo, como valores de coma flotante de 16 bits) y los códigos de luminiscencia de salida están representados por enteros (por ejemplo, como enteros de 8 bits).
En el ejemplo de la Figura 1, el sistema comprende una fuente 101 de una imagen HDR o secuencia de video.
Las pantallas convencionales generalmente usan una representación LDR. Típicamente, tales representaciones LDR son proporcionadas por una representación de 8 bits de tres componentes relacionada con primarios especificados. Por ejemplo, una representación de color RGB puede proporcionarse por tres muestras de 8 bits con referencia a un primario Rojo, Verde y Azul respectivamente. Otra representación usa un componente de luminancia y dos componentes de croma (como YCbCr). Estas representaciones LDR corresponden a un rango de brillo o luminancia dado.
HDR específicamente permite que las imágenes (o áreas de una imagen) significativamente más brillantes se presenten adecuadamente en las pantallas HDR. De hecho, una imagen HDR mostrada en una pantalla HDR puede proporcionar un blanco sustancialmente más brillante que el que puede proporcionar la imagen LDR correspondiente presentada en una pantalla LDR. De hecho, una pantalla HDR puede permitir típicamente un blanco al menos cuatro veces más brillante que una pantalla LDR. El brillo puede medirse específicamente en relación con el negro más oscuro que puede representarse o puede medirse en relación con un determinado nivel de gris o negro.
La imagen LDR puede corresponder específicamente a parámetros de pantalla específicos, como una resolución de bits fija relacionada con un conjunto específico de primarios y/o un punto blanco específico. Por ejemplo, pueden proporcionarse 8 bits para un conjunto dado de primarios RGB y, por ejemplo, un punto blanco de 500 cd/m2. La imagen HDR es una imagen que incluye datos que deben renderizarse por encima de estas restricciones. En particular, un brillo puede ser más de cuatro veces más brillante que el punto blanco (por ejemplo, 2.000 cd/m2) o más.
Los valores de píxel de alto rango dinámico tienen un rango de contraste de luminancia (la luminancia más brillante en el conjunto de píxeles divididos por la luminancia más oscura) que es (mucho) más grande que un rango que puede mostrarse fielmente en las pantallas estandarizadas en la era NTSC y MPEG-2 (con sus primarios RGB típicos, y un blanco D65 con un nivel de conducción máximo [255, 255, 255] de brillo de referencia de, por ejemplo, 500 nit o menos). Por lo general, para una pantalla de referencia de este tipo, 8 bits son suficientes para mostrar todos los valores de gris entre aproximadamente 500 nit y aproximadamente 0,5 nit (es decir, con un rango de contraste de 1.000:1 o inferior) en pasos visualmente pequeños, mientras que las imágenes HDR se codifican con una palabra de bit más alta, por ejemplo 16 bit. En particular, las imágenes HDR generalmente contienen muchos valores de píxeles (de objetos de imagen brillantes) sobre una escena blanca. En particular, varios píxeles son más brillantes que dos veces un blanco de escena. Este blanco de escena normalmente puede equipararse con el blanco de la pantalla de referencia NTSC/MPEG-2.
Cabe señalar que la diferencia entre las imágenes LDR y HDR no es simplemente que se use un mayor número de bits para las imágenes HDR que para las imágenes LDR. Por el contrario, las imágenes HDR cubren un rango de luminancia mayor que las imágenes LDR y, por lo general, tienen un valor de luminancia máximo más alto, es decir, un punto blanco más alto. De hecho, mientras que las imágenes LDR tienen un punto de luminancia máxima (blanco) correspondiente a no más de 500 nits, las imágenes HDR tienen un punto de luminancia máxima (blanco) correspondiente a más de 500 nits y, a menudo, no menos de 1.000 nits, 2.000 nits o incluso 4.000 nits o más. Por lo tanto, una imagen HDR no solo usa más bits correspondientes a una granularidad más alta o una cuantificación mejorada, sino que corresponde a un rango de luminancia real más grande. Por lo tanto, el valor de píxel más brillante posible generalmente corresponde a una salida de luminancia/luz que es más alta para una imagen HDR que para una imagen LDR. De hecho, las imágenes HDR y LDR pueden usar el mismo número de bits pero con los valores de imagen HDR referenciados a un rango dinámico de luminancia más grande/luminancia máxima más brillante que los valores de imagen LDR (y así las imágenes HDR se representan con una cuantificación más gruesa en una escala de luminancia).
El número de bits utilizados para las imágenes HDR X puede ser típicamente mayor o igual que el número de bits Y utilizados para las imágenes LDR (X puede ser, por ejemplo, 12, 14 o 16 bits (por canal de color si se utilizan varios canales) y Y pueden ser, por ejemplo, 8 o 10 bits).
Para permitir que las imágenes HDR se utilicen con equipos o interfaces compatibles con LDR, como las interfaces de pantalla compatibles con LDR o los algoritmos de codificación de imágenes, puede ser necesaria una transformación/mapeo para ajustar los valores HDR en un rango más pequeño, por ejemplo, una escala de compresión puede ser deseada. Dichas conversiones suelen ser bastante complejas y no equivalen simplemente a una escala simple de los rangos de luminancia, ya que una escala de este tipo daría como resultado una imagen que se percibiría de forma poco natural y típicamente con un gran error de cuantificación. Por lo general, se usan transformaciones bastante complejas y a menudo se hace referencia a estas transformaciones usando el término mapeo de tonos.
En el sistema de la Figura 1, la imagen HDR se alimenta a una función de asignación de código 103 que mapea los valores de luminancia lineal de los píxeles de la imagen HDR en códigos de luminiscencia con un número reducido de bits proporcionados para cada código de luminiscencia que para cada valor de luminancia lineal.
La función de asignación de código tiene un valor de entrada que es un valor de luminancia lineal de la imagen HDR. Un valor de luminancia para un píxel dado es indicativo de una luminancia de ese píxel, es decir, es indicativo de una cantidad de luz que debería proporcionarse irradiada por ese píxel (y, por lo tanto, del brillo que será percibido por el píxel). En el ejemplo, el valor de entrada de luminancia está vinculado a un nivel dado en términos de luminancia máxima, es decir, en términos de un punto blanco. Por ejemplo, la luminancia de entrada puede proporcionarse como un valor en un rango dado donde el rango está vinculado a un nivel de luminancia radiada. Específicamente, el extremo inferior del rango puede estar vinculado a un punto negro, por ejemplo, correspondiente a que no se irradia luz. El extremo superior del rango puede estar vinculado a un punto blanco. El punto blanco es una luminancia HDR, como por ejemplo 5.000 nits o 1.000 nits.
Por lo tanto, la entrada a la función de asignación de código puede ser un valor de luminancia que puede estar vinculado a un punto blanco y un punto negro reales, correspondientes a los valores de luz radiada. Por ejemplo, los valores de luminancia de entrada pueden darse como un valor en el rango de [0;1] donde el valor 0 corresponde a un punto negro de, por ejemplo, 0 nits, y el valor 1 corresponde a un punto blanco de más de 500 nits y, a menudo, a no menos de 1.000 nits, 2.000 nits o incluso 4.000 nits o más.
Por lo tanto, un valor de luminancia dado corresponde directamente a un brillo deseado.
El valor de luminancia de entrada de la fuente HDR 101 es en el ejemplo un valor de luminancia lineal. Por lo tanto, existe una relación lineal directa entre el valor de luminancia y el brillo irradiado deseado, es decir, una relación lineal directa entre el valor de luminancia lineal y la radiación de luz correspondiente del píxel. Por ejemplo, para un valor de luminancia en el rango de [0;1] donde 0 corresponde a un punto negro de 0 nits y 1 corresponde a un punto blanco de 5.000 nits, un valor de 0,25 corresponde a un brillo de 1.250 nits, un valor de 0,5 corresponde a un brillo de 2.500 nits, etc.
El valor de luminancia de entrada está representado por un número relativamente alto de bits y, por lo tanto, una precisión relativamente alta. Además, puede representarse como un valor de coma flotante. Por lo tanto, la luminancia lineal puede considerarse sustancialmente no cuantificada.
En el ejemplo, el valor de luminancia puede ser específicamente una luminancia general del píxel, es decir, puede reflejar el brillo de todo el píxel en lugar de solo la luminancia de un canal de color (como una luminancia de canal R, luminancia de canal G o luminancia de canal B). Por ejemplo, en el ejemplo, los colores de los píxeles pueden estar representados por un formato que comprende componentes separados de luminancia y croma. Por ejemplo, pueden proporcionarse en un formato Yuv (en el que un valor de píxel está representado por un valor de luminancia Y y dos valores de croma uv). En este caso, la función de asignación de código puede aplicarse al componente Y (el componente de luminancia) mientras se mantienen constantes los componentes de croma uv. En algunas realizaciones, el sistema puede comprender un convertidor de representación de color para convertir los valores de entrada desde, por ejemplo, un formato RGB a, por ejemplo, un formato Yuv.
La entrada de luminancia lineal puede ser específicamente una luminancia lineal a la que se refieren SI y CIE.
La señal de entrada a la función de asignación de código puede ser un valor de luminancia asociado con un nivel de brillo real, es decir, con un punto blanco específico o luminancia máxima. Específicamente, la fuente 101 de HDR puede proporcionar una imagen que ha sido clasificada por color para el nivel de brillo específico. Por ejemplo, un gradador de color puede haber ajustado manualmente los colores de píxeles/valores de luminancia de la imagen HDR para obtener una imagen estéticamente agradable cuando se presenta en una pantalla HDR con un punto blanco correspondiente al punto blanco vinculado al rango de luminancia de entrada.
La salida de la función de asignación de código 103 es un valor o código de luminiscencia. Una luminiscencia puede ser cualquier función no lineal de un valor de luminancia incoloro. Por lo tanto, el valor de luminiscencia típicamente proporciona una representación monótona del brillo correspondiente, pero la función que relaciona el valor de luminiscencia con el brillo de píxeles puede ser cualquier función adecuada y específicamente no lineal. Por lo tanto, para los valores de luminiscencia, no puede suponerse que un valor dos veces mayor que otro valor corresponda a un brillo deseado que sea dos veces mayor. En algunos escenarios, puede considerarse que el valor de luminiscencia no está directamente relacionado con un rango de brillo dado. Por ejemplo, puede darse el rango disponible para un valor de luminiscencia, por ejemplo, como un rango de [0;1] o por ejemplo [0;255]. Sin embargo, este rango puede no estar vinculado directamente con un rango de brillo dado o, de hecho, con un punto negro o un punto blanco dado. Por ejemplo, en algunas realizaciones, el valor de luminiscencia puede proporcionar una representación abstracta del rango o distribución de brillo de la imagen y el mapeo exacto a niveles de brillo específicos puede adaptarse dependiendo, por ejemplo, de las cualidades de brillo de la pantalla utilizada para presentar la imagen.
Los valores de luminiscencia pueden corresponder específicamente a la notación de luminancia de CIE_XYZ.
Por lo tanto, un valor de luminiscencia para un píxel puede proporcionar una representación de un valor de brillo o luminancia para el píxel, pero puede no tener un mapeo predeterminado o directo a estos valores, y en particular puede no representar un mapeo lineal. Más bien, el valor de luminiscencia proporciona una codificación, pero para asignar el código de luminiscencia a valores de brillo específicos, es necesario usar una función que defina la relación entre los códigos de luminiscencia y los valores de luminancia lineal originales. En el codificador de la Figura 1, la función de asignación de código mapea desde la entrada de luminancia lineal a los códigos de luminiscencia. Para mapear los códigos de luminiscencia a los códigos de luminancia, puede aplicarse una función de asignación de código inverso. Específicamente, para mapear los códigos de luminiscencia de nuevo al rango de luminancia lineal de la entrada al codificador, puede usarse el inverso de la función de asignación de código para generar los valores de luminancia. El mapeo de los códigos de luminiscencia a los valores de luminancia se denomina a continuación como una función de asignación de código inverso. Sin embargo, debe tenerse en cuenta que esta función también puede denominarse en algunos escenarios como una función de asignación de código. La función de asignación de código 103 incluye un mapeo no lineal que mapea los valores de luminancia lineal a un valor de luminiscencia que luego se cuantifica. Específicamente, la función de asignación de código incluye un mapeo de código de luminiscencia 107 que mapea el valor de entrada de luminancia lineal a un valor de luminiscencia. El mapeo es un mapeo no lineal. El valor de luminiscencia en la salida del mapeo de código de luminiscencia 107 se alimenta a un cuantificador 109 que realiza una cuantificación del valor de luminiscencia para generar un código de luminiscencia de salida desde la función de asignación de código 103.
El cuantificador 109 realiza una reducción de bits de manera que el mayor número de bits del valor de luminancia lineal se reduce al menor número de bits que permite el uso de la funcionalidad LDR existente. Específicamente, el cuantificador 109 puede reducir el número de bits del valor de luminiscencia de N a M. El cuantificador 109 realiza específicamente una cuantificación uniforme.
El mapeo de código de luminiscencia 107 está dispuesto para realizar un mapeo no lineal desde la entrada de luminancia lineal hasta el valor de luminiscencia no cuantificado. El efecto combinado del mapeo de código de luminiscencia 107 y el cuantificador 109 puede corresponder así a una cuantificación no uniforme.
El mapeo no lineal puede garantizar específicamente que se mejore la distribución de valores. Por ejemplo, el mapeo no lineal puede ser tal que el más oscuro, digamos, el 10% del rango de los valores de luminancia de entrada se mapee al más oscuro, digamos, el 70% del rango del valor de luminiscencia no cuantificado. Esto asegurará una codificación eficiente de las características de imagen de la imagen HDR utilizando la resolución reducida típicamente asociada con las imágenes LDR.
Por lo tanto, en el sistema de la Figura 1, la función de asignación de código se construye a partir de un mapeo de código de luminiscencia 107 aplicado al valor de entrada de luminancia lineal para generar un valor de luminiscencia seguido de una cuantificación (lineal) del valor de luminiscencia para generar el código de luminiscencia de salida. El mapeo de código de luminiscencia 107 proporciona un mapeo que mapea la luminancia lineal de entrada a un valor de luminiscencia, es decir, el mapeo de código de luminiscencia 107 puede considerarse que proporciona un mapeo de tonos desde valores de luminancia lineal a valores de luminiscencia.
Sin embargo, en el sistema, el mapeo de código de luminiscencia 107 no se construye simplemente como una sola función o mapeo, sino que se construye a partir de dos funciones parciales 111, 113 o mapeos que trabajan juntos para proporcionar el mapeo general del mapeo 107 del código de luminiscencia. En el ejemplo de la Figura 1, el mapeo de código de luminiscencia 107 se compone solo de una primera y segunda función parcial 111, 113 pero se apreciará que en otras realizaciones, el mapeo de código de luminiscencia 107 puede incluir funciones adicionales y especialmente puede incluir funciones mapeos adicionales. Por ejemplo, como se describirá más adelante, la función de asignación de código puede incluir un mapeo variable que puede ser modificado por un usuario, de hecho, en algunas realizaciones, la función de asignación de código puede incluir una gradación de color controlada por un usuario.
Específicamente, en el sistema de la Figura 1, el mapeo de código de luminiscencia 107 comprende una primera función parcial 111 que recibe el valor de entrada de luminancia lineal de la fuente HDR 101. La primera función parcial 111 está dispuesta para mapear el valor de entrada de luminancia lineal a un primer valor de luminiscencia. La primera función parcial 111 define un valor de luminiscencia de salida para todos los posibles valores de entrada de luminancia lineal, es decir, todo el rango de luminancia máxima que puede representarse mediante un valor de entrada de luminancia lineal se mapea a un rango de luminiscencia de salida. Además, el mapeo de la primera función parcial 111 es tal que mapea el rango de luminancia máximo que puede representarse mediante el valor de entrada de luminancia lineal a un rango de luminiscencia máximo que puede representarse en la salida. Específicamente, el valor de entrada de luminancia lineal más bajo posible se mapea al valor de luminiscencia más bajo posible. Del mismo modo, el valor de entrada de luminancia lineal más alto posible se mapea al valor de luminiscencia más alto posible.
Además, el mapeo es un mapeo no lineal. Típicamente, el mapeo es tal que se aumentan los subintervalos correspondientes a los valores de brillo típicos y se comprimen los subintervalos que corresponden a valores de brillo muy altos. Por lo tanto, la distribución HDR se mapea a una distribución que puede ser más adecuada para restricciones LDR (específicamente restricciones de bits).
El mapeo de la primera función parcial 111 es además una función invertible. Específicamente, la primera función parcial 111 proporciona un mapeo uno a uno desde la entrada de luminancia a la salida de luminiscencia, y de hecho existe un mapeo uno a uno desde la salida de luminiscencia a la entrada de luminancia. Por lo tanto, la primera función parcial 111 es un mapeo/función subjetiva o biyectiva. Para cada valor de entrada de luminancia lineal posible del rango de la entrada de luminancia lineal, la primera función parcial 111 mapea exactamente un valor de luminiscencia del rango de la salida de luminiscencia. Además, existe un inverso de la primera función parcial 111 que para cada valor de luminiscencia posible del rango de la salida de luminiscencia mapea exactamente un valor de entrada de luminancia lineal del rango de la entrada de luminancia lineal.
Específicamente, el valor de entrada de luminancia lineal puede representarse mediante valores (por ejemplo, de coma flotante) en el intervalo de [0;1]. Del mismo modo, los valores de luminiscencia pueden representarse mediante valores de coma flotante en el intervalo de [0;1]. La primera función parcial 111 puede proporcionar un mapeo biyectivo no lineal del rango de valores de entrada de luminancia [0;1] en el valor de salida de luminiscencia [0;1].
En el ejemplo de la Figura 1, la salida de la primera función parcial 111 se alimenta a una segunda función parcial 113.
La segunda función parcial 113 está dispuesta para mapear un valor de luminiscencia, y de hecho en el ejemplo específico de la Figura 1, el valor de luminiscencia de la primera función parcial 111, a un segundo valor de luminiscencia. La segunda función parcial 113 define un valor de salida de luminiscencia para todos los posibles valores de entrada de luminiscencia, es decir, todo el rango máximo de luminiscencia que puede representarse por el valor de entrada de luminiscencia se mapea a un rango de salida de luminiscencia. Además, el mapeo de la segunda función parcial 113 es tal que mapea el rango de luminiscencia de entrada a un rango de luminiscencia máximo que puede representarse en la salida. Específicamente, el valor de entrada de luminiscencia más bajo posible se mapea al valor de salida de luminiscencia más bajo posible. Del mismo modo, el valor de entrada de luminiscencia más alto posible se mapea al valor de salida de luminiscencia más alto posible.
Además, el mapeo es un mapeo no lineal. En muchos escenarios, el mapeo es tal que se aumentan los subintervalos correspondientes a los valores de brillo típicos y se comprimen los subintervalos que corresponden a valores de brillo muy altos. Por lo tanto, la distribución HDR se mapea a una distribución que puede ser más adecuada para las restricciones LDR.
El mapeo de la segunda función parcial 113 es además una función invertible. Específicamente, la segunda función parcial 113 proporciona un mapeo uno a uno desde la entrada de luminiscencia a la salida de luminiscencia y, de hecho, existe un mapeo uno a uno desde la salida de luminiscencia a la entrada de luminiscencia. Por lo tanto, la segunda función parcial 113 es un mapeo/función subjetiva o biyectiva. Para cada posible valor de entrada de luminiscencia del rango de la entrada de luminiscencia, la segunda función parcial 113 mapea exactamente un valor de luminiscencia del rango de la salida de luminiscencia. Además, existe un inverso de la segunda función parcial 113 que para cada valor de luminiscencia posible del rango de mapeo de salida de luminiscencia a exactamente un valor de entrada de luminiscencia del rango de entrada de luminiscencia lineal.
Específicamente, el valor de entrada de luminiscencia puede representarse mediante valores en el intervalo de [0;1]. Del mismo modo, los valores de salida de luminiscencia pueden representarse mediante valores en el intervalo de [0;1]. La segunda función parcial 113 puede proporcionar un mapeo biyectivo no lineal del rango de valores de luminiscencia [0;1] en el valor de salida de luminiscencia [0;1]. Los valores de luminiscencia pueden ser valores de coma flotante.
El efecto combinado general de la aplicación posterior de la primera función parcial 111 y la segunda función parcial 113 es, por consiguiente, un mapeo no lineal desde la representación de luminancia lineal de entrada de una señal HDR a una representación que es más adecuada para la representación por un número menor de bits. Por lo tanto, se logra un mapeo de código de luminiscencia no lineal combinado o un mapeo de tonos de luminancias lineales de entrada a valores de luminiscencia
En el sistema de la Figura 1, el segundo valor de salida de luminiscencia, es decir, los valores de luminiscencia de la segunda función parcial 113 se alimentan a un cuantificador 109. El cuantificador 109 aplica una cuantificación al segundo valor de luminiscencia, generando de esta manera códigos de luminiscencia de salida.
La cuantificación por el cuantificador 109 reduce el número de bits utilizados para representar el brillo de cada píxel a un número menor de bits. Por ejemplo, el valor de luminiscencia puede ser un valor de coma flotante de 16 bits, y esto puede cuantificarse en enteros de 8 o 10 bits.
Como resultado de la función de asignación de código, pueden generarse códigos de luminiscencia que representan el brillo HDR con un número sustancialmente menor de bits mientras permiten que el número menor de bits proporcionen una representación razonable de la imagen HDR original. De hecho, la función de asignación de código puede generar códigos que pueden manejarse, por ejemplo, mediante la funcionalidad de comunicación, codificación o procesamiento de imágenes que se han desarrollado para LDR.
Por ejemplo, puede definirse una interfaz de pantalla para admitir, por ejemplo, una imagen representada como datos Yuv con, por ejemplo, 10 bits asignados para el componente Y. Tal interfaz de pantalla puede haber sido diseñada con LDR en mente. Sin embargo, al mapear la luminancia lineal HDR a códigos de luminiscencia de 10 bits, la misma interfaz de pantalla también puede utilizarse para admitir las imágenes HDR.
Como otro ejemplo, puede generarse un algoritmo de codificación basado en representaciones de Yuv usando 8 bits para el componente Y. Al mapear la luminancia lineal HDR a códigos de luminiscencia de ocho bits, puede usarse el mismo algoritmo de codificación para admitir la codificación de la imagen HDR.
Así, el sistema de la Figura 1 comprime eficazmente la luminancia lineal HDR en una representación de luminiscencia que, en muchos escenarios, permite que la señal resultante sea manejada por la funcionalidad LDR. En particular, la señal resultante puede comunicarse utilizando un medio de comunicación, canal o intermedio que ha sido diseñado para LDR.
Además, esto puede lograrse mientras se permite una representación eficiente de las características HDR. Por lo tanto, los datos de imagen no se convierten en una imagen LDR que luego se utiliza. Por el contrario, puede usarse una representación HDR dentro de un contenedor compatible con LDR.
En muchas realizaciones, un receptor puede recibir los valores del código de luminiscencia y buscar generar una representación HDR de luminancia lineal. Por ejemplo, una pantalla HDR que recibe los valores de luminiscencia puede buscar generar valores de luminancia lineal HDR que luego se utilizan para controlar la pantalla.
Un ejemplo de tal colector, decodificador o extremo receptor se ilustra en la Figura 2.
En el ejemplo, el receptor comprende un receptor de imagen 201 que recibe los valores codificados generados desde el extremo de transmisión de la Figura 1. Se apreciará que en algunas realizaciones, los códigos de luminiscencia pueden recibirse en una señal codificada y el receptor de datos 201 puede comprender funcionalidad para decodificar la señal codificada para recuperar los códigos de luminiscencia. También se apreciará que la señal codificada puede comprender además valores de croma, por ejemplo, un código de luminiscencia y pueden proporcionarse valores de croma para cada píxel en una imagen, por ejemplo, cada píxel puede representarse en un formato Yuv.
Los códigos de luminiscencia recibidos se alimentan a una función de mapeo de código 203 que está dispuesta para mapear los códigos de luminiscencia recibidos en valores de luminancia lineal. La función de mapeo de código 203 proporciona específicamente un mapeo no lineal que puede generar valores de luminancia lineal que son adecuados para imágenes HDR.
Los valores de luminancia lineal se alimentan en el ejemplo a un controlador 205 que está dispuesto para controlar una pantalla HDR. Por lo tanto, en el ejemplo específico, el receptor puede ser, por ejemplo, una pantalla HDR que comprende funcionalidad para recibir códigos de luminiscencia que representan una imagen HDR pero que utiliza un formato que permite que los códigos de luminiscencia sean compatibles con un canal de comunicación LDR, y para convertir estos códigos de luminiscencia a valores de luminancia lineal HDR.
En algunas realizaciones, la función de mapeo de código 203 puede corresponder a la función inversa de la función de asignación de código 103. Por lo tanto, el mapeo realizado por la función de mapeo de código 203 puede revertir el funcionamiento del mapeo de código de luminiscencia 107 al generar valores de luminancia lineal.
En otras realizaciones, la función de mapeo de código 203 puede comprender mapeo modificado o adicional. Por ejemplo, el mapeo a valores de luminancia HDR puede adaptarse a características o preferencias locales, tales como, por ejemplo, el punto blanco de la pantalla específica o, por ejemplo, las preferencias específicas del usuario. Sin embargo, en general, la función de mapeo de código 203 se genera para tener en cuenta la función de asignación de código/mapeo de código de luminiscencia 107 del extremo de transmisión. Por lo tanto, este enfoque permite un sistema en el que un rango de luminancia lineal HDR puede asignarse a una representación compatible con el formato LDR, comunicarse utilizando un canal de comunicación restringido a formatos LDR, y luego, en el otro extremo, asignarse nuevamente al rango de luminancia lineal HDR.
La función de mapeo de código 203 se genera en respuesta a dos funciones parciales que a continuación se denominarán una primera función parcial inversa y una segunda función parcial inversa. En el ejemplo específico, la primera función parcial inversa es la función inversa de la primera función parcial del transmisor de la Figura 1 y la segunda función parcial inversa es la función inversa de la segunda función parcial 113 del transmisor de la Figura 1. En consecuencia, la segunda función parcial inversa proporciona un mapeo de un código de luminiscencia recibido a un valor de luminiscencia y la primera función parcial inversa proporciona un mapeo de un valor de luminiscencia a un valor de luminancia lineal.
Se apreciará que la primera función parcial inversa y la segunda función parcial inversa tienen características correspondientes a la primera función parcial 111 y la segunda función parcial 113, ya que son funciones inversas. Específicamente, la primera función parcial inversa define un mapeo invertible no lineal de un rango de luminiscencia máximo de un valor de luminiscencia de entrada a un rango de luminancia máximo de valores de entrada de luminancia lineal de píxeles.
En consecuencia, la segunda función parcial inversa define un mapeo invertible no lineal de un rango de luminiscencia máximo de un código de luminiscencia de entrada a un rango de luminiscencia máximo de un valor de salida de luminiscencia.
Por consiguiente, en el ejemplo, el receptor comprende un generador de funciones parciales 209 que está dispuesto para determinar las funciones parciales que se utilizarán en el receptor. Específicamente, el generador de funciones parciales 209 puede determinar la primera función parcial inversa y la segunda función parcial inversa.
En algunas realizaciones, la primera función parcial inversa y la segunda función parcial inversa pueden generarse, por ejemplo, en base a información local o, por ejemplo, una entrada del usuario que define las funciones parciales inversas.
Sin embargo, en muchas realizaciones, la primera función parcial inversa y la segunda función parcial inversa se determinan en base a los datos de control recibidos junto con los datos de imagen. Específicamente, el transmisor de la Figura 1 puede incluir datos que definen la primera función parcial 111 y la segunda función parcial 113. Los datos pueden en algunas realizaciones simplemente definir una identidad de las dos funciones y el receptor de la Figura 2 puede comprender un almacenamiento local en el que se almacenan diferentes funciones junto con identificaciones asociadas. En algunas realizaciones, los datos recibidos pueden comprender además uno o más parámetros para las funciones parciales. Por ejemplo, puede identificarse una función gamma y puede proporcionarse un valor gamma en el flujo de datos recibido como parámetro para la conversión gamma.
El generador de función parcial 209 está acoplado a un generador de mapeo 211 que está dispuesto para generar la función de mapeo de código 203 en base a las funciones parciales determinadas. El generador de mapeo 211 puede, por ejemplo, generar directamente la función de mapeo de código 203 como una aplicación secuencial de la segunda función parcial inversa y la primera función parcial inversa.
De hecho, en algunas realizaciones, la función de mapeo de código 203 puede generarse como una aplicación secuencial de la segunda función parcial inversa y la primera función parcial inversa. De hecho, los códigos de luminiscencia de entrada recibidos pueden alimentarse a la segunda función parcial inversa, y los valores de salida de luminiscencia de la segunda función parcial inversa pueden alimentarse directamente a la primera función parcial inversa. En algunas realizaciones, el valor de luminancia lineal resultante puede usarse directamente, y de hecho esta luminancia lineal corresponderá a la de la imagen HDR original.
La Figura 3 ilustra un ejemplo de la función de mapeo de código 203 en la que puede realizarse un mapeo adicional. En el ejemplo, los códigos de luminiscencia se alimentan a la segunda función parcial inversa 301 que aplica un mapeo no lineal para generar valores de salida de luminiscencia. Los valores de salida de luminiscencia se alimentan a la tercera función 303 que puede realizar un mapeo de luminiscencia a luminiscencia. Este mapeo puede ser, por ejemplo, una corrección automatizada de acuerdo con las preferencias locales, o incluso puede ser una gradación manual de color aplicada a los valores de luminiscencia. Los valores de luminiscencia resultantes se alimentan a la primera función parcial inversa que mapea estos valores de luminiscencia en valores de luminancia lineal.
Además, se apreciará que, en lugar de aplicar directamente la primera función parcial inversa y la segunda función parcial inversa, puede usarse una versión modificada de al menos una de estas. Por ejemplo, la primera función parcial inversa puede comprender una conversión gamma y la primera función parcial inversa puede estar dispuesta para usar un valor de gamma diferente al aplicado en la primera función parcial 111. Sin embargo, este enfoque es equivalente a aplicar primero la primera función parcial inversa seguida de una segunda función que mapea los valores resultantes a los valores correspondientes a la función gamma modificada. En otras palabras, incluso si se aplica, por ejemplo, un valor gamma diferente, la información del mapeo en el codificador (por ejemplo, por la primera función parcial 111) todavía se tiene en cuenta y, por lo tanto, la función de mapeo de código 203 todavía depende tanto de la primera función parcial inversa como de la segunda función parcial inversa.
También se apreciará que en algunas realizaciones y escenarios, la función de mapeo de código 203 también puede representar el mapeo del cuantificador 109. Especialmente, si el cuantificador incluye una transformación de representación (por ejemplo, de coma flotante a valores enteros), el efecto del mismo puede ser revertido por la función de mapeo de código 203.
Se apreciará que pueden usarse diferentes enfoques para determinar las funciones inversas y/o la función de mapeo de código 203 en diferentes realizaciones.
Por ejemplo, como se describió anteriormente, en algunas realizaciones, los datos recibidos pueden identificar directamente la primera función parcial inversa y la segunda función parcial inversa y la función de mapeo de código 203 puede determinarse aplicando estas funciones a los datos recibidos (por ejemplo, además de otros de mapeo). En algunas realizaciones, el receptor puede determinar la función de mapeo de código 203 al determinar primero al menos parte de la función de asignación de código, y luego determinar típicamente el inverso de esa parte de la función de asignación de código.
Por ejemplo, en algunas realizaciones, el generador de funciones parciales 209 puede determinar primero la primera función parcial 111 y la segunda función parcial 113 (o una de ellas) usadas en el codificador. Entonces puede proceder a determinar las funciones inversas, es decir, la primera función parcial inversa de la primera función parcial 111 y la segunda función parcial inversa de la segunda función parcial 113. La determinación de las funciones inversas puede basarse en algunas realizaciones en el conocimiento predeterminado de qué funciones son las funciones inversas de las posibles funciones que un codificador puede usar como la primera función parcial 111 o la segunda función parcial 113. En otras realizaciones, la definición de la primera función parcial 111 puede usarse, por ejemplo, para generar una tabla de búsqueda de valores de luminancia lineal y valores de luminiscencia de salida correspondientes de la primera función parcial 111. Esta tabla de búsqueda puede usarse como una función inversa al usar los valores de luminiscencia almacenados como parámetro de entrada. Es decir, para un valor de luminiscencia dado, puede recuperarse el valor de luminancia lineal vinculado en la tabla de búsqueda. Por supuesto, puede usarse el mismo enfoque para la segunda función parcial 113 y la segunda función parcial inversa.
A continuación, se describirán algunas realizaciones ventajosas específicas con más detalle, incluyendo especificaciones de posibles funciones parciales, funciones de mapeo de código y función de mapeo de código 203. En los ejemplos, las funciones y los mapeos son, por brevedad y simplicidad, llamados curvas.
En muchas realizaciones, la función de asignación de código puede generarse para proporcionar una curva logarítmica, es decir, la función de asignación de código puede corresponder a una curva logarítmica. En el enfoque, la curva logarítmica se construye mediante una concatenación simple de curvas logarítmicas existentes (es decir, funciones parciales) ya que estas curvas están fácilmente disponibles/implementadas en las herramientas existentes. En particular, se propone utilizar las curvas sRGB, Rec.709 y gamma como bloques de construcción para construir una nueva curva logarítmica que sea adecuada para HDR. En su forma más simple, la nueva curva se obtiene al concatenar solo dos de estos bloques de construcción, pero al concatenar tres de estos bloques, pueden obtenerse curvas con artefactos de cuantificación aún más pequeños (menos visibles).
El enfoque de "bloque de construcción" nos permite (1) construir y evaluar rápidamente un gran número de curvas y (2) aprovechar las curvas que ya están disponibles, por ejemplo, en herramientas de gradación de color.
Un diagrama de bloques básico de la aplicación de una curva a una señal HDR se muestra en la Figura 4 (tenga en cuenta que todas las Figuras son solo realizaciones elocuentes para explicar los conceptos más genéricos del enfoque).
En la Figura 4, la flecha hacia abajo l indica una reducción del rango dinámico (si uno renderiza directamente esta imagen en una pantalla (que normalmente no se requiere), se verían los píxeles más representativos de rangos relativamente más oscuros y medios acercándose juntos en cuanto al brillo) por una cierta curva, y la flecha hacia arriba ] indica una expansión del rango dinámico por la curva inversa. Q representa un paso de cuantificación. Es decir, mientras suponemos que las señales y todo el procesamiento sobre ellas se definen en coma flotante (o enteros de alta precisión, por ejemplo, 12 bits o 16 bits), en la posición Q en la cadena, el número de niveles de representación se reduce a, por ejemplo, 256 o 1024, de modo que la señal puede representarse, por ejemplo, con índices cuantificadores de 8 bits, que pueden almacenarse y/o transmitirse y/o codificarse a través de una interfaz de profundidad de bits/ancho de banda limitado. A continuación, asumiremos que todas las señales y curvas se definen en el rango decimal normalizado de 0..1.
El diagrama en la Figura 4 se ha simplificado porque muestra solo una ruta de señal única, correspondiente al componente de luminancia. Específicamente, los valores de color de píxel pueden proporcionarse como un componente de luminancia y dos componentes de croma, como por ejemplo una representación Yuv. La Figura 4 (así como las Figuras 1 a 3) ilustran la ruta de señal para el componente de luminancia (es decir, para Y).
En algunos escenarios donde los valores de píxeles se proporcionan como canales de color, como por ejemplo, representaciones de color RGB o XYZ, se podría considerar que cada uno de los canales de color proporciona una imagen monocromática individual. En tal consideración, se podría considerar que el valor de cada canal de color corresponde a una representación de luminancia de la imagen monocromática asociada. Por lo tanto, en la práctica, la misma curva logarítmica podría aplicarse independientemente a cada componente/canal de color, como se muestra en la Figura 5.
El enfoque combina varias curvas fácilmente disponibles en una curva combinada que tiene una propiedad deseada. La propiedad particular que deseamos es específicamente la idoneidad de la curva para cuantificar una seña1HDR con la distorsión perceptual más baja posible. Establecemos la idoneidad de una curva para este propósito aplicándola a varias imágenes originales (coma flotante no cuantificada) de prueba de HDR (que hemos establecido que son sensibles a los artefactos de cuantificación) y evaluando visualmente los artefactos (es decir, diferencias con la original) en la imagen cuantificada (después de aplicar la curva inversa) en una pantalla de referencia HDR. Descubrimos que combinar dos o tres curvas como bloques de construcción ya proporciona curvas combinadas bastante adecuadas.
Un ejemplo genérico de combinación, más específicamente concatenación, de tres curvas se muestra en la Figura 6 (Ejemplo de concatenación de tres curvas para construir una curva combinada, así como la curva combinada inversa).
En algunas realizaciones, todas las curvas antes de la cuantificación podrían funcionar en la dirección de bajar el rango dinámico (salida >= entrada en los rangos normalizados 0..1), indicado por las flechas hacia abajo l, y todas las curvas después de la cuantificación aumentarán el rango dinámico (salida <= entrada en los rangos normalizados 0..1), indicado por las flechas hacia arriba
Sin embargo, dado que pueden aplicarse bloques de construcción fácilmente disponibles (uno de los cuales puede ser una curva gamma variable, al menos la potencia gamma se optimiza para trabajar con alguna situación de referencia), también pueden aplicarse bloques de construcción individuales para trabajar en la dirección opuesta (es decir, si la primera curva se curva demasiado abruptamente, es decir, estira los oscuros con fuerza, y luego se nivela alto en los códigos disponibles, uno puede usar un segundo bloque de corrección que doble menos la curva del resultado final, de modo que los oscuros se estiran menos, lo que puede ser ventajoso si tenemos una película que, por ejemplo, no se oscurece tanto), siempre que la curva combinada general mantenga la corrección deseada hacia abajo o hacia arriba. Un ejemplo para ilustrar esto se muestra en la Figura 7, donde la curva (c) funciona "contra" las curvas (a) y (b), es decir, se estira localmente si la otra se comprime y viceversa.
Ahora presentaremos varias curvas combinadas que se ha determinado experimentalmente que funcionan bien para la cuantificación de una señal HDR que se muestra en una pantalla de referencia HDR con un brillo máximo de 5.000 cd/m2 (donde el rango de 0..5.000 cd/m2 se normaliza al rango 0..1 para aplicar las curvas). Nuestra pantalla de referencia EOTF es una gamma de 1,25, que hemos encontrado que proporciona la intención correcta de renderizado de atenuación de oscuridad y también es el valor que se produce en una cadena de televisión tradicional que usa pantallas de referencia tradicionales (Tubos de Rayos Catódicos); véase [6]: secciones 23,14, 19,13 y 11,9. El EOTF puede considerarse como un bloque de construcción de curva gamma adicional (con gamma igual a 1,25) que se concatena (solo) en el lado del decodificador/pantalla. La mayoría de las curvas se hicieron con sRGB, Rec.709 y bloques de construcción de curva gamma, ya que se implementan ampliamente, pero otras curvas también se podrían usar como un bloque de construcción. Las curvas, y por lo tanto los bloques de construcción, existen tanto en forma normal como inversa, dependiendo de si se usan en el lado fuente, antes de la cuantificación, para convertir de una representación lineal, más dinámica, a una representación más "logaritmica'Vcomprimida de rango dinámico bajo, o en el lado del colector para convertir de la representación "logarítmica" a una representación más lineal. La definición exacta de las curvas utilizadas como bloques de construcción se da en el Apéndice: definiciones de curva de bloques de construcción.
Una primera curva, construida a partir de un bloque de construcción gamma y sRGB (y su inverso) se muestra en la Figura 8. Los valores de gamma alrededor de 2,1 (aproximadamente el rango 2,0... 2,2) funcionan bien en esta cadena. Uno puede ver la segunda parte de la curva como una corrección previa, o un ajuste posterior, en comparación con una referencia, por ejemplo, una situación clásica.
Una segunda curva de dos bloques, construida a partir de un bloque de construcción gamma y uno Rec.709 se muestra en la Figura 9.
Finalmente, también encontramos experimentalmente que el PQ, donde el fPQ viene dado por la ecuación (7) de [7], puede mejorarse agregando un bloque de construcción de curva gamma.
La función PQ se define como:
Figure imgf000016_0001
En la cual Y es el código de luminiscencia resultante asignado, V es la entrada (por ejemplo, capturada por la cámara o grado de maestría para un aspecto cinematográfico óptimo) de luminancia escalada como un flotador dentro de 0<=V<=1, L es una constante tomada como 10.000 nit, m = 78,8438, n = 0,1593, c1 = 0,8359, c2 = 18,8516, c3 = 18,6875, y A es la función de potencia.
Esta curva se definió con la suposición previa de que uno nunca necesitaría codificar luminancias de escena por encima de 10.000 nit (o al menos no renderizar por encima de 10.000 nit), ya que siempre pueden procesarse objetos más brillantes como el sol mediante un recorte (suave) dentro de ese rango.
Podemos definir como una realización ejemplar a partir de esto un rango de referencia que se define siempre a un máximo de 5.000 nits (las pantallas más brillantes entonces solo (inteligentemente) aumentarán este valor codificado a su brillo máximo de, por ejemplo, 7.000 nit. El lector experto, por supuesto, entiende que aunque enseñamos realizaciones con un nivel de referencia blanco de 5.000 nits, podemos aplicar nuestras enseñanzas de manera similar en un códec que atiende, por ejemplo, a un rango de luminancia de referencia de 15.000 nit para que sea codificable de manera estándar.
El PQ se ha definido en un rango de 0...10.000 cd/m2, pero por ejemplo solo usamos la parte de 0..5.000 cd/m2 en nuestros experimentos (y normalizamos los rangos de entrada y salida para ese rango limitado a 0..1).
Para hacer esto, en la conversión de Lineal a Logarítmica multiplicamos el rango de entrada 0..1 por 10.000 (y luego usamos solo el rango de entrada 0..5.000) y luego normalizamos la salida al rango 0..1 nuevamente dividiendo la salida de la función doPQ() por doPQ(5.000). En la conversión Logarítmica a Lineal, necesitamos escalar el rango de entrada primero multiplicándolo por doPQ(5.000) y luego dividir la salida de doPQinv() por 5.000 para normalizar el rango de salida también a 0..1
/* Lineal a Logarítmica */
static double doPQ(double Y)
{
double L = 10.000;/* el rango es 0..10.000 nit * /
double m = 78.8438;
double n = 0,1593;
double c1 = 0,8359;
double c2 = 18,8516;
double c3 = 18,6875;
double V,yln;
yln = pow (Y*(1/L), n);
V = pow((c2*yln c1)/(c3*yln 1),m);
return V; }
/* Logarítmica en lineal */
static double doPQinv(double V)
{
double L = 10.000;/* el rango es 0..10.000 nit * /
double m = 78,8438;
double n = 0,1593;
double c1 = 0,8359;
double c2 = 18,8516;
double c3 = 18,6875;
double Y, vlm;
if (V> 0)
{
v1m = pow(V, 1/m);
Y = L * pow((vlm - c1)/(c2 - c3*v1m),1/n); }
else
{
Y=0;
}
return Y; }
El valor gamma de mejor rendimiento que encontramos es de alrededor de 1,25, como se muestra en ¡Error! Fuente de referencia no encontrada. Figura 10. Los bloques de construcción PQ en la Figura 10 son las curvas que operan en el rango de 0..5.000 cd/m2, como se mencionó anteriormente.
Si bien las curvas presentadas anteriormente eran combinaciones de dos bloques de construcción, generalmente encontramos mejores curvas, es decir, curvas con artefactos de cuantificación perceptibles más pequeños, usando combinaciones de tres bloques de construcción. Por ejemplo, la Figura 11 muestra una curva construida a partir de dos bloques de construcción sRGB y un bloque gamma. La Figura 12 muestra un diseño similar usando dos bloques de construcción Rec.709 y un bloque gamma.
Para proporcionar una visión general rápida y una comparación de las curvas presentadas, se han trazado juntas en la Figura 13. El eje horizontal representa el dominio logarítmico/LDR, normalizado al rango 0..1. El eje vertical representa el dominio lineal/HDR, normalizado al rango 0..1, donde el valor de 1 corresponde a un brillo máximo de 5.000 cd/m2 en este caso. Para una visibilidad más clara de los valores lineales más pequeños, el log2() del valor se traza en lugar del valor real.
Otros ejemplos de curvas adecuadas se ilustran en las Figuras 14-16. En los ejemplos, los mapeos se demuestran con referencias a las funciones de mapeo de código, es decir, se muestra el mapeo de códigos de luminiscencia a valores de luminancia lineal.
Estos ejemplos se basan en una función parcial denominada LC (a) que se da como:
v —d
1 0 ~ — b
x — - --------------a
donde x es el valor de salida, normalizado al rango 0..1 y v es el valor de entrada, normalizado al rango 0..1. Los valores a, b, c y d son parámetros de diseño que pueden seleccionarse para proporcionar el mapeo deseado.
Ahora describiremos cómo la definición de curva de dos partes puede usarse de manera muy útil en la gradación de color, especialmente en la adaptación de las herramientas de gradación de filosofía LDR existentes a un marco HDR. En este marco, combinamos el software clásico LDR con un monitor HDR, y usamos nuestras matemáticas aquí enseñadas para convertirlo en un flujo de trabajo HDR. Podemos utilizar, por ejemplo, Adobe After Effects [8] (por supuesto, pueden hacerse implementaciones similares utilizando diferentes herramientas de gradación de color, como Da Vinci, etc.).
El diagrama de bloques de la aplicación de una curva (similar a la construcción mostrada en la Figura 8) se muestra en la Figura 17¡Error! Fuente de referencia no encontrada.. Lo que es especial aquí es que, en lugar de aplicar el código completo que mapea la curva de la función de transferencia electroóptica a los datos antes y después de que se use en la herramienta de gradación de color, solo aplicamos la primera parte de la definición EOTF (es decir, solo el bloque de construcción gamma) en la ruta de gradación de color, que produce una imagen pretratada de manera óptima que cambió las estadísticas, que sin embargo mapea las estadísticas HDR de manera óptima a las propiedades internas de las herramientas de gradación, en particular el rango de herramientas de luminiscencia, como por ejemplo una herramienta de doblado de curva de luminiscencia para cambiar la claridad de diferentes objetos en la imagen, ya sea global o localmente.
La razón de esto es que algunas de las herramientas de gradación de color convierten internamente los datos al dominio lineal (suponiendo, por ejemplo, una gamma cercana a 2,2) para su procesamiento, de modo que las herramientas pueden hacer, por ejemplo, un mejor procesamiento de saturación en un espacio de luz lineal. Al aplicar solo una parte de la curva logarítmica HDR total a los datos de imagen/video ingresados, estas herramientas continuarán funcionando correctamente de manera sustancial.
En la ruta de vista previa en tiempo real, es decir, la ruta que pasa a través de un conector estándar (por ejemplo, HDMI, etc.) a la pantalla HDR (nótese bien, que puede haber una conducción patentada adicional de la pantalla HDR involucrada que hace un mapeo adicional en los datos de píxeles de video para convertirlos en códigos de transferencia o códigos de conducción, etc., pero nos centramos aquí en la codificación HDR genérica, por ejemplo, cómo los códigos de video con grado de maestría HDR podrían escribirse en un disco BD), por supuesto, debemos usar la curva completa para limitar los artefactos de cuantificación sobre la interfaz, por lo que después de la salida de gradación agregamos el bloque de construcción sRGB adicional. A largo plazo, cuando la gradación de color HDR esté bien establecida y las curvas logarítmicas estén estandarizadas, estas curvas estandarizadas se implementarán, por supuesto, también en las herramientas de gradación de color, de modo que ya no será necesaria la división especial de la curva.
Entonces, un flujo de trabajo HDR estándar/"teórico" sería (si tomamos como una aproximación esquemática de 1 parte EOTF de la raíz cuadrada sqrt):
[linealizar sqrt(sqrt)_codificado HDR "LDR-ed"] o comenzar desde HDR maestro capturado por cámara lineal—» grado de maestría en codificación lineal de luz — codificación sqrt(sqrt) para almacenamiento o transmisión HDR a través de conexión de cable de capacidad clásica, o inalámbrico (es decir, se permite suficiente cuantificación para las partes oscuras con este procedimiento, y no se perderá la gradación fina) — la pantalla realiza potenciaA2*2 para renderizar aproximadamente de forma lineal la escena original capturada por la cámara/luz gradada nuevamente.
Ahora para la gradación HDR dividimos eso en:
La gamma extra requerida puede verse como una precompensación, y cargamos esa imagen linealizada "LDR" (pero cambiada estadísticamente en comparación tanto con la luz lineal HDR real, como con la codificación para almacenamiento o transmisión) en el conjunto de gradaciones antes de comenzar a gradar. La ventaja es que tenemos un control mucho mejor sobre nuestra gradación (con las herramientas de gradación existentes y su precisión), porque en esta pseudoimagen las regiones oscuras no se agrupan en un par de códigos oscuros que el gradador difícilmente puede procesar (si por ejemplo, trata de doblar un poco su curva de cambio de luminancia en las sombras, las luminiscencias ya cambian mucho), pero se extiende en una parte significativa sobre el rango total disponible, para que podamos gradarlas con precisión también. Más tarde, todo se corrige en sentido contrario, de modo que esas sombras terminan en sus posiciones de luminancia de representación de luz lineal requeridas cuando se visualizan:
HDR maestro lineal como entrada — primer preproceso_sqrt — gradado en esta "pseudoimagen" optimizada — hacer el segundo sqrt para almacenamiento o transmisión por cable — la pantalla recupera potenciaA4 nuevamente.
Lo que se transmite o almacena como una señal de video puede tener la asignación de código utilizada definida, por ejemplo, de las siguientes maneras: dos funciones gamma persiguen (pero una también podría, y típicamente la función de referencia/estándar se asigna solo a un indicador de tipo como 1=sRGB, 2=709, etc., y luego codificamos solo la función gamma de bloque diferencial/segunda, es decir, típicamente solo al menos una potencia gamma y tal vez compensación y ganancia), pero también se podría codificar (por ejemplo, como función, LUT, o la función gamma final aproximada con una gamma resultante [no necesariamente el producto de las dos gammas, debido al desplazamiento de oscuridad] y desplazamiento y ganancia, que en gran medida sigue nuestra curva de doble bloque propuesta), una función de asignación de código total (siendo la aplicación sucesiva de todos los bloques parciales).
El enfoque puede aplicarse como una herramienta para crear mejores curvas de asignación de código HDR que pueden aplicarse, por ejemplo,
1. gradación de color (como se describió en detalle anteriormente).
2. señales de mapeo de tonos entre diferentes rangos dinámicos (el rango dinámico de los datos logarítmicos es más bajo que el de los datos lineales si se aplicara directamente para el renderizado, ya que habrá pocos píxeles con códigos muy oscuros, de modo que los detalles más relevantes pueden visualizarse en una pantalla con un menor brillo máximo), por ejemplo, mapeo de tonos automático o semiautomático.
3. almacenamiento/transmisión HDR eficiente (los códecs de video actuales funcionan con una representación de datos enteros utilizando 8, 10 o 12 bits por muestra de datos de imagen/video. Las curvas construidas pueden aplicarse para codificar los datos HDR en un formato entero con una mínimo pérdida de calidad visual).
La persona experta entiende que pueden existir combinaciones de lo que enseñamos, y donde lo que hemos dicho en un párrafo también es relevante para otras realizaciones. Se supone que ninguno de los meros ejemplos es limitativo, ni es una redacción particular si no se pretende claramente que sea limitativa. Todas las funciones de los procedimientos pueden realizarse de manera similar a las construcciones de aparatos, y viceversa.
Apéndice: definiciones de curva de bloques de construcción
Este apéndice describe los bloques de construcción individuales en detalle dando su implementación en código ANSI C. Todas las entradas y salidas asumen un rango normalizado de 0..1.
Los bloques de construcción sRGB se derivan de la especificación sRGB (IEC 61966-2-1:1999). La curva J.sRGB se define en la Tabla 1 y la curva fsRGB inversa se define en la Tabla 2.
Los bloques de construcción Rec.709 se derivan de la recomendación UIT-R BT.709-5. La curva J.Rec.709 se define en la Tabla 3 y la curva TRec.709 se define en la Tabla 4.
Los bloques de construcción gamma (con el parámetro y) son una función de potencia simple, con Y<1 para la dirección hacia abajo y Y>1 para la dirección hacia arriba. Los bloques de construcción I y y TY se definen así en la Tabla 5.
Figure imgf000019_0001
Tabla 1. Definición de la curva J.sRGB.
Figure imgf000019_0002
Tabla 2. Definición de la curva T sRGB
Figure imgf000020_0001
Tabla 3. Definición de la curva J.Rec.709.
Figure imgf000020_0002
Tabla 4. Definición de la curva |Rec.709.
Figure imgf000020_0003
Tabla 5. Definición de la curva gamma.
Referencias
[1] "Color grading," Wikipedia, la enciclopedia libre, [en línea]. Disponible: http://en.wikipedia.org/wiki/Color_grading.
[Consultado el 07082012].
[2] "Post-production," Wikipedia, la enciclopedia libre, [en línea]. Disponible: http://en.wikipedia.org/wiki/Post_production. [Consultado el 26062013].
[3] "High-dynamic-range imaging," Wikipedia, la enciclopedia libre, [en línea]. Disponible: http://en.wikipedia.org/wiki/High-dynamic-range_imaging. [Consultado el 27062013].
[4] "sRGB, "Wikipedia, la enciclopedia libre, [en línea]. Disponible: http://en.wikipedia.org/wiki/SRGB. [Consultado el 10082012].
[5] "Rec. 709," Wikipedia, la enciclopedia libre, [en línea]. Disponible: http://en.wikipedia.org/wiki/Rec._709.
[Consultado el 10082012].
[6] R. Hunt, The Reproduction of Colour, Sexta ed., Wiley, 2006.
[7] S. Miller, M. Nezamabadi y S. Daly, "Perceptual Signal Coding for More Efficient Usage of Bit Codes" , en SMPTE Annual Technical Conference & Exhibition, Hollywood, CA, 2012.
[8] "Adobe After Effects," Wikipedia, la enciclopedia libre, [en línea]. Disponible: http://en.wikipedia.org/wiki/Adobe_After_Effects. [Consultado el 28062013].

Claims (8)

REIVINDICACIONES
1. Un procedimiento para codificar una imagen que comprende los pasos de:
- recibir una imagen de entrada de alto rango dinámico que comprende píxeles que tienen luminancias lineales; - construir una función de asignación de código (107) para mapear una luminancia de un píxel a un valor de código de luminiscencia;
- mapear las luminancias de píxel con los valores de código de luminiscencia de píxel que codifican estas luminancias utilizando la función de asignación de código generando los valores de código de luminiscencia de píxel correspondientes a las luminancias de píxeles en la imagen de alto rango dinámico de entrada aplicando la función de asignación de código (107), y
almacenar para los píxeles los valores del código de luminiscencia en una señal de imagen para transmisión o almacenamiento; en el que la función de asignación de código (107) que mapea una luminancia lineal de un píxel a un valor de código de luminiscencia se construye a partir de al menos dos funciones parciales (111, 113): - una primera función parcial (111) de las al menos dos funciones parciales (111, 113), la primera función parcial (111) define un mapeo invertible no lineal de un rango completo de luminancia de un valor de entrada de luminancia lineal a un rango de luminiscencia completa de un primer valor de código de luminiscencia de salida, y
- una segunda función parcial (113) de las al menos dos funciones parciales (111, 113), la segunda función parcial mapea un primer valor de código de luminiscencia de salida de la primera función parcial (111) de las al menos dos funciones parciales (111, 113) a un segundo valor de código de luminiscencia de salida, y la segunda función parcial (113) que define un mapeo invertible no lineal de un rango de luminiscencia completo de un valor de código de luminiscencia de entrada que es el primer valor de código de luminiscencia de salida a un rango de luminiscencia completo del segundo valor de salida de código de luminiscencia, en el que la función de asignación de código define un mapeo no lineal de luminancias lineales a valores de código de luminiscencia en la que el procedimiento comprende almacenar en la señal de imagen para datos de control de transmisión o almacenamiento que definen la primera función parcial y la segunda función parcial, y en la que el procedimiento utiliza como una de las al menos dos funciones parciales (111, 113):
- una curva gamma no lineal de acuerdo con la especificación sRGB;
- una curva gamma no lineal de acuerdo con la especificación ITU-R BT.709-5;
- una función de cuantificador perceptual Dolby; o
- una función definida como:
Figure imgf000022_0001
donde Y es un valor de luminiscencia, V es un valor de entrada de luminancia lineal en el rango de [0;1], L es una constante que refleja un punto blanco, y m, n, c1, c2 y c3 son parámetros de diseño; o
- una función definida como:
Figure imgf000022_0002
donde x es el valor de salida en el rango de [0;1], v es el valor de entrada en el rango de [0;1], y los valores a, b, c y d son parámetros de diseño.
2. Un procedimiento para codificar una imagen como se reivindica en la reivindicación 1 en el que la otra de las al menos dos funciones parciales (111, 113) es una función de mapeo de tonos predeterminada.
3. El procedimiento para codificar una imagen como se reivindica en la reivindicación 1, en el que los datos de control comprenden uno o más parámetros de las funciones parciales.
4. El procedimiento para codificar una imagen como se reivindica en la reivindicación 1, en el que la otra de las al menos dos funciones parciales (111, 113) es una función gamma.
5. Un codificador de imagen adaptado para realizar el procedimiento de cualquiera de las reivindicaciones 1 a 4.
6. Un procedimiento para decodificar una imagen de alto rango dinámico de una señal de imagen recibida que comprende los pasos de:
- recibir la señal de imagen que comprende píxeles que tienen valores de código de luminiscencia;
- recibir datos de control de la señal de imagen recibida, en el que dichos datos de control definen una primera función parcial y una segunda función parcial;
- determinar al menos dos funciones parciales inversas para la función de mapeo de código (203) en base a los datos de control;
- construir una función de mapeo de código (203) para mapear valores de código de luminiscencia a valores de luminancia lineal, en el que las construcciones se basan en al menos dos funciones parciales inversas (111, 113); y
- mapear los valores del código de luminiscencia en valores de luminancia lineal de la imagen de alto rango dinámico aplicando la función de mapeo de código (203); en la que
la función de mapeo de código define un mapeo no lineal de valores de código de luminiscencia a luminancias lineales de píxeles y se compone de las siguientes funciones parciales inversas:
una primera función parcial (111) de las al menos dos funciones parciales (111, 113), la primera función parcial (111) que define un mapeo invertible no lineal de un rango de luminiscencia completo de un valor de código de luminiscencia de entrada a un rango de luminiscencia completo de un valor de salida del código de luminiscencia; y
una segunda función parcial (113) de las al menos dos funciones parciales (111, 113), la segunda función parcial (113) mapea el valor del código de luminiscencia de salida que se emite desde la primera función parcial (111) de las al menos dos funciones parciales (111, 113) a un valor de luminancia lineal, y la segunda función parcial que define un mapeo invertible no lineal de un rango de luminiscencia completo de un valor de código de entrada de luminiscencia que es el valor del código de luminiscencia de salida a un rango de luminancia completo de un valor de luminancia lineal de píxeles, y en la que una de al menos dos funciones parciales (111, 113) es:
- una curva gamma no lineal de acuerdo con la especificación sRGB;
- una curva gamma no lineal de acuerdo con la especificación ITU-R BT.709-5;
- una función de cuantificador perceptual Dolby; o
- una función definida como:
Figure imgf000023_0001
donde Y es un valor de luminiscencia, V es un valor de entrada de luminancia lineal en el rango de [0;1], L es una constante que refleja un punto blanco, y m, n, c1, c2 y c3 son parámetros de diseño; o
- una función definida como:
v-d
10 T - h
x ---------------a
donde x es el valor de salida en el rango de [0;1], v es el valor de entrada en el rango de [0;1], y los valores a, b, c y d son parámetros de diseño.
7. Un procedimiento para decodificar una imagen de alto rango dinámico como se reivindica en la reivindicación 6 que comprende recibir uno o más parámetros de las funciones parciales comprendidas en los datos de control.
8. Un decodificador de imagen dispuesto para determinar una función de mapeo de código y para decodificar píxeles de imagen de alto rango dinámico mapeando valores de código de luminiscencia a luminancias lineales de píxeles, comprendiendo el decodificador de imagen:
- medios para recibir (201) una señal de imagen que comprende los valores del código de luminiscencia y los datos de control que definen una primera función parcial y una segunda función parcial; comprendiendo además el decodificador de imagen:
- un primer determinante (209) para determinar a partir de los datos de control en la señal de imagen recibida al menos dos funciones parciales inversas (111, 113);
- un segundo determinante (211) para determinar una función de mapeo de código basada en al menos dos funciones parciales inversas (111, 113); y
- medios para mapear los valores del código de luminiscencia a valores de luminancia lineal de la imagen de alto rango dinámico aplicando la función de mapeo de código; en la que
la función de mapeo de código define un mapeo no lineal de valores de código de luminiscencia a luminancias lineales de píxeles que se define a partir de las siguientes dos funciones parciales (111, 113):
- una primera función parcial (111) de las al menos dos funciones parciales inversas (111, 113), la primera función parcial (111) que define un mapeo invertible no lineal de un rango de luminiscencia completo de un valor de código de luminiscencia de entrada a todo un rango de luminiscencia de un valor de código de luminiscencia de salida; y
- una segunda función parcial (113) de las al menos dos funciones parciales (111, 113), la segunda función parcial (113) mapea un valor de luminiscencia que se emite desde la primera función parcial de las al menos dos funciones parciales a un valor de luminancia lineal, y la segunda función parcial (113) que define un mapeo invertible no lineal de un rango de luminiscencia completo de un valor de código de entrada de luminiscencia que es el valor del código de luminiscencia de salida a un rango de luminancia completo de un valor de luminancia lineal de píxeles, en el que uno de al menos dos funciones parciales (111, 113) son:
- una función gamma;
- una curva gamma no lineal de acuerdo con la especificación sRGB;
- una curva gamma no lineal de acuerdo con la especificación ITU-R BT.709-5;
- una función de cuantificador perceptual Dolby; o
- una función definida como:
Figure imgf000024_0001
donde Y es un valor de luminiscencia, V es un valor de entrada de luminancia lineal en el rango de [0;1], L es una constante que refleja un punto blanco, y m, n, c1, c2 y c3 son parámetros de diseño; o
- una función definida como:
Figure imgf000024_0002
donde x es el valor de salida en el rango de [0;1], v es el valor de entrada en el rango de [0;1], y los valores a, b, c y d son parámetros de diseño.
ES14736345T 2013-07-16 2014-07-01 Procedimiento y aparato para crear una función EOTF para un mapeo de código universal para una imagen HDR Active ES2769593T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP13176612 2013-07-16
PCT/EP2014/063890 WO2015007510A1 (en) 2013-07-16 2014-07-01 Method and apparatus to create an eotf function for a universal code mapping for an hdr image, method and process to use these images

Publications (1)

Publication Number Publication Date
ES2769593T3 true ES2769593T3 (es) 2020-06-26

Family

ID=48790268

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14736345T Active ES2769593T3 (es) 2013-07-16 2014-07-01 Procedimiento y aparato para crear una función EOTF para un mapeo de código universal para una imagen HDR

Country Status (7)

Country Link
US (2) US10218917B2 (es)
EP (1) EP3022902B1 (es)
JP (1) JP6563915B2 (es)
CN (1) CN105379260B (es)
ES (1) ES2769593T3 (es)
PL (1) PL3022902T3 (es)
WO (1) WO2015007510A1 (es)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10218917B2 (en) * 2013-07-16 2019-02-26 Koninklijke Philips N.V. Method and apparatus to create an EOTF function for a universal code mapping for an HDR image, method and process to use these images
EP3022895B1 (en) 2013-07-18 2019-03-13 Koninklijke Philips N.V. Methods and apparatuses for creating code mapping functions for encoding an hdr image, and methods and apparatuses for use of such encoded images
EP3157243B1 (en) * 2014-06-10 2024-07-03 Panasonic Intellectual Property Management Co., Ltd. Conversion method and conversion device
CN110460745B (zh) * 2014-06-10 2022-03-08 松下知识产权经营株式会社 显示装置
EP3163894B1 (en) * 2014-06-27 2020-08-19 Panasonic Intellectual Property Management Co., Ltd. Data output device, data output method, and data generation method
CN107431825A (zh) 2015-01-27 2017-12-01 汤姆逊许可公司 用于图像和视频的电光和光电转换的方法、系统和装置
JP6731722B2 (ja) * 2015-05-12 2020-07-29 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 表示方法および表示装置
US20180167597A1 (en) * 2015-05-29 2018-06-14 Thomson Licensing Methods, apparatus, and systems for hdr tone mapping operator
US10283032B2 (en) 2015-10-07 2019-05-07 Samsung Display Co., Ltd. Integrated circuit for nonlinear data encoding
JP6990179B2 (ja) 2015-10-28 2022-01-12 インターデジタル ヴイシー ホールディングス, インコーポレイテッド 共通の情報データセットによって駆動される候補プロセスセットから、ビデオデータに適用されるプロセスを選択するための方法及び装置
EP3214600B1 (en) * 2016-03-04 2019-02-06 Aptiv Technologies Limited Method for processing high dynamic range (hdr) data from a nonlinear camera
CN106101679B (zh) * 2016-08-23 2018-01-12 青岛海信电器股份有限公司 高动态范围信号的处理方法及处理系统
JP7054851B2 (ja) 2016-09-09 2022-04-15 パナソニックIpマネジメント株式会社 表示装置および信号処理方法
EP3511928B1 (en) * 2016-09-09 2022-01-12 Panasonic Intellectual Property Management Co., Ltd. Display device and signal processing method
US9883112B1 (en) * 2016-09-22 2018-01-30 Pinnacle Imaging Corporation High dynamic range imaging
CN109923580B (zh) * 2016-11-04 2023-12-15 特利丹菲力尔有限责任公司 用于热视频的动态范围压缩
CN106792178B (zh) * 2016-12-28 2020-01-14 深圳Tcl数字技术有限公司 电视机播放控制方法和装置
EP3559901B1 (en) * 2017-02-15 2020-08-05 Dolby Laboratories Licensing Corporation Tone curve mapping for high dynamic range images
CN107197235B (zh) * 2017-06-26 2018-10-12 杭州当虹科技股份有限公司 一种hdr视频预处理方法
JP6846307B2 (ja) * 2017-07-31 2021-03-24 日本放送協会 輝度調整用信号生成装置およびそのプログラム、ならびに、映像表示装置
US10778978B2 (en) * 2017-08-21 2020-09-15 Qualcomm Incorporated System and method of cross-component dynamic range adjustment (CC-DRA) in video coding
KR101941231B1 (ko) * 2017-10-31 2019-01-22 주식회사 한글과컴퓨터 색상 수정·보정방법 및 이를 이용하는 색상 수정·보정장치
US20200045341A1 (en) * 2018-07-31 2020-02-06 Ati Technologies Ulc Effective electro-optical transfer function encoding for limited luminance range displays
EP3664017B1 (en) * 2018-12-06 2022-03-02 Robert Bosch GmbH Method and device for digital image or video data processing
EP3764346A1 (en) * 2019-07-09 2021-01-13 Koninklijke Philips N.V. Adjustment of display optimization behaviour for hdr images
KR20210059466A (ko) 2019-11-15 2021-05-25 삼성전자주식회사 영상 제공 장치 및 이에 의한 영상 제공 방법, 및 디스플레이 장치 및 이에 의한 디스플레이 방법
EP4070555A4 (en) * 2019-12-05 2023-01-25 Alibaba Group Holding Limited METHOD AND DEVICE FOR CHROMA SCANNING
KR20230003002A (ko) * 2020-04-28 2023-01-05 돌비 레버러토리즈 라이쎈싱 코오포레이션 Hdr 디스플레이들을 위한 이미지 의존적 콘트라스트 및 밝기 제어
EP4068197A1 (en) * 2021-03-30 2022-10-05 Beijing Xiaomi Mobile Software Co., Ltd. Method for image processing
CN114286172B (zh) * 2021-08-23 2024-04-09 腾讯科技(深圳)有限公司 数据处理方法及装置
CN116805992B (zh) * 2022-03-15 2024-04-19 荣耀终端有限公司 生成对数曲线的方法、设备和存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8218625B2 (en) 2004-04-23 2012-07-10 Dolby Laboratories Licensing Corporation Encoding, decoding and representing high dynamic range images
WO2007119539A1 (ja) * 2006-03-31 2007-10-25 Kyushu Institute Of Technology アドレス生成器
DE602006020361D1 (de) * 2006-11-24 2011-04-07 Bosch Gmbh Robert Prozess, vorrichtung und computerprogramm zur verbesserung der detailsichtbarkeit in einem eingangsbild
TWI559779B (zh) * 2010-08-25 2016-11-21 杜比實驗室特許公司 擴展影像動態範圍
CN106204474B (zh) * 2011-03-02 2019-05-03 杜比实验室特许公司 局部多等级色调映射运算器
TWI538473B (zh) * 2011-03-15 2016-06-11 杜比實驗室特許公司 影像資料轉換的方法與設備
WO2012127401A1 (en) * 2011-03-24 2012-09-27 Koninklijke Philips Electronics N.V. Apparatuses and methods for analyzing image gradings
US8334911B2 (en) 2011-04-15 2012-12-18 Dolby Laboratories Licensing Corporation Encoding, decoding, and representing high dynamic range images
TWI580275B (zh) * 2011-04-15 2017-04-21 杜比實驗室特許公司 高動態範圍影像的編碼、解碼及表示
RU2616158C2 (ru) 2011-04-28 2017-04-12 Конинклейке Филипс Н.В. Устройства и способы для кодирования и декодирования hdr-изображений
CA3114448C (en) 2011-12-06 2023-06-27 Dolby Laboratories Licensing Corporation Device and method of improving the perceptual luminance nonlinearity - based image data exchange across different display capabilities
US10218917B2 (en) * 2013-07-16 2019-02-26 Koninklijke Philips N.V. Method and apparatus to create an EOTF function for a universal code mapping for an HDR image, method and process to use these images

Also Published As

Publication number Publication date
US10218917B2 (en) 2019-02-26
US10419689B2 (en) 2019-09-17
JP2016533072A (ja) 2016-10-20
PL3022902T3 (pl) 2020-06-29
EP3022902B1 (en) 2019-11-20
US20160150145A1 (en) 2016-05-26
EP3022902A1 (en) 2016-05-25
WO2015007510A1 (en) 2015-01-22
CN105379260B (zh) 2019-11-01
CN105379260A (zh) 2016-03-02
US20190098195A1 (en) 2019-03-28
JP6563915B2 (ja) 2019-08-21

Similar Documents

Publication Publication Date Title
ES2769593T3 (es) Procedimiento y aparato para crear una función EOTF para un mapeo de código universal para una imagen HDR
RU2728845C1 (ru) Устройство и способ улучшения обмена данными изображения на основе нелинейности восприятия яркости между разными возможностями отображения
ES2951773T3 (es) Codificación y decodificación de vídeos HDR
RU2670782C9 (ru) Способы и устройства для создания функций отображения кода для кодирования изображения hdr и способы и устройства для использования таких кодированных изображений
CN108605125B (zh) 对hdr视频进行编码和解码的方法及设备
US9451292B2 (en) Method and system for backward compatible, extended dynamic range encoding of video
JP5723008B2 (ja) 画像のダイナミックレンジの拡大
ES2703517T3 (es) Modulación de luz basada en la gestión de presentación global
JP2021193806A (ja) カラー・ピクチャを符号化および復号する方法および装置
US20180367778A1 (en) Method And Apparatus For Conversion Of HDR Signals
US11451756B2 (en) Gamut mapping for HDR (de)coding
JP2017512405A (ja) ビデオのための新たな色空間及びデコーダ
JP2018525883A (ja) カラー・ピクチャを符号化および復号する方法およびデバイス
US10798321B2 (en) Bit-depth efficient image processing
TW201639343A (zh) 在不同動態範圍之彩色圖像間用以匹配色彩之方法及裝置
US11006152B2 (en) Method and apparatus for encoding/decoding a high dynamic range picture into a coded bitstream
WO2019036522A1 (en) EFFICIENT IMAGE PROCESSING IN BIT DEPTH
JP6742417B2 (ja) デジタル画像の処理方法、付随する装置、端末機器およびコンピュータプログラム
CN116167950B (zh) 图像处理方法、装置、电子设备及存储介质
ES2728053T3 (es) Métodos y aparatos para crear funciones de mapeo de códigos para codificar una imagen HDR, y métodos y aparatos para el uso de tales imágenes codificadas