ES2925352T3 - Procesamiento previo y codificación de píxeles - Google Patents

Procesamiento previo y codificación de píxeles Download PDF

Info

Publication number
ES2925352T3
ES2925352T3 ES16749537T ES16749537T ES2925352T3 ES 2925352 T3 ES2925352 T3 ES 2925352T3 ES 16749537 T ES16749537 T ES 16749537T ES 16749537 T ES16749537 T ES 16749537T ES 2925352 T3 ES2925352 T3 ES 2925352T3
Authority
ES
Spain
Prior art keywords
color space
value
nonlinear
color
linear
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
ES16749537T
Other languages
English (en)
Inventor
Jacob Ström
Jonatan Samuelsson
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2925352T3 publication Critical patent/ES2925352T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/67Circuits for processing colour signals for matrixing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • 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/182Methods 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 pixel
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/643Hue control means, e.g. flesh tone control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/646Circuits for processing colour signals for image enhancement, e.g. vertical detail restoration, cross-colour elimination, contour correction, chrominance trapping filters

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Processing Of Color Television Signals (AREA)
  • Color Image Communication Systems (AREA)
  • Color Television Systems (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

Un procesamiento previo de píxeles comprende obtener un valor de componente de luminancia lineal original de un píxel en una imagen en un tercer espacio de color determinado en base a un color lineal del píxel en un primer espacio de color. Se deriva un valor de componente de luminancia no lineal en un segundo espacio de color para el píxel basado en un valor de componente de croma no lineal en el segundo espacio de color, un valor de componente de croma no lineal en el segundo espacio de color y el valor lineal original. valor del componente de luminancia en el tercer espacio de color. El preprocesamiento reduce los artefactos de luminancia que, de lo contrario, pueden ocurrir cuando se usa el submuestreo de crominancia en combinación con una función de transferencia no lineal. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Procesamiento previo y codificación de píxeles
Campo técnico
Las presentes realizaciones generalmente se relacionan con el procesamiento previo y la codificación de píxeles en una imagen y, en particular, con tal procesamiento previo y codificación que mejora los valores de luminancia de los píxeles.
Antecedentes
En una señal de video digital, cada muestra, es decir, componente de píxel, está representada por un valor entero o de coma flotante. Un visualizador, tal como una pantalla, un televisor o un monitor, que representa el video omite luces ópticas en base a los valores digitales de la señal de video. La función que traduce el valor digital V en luz óptica Y es la Función de Transferencia Electroóptica (EOTF). Tradicionalmente, la EOTF se ha expresado como una función exponencial denominada función gamma, donde la gamma y es el valor del exponente. Este es típicamente 2,4 (pero también pueden ser otros valores): Y = VY.
El uso de una función gamma funciona bien para señales de baja luminancia, pero cuando la luminancia supera los 100 nits (cd/m2) la función gamma no está bien alineada con la sensibilidad al contraste del sistema visual humano. Por lo tanto, se definen funciones de transferencia que son más no lineales, por ejemplo:
Figure imgf000002_0001
2610 1
n = 4 0 9 6 X r ° ' 15930175
2323
m = —— x 128 = 78,84375
4096
3424
Ci = c3 - c2 1 = = 0,8359375
2413
c¿ ¿ = - 4-0--9--6-x 32 = 18,8515625
2392
C? = 4096
Figure imgf000002_0002
18,6875
Lv = 10000
Figure imgf000002_0003
Esta función de transferencia es más no lineal que la función gamma en el sentido de que el valor máximo de su primera derivada en el rango de 0 a 1 es mayor que el de la función gamma.
El submuestreo de crominancia típicamente se hace antes de la compresión como un paso inicial para reducir la cantidad de datos. En 4:2:2 la señal de crominancia se reduce a la mitad de la resolución en la dirección vertical. En 4:2:0, la señal de crominancia se reduce a la mitad de la resolución tanto en dirección vertical como en dirección horizontal. Esto típicamente se hace con alguna operación de filtrado para obtener una señal de buena calidad, pero también se puede hacer usando el vecino más cercano.
Con el fin de mostrar un video 4:2:0 o 4:2:2, un decodificador realiza un muestreo ascendente de la señal de crominancia, lo que se puede hacer usando filtros bilineales o filtros más largos.
Sin embargo, una combinación de una función de transferencia altamente no lineal, submuestreo 4:2:0 o 4:2:2 y un orden de luminancia no constante da lugar a graves artefactos en los datos de video, en particular para colores saturados, es decir, colores cercanos al borde de la gama de colores.
Hay varias formas de sortear este problema. Una forma es no usar submuestreo 4:2:0 o 4:2:2, sino usar 4:4:4 en su lugar. Eso, sin embargo, es costoso, dado que 4:2:0 reduce a la mitad el número de bits antes de la compresión, mientras que 4:2:2 reduce el número de bits a dos tercios. Otra forma es no usar una función de transferencia altamente no lineal. Sin embargo, eso significa que es difícil representar el contenido de un brillo de pico muy alto sin tener bandas en las regiones oscuras. Una tercera forma es usar luminancia constante, es decir, aplicar la función de transferencia después de la conversión al espacio de color CIE1931 XYZ. Sin embargo, tal solución no está alineada con la práctica común dentro de la industria de la radiodifusión y, en algunos escenarios, podría ser difícil y costosa de realizar.
El documento US 2009/278982 describe un dispositivo de visualización de imágenes en color proporcionado para reproducir colores determinados por una señal de vídeo de entrada en un espacio de color del dispositivo de visualización mientras que se mantiene una amplia región de reproducción de color del dispositivo de visualización con matices naturales. Bajo la suposición de que un espacio de color se considere hipotéticamente de modo que una señal de entrada tenga originalmente un matiz en una primera gama de colores mientras se reproduce una saturación creciente con matices cambiados gradualmente a una dirección de reproducción de color cada vez más amplia en una segunda gama de colores, una parte de conversión de color del dispositivo de visualización convierte una señal de video, de modo que una señal de entrada de video se reproduzca en una parte de visualización de imágenes en color con un valor triestímulo representado en este espacio de color hipotético, y una parte de visualización de imágenes en color del dispositivo de visualización muestra y reproduce una imagen de vídeo vívida sin una sensación de error haciendo uso de una amplia gama de reproducción de color del dispositivo de visualización de imágenes en color.
El documento US 2013/156311 describe el procesamiento de una señal de imagen que utiliza una señal de luminancia y crominancia independientes para reducir una diafonía. Un aparato de codificación de señales de imagen y un aparato de decodificación de imágenes pueden realizar un muestreo descendente o un muestreo ascendente sobre la señal de crominancia. El aparato de codificación de señales de imagen y el aparato de decodificación de imágenes pueden aumentar la eficiencia de compresión de la señal de imagen de luminancia y crominancia independientes, aplicando diferentes parámetros de cuantificación y diferentes profundidades de bits a la señal de luminancia y la señal de crominancia, respectivamente.
El documento US 2010/208989 describe la transformación de un espacio de color de una imagen en color de un primer espacio de color a un segundo espacio de color para generar una imagen en color transformada de espacio de color, la eliminación de parte de las muestras incluidas en la imagen en color transformada de espacio de color para generar una imagen en color submuestreada, la codificación de la imagen en color submuestreada para generar una imagen en color codificada, la determinación de un coeficiente de muestreo ascendente utilizado para el muestreo ascendente, la determinación de un coeficiente de transformación inversa del espacio de color para transformar inversamente el espacio de color del segundo espacio de color al primer espacio de color y emitir la imagen en color codificada, el coeficiente de muestreo ascendente, y el coeficiente de transformada inversa del espacio de color.
Compendio
Es un objetivo general proporcionar un procesamiento previo de píxeles para combatir artefactos.
Estos y otros objetivos se cumplen por las realizaciones que se describen en la presente memoria.
La presente invención se define en las reivindicaciones independientes. Las realizaciones adicionales de la presente invención se definen en las reivindicaciones dependientes.
Las presentes realizaciones proporcionan un procesamiento previo y codificación de píxeles que combate los artefactos que de otro modo pueden ocurrir debido al uso de una función de transferencia no lineal en combinación con el submuestreo de crominancia. Subjetivamente, la mejora de la calidad en la luminancia es claramente visible incluso para video sin comprimir.
Breve descripción de los dibujos
Las realizaciones, junto con objetos y ventajas adicionales de las mismas, se pueden entender mejor haciendo referencia a la siguiente descripción tomada junto con los dibujos adjuntos, en los que:
la figura 1 es un diagrama de flujo que ilustra un método de procesamiento previo de un píxel según una realización;
la figura 2 es un diagrama de flujo que ilustra pasos adicionales del método mostrado en la figura 1 según una realización;
la figura 3 es un diagrama de flujo que ilustra pasos adicionales del método mostrado en la figura 1 según otra realización;
la figura 4 es un diagrama de flujo que ilustra pasos opcionales adicionales del método mostrado en la figura 3 según una realización;
la figura 5 es un diagrama de flujo que ilustra una realización de la implementación del paso de derivación de la figura 1;
la figura 6 es un diagrama de flujo que ilustra un paso opcional adicional del método mostrado en la figura 5 según una realización;
la figura 7 es un diagrama de flujo que ilustra un paso adicional del método mostrado en la figura 1 para formar un método de codificación de un píxel según una realización;
la figura 8 ilustra una tecnología para derivar una Y' corregida según una realización;
la figura 9 ilustra que se pueden usar diferentes linealizaciones en diferentes áreas;
la figura 10 es un diagrama de flujo que ilustra un método que se puede realizar en un codificador o en un proceso previo al codificador;
la figura 11 es una ilustración esquemática de una implementación de hardware de un dispositivo según las realizaciones;
la figura 12 es una ilustración esquemática de una implementación de un dispositivo según las realizaciones con un procesador y una memoria;
la figura 13 es una ilustración esquemática de un equipo de usuario según una realización;
la figura 14 es una ilustración esquemática de una implementación de un dispositivo según las realizaciones con módulos de función;
la figura 15 ilustra esquemáticamente una implementación distribuida de las realizaciones entre múltiples dispositivos de red;
la figura 16 es una ilustración esquemática de un ejemplo de un sistema de comunicación inalámbrica con uno o más dispositivos de red basados en la nube según una realización;
las figuras 17A-17C ilustran una imagen original 4:4:4 (figura 17A), una imagen que sigue el procesamiento tradicional 4:2:0 (figura 17B) y una imagen que sigue el procesamiento propuesto 4:2:0 (figura 17C) en el caso de no compresión sino solo muestreo descendente y muestreo ascendente;
las figuras 18A-18C ilustran una imagen original 4:4:4 (figura 18A), una imagen que sigue el procesamiento tradicional 4:2:0 (figura 18B) y una imagen que sigue el procesamiento propuesto 4:2:0 (figura 18C) en el caso de no compresión sino solo muestreo descendente y muestreo ascendente;
la figura 19 ilustra que la luminancia lineal, la Y en el espacio XYZ de CIE1931, es bastante diferente en la imagen original (parte inferior) y en la imagen procesada (parte superior);
la figura 20 ¡lustra una tecnología que cambiando el valor de Y1 en un píxel individual, es posible alcanzar una luminancia lineal Yque coincida con la luminancia lineal deseada Y;
la figura 21 ilustra la curva de Barten para la sensibilidad al contraste; y
la figura 22 ilustra una comparación entre las gamas de colores de los documentos Rec709 y BT.2020.
Descripción detallada
A lo largo de los dibujos, se utilizan los mismos números de referencia para elementos similares o correspondientes. Las presentes realizaciones generalmente se relacionan con el procesamiento previo y la codificación de píxeles en una imagen y, en particular, con dicho procesamiento previo y codificación que mejora los valores de luminancia de los píxeles.
Una cadena de compresión tradicional implica alimentar píxeles de luz lineal entrante, que típicamente oscilan entre 0 y 10000 cd/m2, a una función de transferencia inversa, que da como resultado nuevos valores de píxeles entre 0 y 1. Después de esto, los píxeles sufren una transformación de color que da como resultado un componente de luminancia y dos componentes de crominancia. Luego, los dos componentes de crominancia se submuestrean, tal como a 4:2:0 o 4:2:2. Después de la descompresión, las secuencias de 4:2:0 o 4:2:2 se muestrean ascendentemente a 4:4:4, se transforman en color inverso y, finalmente, una función de transferencia devuelve píxeles de luz lineal que se pueden emitir en un monitor.
Una combinación de una función de transferencia altamente no lineal, submuestreo de crominancia y ordenamiento de luminancia no constante da lugar a artefactos severos en los datos de video, en particular para colores saturados. El problema viene del hecho de que las componentes de crominancia están interpoladas, mientras que la componente de luminancia no lo está. Por lo tanto, puede haber un cambio brusco en la componente de luminancia en un píxel, pero las componentes de crominancia no pueden seguirla dado que están interpoladas. Para algunos colores, especialmente los colores saturados, el resultado es un píxel de intensidad completamente incorrecta, que es claramente visible como un artefacto.
El procesamiento previo de píxeles según las realizaciones se puede usar para combatir o al menos reducir el impacto de los artefactos, dando como resultado por ello un color que es más cercano al color "verdadero" entrante de un píxel.
Un espacio de color o formato de color es el tipo y número de colores que se originan a partir de las combinaciones de componentes de color de un modelo de color. Un modelo de color es una configuración abstracta que describe la forma en que los colores se pueden representar como tuplas de números, es decir, componentes de color. Las componentes de color tienen varias características distintivas, tales como el tipo de componente, por ejemplo, matiz y su unidad, por ejemplo, grados o porcentaje, o el tipo de escala, por ejemplo, lineal o no lineal, y su número previsto de valores a los que se hace referencia como la profundidad de color o profundidad de bits.
Los espacios de color no limitativos, pero ilustrativos, que se usan comúnmente para píxeles en imágenes y videos incluyen el espacio de color rojo, verde, azul (RGB), la luminancia, el azul de crominancia y el rojo de crominancia (YCbCr, algunas veces denotado espacio de color Y'CbCr, Y'Cb'Cr', YCbCr, Y'CbCr o Y'Cb'Cr') y el espacio de color de luminancia y crominancias (XYZ).
La figura 1 es un diagrama de flujo que ilustra un método de procesamiento previo de un píxel en una imagen. El método comprende obtener, en el paso S1, un valor de componente de luminancia lineal original del píxel en un tercer espacio de color determinado en base a un color lineal del píxel en un primer espacio de color. Luego, el método continúa con el paso S2, que comprende derivar un valor de componente de luminancia no lineal en un segundo espacio de color para el píxel en base a un primer valor de componente de crominancia no lineal en el segundo espacio de color, un segundo valor de componente de crominancia no lineal en el segundo espacio de color y el valor de la componente de luminancia lineal original en el tercer espacio de color.
El procesamiento previo de píxeles en la figura 1 emplea dos componentes de crominancia no lineales en el segundo espacio de color. Las dos componentes de crominancia no lineales en el segundo espacio de color podrían ser un primer valor de componente de crominancia no lineal submuestreado en el segundo espacio de color y un segundo valor de componente de crominancia no lineal submuestreado en el segundo espacio de color. En una realización particular, estas dos componentes de crominancia no lineales son las componentes Cb' y Cr'. Más preferiblemente, las componentes de crominancia no lineales son componentes Cb' y Cr' en el formato 4:2:0 o 4:2:2. En consecuencia, el segundo espacio de color es, en esta realización, el espacio de color YCbCr. El apóstrofe "'" se utiliza para indicar que las dos componentes de crominancia son componentes de crominancia no lineales.
En tal caso, el paso S2 de la figura 1 comprende preferiblemente derivar el valor de componente de luminancia no lineal en el segundo espacio de color en base a un primer valor de componente de crominancia no lineal submuestreado en el segundo espacio de color, un segundo valor de componente de crominancia no lineal submuestreado en el segundo espacio de color y el valor de componente de luminancia lineal original en el tercer espacio de color.
En una realización alternativa, los dos valores de componente de crominancia no lineal en el segundo espacio de color no necesariamente tienen que ser submuestreados, sino que podrían estar más bien en forma de valores de componente de crominancia no lineal no muestreados en el segundo espacio de color o valores de componente de crominancia no lineal muestreados ascendentemente en el segundo espacio de color. En este último caso, los valores de componente de crominancia no lineal muestreados ascendentemente se obtienen siguiendo el muestreo ascendente de los valores de componente de crominancia no lineal submuestreados en el segundo espacio de color. En esta realización alternativa, las componentes de crominancia no lineales son componentes Cb' y Cr' en el formato 4:4:4.
En una realización, el primer y segundo valores de componente de crominancia no lineal en el segundo espacio de color del píxel se obtienen en base al color lineal del píxel en el primer espacio de color. En una realización particular, este primer espacio de color lineal es el espacio de color RGB. En consecuencia, el color lineal del píxel en el primer espacio de color es, en esta realización particular, un color RGB del píxel.
En una realización, el tercer espacio de color mencionado anteriormente es el espacio de color XYZ. En consecuencia, la luminancia lineal del píxel en el tercer espacio de color es, en esta realización, una componente Y.
El procesamiento previo en la figura 1, por tanto, obtiene o proporciona un valor de componente de luminancia lineal original del píxel en el tercer espacio de color determinado en base a un color lineal del píxel en el primer espacio de color. Este valor de componente de luminancia lineal original refleja preferiblemente la luminancia verdadera del píxel, es decir, la luminancia original del píxel antes de cualquier transformación de color, aplicación de funciones de transferencia y submuestreo. Este valor de componente de luminancia lineal original se determina en base al color lineal del píxel en el primer espacio de color. En una realización, este color lineal del píxel en el primer espacio de color es el color entrante original del píxel. En una realización particular, este color entrante original se denota RoGoBo en la presente memoria y la componente de luminancia lineal original se denota Yo.
La luminancia lineal original es, por tanto, la luminancia objetivo que se podría calcular de muchas formas diferentes. Esta luminancia lineal original no necesariamente tiene que corresponder directamente a la luminancia real del sensor en la cámara que toma una imagen o graba un video o en el panel del visualizador.
El valor de componente de luminancia lineal original en el tercer espacio de color se podría obtener para la funcionalidad de procesamiento previo y codificación como un valor de componente de luminancia lineal original, preferiblemente un valor Yo, en una forma predeterminada o calculada previamente. Esto significa que ya ha tenido lugar la determinación del valor de componente de luminancia lineal original en base al color lineal en el primer espacio de color y solo el resultado de la determinación se proporciona a la funcionalidad de procesamiento previo y codificación.
En una realización alternativa, el procesamiento previo de las realizaciones comprende la determinación o el cálculo del valor de componente de luminancia lineal original. En tal realización, el paso S1 de la figura 1 comprende preferiblemente determinar el valor de componente de luminancia lineal original en el tercer espacio de color en base al color lineal en el primer espacio de color.
El valor de componente de luminancia no lineal en el segundo espacio de color se deriva luego para el píxel en el paso S2 en base al primer y segundo valores de componente de crominancia no lineal en el segundo espacio de color y el valor de componente de luminancia lineal original en el tercer espacio de color. Por lo tanto, en una realización, la componente de luminancia no lineal Y' en el espacio de color YCbCr es una función de las componentes Cb' y Cr' en el espacio de color YCbCr y la componente Yo en el espacio de color XYZ, es decir, Y' = f(Cb', Cr', Yo). La componente Yo se determina a su vez en base al color RoGoBo del píxel en el espacio de color RGB, es decir, Yo = g(Ro, Go, Bo). En consecuencia, Y' = f(Cb', Cr', g(Ro, Go, Bo)).
El píxel procesado previamente se representa luego mediante la componente de luminancia no lineal derivada (Y') y las dos componentes de crominancia no lineales submuestreadas (Cb', Cr') en el segundo espacio de color, es decir, Y'Cb'Cr'. Por tanto, la tupla Y'Cb'Cr' representa el color procesado previamente del píxel, preferiblemente en el formato 4:2:0 o 4:2:2, es decir, con las componentes de crominancia submuestreadas pero la componente de luminancia no submuestreada.
En una realización, el paso S2 de la figura 1 comprende derivar un valor de componente de luminancia no lineal en el segundo espacio de color que minimiza la diferencia entre el valor de componente de luminancia lineal original en el tercer espacio de color y un valor de componente de luminancia lineal en el tercer espacio de color determinado en base al valor de componente de luminancia no lineal en el segundo espacio de color, el primer valor de componente de crominancia no lineal en el segundo espacio de color y el segundo valor de componente de crominancia no lineal en el segundo espacio de color.
Por lo tanto, en esta realización, el paso S2 implica encontrar el valor de componente de luminancia no lineal (Y') en el segundo espacio de color (YCbCr) que minimiza la diferencia entre el valor de componente de luminancia lineal original (Yo) y el valor de componente de luminancia lineal (Y) en el tercer espacio de color (XYZ). Este valor de componente de luminancia lineal (Y) en el tercer espacio de color (XYZ) se obtiene a su vez en base al valor de componente de luminancia no lineal (Y') y los dos valores de componente de crominancia no lineal (Cb', Cr') en el segundo espacio de color (YCbCr).
Por tanto, esta realización implica encontrar el valor de componente Y' que minimiza la diferencia |Yo- Y| o (Yo- Y)2, donde Y = h(Y', Cb', Cr') y h( . ) define que Y se determina en base a Y', Cb' y Cr'.
En una realización alternativa pero relacionada, el paso S2 implica derivar un valor de componente de luminancia no lineal en el segundo espacio de color que minimiza la diferencia entre una función del valor de componente de luminancia original en el tercer espacio de color y una función de un valor de componente de luminancia lineal en el tercer espacio de color. Este valor de componente de luminancia lineal en el tercer espacio de color se determina en base al valor de componente de luminancia no lineal en el segundo espacio de color, el primer valor de componente de crominancia no lineal en el segundo espacio de color y el segundo valor de componente de crominancia no lineal en el segundo espacio de color.
Por tanto, esta realización implica encontrar el valor de componente Y' que minimiza la diferencia |k(Yo)-k(Y)| o (k(Yo) - k(Y))2, donde Y = h(Y', Cb', Cr').
La función (k( . )) es preferiblemente una función de transferencia inversa, tal como la inversa de la función de transferencia [1].
Los pasos S1 y S2 del método de la figura 1 se realizan para al menos un píxel de una imagen, tal como de una secuencia de vídeo. En una realización, los pasos S1 y S2 se realizan preferiblemente para múltiples, es decir, al menos dos, píxeles en las imágenes, lo que se indica esquemáticamente por la línea L1. En una realización particular, los pasos S1 y S2 se realizan para todos los píxeles de la imagen.
En otra realización particular, los pasos S1 y S2 se realizan para aquellos píxeles de la imagen que dan como resultado un artefacto visual como se describe anteriormente en este documento. Estos píxeles se podrían identificar comparando el valor de componente de luminancia lineal original (Yo) en el tercer espacio de color para el píxel con un valor de componente de luminancia lineal (Y) en el tercer espacio de color determinado para el píxel en base a los valores de componente de luminancia y crominancia no lineales (Y', Cb', Cr') en el segundo formato de color y donde estos valores de componente de luminancia y crominancia no lineales se derivan según la cadena de compresión típica sin ningún procesamiento previo según la invención. En esta última realización, el procesamiento previo de las realizaciones se aplica por lo tanto solo a aquellos píxeles de una imagen en los que la cadena de compresión típica da como resultado un error en la componente de luminancia.
Alternativamente, los píxeles en la imagen que dan como resultado artefactos visuales se podrían identificar comparando los valores de componentes Cb' y Cb y/o los valores de componentes Cr' y Cr, es decir, el valor de componente Cb' y/o Cr' muestreados ascendentemente con el correspondiente valor de componente Cb y/o Cr' obtenido aplicando la primera transformada de color al color R'G'B', donde R', G' y B' se obtienen aplicando la función de transferencia inversa a Ro, Go y Bo, respectivamente, del color original RoGoBo .
Una variante adicional es realizar los pasos S1 y S2 para aquellos píxeles que tienen colores saturados, es decir, colores en o cerca del borde de la gama.
La figura 2 es un diagrama de flujo que ilustra los pasos adicionales del método que se muestra en la figura 1. Los pasos de la figura 2 ilustran la cadena de procesamiento típica utilizada para derivar los valores de componente de crominancia no lineal submuestreado en el segundo espacio de color en base al color lineal en el primer espacio de color. El método comienza en el paso S10, que comprende aplicar una primera función de transferencia al color lineal en el primer espacio de color para obtener un color no lineal en el primer espacio de color. Un siguiente paso S11 comprende aplicar una primera transformación de color al color no lineal en el primer espacio de color para obtener un color no lineal en el segundo espacio de color. El color no lineal en el segundo espacio de color comprende un primer valor de componente de crominancia no lineal inicial y un segundo valor de componente de crominancia no lineal inicial. El siguiente paso S12 comprende el submuestreo del primer valor de componente de crominancia no lineal inicial en el segundo espacio de color y el segundo valor de componente de crominancia no lineal inicial en el segundo espacio de color para obtener el primer valor de componente de crominancia no lineal submuestreado en el segundo espacio de color y el segundo valor de componente de crominancia no lineal submuestreado en el segundo espacio de color. El método luego continúa con el paso S1 en la figura 1.
En una realización de la cadena de procesamiento típica de la figura 2, se aplica una primera función de transferencia, tal como la inversa de la función de transferencia [1], al color RoGoBo del píxel, es decir, el color original del píxel, para obtener un color R'G'B' no lineal en el espacio de color RGB. Luego, este color R'G'B' se transforma del espacio de color RGB al espacio de color YCbCr utilizando una primera transformación de color, como la transformación de color:
K= 0,299/? 0,5876 0,1145
Cb = -0,168736 R - 0,3312646 0,56
Cr = 0,5 R - 0,418688 G - 0,081312 B
El color Y'Cb'Cr' resultante del píxel después de la aplicación de la primera transformación de color en el paso S11 es un color Y'Cb'Cr' no comprimido, es decir, en el formato 4:4:4. El siguiente paso S12 submuestrea las dos componentes de crominancia Cb' y Cr' para obtener un color en el formato 4:2:0 o 4:2:2, es decir, con componentes de crominancia no lineales submuestreados Cb' y Cr'.
El submuestreo en el paso S12 se puede realizar según técnicas conocidas de submuestreo. Por ejemplo, se puede usar una operación de filtrado o una operación de vecino más cercano. Un ejemplo de técnica de submuestreo que se puede utilizar según las realizaciones se describe en la sección B.1.5.5 Submuestreo de crominancia de 4:4:4 a 4:2:0 en el documento [4].
La figura 3 es un diagrama de flujo que ilustra pasos adicionales del método mostrado en la figura 1. Estos pasos ilustran un procesamiento adicional con el fin de derivar un valor de componente de luminancia no lineal óptimo para un píxel en una imagen. El método continúa desde el paso S1 en la figura 1 o el paso S12 en la figura 2. El método continúa muestreando ascendentemente el primer valor de componente de crominancia no lineal submuestreado en el segundo espacio de color y el segundo valor de componente de crominancia no lineal submuestreado en el segundo espacio de color para obtener un primer valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color y un segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color en el paso S20. Un siguiente paso S21 comprende aplicar una segunda transformación de color a un valor de componente de luminancia no lineal candidato en el segundo espacio de color, el primer valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color y el segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color para obtener un color no lineal en el primer espacio de color. El siguiente paso S22 comprende aplicar una segunda función de transferencia al color no lineal en el segundo espacio de color para obtener un color lineal en el primer espacio de color. Finalmente, se aplica una tercera transformación de color en el paso S23 al color lineal en el primer espacio de color para obtener un valor de componente de luminancia lineal en el tercer espacio de color. Luego, el método continúa con el paso S2 en la figura 1, que comprende derivar el valor de componente de luminancia no lineal en base a una comparación del valor de componente de luminancia lineal original en el tercer espacio de color y el valor de componente de luminancia lineal en el tercer espacio de color.
Por tanto, en una realización, los valores de componentes Cb' y Cr' submuestreados en el formato 4:2:0 o 4:2:2 se muestrean ascendentemente primero al formato 4:4:4. El muestreo ascendente en el paso S20 se puede realizar según técnicas de muestreo ascendente conocidas. Por ejemplo, el muestreo ascendente se podría realizar utilizando filtros bilineales o más largos. En la sección B.1.5.6Muestreo ascendente de crominancia de 4:2:0 a 4:4:4 (dominio Y'CbCr) en el documento [4], se describe un ejemplo de técnica de muestreo ascendente que se puede utilizar según las realizaciones.
Estos dos valores de componente Cb' y Cr' muestreados ascendentemente se introducen luego junto con un valor de componente Y' candidato en una segunda transformación de color para obtener un color R'G'B' no lineal, tal como la transformación de color:
R ' = Y ' al3Cr !
G’ = Y - a 22 b ' - a 23 C r '
B' = Y a32Cb'
Para el espacio de color del documento Rec.709 a13 = 1,57480, a22 = 0,18732, a23 = 0,46812, a32 = 1,85560 y para el espacio de color BT.2020 a13 = 1,47460, a22 = 0,16455, a23 = 0,57135, a32 = 1,88140.
Generalmente, R', G' y B' pueden asumir valores dentro del intervalo [0, 1]. En consecuencia, la segunda transformación de color también puede incluir una operación de sujeción o recorte, tal como R = acortar(Y’ + a13Cr',0,1) para la componente R', en donde acortar(x, a, b) es igual a a si x<a e igual a b si x>b y de otro modo igual a x.
Este color R'G'B' luego se introduce en una segunda función de transferencia, tal como la función de transferencia [1], para obtener un color RGB lineal. Este color RGB luego se transforma del espacio de color RGB al espacio de color XYZ utilizando una tercera transformación de color, tal como la transformación de color:
X = 0,636958 R 0,1446176 0,1688815
r = 0,262700 R 0,677998 G 0,0593025
Z = 0,0000005 0.028073G 1,0609855
La salida del valor Y de componente de luminancia lineal de la tercera transformación de color se compara luego con el valor Yo de componente de luminancia lineal original del píxel en el paso S2.
En una realización, el paso S2 de la figura 1 comprende seleccionar un valor de componente de luminancia no lineal candidato en el segundo espacio de color que reduce la diferencia entre el valor de componente de luminancia lineal original en el tercer espacio de color y el valor de componente de luminancia lineal en el tercer espacio de color. Por tanto, el paso S2 preferiblemente comprende seleccionar un valor de componente de luminancia no lineal candidato en el segundo espacio de color que conduce a al menos una reducción en la diferencia entre el valor de componente de luminancia lineal original y el valor de componente de luminancia lineal obtenido en el paso S23. En una realización particular, el paso S2 comprende seleccionar un valor de componente de luminancia no lineal candidato en el segundo espacio de color que minimiza la diferencia entre el valor de componente de luminancia original y el valor de componente de luminancia lineal en el tercer espacio de color.
Esta diferencia se podría, como se mencionó anteriormente, representar como |Yo- Y| o (Yo- Y)2, en donde Y se obtiene en el paso S23 de la figura 3.
En una realización alternativa pero relacionada, el paso S2 implica seleccionar un valor de componente de luminancia no lineal candidato en el segundo espacio de color que reduce o, preferiblemente, minimiza una diferencia entre una función del valor de componente de luminancia original en el tercer espacio de color y una función del valor de componente de luminancia lineal en el tercer espacio de color, es decir, seleccionar el valor de componente Y' candidato que minimiza la diferencia |k(Yo) - k(Y)| o (k(Yo) - k(Y))2.
En una realización, los pasos S21 a S23 en la figura 3 se realizan para diferentes valores de componentes de luminancia no lineales candidatos en el segundo espacio de color, que se ilustra esquemáticamente por la línea L2. En tal caso, el paso S2 preferiblemente comprende seleccionar el valor de componente de luminancia no lineal candidato entre los diferentes valores de componentes de luminancia no lineales candidatos en el segundo espacio de color que da como resultado una diferencia más pequeña entre el valor de componente de luminancia lineal original en el tercer color y el valor de componente de luminancia lineal en el tercer espacio de color o una diferencia más pequeña entre una función del valor de componente de luminancia lineal original en el tercer espacio de color y una función del valor de componente de luminancia lineal en el tercer espacio de color.
Esto significa que el bucle de los pasos S21 a S23 se realiza múltiples veces y utilizando diferentes valores de componente Y' candidatos en el paso S21. El valor de componente Y' candidato que luego conduce a la diferencia más pequeña entre Yo e Y o entre k(Yo) y k(Y) se selecciona entonces y se utiliza junto con los valores de componentes Cb' y Cr' submuestreados como representación de color del píxel.
Las siguientes realizaciones se describen con más detalle con respecto a la diferencia entre el valor de componente de luminancia lineal original en el tercer espacio de color y el valor de componente de luminancia lineal en el tercer espacio de color. Estas realizaciones también abarcan una diferencia entre una función del valor de componente de luminancia lineal original en el tercer espacio de color y una función del valor de componente de luminancia lineal en el tercer espacio de color. La función es preferiblemente, como se mencionó anteriormente en la presente memoria, la inversa de una función de transferencia, tal como una inversa de la función de transferencia [1].
La selección del valor de componente Y' candidato óptimo entre múltiples valores de componente Y' candidatos se puede realizar según diversas realizaciones como se describe más adelante en la presente memoria.
Una primera realización implica realizar una búsqueda binaria. Por lo tanto, en esta realización el método comprende realizar una búsqueda binaria para seleccionar un valor de componente de luminancia no lineal candidato en el segundo espacio de color que minimiza la diferencia entre el valor de componente de luminancia lineal original en el tercer espacio de color y el valor de componente de luminancia lineal en el tercer espacio de color.
Una búsqueda binaria es una técnica eficiente que se puede utilizar para encontrar el valor de componente de luminancia no lineal candidato óptimo. Generalmente, un algoritmo de búsqueda binaria comienza comparando el valor de componente de luminancia original en el tercer espacio de color con el valor de componente de luminancia lineal en el tercer espacio de color obtenido usando el elemento medio de una matriz ordenada de posibles valores de componente de luminancia no lineal candidatos en el segundo espacio de color. Si el valor de componente de luminancia lineal en el tercer espacio de color es igual al valor de componente de luminancia original en el tercer espacio de color o difiere del valor de componente de luminancia original en el tercer espacio de color con no más de una cantidad definida, entonces se devuelve la posición del elemento intermedio y se termina la búsqueda. Si el valor de componente de luminancia lineal es mayor que el valor de componente de luminancia lineal original, entonces la búsqueda continúa en la mitad inferior de la matriz; o si el valor de componente de luminancia lineal es menor que el valor de componente de luminancia lineal original, entonces la búsqueda continúa en la mitad superior de la matriz. Este proceso continúa, eliminando la mitad de los elementos y comparando el valor de componente de luminancia lineal resultante con el valor de componente de luminancia lineal original, hasta que la diferencia entre los mismos sea cero o hasta que se haya buscado en toda la matriz, es decir, hasta que se hayan eliminado todos los elementos excepto uno. Esto se garantiza para tomar solamente log2(N) pasos, donde N es el número de posibles valores de componente de luminancia no lineal candidatos en la matriz. Por ejemplo, supongamos que los valores de componente de luminancia no lineal candidatos se pueden seleccionar de la matriz de [0, 1023]. Entonces N=1024 y log2(1024) = 10.
En una realización, la búsqueda binaria se realiza realizando los pasos S21 a S23 en la figura 3 para un valor de componente de luminancia no lineal candidato en el segundo espacio de color en medio de un intervalo de búsqueda. Luego, el método continúa con los pasos ilustrados en la figura 4. El siguiente paso S25 comprende seleccionar el valor de componente de luminancia no lineal candidato en el medio del intervalo de búsqueda si la diferencia entre el valor de componente de luminancia original en el tercer espacio de color y el valor de componente de luminancia lineal en el tercer espacio de color es igual a cero, preferiblemente como se calcula en el paso S24. De otro modo, es decir, si la diferencia calculada en el paso S24 no es igual a cero, el método continúa en el paso S26. Este paso S26 comprende seleccionar un intervalo de búsqueda que tenga la mitad del tamaño en comparación con el intervalo de búsqueda utilizado anteriormente y que finalice en el valor de componente de luminancia no lineal candidato utilizado anteriormente si el valor de componente de luminancia lineal en el tercer espacio de color es mayor que el valor de componente de luminancia lineal original en el tercer espacio de color o seleccionar un intervalo de búsqueda que tenga la mitad del tamaño en comparación con el intervalo de búsqueda utilizado anteriormente y comenzar en el valor de componente de luminancia no lineal candidato utilizado anteriormente si el valor de componente de luminancia lineal en el tercer espacio de color es menor que el valor de componente de luminancia lineal original en el tercer espacio de color.
Los pasos que implican el bucle L2, es decir, los pasos S21-S23 y S24-S26 se repiten hasta que la diferencia entre el valor de componente de luminancia lineal original en el tercer espacio de color y el valor de componente de luminancia lineal en el tercer espacio de color sea igual a cero, el intervalo de búsqueda ya no se pueda reducir a la mitad más, el bucle se haya repetido un número definido de veces o el intervalo de búsqueda haya alcanzado un tamaño de intervalo predefinido, es decir, el intervalo de búsqueda sea menor o igual que el tamaño de intervalo predefinido.
La selección de un intervalo de búsqueda en el paso S26 generalmente implica seleccionar un intervalo de búsqueda que tenga aproximadamente la mitad del tamaño en comparación con el intervalo de búsqueda utilizado anteriormente. Por ejemplo, si el intervalo de búsqueda contiene los valores 100, 101, 102, 103, entonces uno podría elegir 101 o 102 como el "valor medio", dando como resultado un intervalo de búsqueda "divido a la mitad" de [100, 101] (una verdadera división a la mitad del intervalo de búsqueda) o [101, 103] (una división a la mitad aproximada del intervalo de búsqueda) o un intervalo de búsqueda "dividido a la mitad" de [100, 102] (una división a la mitad aproximada del intervalo de búsqueda) o [102, 103] (una verdadera división a la mitad del intervalo de búsqueda).
o tra realización es considerar la selección del valor de componente de luminancia no lineal como un problema de optimización y minimiza el error E = (Yo- Y)2 o E = |Yo- Y| con respecto a Y'. Esto se puede hacer, por ejemplo, mediante el descenso del gradiente, calculando el gradiente de E con respecto a Y', es decir, dE/dY', y actualizando Y' una pequeña cantidad en la dirección opuesta del gradiente, es decir, Y'n+1 = Y'n - a(dE/dY'), donde a es una pequeña constante.
El descenso del gradiente puede ser lento, por lo que una forma más rápida puede ser usar un algoritmo de optimización de segundo orden que calcule o aproxime las derivadas de segundo orden d2E/dY'2. Gauss-Newton es un ejemplo de tal algoritmo.
Una realización adicional implica el uso de una tabla de consulta (LUT) cuando se selecciona el valor de componente de luminancia no lineal. Tal LUT puede, por ejemplo, comprender el mejor valor de componente Y' para cada combinación posible de valores de componente Cb', Cr' y Yo. Supongamos, por ejemplo, que las componentes Cb' y Cr' están cuantificadas en 10 bits y que la componente Yo también está cuantificada en 10 bits. Entonces la LUT debería contener 210x210x210 diferentes valores de componente Y'. Esto es equivalente a 230 valores de componente Y'. Si cada valor de componente Y' es de dos bytes, la LUT tendrá un tamaño de 231 bytes o 2 Gb.
También puede ser posible usar una LUT más pequeña. Por ejemplo, puede ser posible cuantificar las componentes Yo, Cb' y Cr' a un tamaño más pequeño, digamos 6 bits. Entonces la LUT sería 218 valores de componente Y', o 219 bytes, que es igual a 512 kb.
La componente Yo es lineal. En consecuencia, puede ser ineficaz simplemente cuantificarla. En cambio, puede ser mejor usar una función de Yo junto con Cb' y Cr' como entrada a la LUT para obtener la componente Y' óptima. La función preferiblemente emite una representación no lineal de la componente Yo y puede, por ejemplo, ser una función de transferencia inversa (TF-1( . )), tal como la inversa de la función de transferencia [1]. El valor de componente Y' óptimo se deriva entonces de la LUT como Y' = LUT(Cb', Cr', TF-1(Yo )).
La figura 5 es un diagrama de flujo que ilustra una realización del paso S2 en la figura 1 cuando se utiliza una LUT. El método continúa desde el paso S1 en la figura 1. El siguiente paso S30 comprende muestrear ascendentemente el primer valor de componente de crominancia no lineal submuestreado en el segundo espacio de color y el segundo valor de componente de crominancia no lineal submuestreado en el segundo espacio de color para obtener un primer valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color y un segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color.
El siguiente paso S32 comprende recuperar el valor de componente de luminancia no lineal en el segundo espacio de color de una tabla de consulta usando el valor de componente de luminancia lineal original en el tercer espacio de color, o una versión no lineal del mismo, el primer el valor de componente de crominancia lineal muestreado ascendentemente en el segundo espacio de color y el segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color, o versiones cuantificadas de los mismos, como entrada a la tabla de consulta.
La figura 6 es un diagrama de flujo que ilustra un paso opcional adicional del método mostrado en la figura 5. El método continúa desde el paso S30 en la figura 5. El siguiente paso S31 comprende aplicar la primera función de transferencia inversa a la componente de luminancia lineal original. en el tercer espacio de color para obtener un valor de componente de luminancia no lineal original en el tercer espacio de color. Luego, el método continúa con el paso S32 en la figura 5. En esta realización, el paso S32 comprende recuperar el valor de componente no lineal en el segundo espacio de color de la tabla de consulta utilizando el valor de componente de luminancia no lineal original en el tercer espacio de color, el primer valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color y el segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color, o las versiones cuantificadas de los mismos, como entrada a la tabla de consulta.
En una realización, la tabla de consulta comprende, para cada combinación del valor de componente de luminancia lineal original en el tercer espacio de color, o la versión no lineal del mismo, el primer valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color y el segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color, o las versiones cuantificadas de los mismos, un valor de componente de luminancia no lineal óptimo en el segundo espacio de color que minimiza una diferencia entre el valor de componente de luminancia lineal original en el tercer espacio de color y un valor de componente de luminancia lineal en el tercer espacio de color determinado en base al valor de componente de luminancia no lineal óptimo en el segundo espacio de color, el primer valor de componente de crominancia no lineal submuestreado en el segundo espacio de color y el segundo valor de componente de crominancia no lineal submuestreado en el segundo espacio de color.
El muestreo ascendente de los valores de componente de crominancia no lineal en el segundo espacio de color como se realiza en el paso S20 en la figura 3 y el paso S5 en la figura 5 preferiblemente muestrean ascendentemente los valores de componente de crominancia no lineal a un mismo número de muestras que el valor de componente de luminancia no lineal en el segundo espacio. Por tanto, el muestreo ascendente que se realiza en estos pasos da como resultado preferiblemente valores de componentes de crominancia no lineales que tienen el mismo número de muestras que antes de la aplicación de cualquier submuestreo, tal como en el paso S12 en la figura 2. Esto significa que antes del submuestreo y después del muestreo ascendente de las componentes Y', Cb' y Cr' todas comprenden el mismo número de muestras, tal como en el formato 4:4:4. Después del submuestreo, la componente Y' comprende más muestras en comparación con las componentes Cb' y Cr', que preferiblemente comprenden el mismo número de muestras, tales como en el formato 4:2:0 o 4:2:2.
Un píxel en una imagen tiene un valor de componente de luminancia no lineal en el segundo espacio de color derivado preferiblemente como se describe en la presente memoria. Los valores de componente de crominancia no lineal en el segundo espacio de color asociados con el píxel y obtenidos después del muestreo ascendente se pueden generar en base a un primer y segundo valor de componente de crominancia no lineal submuestreados respectivos en el segundo espacio de color o en base a múltiples primer y segundo valores de componente de crominancia no lineal en el segundo espacio de color, dependiendo de la técnica de muestreo ascendente. Por ejemplo, si se utiliza un muestreo ascendente bilineal, entonces cuatro valores de componente Cb' submuestreados y cuatro valores de componente Cr' submuestreados afectarán al píxel y los valores de las componentes Cb' y Cr' muestreadas ascendentemente. En consecuencia, si se utiliza el muestreo ascendente del vecino más próximo, entonces típicamente se utiliza un valor de componente Cb' submuestreado único y un valor de componente Cr' submuestreado único para derivar los valores de componente Cb' y Cr' muestreados ascendentemente para un píxel.
El procesamiento previo de píxeles según las realizaciones se puede utilizar en diferentes aplicaciones, en particular en diferentes aplicaciones de video, incluyendo codificación de video.
Por lo tanto, una realización se refiere a un método para codificar un píxel en una imagen. El método comprende el procesamiento previo del píxel según cualquiera de las realizaciones que se describen en la presente memoria para derivar un valor de componente de luminancia no lineal en el segundo espacio de color para el píxel. El método también comprende, en el paso S3 como se muestra en la figura 7, codificar el valor de componente de luminancia no lineal, un primer valor de componente de crominancia no lineal submuestreado en el segundo espacio de color y un segundo valor de componente de crominancia no lineal submuestreado en el segundo espacio de color.
Por tanto, el procesamiento previo de píxeles se puede usar como un procesamiento adicional durante la codificación de píxeles de imágenes, tal como en conexión con la codificación de imágenes de una secuencia de video.
La salida del procesamiento previo, es decir, Y'Cb'Cr', tal como en el formato 4:2:0 o 4:2:2, se introduce luego en un codificador de video, tal como un codificador de video H.264, un Codificador de Video de Alta Eficiencia (HEVC) o codificador de video H.265, u otro codificador de video. La codificación que se realiza por el codificador de video puede incluir pasos de codificación de video tradicionales, tales como inter predicción, intra predicción, decisión de modo, transformación de residual, cuantificación y codificación de los residuales transformados y cuantificados, tal como en un codificador de entropía, por ejemplo, un codificador de codificación aritmética binaria adaptable al contexto (CABAC).
Una ventaja del procesamiento previo de las realizaciones es que se puede aplicar a cualquier proceso de codificación de vídeo o imagen sin necesidad de realizar ningún ajuste en el codificador de vídeo o imagen o ningún ajuste en el decodificador de vídeo o imagen correspondiente. En claro contraste, el procesamiento previo se puede ver como un procesamiento adicional, es decir, un procesamiento previo, que se aplica a las imágenes de entrada en lugar de la conversión tradicional de los colores originales, tales como los colores RoGoBo, de los píxeles en las imágenes a ser codificadas en los colores Y'Cb'Cr' que implican la aplicación de función de transferencia, aplicación de transformación de color y submuestreo de crominancia.
El procesamiento previo de píxeles en imágenes, tal como una secuencia de video, también se puede usar en otras aplicaciones además de la codificación de video. Por ejemplo, las realizaciones se pueden utilizar como procesamiento previo que se aplica antes de transferir vídeo a través de una interfaz, tal como una interfaz multimedia de alta definición (HDMI), DisplayPort o Thunderbolt. Por ejemplo, en HDMI 2.0a, la única forma de transmitir una resolución de 4K a 50 o 60 cuadros por segundo (fps) es usar submuestreo de YCbCr de 4:2:0 o 4:2:2. Si los datos de video están en formato de muestreo de crominancia completo (4:4:4), se debe aplicar un paso de procesamiento previo de submuestreo antes de enviar los datos de video a través del cable de HDMI. Los datos de video de 4:2:0 o 4:2:2 luego se transfieren a través de la interfaz sin compresión adicional. Aplicando el procesamiento previo de las realizaciones, la calidad del video mejora en comparación con el submuestreo de 4:2:0 o 4:2:2 convencional sin ninguna corrección de la componente Y' o búsqueda de la componente Y' óptima.
A continuación se describe una cadena de compresión típica. El píxel de luz lineal entrante (R, G, B) que varía, por ejemplo, de 0 a 10000, se alimenta primero a la función de transferencia, lo que da como resultado un nuevo píxel (R', G', B') entre 0 y 1. Después de esto, el píxel se somete a una transformación de color que da como resultado (Y', Cb', Cr'). Luego, las componentes Cb' y Cr' se submuestrean a 4:2:0.
Después de la descompresión, las secuencias de 4:2:0 se muestrean de nuevo a 4:4:4, la conversión de espacio de color inversa da (R', G', B') y finalmente la función de transferencia inversa devuelve el píxel de luz lineal (R, G, B) que se puede emitir en un monitor.
El problema viene del hecho de que las componentes Cb' y Cr' están interpolados, mientras que la componente Y' no lo está. Por lo tanto, puede haber un cambio brusco en la componente Y' en un píxel, pero la componente Cb' y Cr' no pueden seguirlo, dado que están interpoladas. Para algunos colores, especialmente los colores saturados, el resultado es un píxel de intensidad completamente incorrecta y es claramente visible.
Se propone cambiar la componente Y' en estos casos de modo que la tupia (Y', Cb', Cr') generada a partir de los colores interpolados no sea tan diferente a la original. Idealmente, la diferencia sería tan pequeña que no se nota.
Básicamente emana de darse cuenta de que las componentes Cb' y Cr' son falsas, y luego hacer que también la componente Y' sea falsa para que (Y', Cb', Cr') estén más cerca de los colores verdaderos. En otras palabras, introduciendo un error en la componente Y' podemos compensar los errores ya existentes en las componentes Cb' y Cr' para acercarnos al píxel real. Se podría determinar que las componentes Cb' y Cr' son falsas comparando (Cb' -Cb'444) y (Cr' - Cr'444) con un umbral, por ejemplo, comparando la Cb' que se obtiene de la primera crominancia de submuestreo (4: 2: 0) y luego muestreando ascendentemente (a 4:4:4) con los valores de Cb'444 y Cr'444 originales antes del submuestreo.
La componente Y' corregida se puede derivar según diferentes realizaciones como se describe a continuación. Por lo tanto, la componente Y' corregida y las componentes Cb' y Cr' se comprimen entonces dando como resultado que la imagen o el vídeo se perciba con una calidad superior.
Cambiando la componente Y', es decir, derivando una componente Y' corregida, podemos compensar el valor de luminancia resultante. El ojo es mucho más sensible a los cambios de luminancia que a los cambios de crominancia, por lo que la primera regla debería ser asegurarse de que la luminancia no se desvíe demasiado del valor original.
Como se ha descrito anteriormente, la luminancia no lineal Y' se ajusta antes de la compresión de modo que la luminancia lineal Y del píxel esté más cerca de su valor correcto. Esto se describe aún más a continuación.
Supongamos una imagen en la que la parte izquierda de la pantalla, por ejemplo, los píxeles 0 a 96, tiene el valor (2142, 0, 138) y que la parte derecha, por ejemplo, los píxeles 97 a 1920, tiene el valor (2142, 4, 138). Con una cadena de procesamiento convencional obtendríamos los resultados de la Tabla 1.
Tabla 1 - Datos del "peor" color para submuestreo 4:2:0
Figure imgf000012_0001
Aquí, el valor Y es la luminancia lineal. Es decir, el valor Y del original es el valor que obtiene cuando toma la luz lineal original RGB (2142, 4, 138) y la convierte a XYZ. Por ejemplo, si RGB está en el espacio de color BT.2020, puede convertir a XYZ usando
X = 0,636958 xR 0,144617 xG 0,168881 xB
Y = 0,262700 x R 0,677998 x G 0,059302 x B
Z = 0,000000 x R 0,028073 x G 1,060985 x B
Esta componente Y es la luminancia a la que el ojo es sensible. No se debería confundir con la componente Y' mencionada anteriormente, que depende de manera no lineal de RGB.
Como se puede ver en la Tabla 1, el valor de Y es muy incorrecto para el píxel 97 cuando se utiliza submuestreo y muestreo ascendente de RGB 4:2:0. Tenga en cuenta que en este ejemplo no ha tenido lugar ninguna compresión, solo cuantificación a 10 bits y, sin embargo, el valor de Y tiene un error relativo del 85 %. Usando el modelo de Barten que predice cuán grandes diferencias puede ver el ojo, vemos que este error es de 195 pasos de Barten, o 195 veces mayor de lo que sería apenas perceptible.
Si miramos la Tabla 2, podemos ver lo que sucede.
Tabla 2: El píxel 97 es muy diferente antes y después del submuestreo de color
Figure imgf000013_0001
Si miramos a la componente Cb', tiene el valor 607, que está a medio camino entre 650, antes de la discontinuidad, es decir, el píxel 94, y 575, después de la discontinuidad, pero el valor correcto es 575. El problema es que el error no solo afecta a la crominancia sino también a la luminancia del píxel, el cual llega a ser demasiado grande. Nuestra idea es compensar esto cambiando la componente Y' del píxel. Según las realizaciones, no dejamos que la componente Y' sea 422 para el píxel, sino que seleccionamos el valor 363 en su lugar. En la Tabla 3 mostramos el resultado.
Tabla 3: El píxel 97 es mucho más similar antes y después del submuestreo de color
Figure imgf000013_0002
Ahora podemos ver que el nuevo color es mucho más similar a su valor correcto. La componente verde ha ido en la dirección equivocada, pero solo en 1,72 cd/m2, pero al mismo tiempo la componente roja casi se ha dividido a la mitad de su valor correcto, un movimiento de 1849 cd/m2, y la componente azul ha cambiado de una forma similar. En la Tabla 4 mostramos lo que sucede con la luminancia.
Tabla 4 - Datos para el "peor" color para el submuestreo de 4:2:0 después de la corrección
Figure imgf000013_0003
Como se ve en la Tabla 4, obtenemos un error mucho menor en la luminancia Y. El error relativo es de 0,2465 %, lo que equivale a 0,5602 pasos de Barten, es decir, no es posible de ver.
El error ahora está en su lugar en la crominancia, pero dado el hecho de que el sistema visual humano es menos sensible a los errores en la crominancia que en la luminancia, esto no es un gran problema. Además, habrá un error en la crominancia de todos modos, ya que se submuestrea. Además, uno puede cambiar la componente Y' para obtener un buen compromiso entre el error de luminancia y el error de crominancia.
Además, el cambio de crominancia puede que incluso no sea perceptible; la única diferencia es que la componente verde es de 0,7008 cd/m2 en lugar de 3,9750 cd/m2 pero lo más probable es que sea empequeñecida por la componente roja de todos modos, dado que es 2145, casi mil veces más grande. Otra forma de verlo es que la relación entre las componentes verde y roja llega a ser 0,7008/2145,11 = 0,000327 en lugar de la correcta 3,9750/2142,6617 = 0,001855. No está claro que este ligero cambio en el matiz sea visible por el ojo humano. Por lo tanto, hemos cambiado un error en la luminancia que es 200 veces mayor de lo que se nota por un error en la crominancia que es tan pequeño que podría no ser posible de ver.
Lo bueno es que el valor Y' cambiado solo afecta al píxel individual. Por lo tanto, no se sacrifica ningún otro píxel cambiando la componente Y'.
En una realización, el valor Y' no está optimizado para un valor específico de Cb' y Cr'. En su lugar, se selecciona el valor Y' de modo que minimice el error de luminancia para algunos valores diferentes de Cb' y Cr' o para un rango de valores de Cb' y Cr'. Esto se puede hacer en escenarios en los que se desconoce el método de muestreo ascendente de crominancia.
Una variante es realizar un número específico de métodos de muestreo ascendente de crominancia y luego seleccionar el valor de Y' que minimiza el error cuadrático medio para los diferentes métodos de muestreo ascendente. En otra versión, el valor de Y' se selecciona de modo que se minimice el peor de los casos, es decir, el mayor error. Otra variante es usar dos o más valores vecinos de Cb' y Cr' y usarlos directamente para calcular el rango de posibles valores de Cb' y Cr'.
Hay varias formas de encontrar el mejor valor para Y', revisaremos algunas de ellas. Una forma se muestra en la figura 8. En primer lugar, necesitamos encontrar el valor Yo hacia el que optimizar. El píxel original Ro, Go, Bo se transforma de RGB a XYZ como se mencionó anteriormente. Esto da como resultado Xo, Yo, Zo, de los cuales solo nos interesa Yo . De hecho, no necesitamos calcular Xo y Zo. Esta Yo es la luminancia original en luz lineal, y es a esta a lo que el ojo es sensible. En nuestro caso de prueba, Yo es igual a 573,5991, véase la Tabla 1.
En segundo lugar, tomamos nuestro valor de Y' existente, junto con los valores de Cb' y Cr'. En el caso anterior, alimentaríamos en (422, 607, 812), véase la Tabla 2. Ahora haríamos una transformación de color de Y'Cb'Cr' a R'G'B'. Esto se hace usando
r = Y’ 1,47460 x Cr’
G = Y’ - 0,16455 x Cb’ - 0,57135 x Cr’
B = Y’ 1,88140 x Cb.
A continuación invocamos la función de transferencia. En este caso usamos la PQ-EoTF, que se puede implementar usando el siguiente código de Matlab, por ejemplo:
función L = pq_eotf(c)
%%%
%%% C va de 0.0 a 1.0
%%% L es la luminancia de salida en nits
%%%
c1 = 0,8359375;
c2 = 18,8515625;
c3 = 18,6875;
n = 0,1593017578125;
m = 78,84375;
c = max(c,0);
c = min(c, 1);
L = 10000*((max(cA(1/m)-c1, 0)J(c2 - c3*cA(1/m))) A (1/n));
El resultado es el color (R, G, B) en luz lineal. Ahora convertimos esto a XYZ como se mencionó anteriormente, o en realidad, solo necesitamos calcular Y. Esta Y es la luminancia lineal del píxel, y es esta luminancia la que queremos acercar lo más posible a Yo. En nuestro caso de prueba, Y comienza siendo 1066,4311, véase la Tabla 1.
Ahora comparamos Y e Yo. Si Y es mayor que Yo, reducimos nuestro valor de Y' de 422 a algo más pequeño. Por ejemplo, podemos dar un paso e intentar 421. Luego, todo el cálculo se lleva a cabo nuevamente, generando un nuevo valor de Y. Esto se compara nuevamente con Yo, y si aún es demasiado grande, reducimos Y' aún más. Finalmente, alcanzaremos 363 y el valor de Y resultante, es decir, 572,1852 ahora es menor que Yo, es decir, 573,5991. El proceso ahora se detiene.
En la realización anterior, se necesitan 422-363 = 59 iteraciones para alcanzar el mejor valor. Esto puede ser costoso.
Por lo tanto, una realización es hacer una búsqueda binaria para encontrar el mejor valor de Y'. Opcionalmente, primero se prueba el valor de Y' máximo, por ejemplo 1023. Opcionalmente, luego se prueba el valor de Y' mínimo, por ejemplo 0. Luego se prueba un valor en el medio, por ejemplo 512. Si el valor de Y resultante de Y'=512 es mayor que Yo , deberíamos buscar en el intervalo [0, 512]. Si el valor de Y es menor que Yo , deberíamos buscar en su lugar el intervalo [512, 1023]. Luego procedemos calculando un nuevo valor en el medio del intervalo seleccionado, y continuamos hasta que el intervalo solo contenga un solo número, tal como [363, 363] o [363, 364]. Se garantiza que esto solo tomará log2(N) pasos, donde N es el número de valores posibles, que en este caso es 1024. Por lo tanto, solo son suficientes log2(1024) = 10 pasos.
Otra forma más de calcular el mejor valor es ver la figura 8 como un problema de optimización y minimizar el error E = (Y-Yo)2 con respecto a Y'. Esto se puede hacer mediante el descenso del gradiente, calculando el gradiente de E con respecto a Y', es decir, dE/dY', y actualizar Y' una pequeña cantidad en la dirección opuesta del gradiente: Y'n+1 = Y'n - a x dE/dY', donde a es una pequeña constante.
El descenso del gradiente puede ser lento, por lo que una forma más rápida puede ser usar un algoritmo de optimización de segundo orden que calcule o aproxime las derivadas de segundo orden d2E/dY'2. Gauss-Newton es un ejemplo de tal algoritmo.
En otra realización se aplica el siguiente proceso con el fin de calcular Y':
• X, Yo y Z se convierten con una conversión de XYZ a RGB para producir nuevos valores R1, G1 y B1
• R1, G1 y B1 se convierten con una función de transferencia inversa para producir R1', G1' y B1'.
• R1', G1' y B1' se convierten con una transformación de color inversa para producir Y'
En una realización, se corrigen los valores Y' de todos los píxeles de una imagen o foto. En una realización alternativa, solo se corrigen los píxeles que corren el riesgo de tener errores de luminancia visibles. Esto puede incluir píxeles que están cerca del borde de la gama de colores, pero excluye los píxeles más cerca de la mitad del triángulo de la gama de colores.
Mirando la fila inferior en la figura 9, el primer paso del procesamiento es
R' = Y’ 1,47460 x Cr’
G’ = Y’ - 0,16455 x Cb’ - 0,57135 * Cr1
B’ = Y’ + 1,88140 x Cb’.
Pero dado que Cr' y Cb' son fijos, se interpolan, no se envían, podemos reemplazar todo a la derecha de Y' con una constante
R’ = Y’+C1
G’ = Y’ c2
B’ = Y ’ c 3
El siguiente paso es tomar la función de transferencia de las componentes de color:
R = TF(R')
G = TF(G')
B = TF(B')
que luego se convierte
R = TF(Y’ c1)
G = TF(Y’ c2)
B = TF(Y’ c3)
El último paso del procesamiento va de RGB a XYZ. Esto se hace usando
Figure imgf000016_0001
de esto solo estamos interesados en la componente Y, por lo que usamos
Y = 0,262700 x R 0,677998 x G 0,059302 x B.
Insertando las ecuaciones anteriores en esto da
o abreviado a
Y = f(Y')
Queremos que el valor de salida Y de esta ecuación coincida con la Yo original. Dado que Y depende de Y' en tres lugares diferentes de forma no lineal, parece que no hay una forma fácil de invertir la función de modo que podamos obtener Y' = f-1(Y).
Sin embargo, es posible linealizar la no lineal TF(x) ~ kx+m. Hacer esto en los tres lugares diferentes da
Y ~ k 1 x Y ’ m1 k 2 x Y ’ m 2 k 3 x Y ’ m 3
que es equivalente a
Y ~ (k1 k2+k3) x Y’ (m1 -+m2-nn3)
Esto se puede invertir para
Y’ ~ Y’k = (Yo -(m1 m2 m3)) / (k1 k2+4<3).
Por tanto, es probable que Y'k produzca un valor Yk más cercano a Yo que antes. La función se puede linealizar de nuevo en este nuevo punto Y'k, dando como resultado un nuevo valor Y'k+1, etc.
Se debería señalar que para todas estas técnicas iterativas no es necesario encontrar el mejor valor absoluto de 10 bits que genere el valor de Y más cercano al valor Yo. Puede ser suficiente usar solo unas pocas iteraciones o incluso una iteración. El valor de Y corregido resultante de una sola iteración muy probablemente será mucho mejor que no corregirlo en absoluto.
Algunas linealizaciones también se pueden hacer por adelantado. Como se señaló anteriormente, los peores problemas ocurren en el borde de la gama. Por lo tanto, uno podría tener una linealización para la línea que conecta el primario rojo con el primario verde, una linealización para la línea que conecta el primario rojo con el primario azul y una linealización para la línea que conecta el primario verde con el primario azul. Otra forma puede ser tener linealizaciones que se usarán cerca del primario rojo, otra cerca del primario verde y una tercera que se usará cerca del primario azul. Además, es posible tener varias linealizaciones a lo largo de la línea de la gama, como se muestra en la figura 9.
Por tanto, puede haber diferentes linealizaciones en diferentes áreas. Si el color está dentro del círculo con una línea continua, estamos cerca del primario verde y podemos usar una linealización. Si estamos más cerca del primario rojo, es decir, dentro del cuadro discontinuo, podemos usar una segunda linealización. Si estamos cerca del borde de la gama y aproximadamente a mitad de camino entre el primario rojo y el verde, es decir, dentro del cuadro de puntos, se puede usar una tercera linealización. Si estamos aún más cerca del primario rojo, es decir, dentro del cuadro con una línea continua, se puede usar una cuarta linealización. Si estamos dentro del círculo de puntos, es decir, cerca del primario rojo, se puede utilizar una quinta linealización. También se puede usar la misma partición de las otras dos líneas en el triángulo. Finalmente, el área dentro del triángulo pero sin caja o círculo se puede dividir en una o más áreas, cada área que tiene una linealización diferente.
Otra forma es crear una tabla de consulta (LUT). Como se puede ver en la formulación anterior, si tenemos Cb', Cr' y el valor de Y deseado, es posible encontrar la mejor Y' utilizando cualquiera de las técnicas iterativas mencionadas anteriormente. Por lo tanto, podemos crear una tabla de consulta para cada combinación posible de Cb', Cr' e Y. Supongamos, por ejemplo, que Cb' y Cr' están cuantificados con 10 bits. Supongamos además que también cuantificamos Y con 10 bits. Entonces necesitamos 210x 210x 210 diferentes valores en nuestra tabla de consulta. Eso es equivalente a 230 valores. Si cada valor es de dos bytes, esto significa 231 bytes o 2 Gb. Eso es grande pero tal vez no inviable, especialmente en el futuro.
Puede que sea necesario tener cuidado cuando se cuantifica Y. Dado que Y es completamente lineal, puede ser ineficiente solo cuantificarla. En su lugar, puede ser mejor crear Ynolineal = TF(Y) y, en su lugar, crear una LUT para Y utilizando Cb', Cr' e Ynolineal como variables de entrada. Dados Cb', Cr' e Y, calcularíamos entonces primero Ynolineal = TF(Y) y luego encontraríamos Y' = LUT(Cb', Cr', Ynolineal).
También puede ser posible usar una LUT más pequeña. Por ejemplo, puede ser posible cuantificar Y (o Ynolineal), Cb' y Cr' con, digamos, 6 bits. Entonces el tamaño de la tabla sería 2(6+6+6) = 218 valores o 219 bytes, que es igual a 512 kbytes. Ese es un tamaño razonable incluso con el hardware de hoy en día.
Puede ser posible tomar los valores cuantificados Cb', Cr' e Y más cercanos a los valores reales e interpolarlos. Como ejemplo, si el valor real de Cb' es mayor que Cb' cuantificado con 6 bits pero menor que Cb' cuantificado con 6 bits 1, la siguiente puede ser una buena aproximación:
Figure imgf000017_0001
También es posible interpolar entre más de dos valores.
En una realización, se usa una tabla de consulta para derivar el valor de Y'. En una versión, la tabla de consulta contiene todos los valores posibles de Yo, Cb' y Cr'. Para video de 10 bits, eso dará como resultado entradas de 1024 x 1024 x 1024 y, en algunas aplicaciones, este tamaño es aceptable. En otra versión, la tabla de consulta (LUT) se recorta, por ejemplo, redondeando una o más de Yo, Cb' y Cr', por ejemplo, a 8 bits. Si se utiliza una tabla de consulta recortada, el algoritmo se puede ampliar con un paso de refinamiento que encuentre la mejor Y' comenzando a partir de Y' que se recuperó de la LUT. En una versión, la LUT solo se usa cuando el valor de Cb' y/o el valor de Cr' es de manera que Y' pueda llegar a ser demasiado diferente de Yo, es decir, cuando la Y' calculada inicialmente da un valor de Y lineal que es demasiado diferente de Yo, y por ello el tamaño de la LUT se puede reducir sustancialmente dado que muchos valores de Cb' y Cr' no causarán ningún problema.
En una realización, una función de Yo, Cb' y Cr', por ejemplo, se usa una combinación lineal, función polinomial, función exponencial, función logarítmica, función trigonométrica, etc., para derivar Y'. La función se puede definir de manera que para cualquier valor de Yo, Cb' y Cr', la diferencia entre Y e Yo esté por debajo de un cierto umbral o la diferencia entre la Y' derivada y la Y' óptima esté por debajo de un cierto umbral.
En una realización, se definen varias funciones diferentes de Yo, Cb' y Cr' para derivar Y'. La selección de qué función utilizar se basa en el valor de Yo, Cb' y Cr'.
Para cada realización descrita en la presente memoria, podría darse el caso de que el método para derivar Y' solo se invoque si la diferencia entre Y' y TF(Yo) está por encima de un cierto umbral para empezar.
Según un aspecto, se proporciona un método como se ilustra en la figura 10. El método se puede realizar en un codificador o en un proceso previo al codificador. En el método, cuando se determina que las componentes Cb' y/o Cr' incluyen errores, se deriva una componente Y' corregida para compensar los errores en las componentes Cb' y/o Cr'. El método también comprende opcionalmente codificar video con la componente Y' corregida.
Otro aspecto de las realizaciones se refiere a un dispositivo para procesar previamente un píxel en una imagen. El dispositivo está configurado para obtener un valor de componente de luminancia lineal original del píxel en un tercer espacio de color determinado en base a un color lineal del píxel en un primer espacio de color. El dispositivo también está configurado para derivar un valor de componente de luminancia no lineal en un segundo espacio de color para el píxel en base a un primer valor de componente de crominancia no lineal en el segundo espacio de color, un segundo valor de componente de crominancia no lineal en el segundo espacio de color y el valor de componente de luminancia lineal original en el tercer espacio de color.
En una realización, el dispositivo está configurado para determinar el valor de componente de luminancia lineal original en el tercer espacio de color en base al color lineal en el primer espacio de color.
En una realización, el dispositivo está configurado para derivar un valor de componente de luminancia no lineal en el segundo espacio de color que minimiza una diferencia entre el valor de componente de luminancia lineal original en el tercer espacio de color y un valor de componente de luminancia lineal en el tercer espacio de color determinado en base a el valor de componente de luminancia no lineal en el segundo espacio de color, el primer valor de componente de crominancia no lineal en el segundo espacio de color y el segundo valor de componente de crominancia no lineal en el segundo espacio de color.
En una realización, el dispositivo está configurado para derivar el valor de componente de luminancia no lineal en el segundo espacio de color en base a un primer valor de componente de crominancia no lineal submuestreado en el segundo espacio de color, un segundo valor de componente de crominancia no lineal submuestreado en el segundo espacio de color y el valor de componente de luminancia lineal original en el tercer espacio de color.
En una realización, el dispositivo está configurado para aplicar una primera función de transferencia al color lineal original en el primer espacio de color para obtener un color no lineal en el primer espacio de color. El dispositivo también está configurado para aplicar una primera transformación de color al color no lineal en el primer espacio de color para obtener un color no lineal en el segundo espacio de color. El color no lineal en el segundo espacio de color comprende un primer valor de componente de crominancia no lineal inicial y un segundo valor de componente de crominancia no lineal inicial. El dispositivo está configurado además para submuestrear el primer valor de componente de crominancia no lineal inicial en el segundo espacio de color y el segundo valor de componente de crominancia no lineal inicial en el segundo espacio de color para obtener el primer valor de componente de crominancia no lineal submuestreado en el segundo espacio de color y el segundo valor de componente de crominancia no lineal submuestreado en el segundo espacio de color.
En una realización, el dispositivo está configurado para muestrear ascendentemente el primer valor de componente de crominancia no lineal submuestreado en el segundo espacio de color y el segundo valor de componente de crominancia no lineal submuestreado en el segundo espacio de color para obtener un primer valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color y un segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color. El dispositivo también está configurado para aplicar una segunda transformación de color a un valor de componente de luminancia no lineal candidato en el segundo espacio de color, el primer valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color y el segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color para obtener un color no lineal en el primer espacio de color. El dispositivo está configurado además para aplicar una segunda función de transferencia al color no lineal en el primer espacio de color para obtener un color lineal en el primer espacio de color. El dispositivo está configurado además para aplicar una tercera transformación de color al color lineal en el primer espacio de color para obtener un valor de componente de luminancia lineal en el tercer espacio de color. El dispositivo también está configurado para derivar el valor de componente de luminancia no lineal en base a una comparación del valor de componente de luminancia lineal original en el tercer espacio de color y el valor de componente de luminancia lineal en el tercer espacio de color.
En una realización, el dispositivo está configurado para seleccionar un componente de luminancia no lineal candidato en el segundo espacio de color que reduce, tal como minimiza, una diferencia entre la componente de luminancia lineal original en el tercer espacio de color y la componente de luminancia lineal en el tercer espacio de color.
En una realización, el dispositivo está configurado para realizar la aplicación de la segunda transformación de color a un valor de componente de luminancia no lineal candidato en el segundo espacio de color, el primer valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color y el segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color, la aplicación de la segunda función de transferencia al color no lineal en el primer espacio de color y la aplicación de la tercera transformación de color al color lineal en el primer espacio de color para diferentes valores de componente de luminancia no lineal candidatos en el segundo espacio de color. El dispositivo también está configurado para seleccionar el valor de componente de luminancia no lineal candidato entre los diferentes valores de componente de luminancia no lineal candidato en el segundo espacio de color que da como resultado una diferencia mínima entre el valor de componente de luminancia lineal original en el tercer espacio de color y el valor de componente de luminancia lineal en el tercer espacio de color.
En una realización, el dispositivo está configurado para realizar una búsqueda binaria para seleccionar un valor de componente de luminancia no lineal candidato en el segundo espacio de color que minimiza la diferencia entre el valor de componente de luminancia lineal original en el tercer espacio de color y el valor de componente de luminancia lineal en el tercer espacio de color.
En una realización, el dispositivo está configurado para realizar la aplicación de la segunda transformación de color a un valor de componente de luminancia no lineal candidato en el segundo espacio de color, el primer valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color y el segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color, la aplicación de la segunda función de transferencia al color no lineal en el primer espacio de color y la aplicación de la tercera transformación de color al color lineal en el primer espacio de color para un valor de componente de luminancia no lineal candidato en el segundo espacio de color en medio de un intervalo de búsqueda. El dispositivo también está configurado para seleccionar el valor de componente de luminancia no lineal candidato en el medio del intervalo de búsqueda si la diferencia entre el valor de componente de luminancia lineal original en el tercer espacio de color y el valor de componente de luminancia lineal en el tercer espacio de color es igual a cero. El dispositivo también está configurado para seleccionar de otro modo un intervalo de búsqueda que tenga la mitad del tamaño en comparación con el intervalo de búsqueda utilizado por el dispositivo cuando se realizan las aplicaciones y que termine en el valor de componente de luminancia no lineal candidato utilizado por el dispositivo cuando se realizan las aplicaciones si el valor de componente de luminancia lineal en el tercer espacio de color es mayor que el valor de componente de luminancia lineal original en el tercer espacio de color o seleccione un intervalo de búsqueda que tenga la mitad del tamaño en comparación con el intervalo de búsqueda utilizado por el dispositivo cuando se realizan las aplicaciones y comenzando en el valor de componente de luminancia no lineal candidato utilizado por el dispositivo cuando se realizan las aplicaciones si el valor de componente de luminancia lineal en el tercer espacio de color es menor que el valor de componente de luminancia lineal original en el tercer espacio de color. El dispositivo está configurado además para repetir la realización de las aplicaciones y la selección del intervalo de búsqueda hasta que la diferencia entre el valor de componente de luminancia lineal original en el tercer espacio de color y el valor de componente de luminancia lineal en el tercer espacio de color sea igual a cero o el intervalo de búsqueda comprenda un valor de componente de luminancia no lineal candidato único en el segundo espacio de color.
En una realización, el dispositivo está configurado para muestrear el primer valor de componente de crominancia no lineal submuestreado en el segundo espacio de color y el segundo valor de componente de crominancia no lineal submuestreado en el segundo espacio de color para obtener un primer valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color y un segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color. El dispositivo también está configurado para recuperar el valor de componente de luminancia no lineal en el segundo espacio de color de una tabla de búsqueda utilizando el valor de componente de luminancia lineal original en el tercer espacio de color, o una versión no lineal del mismo, el primer valor de componente de crominancia lineal muestreado ascendentemente en el segundo espacio de color y el segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color, o versiones cuantificadas del mismo, como entrada a la tabla de consulta.
En una realización, el dispositivo está configurado para aplicar la primera función de transferencia al valor de componente de luminancia lineal original en el tercer espacio de color para obtener un valor de componente de luminancia no lineal original en el tercer espacio de color. El dispositivo está configurado para recuperar el valor de componente de luminancia no lineal en el segundo espacio de color de la tabla de consulta utilizando el valor de componente de luminancia no lineal original en el tercer espacio de color, el primer valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color y el segundo valor de componente de crominancia no lineal muestreado ascendentemente en el segundo espacio de color, o las versiones cuantificadas del mismo, como entrada a la tabla de consulta.
La figura 11 ilustra una implementación de hardware particular de un dispositivo 100 para procesar previamente una imagen según una realización. En una realización, el dispositivo 100 comprende una unidad de determinación 101 configurada para obtener el valor de componente de luminancia lineal original del píxel en el tercer espacio de color. El dispositivo 100 también comprende un derivador 102 configurado para derivar el valor de componente de luminancia no lineal en el segundo espacio de color para el píxel.
En otra realización, el dispositivo 100 comprende una unidad de determinación 101 configurada para determinar que Cb' y/o Cr' incluyen errores. El dispositivo 100 también comprende un derivador 102 configurado para derivar una Y' corregida. El dispositivo 100 comprende además un codificador de vídeo 103 configurado para codificar una imagen con la Y' corregida.
En una realización, el dispositivo 100 también comprende una unidad de entrada 104 configurada para recibir el video a ser codificado y una unidad de salida 105 configurada para emitir un flujo de bits codificado.
La unidad de entrada 104 podría tener la forma de una unidad de entrada general, en particular en el caso de una conexión por cable a dispositivos externos. Alternativamente, la unidad de entrada 104 podría tener la forma de un receptor o transceptor, en particular en el caso de una conexión inalámbrica a dispositivos externos. En consecuencia, la unidad de salida 105 podría tener la forma de una unidad de salida general, en particular en el caso de una conexión por cable a dispositivos externos. Alternativamente, la unidad de salida 105 podría tener la forma de un transmisor o transceptor, en particular en el caso de una conexión inalámbrica a dispositivos externos.
La unidad de entrada 104 está conectada preferiblemente a la unidad de determinación 101, el derivador 102 y el codificador de video 103 para reenviar el video a ser codificado a los mismos. La unidad de determinación 101 está conectada preferiblemente al derivador 102 y al codificador de vídeo 103. El codificador de vídeo 103 está conectado preferiblemente a la unidad de salida 105 para reenviar el flujo de bits codificado, por ejemplo, a un decodificador. Los ejemplos particulares de circuitos de hardware adecuados incluyen uno o más circuitos electrónicos adecuadamente configurados o posiblemente reconfigurables, por ejemplo, Circuitos Integrados de Aplicaciones Específicas (ASIC), Agrupaciones de Puertas Programables en Campo (FPGA) o cualquier otra lógica de hardware, tal como circuitos basados en puertas lógicas discretas y/o circuitos biestables interconectados para realizar funciones especializadas en conexión con registros (REG) adecuados, y /o unidades de memoria (MEM).
Alternativamente, al menos algunos de los pasos, funciones, procedimientos, módulos y/o bloques descritos en la presente memoria se pueden implementar en software, tal como un programa informático, para su ejecución mediante circuitos de procesamiento adecuados, tales como uno o más procesadores o unidades de procesamiento.
Ejemplos de circuitos de procesamiento incluyen, pero no se limitan a, uno o más microprocesadores, uno o más Procesadores de Señales Digitales (DSP), una o más Unidades Centrales de Procesamiento (CPU), hardware de aceleración de video y/o cualquier circuito lógico programable adecuado, tal como una o más FPGA, o uno o más Controladores Lógicos Programables (PLC).
También se debería entender que puede ser posible reutilizar las capacidades de procesamiento generales de cualquier dispositivo o unidad convencional en el que se implemente la tecnología propuesta. También puede ser posible reutilizar el software existente, por ejemplo, reprogramando el software existente o añadiendo nuevos componentes de software.
En un ejemplo particular, el dispositivo 110, consulte la figura 12, comprende un procesador 111 y una memoria 112 que comprende instrucciones ejecutables por el procesador 111. En una realización, el procesador 111 es operativo para obtener el valor de componente de luminancia lineal original del píxel en el tercer espacio de color. El procesador 111 también es operativo para derivar el valor de componente de luminancia no lineal en el segundo espacio de color para el píxel.
En otra realización, el procesador 111 es operativo para determinar que las componentes Cb' y/o Cr' incluyen errores y cuando se determina que las componentes Cb' y/o Cr' incluyen errores el procesador 111 también es operativo para derivar una componente Y' corregida para compensar los errores en las componentes Cb' y/o Cr'.
En una realización, el dispositivo 110 también comprende una unidad de entrada 113 configurada para recibir el video a ser codificado. En tal caso, el procesador 111 está operativo para recibir el video a ser codificado desde la unidad de entrada 113.
En una realización, el dispositivo 110 también comprende una unidad de salida 114 configurada para emitir un flujo de bits codificado como se recibe del procesador 111.
En una realización particular, el procesador 111 está operativo, cuando se ejecutan las instrucciones almacenadas en la memoria 112 para realizar las operaciones descritas anteriormente. El procesador 111 está por ello interconectado con la memoria 112 para permitir la ejecución normal del software.
La figura 13 es un diagrama de bloques esquemático que ilustra un ejemplo de un equipo de usuario (UE) 200 que comprende un procesador 210, una memoria asociada 220 y unos circuitos de comunicación 230.
En este ejemplo particular, al menos algunos de los pasos, funciones, procedimientos, módulos y/o bloques descritos en la presente memoria se implementan en un programa informático 240, que se carga en la memoria 220 para su ejecución por circuitos de procesamiento que incluyen uno o más procesadores 210. El procesador 210 y la memoria 220 están interconectados entre sí para permitir la ejecución normal del software. Unos circuitos de comunicación 230 también están interconectados con el procesador 210 y/o la memoria 220 para permitir la entrada y/o salida de datos de video. El equipo de usuario 200 puede ser cualquier dispositivo o aparato que pueda recibir y procesar datos de video. Por ejemplo, el equipo de usuario 200 podría ser un ordenador, o bien estacionario o portátil, tal como un ordenador portátil, un teléfono inteligente, una tableta, un decodificador, una cámara de video, etc.
El término 'procesador' se debería interpretar en un sentido general como cualquier sistema o dispositivo capaz de ejecutar un código de programa o instrucciones de programa informático para realizar una tarea de procesamiento, determinación o cálculo particular.
Los circuitos de procesamiento que incluyen uno o más procesadores están configurados de este modo para realizar, cuando se ejecuta el programa informático, tareas de procesamiento bien definidas tales como las descritas en la presente memoria.
Los circuitos de procesamiento no tienen que estar dedicados a ejecutar solamente los pasos, funciones, procedimientos y/o bloques descritos anteriormente, sino que también puede ejecutar otras tareas.
En una realización, el programa informático 240 comprende instrucciones que, cuando se ejecutan por el procesador 210, hacen que el procesador 210 obtenga un valor de componente de luminancia lineal original de un píxel en una imagen en un tercer espacio de color determinado en base a un color lineal del píxel en un primer espacio de color. También se hace que el procesador 210 derive un valor de componente de luminancia no lineal en un segundo espacio de color para el píxel en base a un primer valor de componente de crominancia no lineal en el segundo espacio de color, un segundo valor de componente de crominancia no lineal en el segundo espacio de color y el valor de componente de luminancia lineal original en el tercer espacio de color.
En una realización, el programa informático 240 comprende además instrucciones que, cuando se ejecutan por el procesador 210, hacen que el procesador 210 codifique el valor de componente de luminancia no lineal, el primer valor de componente de crominancia no lineal y el segundo valor de componente de crominancia no lineal.
En otra realización, el programa informático 240 comprende instrucciones que, cuando se ejecutan por el procesador 210, hacen que el procesador 210 determine que las componentes Cb' y/o Cr' incluyen errores, y cuando ha determinado que las componentes Cb' y/o Cr' incluyen errores, hacen que el procesador 210 derive una componente Y' corregida para compensar los errores en las componentes Cb' y Cr'.
La tecnología propuesta también proporciona una portadora 250 que comprende el programa informático 240. La portadora 250 es una señal electrónica, una señal óptica, una señal electromagnética, una señal magnética, una señal eléctrica, una señal de radio, una señal de microondas o un medio de almacenamiento legible por ordenador 250.
A modo de ejemplo, el software o programa informático 240 se puede realizar como un producto de programa informático, que normalmente se transporta o almacena en un medio legible por ordenador 240, preferiblemente un medio de almacenamiento legible por ordenador no volátil 250. El medio legible por ordenador 250 puede incluir uno o más dispositivos de memoria extraíbles o no extraíbles, incluyendo, pero no limitado a, una Memoria de Solo Lectura (ROM), una Memoria de Acceso Aleatorio (RAM), un Disco Compacto (CD), un Disco Versátil Digital (DVD), un disco Blue-ray, una memoria Bus Serie Universal (USB), un dispositivo de almacenamiento de Unidad de Disco Duro (HDD), una memoria flash, una cinta magnética o cualquier otro dispositivo de memoria convencional. El programa informático 240 se puede cargar de este modo en la memoria operativa de un ordenador o dispositivo de procesamiento equivalente, representado por el equipo de usuario 200 en la figura 19, para ejecución por el procesador 210 del mismo.
Un aspecto adicional de las realizaciones también se refiere a una señal que representa una versión codificada de un píxel en una imagen. La versión codificada comprende una versión codificada de un primer valor de componente de crominancia no lineal submuestreado en un segundo formato de color, una versión codificada de un segundo valor de componente de crominancia no lineal submuestreado en el segundo formato de color y una versión codificada de un valor de componente de luminancia no lineal en el segundo formato de color derivado según cualquiera de las realizaciones.
En una realización, la señal es una de una señal electrónica, una señal óptica, una señal electromagnética, una señal magnética, una señal eléctrica, una señal de radio y una señal de microondas.
El diagrama o diagramas de flujo presentados en la presente memoria, por lo tanto, se pueden considerar como un diagrama o diagramas de flujo de ordenador, cuando se realizan por uno o más procesadores. Un dispositivo correspondiente se puede definir como un grupo de módulos de función, donde cada paso realizado por el procesador corresponde a un módulo de función. En este caso, los módulos de función se implementan como un programa informático que se ejecuta en el procesador. Por lo tanto, el dispositivo se puede definir alternativamente como un grupo de módulos de función, donde los módulos de función se implementan como un programa informático que se ejecuta en al menos un procesador.
El programa informático que reside en la memoria se puede organizar de este modo como módulos de función apropiados configurados para realizar, cuando se ejecutan por el procesador, al menos parte de los pasos y/o tareas descritos en la presente memoria. En la figura 14 se ilustra un ejemplo de tales módulos de función.
La figura 14 es un diagrama de bloques esquemático de un dispositivo 120 para procesar previamente un píxel en una imagen con módulos de función. En una realización, el dispositivo 120 comprende una unidad de determinación 121 para obtener un valor de componente de luminancia lineal original del píxel en un tercer espacio de color determinado en base a un color lineal del píxel en un primer espacio de color. El dispositivo 120 también comprende un derivador 122 para derivar un valor de componente de luminancia no lineal en un segundo espacio de color para el píxel en base a un primer valor de componente de crominancia no lineal en el segundo espacio de color, un segundo valor de componente de crominancia no lineal en el segundo espacio de color y el valor de componente de luminancia lineal original en el tercer espacio de color.
En otra realización, el dispositivo 120 comprende una unidad de determinación 121 para determinar que Cb' y/o Cr' incluyen errores. El dispositivo 120 también comprende un derivador 102 para derivar una Y' corregida. El dispositivo 120 comprende además, opcionalmente, un codificador de video 123 para codificar el flujo de bits usando la Y' corregida.
Un aspecto adicional de las realizaciones, véase la figura 12, se refiere a un dispositivo 110 para codificar un píxel en una imagen. El dispositivo 110 comprende un procesador 111 y una memoria 112 que comprende instrucciones ejecutables por el procesador 111. El procesador 111 es operativo para obtener un valor de componente de luminancia lineal original del píxel en un tercer espacio de color determinado en base a un color lineal del píxel en un primer espacio de color. El procesador 111 también es operativo para derivar un valor de componente de luminancia no lineal en un segundo espacio de color para el píxel en base a un primer valor de componente de crominancia no lineal en el segundo espacio de color, un segundo valor de componente de crominancia no lineal en el segundo espacio de color y el valor de componente de luminancia lineal original en el tercer espacio de color. El procesador 111 es operativo además para codificar el valor de componente de luminancia no lineal, el primer valor de componente de crominancia no lineal y el segundo valor de componente de crominancia no lineal.
Otro aspecto adicional de las realizaciones, véase la figura 14, se refiere a un dispositivo 120 para codificar un píxel en una imagen. El dispositivo 120 comprende una unidad de determinación 121 para obtener un valor de componente de luminancia lineal original del píxel en un tercer espacio de color determinado en base a un color lineal del píxel en un primer espacio de color. El dispositivo 120 también comprende un derivador 122 para derivar un valor de componente de luminancia no lineal en un segundo espacio de color para el píxel en base a un primer valor de componente de crominancia no lineal en el segundo espacio de color, un segundo valor de componente de crominancia no lineal en el segundo espacio de color y el valor de componente de luminancia lineal original en el tercer espacio de color. El dispositivo 120 comprende además un codificador 123 para codificar el valor de componente de luminancia no lineal, el primer valor de componente de crominancia no lineal y el segundo valor de componente de crominancia no lineal.
Según un aspecto, se proporciona una unidad, tal como un procesador o un codificador. La unidad está configurada para determinar que las componentes Cb' y/o Cr' incluyen errores, y cuando ha determinado que las componentes Cb' y/o Cr' incluyen errores, está configurada para derivar una componente Y' corregida para compensar los errores en las componentes Cb' y Cr'.
Las presentes realizaciones también se refieren a un equipo de usuario que comprende un dispositivo para procesar previamente un píxel o un dispositivo para codificar un píxel según las realizaciones. El equipo de usuario es preferiblemente un dispositivo o aparato configurado para recibir y procesar datos de video. El equipo de usuario podría ser, por ejemplo, un dispositivo o aparato configurado para enviar datos de vídeo a través de una interfaz, tal como HDMI.
Otra realización se refiere a un equipo de usuario que comprende un dispositivo para procesar previamente un píxel o un dispositivo para codificar un píxel según las realizaciones. En esta realización, el equipo de usuario se selecciona preferiblemente de un grupo que consta de un ordenador, un ordenador portátil, un teléfono inteligente, una tableta y un decodificador.
Cada vez está llegando a ser más popular proporcionar servicios informáticos, tales como hardware y/o software, en dispositivos de red, tales como nodos de red y/o servidores, donde los recursos se entregan como un servicio a ubicaciones remotas a través de una red. A modo de ejemplo, esto significa que la funcionalidad, como se describe en la presente memoria, se puede distribuir o reubicar en uno o más servidores o nodos físicos separados. La funcionalidad se puede reubicar o distribuir en una o más máquinas físicas y/o virtuales que actúan conjuntamente que se pueden colocar en un nodo o nodos físicos separados, es decir, en la denominada nube. También se hace referencia a esto algunas veces como computación en la nube, que es un modelo para permitir el acceso de red ubicuo bajo demanda a un conjunto de recursos informáticos configurables, tales como redes, servidores, almacenamiento, aplicaciones y servicios generales o personalizados.
La figura 15 es un diagrama esquemático que ilustra un ejemplo de cómo se puede distribuir o dividir la funcionalidad entre diferentes dispositivos de red 300, 301,302 en un caso general. En este ejemplo, hay al menos dos dispositivos de red 300, 301, individuales, pero interconectados, que pueden tener diferentes funcionalidades, o partes de la misma funcionalidad, divididas entre los dispositivos de red 300, 301. Puede haber dispositivos de red 302 adicionales que sean parte de tal implementación distribuida. Los dispositivos de red 300, 301,302 pueden ser parte del mismo sistema de comunicación inalámbrica, o uno o más de los dispositivos de red pueden ser los denominados dispositivos de red basados en la nube ubicados fuera del sistema de comunicación inalámbrica.
La figura 16 es un diagrama esquemático que ilustra un ejemplo de un sistema de comunicación inalámbrica, que incluye una red de acceso 1 y/o una red central 2 y/o un Sistema de Operaciones y Soporte (OSS) 3 en cooperación con uno o más dispositivos de red basados en la nube 300. La figura también ilustra un nodo de red 4 de la red de acceso 1 y un equipo de usuario 5 según las realizaciones.
Ejemplo
Recientemente, se ha logrado un tremendo aumento en la calidad en el video digital aumentando la resolución, pasando de la definición estándar a la alta definición a 4k. El video de alto rango dinámico (HDR) utiliza otra forma de aumentar la calidad de imagen percibida, esto es, aumentando el contraste. El sistema de TV convencional fue construido para luminancias entre 0,1 candelas por metro cuadrado (cd/m2) y 100 cd/m2, o alrededor de diez duplicaciones de luminancia, a esto se hace referencia generalmente como video de rango dinámico estándar (SDR). Como comparación, algunos monitores de HDR son capaces de mostrar un rango de 0,01 a 4000 cd/m2, es decir, por encima de 18 duplicaciones.
Procesamiento de SDR convencional
Los sistemas de SDR típicos, tales como televisores o monitores de ordenador, a menudo usan una representación de ocho bits donde 0 representa oscuro y 255 brillante. Solo escalar linealmente el rango de valor de código [0; 255] al rango de luminancia [0,1; 100] cd/m2 mencionado anteriormente no sería ideal: las dos primeras palabras de código 0 y 1 se mapearían a 0,1 cd/m2 y 0,49 cd/m2 respectivamente, una diferencia relativa del 390 %. Las dos últimas palabras de código 254 y 255, por otro lado, se mapearían a 99,61 cd/m2 y 100 cd/m2 respectivamente, una diferencia relativa de solo el 0,3 %. Para evitar esta gran diferencia en los tamaños de paso relativos, los sistemas de SDR incluyen una función de transferencia electroóptica (EOTF) que mapea valores de código a luminancias de una forma no lineal. Como ejemplo, la componente roja se divide primero por 255 para obtener un valor R01 e [0; 1] y luego se alimenta a través de una función de potencia R' = (R01)Y.
Finalmente, R' se escala al rango [0,1; 100] para obtener la representación de la luz en cd/m2. Las componentes verde y azul se manejan de la misma manera. Seleccionando y = 2,4, la diferencia relativa entre las dos primeras palabras de código llega a ser 0,16 % y lo mismo ocurre con las dos últimas palabras de código en 0,95 %, lo que es mucho más equilibrado.
Proceso de adquisición de SDR
Suponiendo que el sensor de la cámara mide la luz lineal (R, G, B) en cd/m2, el primer paso es dividir por el brillo pico para llegar a la luz lineal normalizada (R01, G01, B01). Entonces se aplica la inversa de la EOTF R' = (Rd)1/Y, y lo mismo para la verde y la azul. Para descorrelacionar las componentes de color, se aplica una transformación de color del espacio de color RGB al YCbCr. El siguiente paso es cuantificar los datos. En este ejemplo cuantificamos con 10 bits, produciendo componentes (YW , CbW , Cr'444) que varían de 0 a 1023. Finalmente, las dos componentes de crominancia se submuestrean para obtener (Y'420, Cb'420, Cr'420). Los datos ahora se pueden enviar a un codificador de video, tal como el codificador de HEVC.
Visualización de datos de SDR
En el lado del receptor, el flujo de bits de HEVC se decodifica para recuperar (Y'420, Cb'420, Cr'420) o más bien versiones decodificadas de estos valores debido al hecho de que HEVC es un decodificador con pérdidas. Luego, la señal se procesa a la inversa de lo que se ha descrito anteriormente. El resultado final es la representación de luz lineal (R, G, B), que se muestra.
Procesamiento de HDR
Para datos de HDR, que pueden incluir luminancias de hasta 10 000 cd/m2, una función de potencia simple no se adapta bien a la sensibilidad de contraste del ojo humano en todo el rango de luminancias. Cualquier valor fijo de y dará como resultado una cuantificación demasiado tosca o bien en los tonos oscuros, los tonos brillantes o los tonos medios. Para resolver este problema, se usa la EOTF definida como
Figure imgf000023_0001
La luminancia pico también cambia de 100 a 10000.
Problema
Si se aplica el procesamiento de SDR convencional perfilado anteriormente pero con la nueva EOTF definida anteriormente y una luminancia pico igual a 10.000, ocurre algo inesperado. Como se muestra comparando las figuras 17A y 17B y las figuras 18A y 18B, aparecen artefactos. Tenga en cuenta que para las figuras 17A, 17B, 18A, 18B, no ha tenido lugar ninguna compresión aparte del submuestreo y la cuantificación con 10 bits. Sin embargo, ocurren artefactos perturbadores.
Análisis
Supongamos que los siguientes dos píxeles están uno al lado del otro en una imagen:
RGB1 = (1000; 0; 100); y
RGB2 = (1000; 4; 100)
Tenga en cuenta que estos colores son bastante similares. Sin embargo, los primeros pasos de procesamiento producen
tu444Cb'444Cr'4441 = (263; 646; 831) y
tu444Cb'444Cr'4442= (401; 571; 735)
que son bastante diferentes unos de otros. El promedio de estos dos valores es Y'Cb'Cr' = (332; 608,5; 783). Ahora, si retrocediéramos en la cadena de procesamiento para ver qué valor de RGB lineal representa esto, obtenemos RGB = (1001; 0,48; 100,5), que está bastante cerca de RGB1 y RGB2. Por tanto, solo promediar los tres componentes no es un problema. Surge un problema mayor cuando solo se interpolan Cb' y Cr', y usamos los valores de Y' de los píxeles sin interpolación. Esto es lo que se hace en el submuestreo de crominancia convencional, que se realiza con el fin de crear una representación 4:2:0. Por ejemplo, tomando Y' del primer píxel anterior, es decir, Y'Cb'Cr' = (263; 608,5; 783) representa un color RGB lineal de (484; 0,03; 45), que es demasiado oscuro. De manera similar, tomando Y' del segundo píxel, es decir, Y'Cb'Cr' = (401; 608,5; 783) da un valor de RGB de (2061; 2.2; 216), que es demasiado brillante.
Posibles soluciones alternativas
Consideremos añadir un tercer píxel al ejemplo,
RGB3 = (1000; 8; 100)
Si convertimos estas entradas lineales a R'G'B' obtenemos
R'G'B'1 = (0,7518; 0,0000; 0,5081)
R'G'B'2 = (0,7518; 0,2324; 0,5081)
R'G'B'3 = (0,7518; 0,2824; 0,5081).
Claramente, el salto en G' es mayor entre el primer y el segundo píxel aunque la G lineal cambia en pasos iguales de 4. Asimismo, la diferencia entre las coordenadas Y'Cb'Cr' será mayor entre los dos primeros píxeles que los últimos dos. Por lo tanto, el efecto será mayor cuando una o dos de las componentes estén cerca de cero en luz lineal, es decir, cuando el color esté cerca del borde de la gama de colores. Por tanto, una forma de evitar los artefactos puede ser solo evitar los colores saturados. Sin embargo, el espacio de color más grande de BT.2020 se introdujo específicamente para permitir colores más saturados, por lo que esa solución no es deseable.
Esto pone de relieve otro problema. Gran parte del contenido de prueba se filma en el documento Rec.709 y, después de la conversión a BT.2020, ninguno de los colores estará completamente saturado y, por tanto, los artefactos serán pequeños. Como ejemplo, un píxel adquirido en el documento Rec.709, por ejemplo, RGB709 = (0; 500; 0) después de la conversión a BT.2020 ya no tendrá ningún componente cero, RGB2020 = (165; 460; 44). Más adelante, cuando las cámaras sean capaces de grabar en BT.2020, aparecerán artefactos mucho más fuertes. Para emular el efecto del contenido de BT.2020 en un contenedor de BT.2020, hemos utilizado por lo tanto material del documento Rec.709 en un contenedor Rec.709 para el procesamiento de las cifras en este ejemplo. Sin embargo, matemáticamente no hay diferencia, dado que las coordenadas R01G01B01 abarcarán el rango completo de [0; 1] en ambos casos.
Otra solución alternativa es utilizar el procesamiento de luminancia constante (CL). En CL, toda la luminancia se transporta en Y', a diferencia de que solo la mayor parte de la luminancia se transporta en la luminancia Y' en el procesamiento presentado anteriormente, a lo que se hace referencia como procesamiento de luminancia no constante (NCL). Sin embargo, un problema con CL es que afecta a toda la cadena; la conversión de ida y vuelta entre una representación de CL 4:2:0/4:2:2 y una representación de NCL 4:2:0/4:2:2 pone en peligro la introducción de artefactos en cada paso de conversión. En la práctica, por lo tanto, ha sido difícil convertir industrias enteras de NCL a CL convencionales.
Solución propuesta: ajuste de luminancia
Una idea básica es asegurarse de que la luminancia resultante coincida con una deseada. Con luminancia, nos referimos a la componente Y del espacio de color (lineal) XYZ de CIE1931. Esta Y es diferente de la luminancia Y' mencionada anteriormente dado que Y se calcula a partir de los valores R G B lineales Y = wrR wgG wbB (1), donde wr = 0,2627, wg = 0,6780 y wb = 0,0593. La luminancia Y se corresponde bien con la forma en que el sistema visual humano aprecia el brillo, por lo que es interesante conservarlo bien. Esto se muestra en la figura 19, donde tanto la señal procesada (superior) como la señal original (inferior) se convierten en XYZ lineal. Entonces las componentes Y son bastante diferentes como se puede ver en la figura. La idea clave es que el valor de luminancia Y' se puede cambiar de manera independiente en cada píxel y, por lo tanto, es posible llegar a la luminancia lineal deseada correcta u original Yo cambiando Y1 hasta que Ysea igual a Yo, como se muestra en la figura 20 También se da el caso de que Ycrezca monótonamente con Y', lo que significa que es posible saber en qué dirección se debe cambiar Y'. Por lo tanto, se pueden usar métodos simples tales como la división a la mitad del intervalo para encontrar la Y' óptima, en un máximo de diez pasos para una cuantificación de 10 bits. Si se prefiere una solución de un solo paso, es posible utilizar una tabla de consulta en 3D que asimile Cb, Cr y la luminancia lineal deseada Yo y entregue Y'.
Aspectos de implementación
La técnica se puede implementar eficientemente de la siguiente forma: Primero, la luminancia deseada u original Yo para cada píxel se obtiene aplicando la Ecuación 1 a los valores originales (R, G, B) de cada píxel. En segundo lugar, se lleva a cabo toda la cadena: (R, G, B) ^ (normalización) ^ (R01, G01, B01) ^ (EOTF-1) ^ (R', G', B') ^ (transformación de color) ^ (Y'01, Cb'0.5, Cr'0.5) ^ (cuantificación de 10 bits) ^ (YW , Cb'444, Cr'444) ^ (submuestreo de crominancia) ^ (Y'420, Cb'420, Cr'420) ^ (muestreo ascendente de crominancia) ^ (YW , Cb'444, Cr'444) ^ (cuantificación inversa) ^ (Y'01, Cb'0.5, Cr'0.5). Luego, para cada píxel, se establece un intervalo inicial de [0; 1023]. A continuación, el valor candidato Y W = 512 se prueba. Y'01 se calcula a partir del valor candidato, y utilizando la Cb' previamente calculada, Cr'0.5 es posible pasar por los últimos pasos de procesamiento, produciendo ((R,G,B) a través de la cadena (Y'01, Cb'0.5, Cr'0.5) ^ (transformada de color inversa) ^ ( f í '01, G'01, B 01) ^ (EOTF) ^ (RR01, G 01, B01) ^ (desnormalización) ^ (R, G, B). Esto ahora se alimenta a la Ecuación 1 para obtener la luminancia candidata Y. Para un píxel dado, si Y < Yo, esto significa que el valor candidato Y W era demasiado pequeño, y que el valor de luminancia correcto debe estar en el intervalo [512; 1023]. Asimismo, si Y > Yo, el valor de luminancia correcto debe estar en el intervalo [0; 512]. Ahora se repite el proceso y, después de diez iteraciones, el intervalo contiene dos valores vecinos. En esta etapa, se prueban ambos de los dos valores y se selecciona el que produce el error más pequeño (Y - Yo)2.
Resultados
Implementamos la cadena de procesamiento convencional y la comparamos con nuestra cadena, que incluye el paso de ajuste de luminancia, pero mantiene el mismo decodificador. Las figuras 17A-17C y 18A-18C muestran resultados sin compresión. Aquí, tanto la cadena de procesamiento convencional (figuras 17B y 18B) como nuestra cadena de procesamiento (figuras 17C y 18C) se convierten a Y'Cb'Cr' 4:2:0 y luego vuelven a RGB lineal. Las figuras 17A y 18A ilustran las imágenes originales. El tiempo total de codificación (conversión de color más compresión HM) aumenta aproximadamente un 3 % en comparación con el procesamiento tradicional.
Para el material HDR, ninguna métrica única tiene un papel similar a PSNR para el contenido de SDR. En su lugar, reportamos dos métricas tPSNR-Y para luminancia y deltaE para crominancia. En la Tabla 5 se muestran los resultados sin comprimir para el material BT.709 en un contenedor BT.709. Aquí vemos un gran aumento en la calidad de la luminancia medida como tPSNR-Y de más de 17 dB en promedio y más de 20 dB en una secuencia. También el resultado deltaE está mejorando. La Tabla 6 muestra los resultados sin comprimir para material BT.709 o material P3 en un contenedor BT.2020. Aquí las ganancias son menos pronunciadas, dado que no hay colores disponibles directamente en el borde de la gama, pero la mejora de tPSNR-Y sigue siendo de 8 dB en promedio y más de 11 dB en algunas secuencias. La medida deltaE mejora marginalmente. Tenga en cuenta que con el material BT.2020 real, esperamos que las ganancias sean más similares a las de la Tabla 5.
Tabla 5 - Aumento de tPSNR-Y y deltaE (dB) para contenedor de Rec.709
Figure imgf000025_0001
Tabla 6 - Aumento de tPSNR-Y y deltaE (dB) para contenedor BT.2020
Figure imgf000025_0002
Anexo
Este Anexo investiga los artefactos de color debidos al submuestreo 4:2:0. En primer lugar, se hace un intento de comprobación cruzada, pero no se puede reproducir el peor valor, probablemente debido a un error de programación en HDRTools que ya se ha solucionado. A continuación, se realiza una búsqueda del peor error relativo en la luminancia que surge del submuestreo 4:2:0. Se encuentra que puede ocurrir un error relativo del 86 % (195 pasos de Barten) incluso si se muestra en una pantalla limitada a 4000 nits. Incluso si los datos están restringidos al documento Rec709 y se mantienen en un contenedor BT.2020, es posible un error de 30 pasos de Barten. Para contenido P3 en un contenedor BT.2020, es posible un error de 40 pasos de Barten.
1 Introducción
Se ha observado que pequeños cambios en el color pueden introducir artefactos sorprendentemente grandes cuando se usa el submuestreo 4:2:0, incluso si no está sucediendo ninguna compresión.
1.1 Discrepancias de comprobación cruzada
Esta investigación comenzó como una comprobación cruzada de m35255 [1 ], tratando de replicar los resultados en la diapositiva 13, reimpresos en la Tabla A1 a continuación. Los resultados son de una imagen de prueba en la que la parte izquierda de la imagen hasta el píxel 95 tiene el color (3000, 0, 100) y la parte derecha, el píxel 96 en adelante, tiene el color (3000, 4, 100).
Tabla A1 - valores de m35255
Figure imgf000026_0002
Cuando se realiza comprobación cruzada utilizando los mismos procedimientos que para los anclajes (n14548, [2]), obtuvimos el resultado mostrado en la Tabla A2. Para el submuestreo, se siguieron los filtros descritos en la Sección 2.4.7 de [2] (2 y 3 derivadores) y para el muestreo ascendente se siguió la Sección 2.4.8 de [2] (4 filtros derivadores).
Tabla A2: valores cuando se intenta hacer una comprobación cruzada
Figure imgf000026_0001
Como se puede ver, esto coincide muy mal y solo los números de píxeles. 94 y 98 coinciden, mientras que no se encuentra ninguna coincidencia para los píxeles números 95-97 o 99. Sin embargo, moviendo la discontinuidad al píxel 97 en su lugar da una coincidencia mucho mejor, como se muestra en la Tabla A3.
Tabla A3 - valores cuando se mueve la discontinuidad
Figure imgf000027_0001
En la Tabla A3, solo el píxel n° 96 no coincide. Ese es también el píxel con los valores más extraños (10000, 1,57, 402,25), siendo la respuesta correcta (3000, 0, 100) o (3000, 4, 100) dependiendo de dónde ponga la discontinuidad.
Parece que la falta de coincidencia en la comprobación cruzada se debe a un error que ya se ha corregido en HDRtools. Si volvemos a la revisión 492, podemos producir los mismos valores que en m35255 [1]. Para confirmar que la versión más reciente de HDRtools (revisión 573) es correcta, implementamos de manera independiente la cadena de procesamiento en Matlab y obtenemos los mismos resultados que en la Tabla A3. La razón por la que tuvimos que mover la discontinuidad para obtener una coincidencia probablemente se deba al filtrado defectuoso en la revisión 492 que se ha corregido en la versión actual.
1.2 Problema de redondeo
Cuando se implementa la comprobación cruzada de Matlab, nos dimos cuenta de que la conversión de valor flotante a EXR en HDRtools carece de redondeo. En lugar de redondear los 23 bits de la mantisa a 10 bits, simplemente se desplazan a la derecha, básicamente reemplazando un round() con un floor(). Esto afecta al resultado final. Como ejemplo, un valor flotante de 3007,9 se convertirá en 3006,0, aunque 3008,0 es un valor mucho más cercano. Para obtener una coincidencia, hicimos que el código de Matlab emulara la conversión de tipo floor() en la revisión actual de HDRtools (revisión 587 de [3]).
1.3 Valores atípicos de color
Tenga en cuenta que incluso si el píxel 96 ya no es un valor atípico extremo, el píxel 97 todavía está bastante lejos de ser correcto: (5860, 2,58, 199) en lugar de (3000, 4, 100). Eso plantea la pregunta; ¿Cuán malos son los valores atípicos puede generar el submuestreo 4:2:0 y dónde sucede esto? Para responder a esta pregunta, primero tenemos que definir qué entendemos por "malo". Nos concentramos en la luminancia, dado que el sistema visual humano es más sensible a los cambios de luminancia que de crominancia. Por lo tanto, transformamos tanto la imagen de EXR de entrada como la imagen de EXR de salida, ambas de luz lineal a XYZ, y formamos la diferencia en Y. Para obtener un error relativo, luego dividimos por la componente Y del original. Luego escribimos un pequeño programa que maximiza este error relativo para el píxel 97 sobre todas las imágenes posibles del tipo donde la parte izquierda es de un color y la parte derecha es del mismo color más un pequeño delta de longitud 4, tal como se hizo en m35255 [1].
Ejecutar este programa dio como respuesta que tener el color (2142, 0, 138) en la parte izquierda y (2142, 4, 138) en la parte derecha da el mayor error visible, como se muestra en la Tabla A4. No se garantiza que el software de optimización que busca el "peor" error encuentre el máximo global, por lo tanto pueden existir posiciones aún peores en la gama de colores.
Tabla A4 - datos para el "peor" color para submuestreo 4:2:0
Figure imgf000028_0001
Se debería señalar que tener una componente roja superior a 2142 generaría un error relativo aún mayor. Sin embargo, suponemos que los valores de RGB superiores a 4000 serían recortados a 4000 por el monitor, por lo que creemos que la diferencia real en pantalla comenzaría a disminuir si se utilizaran valores más altos.
Como se puede ver en la Tabla A4, el error relativo para RGB 4:4:4 es 0,0304 %. Para poner eso en perspectiva, comparamos eso con la curva de Barten, véase la figura 21 que ilustra la curva de Barten para la sensibilidad al contraste. No se nota un contraste debajo de la curva. La Tabla A5 muestra los valores utilizados para trazar la curva en la figura 21.
Tabla A5 - valores utilizados para trazar la curva de Barten
Figure imgf000028_0002
Como se puede ver en la figura 21, la tolerancia de los errores relativos disminuye con el aumento de la luminancia. A 100 nits, un error de 0,44 % puede ser apenas perceptible, mientras que a 1000 nits, un error de 0,40 % puede ser apenas perceptible. Dado que 455 nits está justo entre estos, usamos el valor más alto de 0,44 %. Esto da un paso de Barten de 0,069, lo que significa que no es perceptible.
Para submuestreo 4:2:0, por otro lado, el error relativo es 85,92 %. Esto equivale a más de 195 pasos de Barten, que deberían ser claramente visibles. Por lo tanto, parece razonable concluir que el submuestreo 4:2:0 puede crear artefactos claramente visibles, al menos junto con una luminancia no constante y una función de transferencia altamente no lineal, como es el caso de la generación de anclajes.
Tenga en cuenta que el peor error está justo en el borde de la gama de colores; dado que el color verde es cero, el color (2142, 0, 138) está en la línea entre los colores primarios rojo y verde. Esto es consistente con lo que se informó en m35255 [1], que también señaló los colores en el borde de la gama como problemáticos.
1.4 Cuando la entrada son datos de 709
Los datos presentados en la Tabla A1 corresponden a los primarios BT.2020. Si los datos de entrada están con los primarios de Rec709, pero el contenedor es BT.2020, no será posible alcanzar el límite de la gama de colores. Esto se debe al hecho de que el triángulo de gama de Rec709 está dentro del triángulo BT.2020, sin tocar el límite de gama, como se puede ver en la figura 22. Por lo tanto, es razonable suponer que el error relativo será menor.
Hemos ejecutado el software de optimización para encontrar el color de Rec709 que, después de la conversión a BT.2020, daría como resultado el mayor error relativo. Los dos colores resultantes son (0, 0, 50) para la parte izquierda de la pantalla y (2, 3, 49) para la parte derecha. Esto se presenta en la Tabla A6.
Tabla A6: datos para el "peor" color para el submuestreo 4:2:0 si la entrada es Rec709 y el formato del contenedor es BT.2020
Figure imgf000029_0001
Aquí hemos utilizado la curva de Barten a 10 nits, que equivale a 0,54 %. Para RGB 4: 4: 4, obtenemos entonces un error que solo es perceptible en 1,2305 pasos de Barten, mientras que el error en RGB 4: 2: 0 equivale a 33 pasos de Barten, que debería ser claramente visible. También es razonable que el error sea menor (33 pasos de Barten frente a 195 pasos de Barten) dado que comenzar con los datos de Rec709 impide que el color alcance todas las partes del borde de la gama de BT.2020.
Tenga en cuenta también cómo el resultado de la optimización ha encontrado que el peor error está disponible cerca del primario azul. Es probable que esto se deba a que el primario de Rec709 azul está más cerca del borde de la gama BT.2020, como se puede ver en la figura 22.
1.5 Cuando la entrada son datos de P3
La misma prueba se puede llevar a cabo para los datos fuente P3 contenidos en un contenedor BT.2020. Los peores colores son entonces (2,48, 3,32, 4,63) y (3,29, 0, 6,71), como se muestra en la Tabla A7.
Tabla A7: datos para el "peor" color para el submuestreo 4:2:0 si la entrada es P3 y el formato del contenedor es
BT.2020
Figure imgf000029_0002
Figure imgf000030_0001
Supondríamos que el error estaría en algún lugar entre el de Rec709 y BT.2020, y este también es el caso, ahora obtenemos un error equivalente a 40,38 pasos de Barten. Tenga en cuenta que, dado que el valor de Barten cambia, es importante incluirlo en el bucle cuando se busca el peor valor. Hemos utilizado el valor de Barten para 1 cd/m2, que equivale a 0,85 %.
1.6 Conclusión
Este Anexo ha investigado el error de luminancia debido al submuestreo 4:2:0. Aunque no hemos sido capaces de igualar el peor valor atípico de m35255 [1], los errores del peor de los casos siguen siendo significativos, alcanzando casi 200 pasos de Barten para datos generales. Incluso si los datos fuente están restringidos al documento Rec709 y se ponen en un contenedor BT.2020, el error sigue siendo significativo, por encima de 30 pasos de Barten, y para datos de P3 en un contenedor de BT.2020, por encima de 40 pasos Barten.
Referencias
[1] Organización Internacional de Normalización, ISO/IEC JTC1/SC29/WG11, Codificación de imágenes en movimiento y audio, MPEG2013/M35255, octubre de 2014, Estrasburgo, Francia, Francois et al., About using a BT.2020 container for BT.709 content.
[2] Organización Internacional de Normalización, ISO/IEC JTC1/SC29/WG11, Codificación de imágenes en movimiento y audio, MPEG2014/N14548, julio de 2014, Sapporo, Japón, Luthra et al., Test sequences and anchor generation for HDR and Wide Gamut Content Distribution.
[3] https://wg11.sc29.org/svn/repos/Explorations/XYZ/HDRTools/branches/0.9-dev
[4] Organización Internacional de Normalización, ISO/IEC JTC1/SC29/WG11, Codificación de imágenes en movimiento y audio, MPEG2014/N15083, febrero de 2015, Ginebra, Suiza, Luthra et al., Call for Evidence (CfE) for HDR and WCG Video Coding.

Claims (11)

REIVINDICACIONES
1. Un método de procesamiento previo de un píxel en una imagen, dicho método que comprende:
obtener (S1) un valor de componente de luminancia lineal original (Yo) de dicho píxel en un espacio de color XYZ determinado aplicando una transformación de color RGB a XYZ a un color lineal (RoGoBo) de dicho píxel en un espacio de color RGB;
aplicar (S10) una primera función de transferencia a dicho color lineal en dicho espacio de color RGB para obtener un color no lineal en dicho espacio de color RGB, caracterizado por:
aplicar (S11) una primera transformación de color a dicho color no lineal en dicho espacio de color RGB para obtener un color no lineal en un espacio de color Y'CbCr, en donde dicho color no lineal en dicho espacio de color Y'Cb'Cr' comprende un valor de componente Cb de crominancia no lineal inicial y un valor de componente Cr de crominancia no lineal inicial;
submuestrear (S12) dicho valor de componente Cb de crominancia no lineal inicial en dicho espacio de color Y'CbCr y dicho valor de componente Cr de crominancia no lineal inicial en dicho espacio de color Y'CbCr para obtener un valor de componente Cb de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr y un valor de componente Cr de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr;
muestrear ascendente (S20) dicho valor de componente Cb de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr y dicho valor de componente Cr de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr para obtener un valor de componente Cb de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr y un valor de componente Cr de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr;
aplicar (S21) una segunda transformación de color a un valor de componente de luminancia no lineal candidato (Y') en dicho espacio de color Y'CbCr, dicho valor de componente Cb de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr y dicho valor de componente Cb de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr para obtener un segundo color no lineal (R'G'B') en dicho espacio de color RGB;
aplicar (S22) una segunda función de transferencia al segundo color no lineal en dicho espacio de color RGB para obtener un segundo color lineal (RGB) en dicho espacio de color RGB;
aplicar (S23) dicha transformación de color RGB a XYZ al segundo color lineal en dicho espacio de color RGB para derivar un valor de componente de luminancia lineal (Y) en dicho espacio de color XYZ; y
derivar (S2) un valor de componente de luminancia no lineal (Y') en dicho espacio de color Y'CbCr para dicho píxel corrigiendo el valor de componente de luminancia no lineal candidato en dicho espacio de color Y'CbCr de manera que se reduzca una diferencia entre el valor de componente de luminancia lineal derivado (Y) en dicho espacio de color XYZ y dicho valor de componente de luminancia lineal original (Yo) en dicho espacio de color XYZ.
2. Un método de codificación de un píxel en una imagen, dicho método que comprende:
procesar previamente (S1, S2) dicho píxel según la reivindicación 1 para derivar un valor de componente de luminancia no lineal (Y') en un espacio de color Y'CbCr para dicho píxel; y
codificar (S3) dicho valor de componente de luminancia no lineal, un valor de componente Cb de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr y un valor de componente Cr de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr.
3. Un dispositivo (100, 110) para procesar previamente un píxel en una imagen, en donde
dicho dispositivo (100, 110) está configurado para obtener un valor de componente de luminancia lineal original (Yo) de dicho píxel en un espacio de color XYZ determinado aplicando una transformación de color RGB a XYZ a un color lineal (RoGoBo) de dicho píxel en un espacio de color RGB;
dicho dispositivo (100, 110) está configurado para aplicar una primera función de transferencia a dicho color lineal en dicho espacio de color RGB para obtener un color no lineal en dicho espacio de color RGB, caracterizado por que
dicho dispositivo (100, 110) está configurado para aplicar una primera transformación de color a dicho color no lineal en dicho espacio de color RGB para obtener un color no lineal en un espacio de color Y'CbCr, en donde dicho color no lineal en dicho espacio de color Y'Cb'Cr' comprende un valor de componente Cb de crominancia no lineal inicial y un valor de componente Cr de crominancia no lineal inicial;
dicho dispositivo (100, 110) está configurado para submuestrear dicho valor de componente Cb de crominancia no lineal inicial en dicho espacio de color Y'CbCr y dicho valor de componente Cr de crominancia no lineal inicial en dicho espacio de color Y'CbCr para obtener un valor de componente Cb de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr y un valor de componente Cr de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr;
dicho dispositivo (100, 110) está configurado para muestrear ascendentemente dicho valor de componente Cb de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr y dicho valor de componente Cr de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr para obtener un valor de componente Cb de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr n valor de componente Cr de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr;
dicho dispositivo (100, 110) está configurado para aplicar una segunda transformación de color a un valor de componente de luminancia no lineal candidato (Y') en dicho espacio de color Y'CbCr, dicho valor de componente Cb de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr y dicho valor de componente Cr de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr para obtener un segundo color no lineal (R'G'B') en dicho espacio de color RGB;
dicho dispositivo (100, 110) está configurado para aplicar una segunda función de transferencia a dicho segundo color no lineal en dicho espacio de color RGB para obtener un segundo color lineal (RGB) en dicho espacio de color RGB;
dicho dispositivo (100, 110) está configurado para aplicar dicha transformación de color RGB a XYZ a dicho segundo color lineal en dicho espacio de color RGB para derivar un valor de componente de luminancia lineal (Y) en dicho espacio de color XYZ; y
dicho dispositivo (100, 110) está configurado para derivar un valor de componente de luminancia no lineal (Y') en dicho espacio de color Y'CbCr para dicho píxel corrigiendo el valor de componente de luminancia no lineal candidato en dicho espacio de color Y'CbCr de manera que se reduzca una diferencia entre el valor de componente de luminancia lineal derivado (Y) en dicho espacio de color XYZ y dicho valor de componente de luminancia lineal original (Yo) en dicho espacio de color XYZ.
4. El dispositivo según la reivindicación 3, en donde dicho dispositivo (100, 110) está configurado para derivar un valor de componente de luminancia no lineal en dicho espacio de color Y'CbCr que minimiza una diferencia entre dicho valor de componente de luminancia lineal original en dicho espacio de color XYZ y dicho valor de componente de luminancia lineal en dicho espacio de color XYZ.
5. El dispositivo según la reivindicación 3 o 4, en donde
dicho dispositivo (100, 110) está configurado para realizar la aplicación de dicha segunda transformación de color a un valor de componente de luminancia no lineal candidato en dicho espacio de color Y'CbCr, dicho valor de componente Cb de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr y dicho valor de componente Cr de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr, la aplicación de dicha segunda función de transferencia a dicho segundo color no lineal en dicho espacio de color RGB y la aplicación de dicha transformación de color RGB a XYZ a dicho segundo color lineal en dicho espacio de color RGB para diferentes valores de componentes de luminancia no lineales candidatos en dicho espacio de color Y'CbCr; y
dicho dispositivo (100, 110) está configurado para seleccionar el valor de componente de luminancia no lineal candidato entre dichos diferentes valores de componente de luminancia no lineal candidatos en dicho espacio de color Y'CbCr que da como resultado una diferencia más pequeña entre dicho valor de componente de luminancia lineal original en dicho espacio de color XYZ y dicho valor de componente de luminancia lineal derivado en dicho espacio de color XYZ.
6. El dispositivo según cualquiera de las reivindicaciones 3 a 5, en donde dicho dispositivo (100, 110) está configurado para realizar una búsqueda binaria para seleccionar un valor de componente de luminancia no lineal candidato en dicho espacio de color Y'CbCr que minimiza la diferencia entre dicho valor de componente de luminancia lineal original en dicho espacio de color XYZ y dicho valor de componente de luminancia lineal derivado en dicho espacio de color XYZ.
7. Un equipo de usuario (5, 200) que comprende un dispositivo (100, 110, 120) según cualquiera de las reivindicaciones 3 a 6, en donde dicho equipo de usuario (5, 200) es un dispositivo o aparato configurado para recibir y procesar datos de video.
8. Un equipo de usuario (5, 200) que comprende un dispositivo (100, 110, 120) según cualquiera de las reivindicaciones 3 a 6, en donde dicho equipo de usuario (5, 200) se selecciona de un grupo que consiste en un ordenador, un ordenador portátil, un teléfono inteligente, una tableta y un decodificador.
9. Un programa de ordenador (240) que comprende instrucciones que, cuando se ejecutan por un procesador (210), hacen que dicho procesador (210):
obtenga un valor de componente de luminancia lineal original (Yo) de dicho píxel en un espacio de color XYZ determinado aplicando una transformación de color RGB a XYZ a un color lineal (RoGoBo) de dicho píxel en un espacio de color RGB;
aplique una primera función de transferencia a dicho color lineal en dicho espacio de color RGB para obtener un color no lineal en dicho espacio de color RGB;
aplique una primera transformación de color a dicho color no lineal en dicho espacio de color RGB para obtener un color no lineal en un espacio de color Y'CbCr, en donde dicho color no lineal en dicho espacio de color Y'Cb'Cr' comprende un valor de componente Cb de crominancia no lineal inicial y un valor de componente Cr de crominancia no lineal inicial;
submuestree dicho valor de componente Cb de crominancia no lineal inicial en dicho espacio de color Y'CbCr y dicho valor de componente Cr de crominancia no lineal inicial en dicho espacio de color Y'CbCr para obtener un valor de componente Cb de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr y un valor de componente Cr de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr;
muestree ascendentemente dicho valor de componente Cb de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr y dicho valor de componente Cr de crominancia no lineal submuestreado en dicho espacio de color Y'CbCr para obtener un valor de componente Cb de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr y un valor de componente Cr de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr;
aplique una segunda transformación de color a un valor de componente de luminancia no lineal candidato (Y') en dicho espacio de color Y'CbCr, dicho valor de componente Cb de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr y dicho valor de componente Cr de crominancia no lineal muestreado ascendentemente en dicho espacio de color Y'CbCr para obtener un segundo color no lineal (R'G'B') en dicho espacio de color RGB;
aplique una segunda función de transferencia a dicho segundo color no lineal en dicho espacio de color RGB para obtener un segundo color lineal (RGB) en dicho espacio de color RGB;
aplique dicha transformación de color RGB a XYZ a dicho color lineal en dicho espacio de color RGB para derivar un valor de componente de luminancia lineal (Y) en dicho espacio de color XYZ; y
derive un valor de componente de luminancia no lineal (Y') en dicho espacio de color Y'CbCr para dicho píxel corrigiendo el valor de componente de luminancia no lineal candidato en dicho espacio de color Y'CbCr de manera que se reduzca una diferencia entre el valor de componente de luminancia lineal derivado (Y) en dicho espacio de color XYZ y dicho valor de componente de luminancia lineal original (Yo) en dicho espacio de color XYZ.
10. El programa informático según la reivindicación 9, en donde dicho programa informático (240) comprende además instrucciones que, cuando se ejecutan por dicho procesador (210), hacen que dicho procesador (210) codifique dicho valor de componente de luminancia no lineal, dicho valor de componente Cb de crominancia no lineal y dicho valor de componente Cr de crominancia no lineal.
11. Un soporte (250) que comprende un programa informático (240) según la reivindicación 9 o 10, en donde dicho soporte es un medio de almacenamiento legible por ordenador.
ES16749537T 2015-02-13 2016-01-28 Procesamiento previo y codificación de píxeles Active ES2925352T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562115679P 2015-02-13 2015-02-13
PCT/SE2016/050058 WO2016130066A1 (en) 2015-02-13 2016-01-28 Pixel pre-processing and encoding

Publications (1)

Publication Number Publication Date
ES2925352T3 true ES2925352T3 (es) 2022-10-17

Family

ID=56614572

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16749537T Active ES2925352T3 (es) 2015-02-13 2016-01-28 Procesamiento previo y codificación de píxeles

Country Status (10)

Country Link
US (2) US9654803B2 (es)
EP (1) EP3257042B1 (es)
JP (1) JP6516851B2 (es)
KR (1) KR102033229B1 (es)
CN (1) CN107210026B (es)
DK (1) DK3257042T3 (es)
ES (1) ES2925352T3 (es)
MY (1) MY177576A (es)
RU (1) RU2679239C1 (es)
WO (1) WO2016130066A1 (es)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015196149A1 (en) 2014-06-20 2015-12-23 Velo3D, Inc. Apparatuses, systems and methods for three-dimensional printing
MX371490B (es) * 2015-05-21 2020-01-31 Ericsson Telefon Ab L M Pre-procesamiento y codificacion de pixeles.
US9662840B1 (en) 2015-11-06 2017-05-30 Velo3D, Inc. Adept three-dimensional printing
US11019365B2 (en) * 2015-07-30 2021-05-25 Zhejiang Dahua Technology Co., Ltd. Methods and systems for image compression
US10080005B2 (en) 2015-11-09 2018-09-18 Netflix, Inc. High dynamic range color conversion correction
US10715772B2 (en) 2015-11-09 2020-07-14 Netflix, Inc. High dynamic range color conversion correction
US10742986B2 (en) 2015-11-09 2020-08-11 Netflix, Inc. High dynamic range color conversion correction
US10207454B2 (en) 2015-12-10 2019-02-19 Velo3D, Inc. Systems for three-dimensional printing
US10252335B2 (en) 2016-02-18 2019-04-09 Vel03D, Inc. Accurate three-dimensional printing
EP3427478B1 (en) * 2016-03-07 2023-08-23 Koninklijke Philips N.V. Encoding and decoding hdr videos
WO2017200447A1 (en) * 2016-05-16 2017-11-23 Telefonaktiebolaget Lm Ericsson (Publ) Pixel processing with color component
US10259044B2 (en) 2016-06-29 2019-04-16 Velo3D, Inc. Three-dimensional printing and three-dimensional printers
US11691343B2 (en) 2016-06-29 2023-07-04 Velo3D, Inc. Three-dimensional printing and three-dimensional printers
US11064210B2 (en) 2016-10-04 2021-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Pre-processing of HDR video involving chroma adjustment
US10880558B2 (en) 2016-10-05 2020-12-29 Telefonaktiebolaget Lm Ericsson (Publ) Efficient LUT implementation of luma adjustment
US20180126460A1 (en) 2016-11-07 2018-05-10 Velo3D, Inc. Gas flow in three-dimensional printing
WO2018117948A1 (en) * 2016-12-23 2018-06-28 Telefonaktiebolaget Lm Ericsson (Publ) Chroma adjustment with color components in color spaces in video coding
US20180186082A1 (en) 2017-01-05 2018-07-05 Velo3D, Inc. Optics in three-dimensional printing
US10888925B2 (en) 2017-03-02 2021-01-12 Velo3D, Inc. Three-dimensional printing of three-dimensional objects
US10555004B1 (en) * 2017-09-22 2020-02-04 Pixelworks, Inc. Low frequency compensated encoding
WO2019071045A1 (en) * 2017-10-04 2019-04-11 Netflix, Inc. HIGH DYNAMIC RANGE COLORING CORRECTION
US10272525B1 (en) 2017-12-27 2019-04-30 Velo3D, Inc. Three-dimensional printing systems and methods of their use
EP3591955A1 (en) * 2018-07-06 2020-01-08 InterDigital VC Holdings, Inc. Method of processing data by an iterative application of a same lut
JP2022544339A (ja) 2019-07-26 2022-10-17 ヴェロ3ディー,インコーポレーテッド 三次元オブジェクトの形成における品質保証
US20220245862A1 (en) * 2020-04-28 2022-08-04 Shenzhen Sitan Technology Co., Ltd. Image processing method and device, camera apparatus and storage medium

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US601027A (en) 1898-03-22 trussell
US5450217A (en) * 1994-05-23 1995-09-12 Xerox Corporation Image-dependent color saturation correction in a natural scene pictorial image
CN1106118C (zh) * 1998-09-29 2003-04-16 华邦电子股份有限公司 色彩空间信号转换装置及方法
US6954214B2 (en) * 2000-10-30 2005-10-11 Microsoft Corporation Efficient perceptual/physical color space conversion
JP3818098B2 (ja) * 2001-08-17 2006-09-06 ソニー株式会社 画像信号処理方法及び画像信号処理装置
WO2003040933A2 (en) * 2001-11-02 2003-05-15 Colorgraphyx System and method for color transformation using standardized device profiles
DE10204500A1 (de) * 2002-02-03 2003-08-14 Fraunhofer Ges Forschung Echtzeitfähiges Erkennungs- und Kompensationsverfahren von Beleuchtungsschwankungen in digitalen Farbbildsignalen
US7643675B2 (en) 2003-08-01 2010-01-05 Microsoft Corporation Strategies for processing image information using a color information data structure
JP2005208817A (ja) * 2004-01-21 2005-08-04 Konica Minolta Photo Imaging Inc 画像処理方法、画像処理装置及び画像記録装置
US7916940B2 (en) * 2004-01-31 2011-03-29 Hewlett-Packard Development Company Processing of mosaic digital images
MX2007000369A (es) * 2004-07-29 2007-03-12 Microsoft Corp Procesamiento de imagen utilizando valores ligeros y otras mejoras de procesamiento de imagen.
US7349484B2 (en) * 2004-12-22 2008-03-25 Rambus Inc. Adjustable dual-band link
JP4241902B2 (ja) * 2006-05-15 2009-03-18 シャープ株式会社 カラー画像表示装置及び色変換装置
EP2046067A4 (en) * 2006-07-25 2010-04-21 Nikon Corp CONVERSION MATRIX DETERMINATION METHOD, IMAGE PROCESSING DEVICE, PICTURE PROCESSING PROGRAM AND PICTURE DEVICE
CN101354450B (zh) * 2007-07-26 2012-03-14 鸿富锦精密工业(深圳)有限公司 光学板及其制备方法
US8130236B2 (en) * 2008-02-05 2012-03-06 Aptina Imaging Corporation Systems and methods to achieve preferred imager color reproduction
EP2144432A1 (en) * 2008-07-08 2010-01-13 Panasonic Corporation Adaptive color format conversion and deconversion
JP5436584B2 (ja) * 2009-03-10 2014-03-05 ドルビー ラボラトリーズ ライセンシング コーポレイション 拡張ダイナミックレンジおよび拡張次元をもつ画像信号変換
TWI390961B (zh) * 2009-03-13 2013-03-21 Asustek Comp Inc 影像處理裝置及影像處理方法
JP5370761B2 (ja) * 2009-04-10 2013-12-18 ソニー株式会社 映像信号処理装置および表示装置
TWI424427B (zh) * 2009-05-13 2014-01-21 Chunghwa Picture Tubes Ltd 色彩轉換方法以及其相對應之色彩顯示方法
US8311355B2 (en) * 2009-06-05 2012-11-13 Apple Inc. Skin tone aware color boost for cameras
US9049410B2 (en) * 2009-12-23 2015-06-02 Samsung Display Co., Ltd. Color correction to compensate for displays' luminance and chrominance transfer characteristics
US8285033B2 (en) * 2010-04-01 2012-10-09 Seiko Epson Corporation Bi-affinity filter: a bilateral type filter for color images
JP6081360B2 (ja) * 2010-09-16 2017-02-15 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 改善された画像の符号化及び/又は復号のための装置、方法並びに画像データ記憶媒体
WO2012106122A1 (en) * 2011-01-31 2012-08-09 Malvell World Trade Ltd. Systems and methods for performing color adjustments of pixels on a color display
US8919476B2 (en) * 2011-07-11 2014-12-30 Holland Moving & Rigging Supplies, Inc. Platform dolly system
US8737728B2 (en) * 2011-09-30 2014-05-27 Ebay Inc. Complementary item recommendations using image feature data
KR20130068823A (ko) * 2011-12-16 2013-06-26 삼성전자주식회사 영상 신호 처리를 위한 방법 및 장치
US9142012B2 (en) * 2012-05-31 2015-09-22 Apple Inc. Systems and methods for chroma noise reduction
US20140066196A1 (en) * 2012-08-30 2014-03-06 Colin William Crenshaw Realtime color vision deficiency correction
JP2017512393A (ja) * 2014-02-21 2017-05-18 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 高解像度及び高ダイナミックレンジを可能とするビデオデコーダ
CN104159053B (zh) * 2014-08-08 2017-08-15 浙江大学 一种大色域显示设备三原色优化设置方法
CN104243946B (zh) * 2014-09-26 2017-04-19 深圳市华星光电技术有限公司 用于显示器的图像色彩增强方法及装置
EP3051818A1 (en) * 2015-01-30 2016-08-03 Thomson Licensing Method and device for decoding a color picture
EP4089627A3 (en) 2015-01-30 2022-12-28 InterDigital VC Holdings, Inc. A method and apparatus of encoding and decoding a color picture

Also Published As

Publication number Publication date
EP3257042B1 (en) 2022-06-22
JP6516851B2 (ja) 2019-05-22
CN107210026B (zh) 2020-02-14
EP3257042A4 (en) 2018-02-14
DK3257042T3 (da) 2022-08-01
WO2016130066A1 (en) 2016-08-18
US20160241885A1 (en) 2016-08-18
RU2679239C1 (ru) 2019-02-06
US9654803B2 (en) 2017-05-16
KR102033229B1 (ko) 2019-10-16
US10397536B2 (en) 2019-08-27
BR112017017434A8 (pt) 2022-09-06
EP3257042A1 (en) 2017-12-20
KR20170103937A (ko) 2017-09-13
MY177576A (en) 2020-09-21
BR112017017434A2 (pt) 2018-04-03
CN107210026A (zh) 2017-09-26
JP2018511210A (ja) 2018-04-19
US20170208310A1 (en) 2017-07-20

Similar Documents

Publication Publication Date Title
ES2925352T3 (es) Procesamiento previo y codificación de píxeles
US11025927B2 (en) Pixel pre-processing and encoding
US10699671B2 (en) Pixel processing with color component
JP2018525883A (ja) カラー・ピクチャを符号化および復号する方法およびデバイス
JP6719391B2 (ja) ビットストリーム内で、ldrピクチャのピクチャ/ビデオ・フォーマットと、このldrピクチャおよびイルミネーション・ピクチャから取得された復号済みのhdrピクチャのピクチャ/ビデオ・フォーマットとをシグナリングする方法および装置
US11006152B2 (en) Method and apparatus for encoding/decoding a high dynamic range picture into a coded bitstream
WO2017190995A1 (en) Method and apparatus for encoding/decoding a scalar integer into a parameter representative of a pivot points of a piece-wise linear function.
US10674182B2 (en) Pixel pre-processing and encoding
US10602109B2 (en) Method and arrangements for HDR encoding
BR112017017434B1 (pt) Método de pré-processar um pixel em uma imagem
BR122024005664A2 (pt) Método e dispositivo para codificar uma imagem colorida que tem componentes de cor, e método e dispositivo para decodificar uma imagem colorida a partir de um fluxo de bits