ES2903013T3 - Capas de referencia de señalización para la predicción del color 3D para la escalabilidad de la gama de color - Google Patents

Capas de referencia de señalización para la predicción del color 3D para la escalabilidad de la gama de color Download PDF

Info

Publication number
ES2903013T3
ES2903013T3 ES15721398T ES15721398T ES2903013T3 ES 2903013 T3 ES2903013 T3 ES 2903013T3 ES 15721398 T ES15721398 T ES 15721398T ES 15721398 T ES15721398 T ES 15721398T ES 2903013 T3 ES2903013 T3 ES 2903013T3
Authority
ES
Spain
Prior art keywords
layer
image
lookup table
video
color
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
ES15721398T
Other languages
English (en)
Inventor
Xiang Li
Jianle Chen
Marta Karczewicz
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2903013T3 publication Critical patent/ES2903013T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/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/187Methods 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 scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • 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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

Un método para decodificar datos de vídeo, comprendiendo el método: recibir uno o más ID de identificadores de capa de referencia en una tabla de búsqueda 3D tridimensional para la escalabilidad de la gama de colores, en la que la tabla de búsqueda 3D es para una capa de mejora y en la que uno o más ID de capa de referencia identifican al menos una capa de referencia de una pluralidad de capas de referencia de los datos de vídeo a las que se aplicará la tabla de búsqueda 3D; aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de capa de referencia, solo si la capa de referencia está identificada por uno o más ID de capa de referencia, para convertir los componentes de color de una primera gama de colores para las capas de referencia de los datos de vídeo a una segunda gama de colores para la capa de mejora de los datos de vídeo; generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y decodificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.

Description

DESCRIPCIÓN
Capas de referencia de señalización para la predicción del color 3D para la escalabilidad de la gama de color
Esta solicitud reivindica el beneficio de Solicitud Provisional de Estados Unidos No. 61/981,125, presentada el 17 de abril de 2014, y Solicitud Provisional de Estados Unidos No. 62/005,651, presentada el 30 de mayo de 2014.
Campo técnico
Esta divulgación se refiere a la codificación de vídeo.
Antecedentes
Las capacidades de vídeo digital se pueden incorporar en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de difusión digital directa, sistemas de difusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, tabletas, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, radioteléfonos móviles o por satélite, los llamados "teléfonos inteligentes", dispositivos de vídeo teleconferencia, dispositivos de transmisión continua de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de codificación de vídeo, tal como las descritas en los estándares definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación de Vídeo Avanzada (AVC), el estándar de Codificación de Vídeo de Alta Eficiencia (HEVC) actualmente en desarrollo, y extensiones de dichos estándares. Los dispositivos de vídeo pueden transmitir, recibir, codificar, decodificar y/o almacenar información de vídeo digital de manera más eficiente implementando tales técnicas de codificación de video.
Las técnicas de codificación de vídeo incluyen la predicción espacial (intraimagen) y/o la predicción temporal (entre imágenes) para reducir o eliminar la redundancia inherente a las secuencias de video. Para la codificación de vídeo con base en bloques, un segmento de vídeo (por ejemplo, un cuadro de vídeo o una porción de un cuadro de vídeo) puede dividirse en bloques de vídeo, que también pueden denominarse bloques de árbol, unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo en un segmento intracodificado (I) de una imagen se codifican utilizando la predicción espacial con respecto a las muestras de referencia en los bloques vecinos de la misma imagen. Los bloques de vídeo en un segmento intercodificado (P o B) de una imagen pueden usar predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes pueden denominarse fotogramas y las imágenes de referencia pueden denominarse fotogramas de referencia.
La predicción espacial o temporal da como resultado un bloque predictivo para que se codifique un bloque. Los datos residuales representan las diferencias de píxeles entre el bloque original que se va a codificar y el bloque predictivo. Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con un modo de intracodificación y los datos residuales. Para una compresión adicional, los datos residuales pueden transformarse del dominio de píxeles a un dominio de transformación, lo que da como resultado coeficientes de transformación residuales, que luego pueden cuantificarse. Los coeficientes de transformación cuantificados, dispuestos inicialmente en una matriz bidimensional, se pueden escanear para producir un vector unidimensional de coeficientes de transformación, y se puede aplicar codificación de entropía para lograr una compresión aún mayor. La técnica relacionada comprende: BORDES P ET AL: AHG14: Color Gamut Scalable Video Coding using 3D LUT: New Results", 14. CT-VC MEETING; 25-7-2013 - 2­ 8-2013; VIENNA; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/, no. JCTVC-N0168-v3, 24 de julio de 2013 (2013-07­ 24), y BORDES PHILIPPE Y AL: "Color Gamut Scalable Video Coding For SHVC", 2013 PICTURE CODING SYMPOSIUM (PCS), IEEE, 8 de diciembre de 2013 (2013-12-08), páginas 301-304.
Resumen
En general, esta divulgación describe técnicas para realizar predicciones de color tridimensionales (3D) restringidas para la escalabilidad de la gama de colores en la codificación de vídeo. Las técnicas de predicción de color para la escalabilidad de la gama de colores pueden ser utilizadas por codificadores de vídeo y / o decodificadores de vídeo para generar imágenes de referencia entre capas cuando una gama de colores para una capa de referencia más baja de datos de vídeo es diferente a una gama de colores para una capa de mejora superior de los datos de video. Por ejemplo, un codificador de vídeo y / o decodificador de vídeo puede realizar primero una predicción de color usando una tabla de búsqueda 3D para la escalabilidad de la gama de colores para convertir los datos de color de una imagen de referencia para la capa de referencia inferior a la gama de colores para la capa de mejora superior, y luego generar imágenes de referencia entre capas con base en los datos de color convertidos. Las técnicas de predicción de color también pueden ser utilizadas por codificadores de vídeo y/o decodificadores de vídeo para generar imágenes de referencia entre capas cuando la profundidad de bits de una capa de referencia inferior de datos de vídeo es diferente a la profundidad de bits de una capa de mejora superior de los datos de vídeo.
De acuerdo con las técnicas descritas en esta divulgación, un codificador de vídeo y/o decodificador de vídeo puede realizar predicción de color 3D con profundidades de bits restringidas de componentes de color de entrada y salida de la tabla de búsqueda 3D. De acuerdo con técnicas adicionales descritas en esta divulgación, en el caso de múltiples capas, un codificador de vídeo y/o decodificador de vídeo puede realizar predicción de color 3D con aplicación restringida a imágenes de referencia en solo una o más capas de referencia identificadas.
En un ejemplo, esta divulgación está dirigida a un método de decodificación de datos de vídeo, comprendiendo el método determinar las profundidades de bits de entrada de una tabla de búsqueda 3D para que la escalabilidad de la gama de colores sea igual a las profundidades de bits de los componentes de color de una imagen de capa de referencia en una capa de referencia de los datos de vídeo; aplicar la tabla de búsqueda 3D a los componentes de color de la imagen de la capa de referencia para convertir los componentes de color de una primera gama de colores para la capa de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de vídeo; generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y decodificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
En otro ejemplo, esta divulgación está dirigida a un método de codificación de datos de vídeo, comprendiendo el método determinar las profundidades de bits de entrada de una tabla de búsqueda 3D para que la escalabilidad de la gama de colores sea igual a las profundidades de bits de los componentes de color de una imagen de capa de referencia en una capa de referencia de los datos de video; aplicar la tabla de búsqueda 3D a los componentes de color de la imagen de la capa de referencia para convertir los componentes de color de una primera gama de colores para la capa de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de vídeo; generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y codificar bloques de vídeo en la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
En un ejemplo adicional, esta divulgación está dirigida a un dispositivo de decodificación de vídeo que comprende una memoria configurada para almacenar datos de vídeo y uno o más procesadores en comunicación con la memoria. El uno o más procesadores están configurados para determinar las profundidades de bits de entrada de una tabla de búsqueda 3D para que la escalabilidad de la gama de colores sea igual a las profundidades de bits de los componentes de color de una imagen de la capa de referencia en una capa de referencia de los datos de vídeo; aplicar la tabla de búsqueda 3D a los componentes de color de la imagen de la capa de referencia para convertir los componentes de color de una primera gama de colores para la capa de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de video; generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y decodificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
En un ejemplo adicional, esta divulgación está dirigida a un dispositivo de codificación de vídeo que comprende una memoria configurada para almacenar datos de vídeo y uno o más procesadores en comunicación con la memoria. El uno o más procesadores están configurados para determinar las profundidades de bits de entrada de una tabla de búsqueda 3D para que la escalabilidad de la gama de colores sea igual a las profundidades de bits de los componentes de color de una imagen de la capa de referencia en una capa de referencia de los datos de vídeo; aplicar la tabla de búsqueda 3D a los componentes de color de la imagen de la capa de referencia para convertir los componentes de color de una primera gama de colores para la capa de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de vídeo; generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y codificar bloques de vídeo en la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
En otro ejemplo, esta divulgación está dirigida a un dispositivo de decodificación de vídeo que comprende medios para determinar las profundidades de bits de entrada de una tabla de búsqueda 3D para que la escalabilidad de la gama de colores sea igual a las profundidades de bits de los componentes de color de una imagen de la capa de referencia en una capa de referencia de datos de vídeo; medios para aplicar la tabla de búsqueda 3D a los componentes de color de la imagen de la capa de referencia para convertir los componentes de color de una primera gama de colores para la capa de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de vídeo; medios para generar una imagen de referencia entre capas para una imagen de capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y medios para decodificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
En un ejemplo adicional, esta divulgación está dirigida a un medio de almacenamiento legible por ordenador que almacena instrucciones para decodificar datos de vídeo que, cuando se ejecutan, hacen que uno o más procesadores determinen las profundidades de bits de entrada de una tabla de búsqueda 3D para que la escalabilidad de la gama de colores sea igual a profundidades de bits de los componentes de color de una imagen de la capa de referencia en una capa de referencia de los datos de vídeo; aplicar la tabla de búsqueda 3D a los componentes de color de la imagen de la capa de referencia para convertir los componentes de color de una primera gama de colores para la capa de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de vídeo; generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y decodificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
En un ejemplo, esta divulgación está dirigida a un método de decodificación de datos de video, comprendiendo el método recibir al menos un identificador de capa de referencia (ID) para una tabla de búsqueda 3D para la escalabilidad de la gama de colores, el al menos un ID de capa de referencia identifica al menos una capa de referencia de una pluralidad de capas de referencia de los datos de vídeo; aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en la al menos una capa de referencia identificada por el al menos un ID de capa de referencia para convertir los componentes de color de una primera gama de colores para las capas de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de vídeo; generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y decodificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
En otro ejemplo, esta divulgación está dirigida a un método de codificación de datos de vídeo, comprendiendo el método determinar al menos una capa de referencia de una pluralidad de capas de referencia de los datos de vídeo para una tabla de búsqueda 3D para la escalabilidad de la gama de colores; aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en la al menos una capa de referencia para convertir los componentes de color de una primera gama de colores para las capas de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de vídeo datos; generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; codificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D; y señalizar al menos un ID de capa de referencia que identifica al menos una capa de referencia.
En un ejemplo adicional, esta divulgación está dirigida a un dispositivo de decodificación de vídeo que comprende una memoria configurada para almacenar datos de vídeo y uno o más procesadores en comunicación con la memoria. El uno o más procesadores están configurados para recibir al menos un ID de capa de referencia para una tabla de búsqueda 3D para escalabilidad de gama de colores, identificando el al menos un ID de capa de referencia al menos una capa de referencia de una pluralidad de capas de referencia de los datos de vídeo; aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en la al menos una capa de referencia identificada por el al menos un ID de capa de referencia para convertir los componentes de color de una primera gama de colores para las capas de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de vídeo; generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y decodificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
En un ejemplo adicional, esta divulgación está dirigida a un dispositivo de codificación de vídeo que comprende una memoria configurada para almacenar datos de vídeo y uno o más procesadores en comunicación con la memoria. El uno o más procesadores están configurados para determinar al menos una capa de referencia de una pluralidad de capas de referencia de los datos de vídeo para una tabla de búsqueda 3D para la escalabilidad de la gama de colores; aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en al menos una capa de referencia para convertir los componentes de color de una primera gama de colores para las capas de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de vídeo ; generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; codificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D; y señalizar al menos un ID de capa de referencia que identifica al menos una capa de referencia.
En otro ejemplo, esta divulgación está dirigida a un dispositivo de decodificación de vídeo que comprende medios para recibir al menos un ID de capa de referencia para una tabla de búsqueda 3D para la escalabilidad de la gama de colores, identificando el al menos un ID de capa de referencia al menos una capa de referencia de una pluralidad de capas de referencia de los datos de vídeo; medios para aplicar la tabla de búsqueda 3D a componentes de color de una imagen de capa de referencia en la al menos una capa de referencia identificada por el al menos un ID de capa de referencia para convertir los componentes de color de una primera gama de colores para las capas de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de vídeo; medios para generar una imagen de referencia entre capas para una imagen de capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y medios para decodificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
En un ejemplo adicional, esta divulgación está dirigida a un medio de almacenamiento legible por ordenador que almacena instrucciones para decodificar datos de vídeo que, cuando se ejecutan, hacen que uno o más procesadores reciban al menos un ID de capa de referencia para una tabla de búsqueda 3D para la escalabilidad de la gama de colores, identificando el al menos un ID de capa de referencia al menos una capa de referencia de una pluralidad de capas de referencia de los datos de vídeo; aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en la al menos una capa de referencia identificada por el al menos un ID de capa de referencia para convertir los componentes de color de una primera gama de colores para las capas de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de vídeo; generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y decodificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
Los detalles de uno o más ejemplos se establecen en los dibujos adjuntos y la descripción a continuación. Otras características, objetos y ventajas resultarán evidentes a partir de la descripción y los dibujos, y de las reivindicaciones.
Breve descripción de los dibujos
La FIG. 1 es un diagrama de bloques que ilustra un ejemplo de sistema de codificación y decodificación de vídeo que puede utilizar técnicas descritas en esta descripción.
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo que puede implementar técnicas descritas en esta divulgación.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de un decodificador de vídeo que puede implementar técnicas descritas en esta divulgación.
La FIG. 4 es una ilustración conceptual que muestra un ejemplo de escalabilidad en tres dimensiones diferentes. La FIG. 5 es una ilustración conceptual que muestra un ejemplo de estructura de un flujo de bits de codificación de vídeo escalable.
La FIG. 6 es una ilustración conceptual que muestra un ejemplo de unidades de acceso de codificación de vídeo escalables en orden de flujo de bits.
La FIG. 7 es un diagrama de bloques que ilustra un ejemplo de extensión de codificación de vídeo escalable para codificador HEVC (SHVC).
La FIG. 8 es un gráfico que ilustra una gama de colores de ejemplo de una secuencia de vídeo de muestra.
La FIG. 9 es un diagrama de bloques que ilustra la conversión de la gama BT.709 de colores de alta definición (HD) a la gama BT.2020de colores de ultra alta definición (UHD).
La FIG. 10 es un diagrama de bloques que ilustra un codificador escalable de gama de colores que incluye una unidad de procesamiento de predicción de color que puede generar una imagen de referencia entre capas cuando la gama de colores de la capa base y la gama de colores de la capa de mejora son diferentes.
Las FIGS. 11A y 11B son ilustraciones conceptuales que muestran diferentes vistas de una tabla de búsqueda 3D de ejemplo para la escalabilidad de la gama de colores.
La FIG. 12 es una ilustración conceptual que muestra la interpolación trilineal con una tabla de búsqueda 3D para la escalabilidad de la gama de colores.
La FIG. 13 es una ilustración conceptual que muestra la interpolación tetraédrica con una tabla de búsqueda 3D para la escalabilidad de la gama de colores.
La FIG. 14 es una ilustración conceptual que muestra seis ejemplos de tetraedros utilizados para abarcar un punto P de una tabla de búsqueda 3D que se interpolará mediante interpolación tetraédrica.
La FIG. 15 es un diagrama de flujo que ilustra una operación de ejemplo de un codificador de vídeo configurado para realizar predicción de color 3D con profundidades de bits restringidas de componentes de color de entrada a una tabla de búsqueda 3D.
La FIG. 16 es un diagrama de flujo que ilustra una operación de ejemplo de un decodificador de vídeo configurado para realizar predicción de color 3D con profundidades de bits restringidas de componentes de color de entrada a una tabla de búsqueda 3D.
La FIG. 17 es un diagrama de flujo que ilustra una operación de ejemplo de un codificador de vídeo configurado para realizar predicción de color 3D con aplicación restringida solo para imágenes de referencia en al menos una capa de referencia determinada.
La FIG. 18 es un diagrama de flujo que ilustra una operación de ejemplo de un decodificador de vídeo configurado para realizar predicción de color 3D con aplicación restringida solo para imágenes de referencia en al menos una capa de referencia identificada.
Descripción detallada
La invención está definida por las reivindicaciones adjuntas. Las técnicas de esta divulgación se relacionan con la predicción o mapeo de color tridimensional (3D) para la escalabilidad de la gama de colores en la codificación de vídeo. Las técnicas de predicción de color 3D para la escalabilidad de la gama de colores pueden ser utilizadas por codificadores de vídeo y/o decodificadores de vídeo para generar imágenes de referencia entre capas cuando una gama de colores para una capa de referencia más baja de datos de vídeo es diferente a una gama de colores para una capa de mejora superior de los datos de video. Por ejemplo, un codificador de vídeo y / o decodificador de vídeo puede realizar primero una predicción de color usando una tabla de búsqueda 3D para la escalabilidad de la gama de colores para convertir los datos de color de una imagen de referencia para la capa de referencia inferior a la gama de colores para la capa de mejora superior, y luego generar imágenes de referencia entre capas con base en los datos de color convertidos. Las técnicas de predicción de color también pueden ser utilizadas por codificadores de vídeo y/o decodificadores de vídeo para generar imágenes de referencia entre capas cuando la profundidad de bits de una capa de referencia inferior de datos de vídeo es diferente a la profundidad de bits de una capa de mejora superior de los datos de vídeo.
Una gama de colores comprende una gama completa de colores que se pueden reproducir para una imagen, por ejemplo, en una imagen, corte, bloque o capa de datos de video. Convencionalmente, en la codificación de vídeo multicapa, una capa inferior de datos de vídeo, por ejemplo, una capa base) y una capa superior de datos de vídeo (por ejemplo, una capa de mejora) incluyen datos de color en la misma gama de colores, por ejemplo, gama BT.709 de colores de alta definición (HD). En este caso, un codificador de vídeo y/o un decodificador de vídeo pueden generar imágenes de referencia entre capas para la capa superior de los datos de vídeo como versiones con muestreo ascendente de imágenes de referencia coubicadas para la capa inferior de los datos de vídeo.
En algunos ejemplos, sin embargo, una capa inferior de datos de vídeo puede incluir datos de color en una primera gama de colores, por ejemplo, BT.709, y una capa superior de datos de vídeo puede incluir datos de color en una segunda gama de colores diferente, por ejemplo, gama BT.2020 de colores de ultra alta definición (UHD). En este ejemplo, para generar imágenes de referencia entre capas para la capa superior de los datos de video, un codificador de vídeo y/o decodificador de vídeo debe realizar primero una predicción de color para convertir los datos de color de una imagen de referencia en la primera gama de colores para la capa inferior de los datos de vídeo a la segunda gama de colores para la capa superior de los datos de vídeo.
El codificador de vídeo y/o el decodificador de vídeo pueden realizar predicciones de color usando una tabla de búsqueda 3D para la escalabilidad de la gama de colores. En algunos ejemplos, se puede generar una tabla de búsqueda 3D separada para cada uno de los componentes de color, es decir, un componente de luma (Y), un primer componente de croma (U) y un segundo componente de croma (V). Cada una de las tablas de búsqueda 3D incluye una dimensión de luma (Y), una primera dimensión de croma (U) y una segunda dimensión de croma (V), y se indexa utilizando los tres componentes de color independientes (Y, U, V).
De acuerdo con las técnicas descritas en esta divulgación, un codificador de vídeo y/o decodificador de vídeo puede realizar predicción de color 3D con profundidades de bits restringidas de componentes de color de entrada y salida de la tabla de búsqueda 3D. Por ejemplo, las profundidades de bits de los componentes de color de entrada de la tabla de búsqueda 3D se pueden restringir para que sean iguales a una profundidad de bits de una imagen de la capa de referencia inferior. Como ejemplo adicional, las profundidades de bits de los componentes de color de salida de la tabla de búsqueda 3D pueden estar restringidas para estar dentro de un intervalo entre la profundidad de bits de la imagen de la capa de referencia inferior y una profundidad de bits de una imagen de la capa de mejora superior, inclusive. En otras palabras, las profundidades de bits de los componentes de color de salida de la tabla de búsqueda 3D pueden estar restringidas para estar dentro de un intervalo mayor o igual a la profundidad de bits de la imagen de la capa de referencia inferior y menor o igual a una profundidad de bits de una imagen de capa de mejora superior.
De acuerdo con técnicas adicionales descritas en esta divulgación, en el caso de múltiples capas, un codificador de vídeo y/o decodificador de vídeo puede realizar predicción de color 3D con aplicación restringida a imágenes de referencia en solo una o más capas de referencia identificadas. Por ejemplo, un codificador de vídeo puede señalizar uno o más identificadores de capa de referencia (ID) para cada tabla de búsqueda 3D a un decodificador de video, y el decodificador de vídeo solo puede aplicar la tabla de búsqueda 3D a imágenes de capa de referencia dentro de una o más capas de referencia identificadas. Como otro ejemplo, para cada imagen de capa de mejora, el codificador de vídeo y/o el decodificador de vídeo pueden estar más restringidos para aplicar solo la tabla de búsqueda 3D a imágenes de capa de referencia dentro de una capa especificada de las capas de referencia.
Las técnicas descritas pueden usarse en el contexto de códecs de vídeo avanzados, tales como códecs de codificación de vídeo de alta eficiencia (HEVC). Las técnicas de codificación de vídeo escalable (SVC) relacionadas con las técnicas descritas en esta divulgación se revisan a continuación con respecto a las FIGS. 4-6, seguido de una discusión del estándar HEVC y las técnicas de escalabilidad de la gama de colores relacionadas con respecto a las FIGS. 7-14.
Los estándares de codificación de vídeo incluyen ITU-T H.261, ISO / IEC MPEG-1 Visual, ITU-T H.262 o ISO / IEC MPEG-2 Visual, ITU-T H.263, ISO / IEC MPEG-4 Visual e ITU -T H.264 (también conocido como ISO/IEC MPEG-4 AVC), incluyendo sus extensiones de codificación de vídeo escalable (SVC) y codificación de vídeo de múltiples vistas (MVC). Además, la codificación de vídeo de alta eficiencia (HEVC) ha sido desarrollada por el equipo de colaboración conjunta sobre codificación de vídeo (JCT-VC) del grupo de expertos en codificación de vídeo del UIT-T (VCEG) y el grupo de expertos en imágenes en movimiento ISO/IEC (MPEG). El último borrador de memoria descriptiva de HEVc , denominado HEVC WD, Wang et al., "High efficiency video coding (HEVC) Defect Report," Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 14a Reunión: Viena, AT, 25 de julio a 2 de agosto de 2013, JCTVC-N1003v1, disponible en http://phenix.intevry.fr/ict/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip. El documento estándar de HEVC finalizado se publica como ITU-T H.265, Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services - Coding of moving video, High efficiency video coding, Telecommunication Standardization Sector of International Telecommunication Union (ITU), abril de 2013.
La extensión de vista múltiple para HEVC (MV-HEVC) y otra extensión HEVC para codificación de vídeo 3D más avanzada (3D-HEVC) están siendo desarrolladas por el JCT-3V, y mientras tanto, la extensión de codificación de vídeo escalable para HEVC (SHVC) está siendo desarrollado por el JCT-VC. Un borrador de trabajo (WD) reciente de MV-HEVC, denominado MV-HEVC WD5 en lo sucesivo, está disponible en http://phenix.itsudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V-E1004- v6.zip. Un WD reciente de 3D-HEVC, denominado en adelante 3D-HEVC WD1, está disponible en http://phenix.itsudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V-E1001-v3.zip. Un borrador de trabajo (WD) reciente de SHVC, denominado SHVC WD3 en lo sucesivo, está disponible en http://phenix.itsudparis.eu/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1008-v3.zip.
La FIG. 1 es un diagrama de bloques que ilustra un ejemplo de sistema 10 de codificación y decodificación de vídeo que puede utilizar técnicas descritas en esta descripción. Como se muestra en la FIG. 1, el sistema 10 incluye un dispositivo 12 de origen que proporciona datos de vídeo codificados para ser decodificados en un momento posterior por un dispositivo 14 de destino. En particular, el dispositivo 12 de origen proporciona los datos de vídeo al dispositivo 14 de destino a través de un medio 16 legible por ordenador. El dispositivo 12 de origen y el dispositivo 14 de destino pueden comprender cualquiera de una amplia gama de dispositivos, que incluyen ordenadores de escritorio, libretas portátiles (es decir, ordenadores portátiles), tabletas, decodificadores, auriculares de teléfonos tales como los llamados teléfonos "inteligentes", los denominados tabletas "inteligentes", televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión de vídeo o similares. En algunos casos, el dispositivo 12 de origen y el dispositivo 14 de destino pueden estar equipados para comunicación inalámbrica.
El dispositivo 14 de destino puede recibir los datos de vídeo codificados para decodificarlos a través de un medio 16 legible por ordenador. El medio 16 legible por ordenador puede comprender cualquier tipo de medio o dispositivo capaz de mover los datos de vídeo codificados desde el dispositivo 12 de origen al dispositivo 14 de destino. En un ejemplo, el medio 16 legible por ordenador puede comprender un medio de comunicación para permitir que el dispositivo 12 de origen transmita datos de vídeo codificados directamente al dispositivo 14 de destino en tiempo real. Los datos de vídeo codificados pueden modularse de acuerdo con un estándar de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitirse al dispositivo 14 de destino. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrico o cableado, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión físicas. El medio de comunicación puede formar parte de una red con base en paquetes, tal como una red de área local, una red de área amplia o una red global tal como Internet. El medio de comunicación puede incluir enrutadores, conmutadores, estaciones base o cualquier otro equipo que puede ser útil para facilitar la comunicación desde el dispositivo 12 de origen al dispositivo 14 de destino.
En algunos ejemplos, los datos codificados pueden salir de la interfaz 22 de salida a un dispositivo de almacenamiento. De manera similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento mediante la interfaz de entrada. El dispositivo de almacenamiento puede incluir cualquiera de una variedad de medios de almacenamiento de datos distribuidos o de acceso local, tal como un disco duro, discos Blu-ray, DVD, CD-ROM, memoria flash, memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En un ejemplo adicional, el dispositivo de almacenamiento puede corresponder a un servidor de archivos u otro dispositivo de almacenamiento intermedio que puede almacenar el vídeo codificado generado por el dispositivo 12 de origen. El dispositivo 14 de destino puede acceder a los datos de vídeo almacenados desde el dispositivo de almacenamiento mediante transmisión o descarga. El servidor de archivos puede ser cualquier tipo de servidor capaz de almacenar datos de vídeo codificados y transmitir esos datos de vídeo codificados al dispositivo 14 de destino. Los servidores de archivos de ejemplo incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, dispositivos de almacenamiento conectados a la red (NAS) o una unidad de disco local. El dispositivo 14 de destino puede acceder a los datos de vídeo codificados a través de cualquier conexión de datos estándar, incluyendo una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión por cable (por ejemplo, DSL, módem por cable, etc.) o una combinación de ambos que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos. La transmisión de datos de vídeo codificados desde el dispositivo de almacenamiento puede ser una transmisión continua, una transmisión de descarga o una combinación de las mismas.
Las técnicas de esta divulgación no se limitan necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo en apoyo de cualquiera de una variedad de aplicaciones multimedia, tales como difusiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo por Internet, tales como transmisión dinámica adaptativa a través de HTTP (DASH), vídeo digital que se codifica en un medio de almacenamiento de datos, decodificación de vídeo digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para admitir transmisión de vídeo unidireccional o bidireccional para admitir aplicaciones tales como transmisión de video, reproducción de video, difusión de vídeo y/o telefonía de video.
En el ejemplo de la FIG. 1, el dispositivo 12 de origen incluye la fuente 18 de vídeo, el codificador 20 de vídeo y la interfaz 22 de salida. El dispositivo 14 de destino incluye la interfaz 28 de entrada, el decodificador 30 de vídeo y el dispositivo 32 de visualización. De acuerdo con esta descripción, el codificador 20 de vídeo del dispositivo 12 de origen puede configurarse para aplicar las técnicas para procesar datos de vídeo en paralelo. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo 12 de origen puede recibir datos de vídeo de una fuente 18 de vídeo externa, tal como una cámara externa. Asimismo, el dispositivo 14 de destino puede interactuar con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
El sistema 10 ilustrado de la FIG. 1 es simplemente un ejemplo. Las técnicas para procesar datos de vídeo en paralelo se pueden realizar mediante cualquier dispositivo de codificación y/o decodificación de vídeo digital. Aunque generalmente las técnicas de esta divulgación se realizan mediante un dispositivo de codificación de video, las técnicas también se pueden realizar mediante un codificador/decodificador de video, normalmente denominado "CODEC". Además, las técnicas de esta divulgación también pueden ser realizadas por un preprocesador de video. El dispositivo 12 de origen y el dispositivo 14 de destino son simplemente ejemplos de tales dispositivos de codificación en los que el dispositivo 12 de origen genera datos de vídeo codificados para su transmisión al dispositivo 14 de destino. En algunos ejemplos, los dispositivos 12, 14 pueden funcionar de una manera sustancialmente simétrica de modo que cada uno de los dispositivos 12, 14 incluya componentes de codificación y descodificación de vídeo. Por lo tanto, el sistema 10 puede soportar la transmisión de vídeo unidireccional o bidireccional entre dispositivos 12, 14 de vídeo, por ejemplo, para transmisión de video, reproducción de video, difusión de vídeo o telefonía de video.
La fuente 18 de vídeo del dispositivo 12 de origen puede incluir un dispositivo de captura de video, tal como una cámara de video, un archivo de vídeo que contiene vídeo capturado previamente y/o una interfaz de alimentación de vídeo para recibir vídeo de un proveedor de contenido de video. Como alternativa adicional, la fuente 18 de vídeo puede generar datos con base en gráficos de ordenador tal como el vídeo fuente, o una combinación de vídeo en vivo, vídeo archivado y vídeo generado por ordenador. En algunos casos, si la fuente 18 de vídeo es una cámara de vídeo, el dispositivo 12 de origen y el dispositivo 14 de destino pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, como se mencionó anteriormente, las técnicas descritas en esta descripción pueden ser aplicables a la codificación de vídeo en general, y pueden aplicarse a aplicaciones inalámbricas y/o cableadas. En cada caso, el vídeo capturado, precapturado o generado por ordenador puede ser codificado por el codificador 20 de vídeo. La información de vídeo codificada puede ser emitida luego por la interfaz 22 de salida a un medio 16 legible por ordenador.
El medio 16 legible por ordenador puede incluir medios transitorios, tales como una difusión inalámbrica o una transmisión de red cableada, o medios de almacenamiento (es decir, medios de almacenamiento no transitorios), tales como un disco duro, una unidad flash, un disco compacto, un disco de vídeo digital, disco Blu-ray u otro medio legible por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de vídeo codificados desde el dispositivo 12 de origen y proporcionar los datos de vídeo codificados al dispositivo 14 de destino, por ejemplo, a través de una transmisión de red. De manera similar, un dispositivo informático de una instalación de producción media, tal como una instalación de estampado de discos, puede recibir datos de vídeo codificados desde el dispositivo 12 fuente y producir un disco que contenga los datos de vídeo codificados. Por lo tanto, puede entenderse que el medio 16 legible por ordenador incluye uno o más medios legibles por ordenador de diversas formas, en diversos ejemplos.
La interfaz 28 de entrada del dispositivo 14 de destino recibe información del medio 16 legible por ordenador. La información del medio 16 legible por ordenador puede incluir información de sintaxis definida por el codificador 20 de vídeo, que también es utilizada por el decodificador 30 de vídeo, que incluye elementos de sintaxis que describen características y/o procesamiento de bloques y otras unidades codificadas, por ejemplo, grupos de imágenes. (GOP). El dispositivo 32 de visualización muestra los datos de vídeo decodificados a un usuario y puede comprender cualquiera de una variedad de dispositivos de visualización tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, un diodo emisor de luz orgánica (OLED) u otro tipo de dispositivo de visualización.
El codificador 20 de vídeo y el decodificador 30 de vídeo pueden implementarse cada uno como cualquiera de una variedad de circuitos de codificador adecuados, tal como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados de aplicación específica (ASIC), matrices de compuertas programables en campo (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio legible por ordenador adecuado y no transitorio y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Cada uno de los codificadores 20 de vídeo y el descodificador 30 de vídeo pueden incluirse en uno o más codificadores o decodificadores, cualquiera de los cuales puede integrarse como parte de un codificador/decodificador combinado (CODEC) en un dispositivo respectivo.
En el ejemplo de la FIG. 1, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden funcionar de acuerdo con el estándar de codificación de vídeo de alta eficiencia (HEVC) desarrollado por el equipo de colaboración conjunta sobre codificación de vídeo (JCT-VC) del grupo de expertos en codificación de vídeo de ITU-T (VCEG) e ISO/grupo de expertos en cinematografía IEC (MPEG). Un último borrador de especificación HEVC se conoce como HEVC WD, citado anteriormente. La extensión de vista múltiple para HEVC (MV-HEVC) y otra extensión HEVC para codificación de vídeo 3D más avanzada (3D-HEVC) están siendo desarrolladas por el JCT-3V, y la extensión de codificación de vídeo escalable para HEVC (SHVC) está siendo desarrollada por el JCT-VC. El último borrador de especificación de MV-HEVC se conoce como MV-HEVC WD5, citado anteriormente. El último borrador de especificación de 3D-HEVC se conoce como 3D-HEVC WD1, citado anteriormente. Un borrador de especificación reciente de SHVC se conoce como SHVC WD3, citado anteriormente.
En HEVC y otros estándares de codificación de video, una secuencia de vídeo generalmente incluye una serie de imágenes. Las imágenes también pueden denominarse "tramas". Una imagen puede incluir tres matrices de muestra, denominadas Sl, Soby Sor. Sl es una matriz bidimensional (es decir, un bloque) de muestras de luma. Sob es una matriz bidimensional de muestras de croma Cb. Scp es una matriz bidimensional de muestras de croma Cr. Las muestras de croma también pueden denominarse en el presente documento muestras de "croma". En otros casos, una imagen puede ser monocromática y solo puede incluir una serie de muestras de luma.
El codificador 20 de vídeo puede generar un conjunto de unidades de árbol de codificación (CTU). Cada una de las CTU puede comprender un bloque de árbol de codificación de muestras de luma, dos bloques de árbol de codificación correspondientes de muestras de croma y estructuras de sintaxis utilizadas para codificar las muestras de los bloques de árbol de codificación. En una imagen monocromática o una imagen que tiene tres planos de color separados, una CTU puede comprender un único bloque de árbol de codificación y estructuras de sintaxis utilizadas para codificar las muestras del bloque de árbol de codificación. Un bloque de árbol de codificación puede ser un bloque de muestras NxN. Una CTU también puede denominarse "bloque de árbol" o "unidad de codificación más grande" (LCU). Las CTU de HEVC pueden ser ampliamente análogas a los macrobloques de otros estándares de codificación de video, tal como H.264 / AVC. Sin embargo, una CTU no está necesariamente limitada a un tamaño particular y puede incluir una o más unidades de codificación (CU). Un corte puede incluir un número entero de CTU ordenadas consecutivamente en la exploración de trama.
Esta descripción puede utilizar el término "unidad de vídeo" o "bloque de vídeo" para referirse a uno o más bloques de muestras y estructuras de sintaxis utilizadas para codificar muestras del uno o más bloques de muestras. Los tipos de ejemplo de unidades de vídeo pueden incluir CTU, CU, PU, unidades de transformación (TU), macrobloques, particiones de macrobloque, etc.
Para generar una CTU codificada, el codificador 20 de vídeo puede realizar de forma recursiva una partición de cuatro árboles en los bloques de árbol de codificación de una CTU para dividir los bloques de árbol de codificación en bloques de codificación, de ahí el nombre "unidades de árbol de codificación". Un bloque de codificación es un bloque de muestras NxN. Una CU puede comprender un bloque de codificación de muestras de luma y dos bloques de codificación correspondientes de muestras de croma de una imagen que tiene una matriz de muestras de luma, una matriz de muestras de Cb y una matriz de muestras de Cr, y estructuras de sintaxis utilizadas para codificar las muestras de los bloques de codificación. En una imagen monocromática o una imagen que tiene tres planos de color separados, una CU puede comprender un solo bloque de codificación y estructuras de sintaxis utilizadas para codificar las muestras del bloque de codificación.
El codificador 20 de vídeo puede dividir un bloque de codificación de una CU en uno o más bloques de predicción. Un bloque de predicción puede ser un bloque de muestras rectangular (es decir, cuadrado o no cuadrado) en el que se aplica la misma predicción. Una unidad de predicción (PU) de una CU puede comprender un bloque de predicción de muestras de luma, dos bloques de predicción correspondientes de muestras de croma de una imagen y estructuras de sintaxis utilizadas para predecir las muestras de bloques de predicción. En una imagen monocromática o una imagen que tiene tres planos de color separados, una PU puede comprender un solo bloque de predicción y estructuras de sintaxis utilizadas para predecir las muestras de bloques de predicción. El codificador 20 de vídeo puede generar bloques de predicción de luma, Cb y Cr para los bloques de predicción de luma, Cb y Cr de cada PU de la CU.
El codificador 20 de vídeo puede usar intrapredicción o interpredicción para generar los bloques predictivos para una PU. Si el codificador 20 de vídeo usa intrapredicción para generar los bloques predictivos de una Pu , el codificador 20 de vídeo puede generar los bloques predictivos de la PU con base en muestras decodificadas de la imagen asociada con la PU.
Si el codificador 20 de vídeo usa la interpredicción para generar los bloques predictivos de una PU, el codificador 20 de vídeo puede generar los bloques predictivos de la PU con base en muestras decodificadas de una o más imágenes distintas de la imagen asociada con la PU. La interpredicción puede ser una interpredicción unidireccional (es decir, una predicción unidireccional) o una interpredicción bidireccional (es decir, una predicción bidireccional). Para realizar una predicción única o una predicción doble, el codificador 20 de vídeo puede generar una primera lista de imágenes de referencia (RefPicList0) y una segunda lista de imágenes de referencia (RefPicListl) para un segmento actual. Cada una de las listas de imágenes de referencia puede incluir una o más imágenes de referencia. Cuando se usa la predicción única, el codificador 20 de vídeo puede buscar las imágenes de referencia en cualquiera o en RefPicList0 y RefPicListl para determinar una ubicación de referencia dentro de una imagen de referencia. Además, cuando se usa la unipredicción, el codificador 20 de vídeo puede generar, con base en al menos en parte en muestras correspondientes a la ubicación de referencia, los bloques de muestra predictiva para la PU. Además, cuando se usa la unipredicción, el codificador 20 de vídeo puede generar un único vector de movimiento que indica un desplazamiento espacial entre un bloque de predicción de la PU y la ubicación de referencia. Para indicar el desplazamiento espacial entre un bloque de predicción de la PU y la ubicación de referencia, un vector de movimiento puede incluir un componente horizontal que especifica un desplazamiento horizontal entre el bloque de predicción de la PU y la ubicación de referencia y puede incluir un componente vertical que especifica un desplazamiento vertical entre el bloque de predicción de la PU y la ubicación de referencia.
Cuando se usa predicción bidireccional para codificar una PU, el codificador 20 de vídeo puede determinar una primera ubicación de referencia en una imagen de referencia en RefPicList0 y una segunda ubicación de referencia en una imagen de referencia en RefPicList1. El codificador 20 de vídeo puede generar entonces, con base en al menos en parte en muestras correspondientes a las ubicaciones de referencia primera y segunda, los bloques predictivos para la PU. Además, cuando se usa la predicción bidireccional para codificar la PU, el codificador 20 de vídeo puede generar un primer movimiento que indica un desplazamiento espacial entre un bloque de muestra de la PU y la primera ubicación de referencia y un segundo movimiento que indica un desplazamiento espacial entre el bloque de predicción de la PU y la segunda ubicación de referencia.
Después de que el codificador 20 de vídeo genera bloques predictivos de luma, Cb y Cr para una o más PU de una CU, el codificador 20 de vídeo puede generar un bloque residual de luma para la Cu . Cada muestra en el bloque residual de luma de la CU indica una diferencia entre una muestra de luma en uno de los bloques de luma predictivos de la CU y una muestra correspondiente en el bloque de codificación de luma original de la CU. Además, el codificador 20 de vídeo puede generar un bloque residual Cb para la CU. Cada muestra en el bloque residual Cb de la CU puede indicar una diferencia entre una muestra Cb en uno de los bloques Cb predictivos de la CU y una muestra correspondiente en el bloque de codificación Cb original de la CU. El codificador 20 de vídeo también puede generar un bloque residual de Cr para la CU. Cada muestra en el bloque residual Cr de la CU puede indicar una diferencia entre una muestra Cr en uno de los bloques Cr predictivos de la CU y una muestra correspondiente en el bloque de codificación Cr original de la CU.
Además, el codificador 20 de vídeo puede utilizar la partición de cuatro árboles para descomponer los bloques residuales de luma, Cb y Cr de una CU en uno o más bloques de transformación de luma, Cb y Cr. Un bloque de transformación puede ser un bloque rectangular de muestras en el que se aplica la misma transformación. Una unidad de transformación (TU) de una CU puede comprender un bloque de transformación de muestras de luma, dos bloques de transformación correspondientes de muestras de croma y estructuras de sintaxis utilizadas para transformar las muestras de bloques de transformación. En una imagen monocromática o una imagen que tiene tres planos de color separados, una TU puede comprender un solo bloque de transformación y estructuras de sintaxis utilizadas para transformar las muestras de bloques de transformación. Por tanto, cada TU de una CU puede asociarse con un bloque de transformación de luma, un bloque de transformación Cb y un bloque de transformación Cr. El bloque de transformación de luma asociado con la TU puede ser un subbloque del bloque residual de luma de la CU. El bloque de transformación Cb puede ser un subbloque del bloque residual Cb de la CU. El bloque de transformación Cr puede ser un subbloque del bloque residual Cr de la CU.
El codificador 20 de vídeo puede aplicar una o más transformaciones a un bloque de transformación de luma de una TU para generar un bloque de coeficiente de luma para la TU. Un bloque de coeficientes puede ser una matriz bidimensional de coeficientes de transformación. Un coeficiente de transformación puede ser una cantidad escalar. El codificador 20 de vídeo puede aplicar una o más transformaciones a un bloque de transformación Cb de una TU para generar un bloque de coeficientes Cb para la TU. El codificador 20 de vídeo puede aplicar una o más transformaciones a un bloque de transformación Cr de una TU para generar un bloque de coeficiente Cr para la TU.
Después de generar un bloque de coeficientes (por ejemplo, un bloque de coeficientes de luma, un bloque de coeficientes Cb o un bloque de coeficientes Cr), el codificador 20 de vídeo puede cuantificar el bloque de coeficientes. La cuantificación generalmente se refiere a un proceso en el que los coeficientes de transformación se cuantifican para posiblemente reducir la cantidad de datos utilizados para representar los coeficientes de transformación, proporcionando una mayor compresión. Además, el codificador 20 de vídeo puede cuantificar inversamente los coeficientes de transformación y aplicar una transformación inversa a los coeficientes de transformación para reconstruir bloques de transformación de TU de CU de una imagen. El codificador 20 de vídeo puede utilizar los bloques de transformación reconstruidos de las TU de una CU y los bloques predictivos de las PU de la CU para reconstruir los bloques de codificación de la CU. Reconstruyendo los bloques de codificación de cada CU de una imagen, el codificador 20 de vídeo puede reconstruir la imagen. El codificador 20 de vídeo puede almacenar imágenes reconstruidas en una memoria intermedia de imágenes decodificadas (DPB). El codificador 20 de vídeo puede utilizar imágenes reconstruidas en la DPB para la interpredicción y la intrapredicción.
Después de que el codificador 20 de vídeo cuantifique un bloque de coeficientes, el codificador 20 de vídeo puede codificar entropía elementos de sintaxis que indican los coeficientes de transformación cuantificados. Por ejemplo, el codificador 20 de vídeo puede realizar una codificación aritmética binaria adaptable al contexto (CABAC) en los elementos de sintaxis que indican los coeficientes de transformación cuantificados. El codificador 20 de vídeo puede generar los elementos de sintaxis codificados en entropía en un flujo de bits.
El codificador 20 de vídeo puede generar un flujo de bits que incluye una secuencia de bits que forma una representación de imágenes codificadas y datos asociados. El flujo de bits puede comprender una secuencia de unidades de capa de abstracción de red (NAL). Cada una de las unidades NAL incluye un encabezado de unidad NAL y encapsula una carga útil de secuencia de bytes sin procesar (RBSP). El encabezado de la unidad NAL puede incluir un elemento de sintaxis que indica un código de tipo de unidad NAL. El código de tipo de unidad NAL especificado por el encabezado de unidad NAL de una unidad NAL indica el tipo de unidad NAL. Una RBSP puede ser una estructura de sintaxis que contiene un número entero de bytes que está encapsulado dentro de una unidad NAL. En algunos casos, una RBSP incluye cero bits.
Los diferentes tipos de unidades NAL pueden encapsular diferentes tipos de RBSP. Por ejemplo, un primer tipo de unidad NAL puede encapsular una RBSP para un conjunto de parámetros de imagen (PPS), un segundo tipo de unidad NAL puede encapsular una RBSP para un segmento codificado, un tercer tipo de unidad NAL puede encapsular una RBSP para información de mejora suplementaria (SEI), etc. Un PPS es una estructura de sintaxis que puede contener elementos de sintaxis que se aplican a cero o más imágenes codificadas completas. Las unidades NAL que encapsulan las RBSP para datos de codificación de vídeo (a diferencia de las RBSP para conjuntos de parámetros y mensajes SEI) pueden denominarse unidades NAL de capa de codificación de vídeo (VCL). Una unidad NAL que encapsula un segmento codificado puede denominarse en el presente documento unidad NAL de segmento codificado. Una RBSP para un segmento codificado puede incluir un encabezado de segmento y datos de segmento.
El decodificador 30 de vídeo puede recibir un flujo de bits. Además, el decodificador 30 de vídeo puede analizar el flujo de bits para decodificar elementos de sintaxis del flujo de bits. El decodificador 30 de vídeo puede reconstruir las imágenes de los datos de vídeo con base, al menos en parte, en los elementos de sintaxis decodificados del flujo de bits. El proceso para reconstruir los datos de vídeo puede ser generalmente recíproco al proceso realizado por el codificador 20 de video. Por ejemplo, decodificador 30 de vídeo puede utilizar vectores de movimiento de las PU para determinar bloques predictivos para las PU de una CU actual. El decodificador 30 de vídeo puede utilizar un vector de movimiento o vectores de movimiento de las PU para generar bloques predictivos para las PU.
Además, el decodificador 30 de vídeo puede cuantificar de forma inversa los bloques de coeficientes asociados con las TU de la CU actual. El decodificador 30 de vídeo puede realizar transformaciones inversas en los bloques de coeficientes para reconstruir bloques de transformación asociados con las TU de la CU actual. El decodificador 30 de vídeo puede reconstruir los bloques de codificación de la CU actual añadiendo las muestras de los bloques de muestra predictivos para las PU de la CU actual a las muestras correspondientes de los bloques de transformación de las TU de la CU actual. Reconstruyendo los bloques de codificación para cada CU de una imagen, el decodificador 30 de vídeo puede reconstruir la imagen. El decodificador 30 de vídeo puede almacenar imágenes descodificadas en una memoria intermedia de imágenes descodificadas para su salida y/o para su uso en la descodificación de otras imágenes.
En MV-HEVC, 3D-HEVC y SHVC, un codificador de vídeo puede generar un flujo de bits que comprende una serie de unidades de capa de abstracción de red (NAL). Se pueden asociar diferentes unidades NAL del flujo de bits con diferentes capas del tren de bits. Una capa puede definirse como un conjunto de unidades NAL de capa de codificación de vídeo (VCL) y unidades NAL asociadas que no son VCL que tienen el mismo identificador de capa. Una capa puede ser equivalente a una vista en codificación de vídeo de múltiples vistas. En la codificación de vídeo de múltiples vistas, una capa puede contener todos los componentes de vista de la misma capa con diferentes instancias de tiempo. Cada componente de la vista puede ser una imagen codificada de la escena de vídeo que pertenece a una vista específica en una instancia de tiempo específica. En la codificación de vídeo 3D, una capa puede contener todas las imágenes de profundidad codificadas de una vista específica o imágenes de textura codificadas de una vista específica. De manera similar, en el contexto de la codificación de vídeo escalable, una capa corresponde típicamente a imágenes codificadas que tienen características de vídeo diferentes de las imágenes codificadas en otras capas. Tales características de vídeo generalmente incluyen resolución espacial y nivel de calidad (relación señal-a-ruido). En HEVC y sus extensiones, la escalabilidad temporal se puede lograr dentro de una capa definiendo un grupo de imágenes con un nivel temporal particular como subcapa.
Para cada capa respectiva del flujo de bits, los datos de una capa inferior pueden decodificarse sin referencia a los datos de ninguna capa superior. En la codificación de vídeo escalable, por ejemplo, los datos de una capa base pueden decodificarse sin referencia a los datos de una capa de mejora. Las unidades NAL solo encapsulan datos de una sola capa. En SHVC, una vista puede denominarse "capa base" si un decodificador de vídeo puede decodificar imágenes en la vista sin referencia a datos de cualquier otra capa. La capa base puede ajustarse a la especificación básica HEVC. Por tanto, las unidades NAL que encapsulan datos de la capa restante más alta del flujo de bits pueden eliminarse del flujo de bits sin afectar la decodificación de los datos en las capas restantes del flujo de bits. En MV-HEVC, las capas superiores pueden incluir componentes de vista adicionales. En SHVC, las capas superiores pueden incluir datos de mejora de la relación señal-a-ruido (SNR), datos de mejora espacial y/o datos de mejora temporal.
En algunos ejemplos, los datos de una capa superior pueden decodificarse con referencia a los datos de una o más capas inferiores. Las capas inferiores se pueden utilizar como imágenes de referencia para comprimir la capa superior utilizando la predicción entre capas. Los datos de las capas inferiores se pueden muestrear hacia arriba para tener la misma resolución que las capas superiores. En general, el codificador 20 de vídeo y el decodificador 30 de vídeo pueden realizar predicciones entre capas de una manera similar a la predicción entre capas descrita anteriormente, excepto que se pueden usar una o más capas inferiores muestreadas como imágenes de referencia en lugar de una o más imágenes vecinas.
La FIG. 4 es una ilustración conceptual que muestra un ejemplo de escalabilidad en tres dimensiones diferentes. En una estructura de codificación de vídeo escalable, las escalabilidades están habilitadas en tres dimensiones. En el ejemplo de la FIG. 4, las escalabilidades están habilitadas en una dimensión 100 espacial (S), una dimensión 102 temporal (T) y una relación señal-a-ruido (SNR) o dimensión 104 de calidad (Q). En la dimensión 102 temporal, las ratas de trama con 7,5 Hz (T0), 15 Hz (T1) o 30 Hz (T2), por ejemplo, pueden ser compatibles con la escalabilidad temporal. Cuando se admite la escalabilidad espacial, se habilitan diferentes resoluciones, tales como formato intermedio común cuarto (QCIF) (S0), formato intermedio común (CIF) (S1) y 4CIF (S2), por ejemplo, en la dimensión 100 espacial. Para cada resolución espacial y ratas de trama específicas, se pueden agregar capas de SNR (Q1) en la dimensión 104 de SNR para mejorar la calidad de la imagen.
Una vez que el contenido de vídeo se ha codificado de una manera escalable, se puede utilizar una herramienta de extracción para adaptar el contenido entregado real de acuerdo con los requisitos de la aplicación, que dependen, por ejemplo, de los clientes o del canal de transmisión. En el ejemplo mostrado en la FIG. 4, cada cúbico contiene imágenes con la misma velocidad de fotogramas (nivel temporal), resolución espacial y capas de SNR. Se puede lograr una mejor representación agregando cubos (es decir, imágenes) en cualquiera de las dimensiones 100, 102 o 104. Se admite la escalabilidad combinada cuando hay dos, tres o incluso más escalabilidades habilitadas.
En los estándares de codificación de vídeo escalables, tales como la extensión SVC a H.264 o SHVC, las imágenes con la capa espacial y SNR más baja son compatibles con el códec de vídeo de una sola capa, y las imágenes en el nivel temporal más bajo forman la capa base temporal, que puede mejorarse con imágenes en niveles temporales superiores. Además de la capa base, se pueden agregar varias capas de mejora espacial o SNR para proporcionar escalabilidades espaciales y/o de calidad. Cada capa de mejora espacial o SNR en sí misma puede ser escalable temporalmente, con la misma estructura de escalabilidad temporal que la capa base. Para una capa de mejora espacial o SNR, la capa inferior de la que depende puede denominarse la capa base de esa capa de mejora espacial o SNR específica.
La FIG. 5 es una ilustración conceptual que muestra un ejemplo de estructura 110 de un flujo de bits de codificación de vídeo escalable. La estructura 110 de flujo de bits incluye una capa 0112 que incluye imágenes o cortes 10, P4 y P8, y una capa 1114 que incluye imágenes o cortes B2, B6 y B10. Además, la estructura 110 de flujo de bits incluye una capa 2 116 y una capa 3 117 que cada una incluye imágenes 0, 2, 4, 6, 8 y 10, y una capa 4 118 que incluye imágenes 0 a 11.
Una capa base tiene la capa espacial y de calidad más baja (es decir, imágenes en la capa 0112 y la capa 1114 con resolución QCIF). Entre ellas, aquellas imágenes del nivel temporal más bajo forman la capa base temporal, como se muestra en la capa 0 112 de la FIG. 5. La capa base temporal (capa 0) 112 se puede mejorar con imágenes de un nivel temporal más alto, por ejemplo, la capa 1114 con una rata de trama de 15 Hz o la capa 4 118 con una rata de trama de 30 Hz.
Además de la capa 112, 114 base, se pueden añadir varias capas de mejora espacial y/o SNR para proporcionar escalabilidades espaciales y/o de calidad. Por ejemplo, la capa 2 116 con resolución CIF puede ser una capa de mejora espacial para la capa 112, 114 base. En otro ejemplo, la capa 3 117 puede ser una capa de mejora de SNR para la capa 112, 114 base y la capa 2 116. Como se muestra en la FIG. 5, cada capa de mejora espacial o SNR en sí misma puede ser temporalmente escalable, con la misma estructura de escalabilidad temporal que la capa 112, 114 base. Además, una capa de mejora puede mejorar una o ambas de la resolución espacial y la rata de trama. Por ejemplo, la capa 4 118 proporciona una capa de mejora de resolución de 4CIF lo que aumenta aún más la rata de trama de 15 Hz a 30 Hz.
La FIG. 6 es una ilustración conceptual que muestra unidades 120A-120E de acceso de codificación de vídeo escalables de ejemplo ("unidades 120 de acceso ") en orden de flujo de bits. Como se muestra en la FIG. 6, las imágenes codificadas o cortes en la misma instancia de tiempo son sucesivas en el orden de flujo de bits y forman una unidad de acceso en el contexto de un estándar de codificación de vídeo escalable, tal como la extensión SVC a H.264 o SHVC. Las unidades 120 de acceso siguen entonces el orden de decodificación, que podría ser diferente del orden de visualización y determinado, por ejemplo, por la relación de predicción temporal entre las unidades 120 de acceso.
Por ejemplo, la unidad 120A de acceso incluye la imagen 10 de la capa 0112, la imagen 0 de la capa 2116, la imagen 0 de la capa 3117 y la imagen 0 de la capa 4 118. La unidad 120B de acceso incluye la imagen P4 de la capa 0112, la imagen 4 de la capa 2116, la imagen 4 de la capa 3117 y la imagen 4 de la capa 4 118. La unidad 120C de acceso incluye la imagen b2 de la capa 1114, la imagen 2 de la capa 2116, la imagen 2 de la capa 3117 y la imagen 2 de la capa 4 118. La unidad 120D de acceso incluye la imagen 1 de la capa 4 118, y la unidad 120E de acceso incluye la imagen 3 de la capa 4 118.
La FIG. 7 es un diagrama de bloques que ilustra un codificador 122 SHVC de 3 capas de ejemplo. Como se ilustra en la FIG. 7, el codificador 122 de SHVC incluye un codificador 124 de capa base, un primer codificador 125 de capa de mejora y un segundo codificador 126 de capa de mejora. En la sintaxis de alto nivel solo en SHVC, no hay nuevas herramientas de codificación de nivel de bloque en comparación con la codificación de una sola capa HEVC. En SHVC, solo se permiten cambios de sintaxis de segmento y de nivel superior y operaciones de nivel de imagen, tales como el filtrado de imágenes o el muestreo ascendente.
Para reducir la redundancia entre capas, las imágenes de la capa de referencia coubicadas con muestreo ascendente para una capa inferior/base se pueden generar y almacenar en una memoria intermedia de referencia para una capa superior/de mejora, de modo que la predicción entre capas se pueda lograr de la misma manera como predicción entre tramas dentro de una sola capa. Como se ilustra en la FIG. 7, se genera una imagen 128 de referencia entre capas (ILR) remuestreada a partir de una imagen de referencia en el codificador 124 de capa base y se almacena en el codificador 125 de la primera capa de mejora. De manera similar, se genera una imagen 129 ILR remuestreada a partir de una imagen de referencia en el codificador 125 de la primera capa de mejora y se almacena en el codificador 126 de la segunda capa de mejora. En SHVC WD3, la imagen ILR se marca como una imagen de referencia a largo plazo para la capa de mejora. La diferencia del vector de movimiento asociada con una imagen de referencia entre capas se limita a cero.
El próximo despliegue de dispositivos y contenido de televisión de ultra alta definición (UHDTV) utilizará una gama de colores diferente a la de los dispositivos heredados. Específicamente, HD utiliza la recomendación BT.709, la Recomendación UIT-R BT.709 "Parameter values for the h Dt V standards for production and international programme exchange" de diciembre de 2010, mientras que UHDTV utilizará la recomendación BT.2020, Recomendación UIT-R BT.2020 ""Parameter values for UHDTV systems for production and international programme exchange" abril de 2012. Una gama de colores comprende una gama completa de colores que se pueden reproducir para una imagen, por ejemplo, en una imagen, segmento, bloque o capa de datos de video. Una diferencia clave entre estos sistemas es que la gama de colores de UHDTV es significativamente mayor que la de HD. Se afirma que UHDTV proporcionará una experiencia de visualización más natural o realista, que es coherente con otras características de Uh Dt V, como la alta resolución.
La FIG. 8 es un gráfico que ilustra una gama de colores de ejemplo de una secuencia 130 de vídeo de muestra. Como se ilustra en la FIG. 8, la secuencia 130 de vídeo de muestra SWG1 se indica como un grupo de puntos dentro de un esquema de línea de la gama de colores UHD BT.2020 132. Para fines de comparación, un esquema de la gama de colores HD BT.709 134 y un esquema del espacio 136 de color lineal de la International Commission on Illumination (CIE)-XYZ se superpone a la secuencia 130 de vídeo de muestra de SWG1. Se observa fácilmente en la FIG. 8 que la gama de colores UHD BT.2020 132 es mucho mayor que la gama de colores HD BT.709 134. Nótese que el número de píxeles en la secuencia 130 de vídeo de muestra de SWG1 que quedan fuera de la gama de colores 134 de BT.709.
La FIG. 9 es un diagrama de bloques que ilustra la conversión de la gama de colores HD BT.709 134 a la gama de colores UHD BT.2020 132. Tanto la gama de colores HD BT.709 134 como la gama de colores UHD BT.2020 132 definen representaciones de píxeles de color en componentes de luma y croma (por ejemplo, YCbCr o YUV). Cada gama de colores define la conversión hacia y desde el espacio136 de color lineal CIE-XYz . Este espacio de color intermedio común se puede utilizar para definir la conversión de los valores de luma y croma en la gama de colores HD BT.709 134 a los valores de luma y croma correspondientes en la gama de colores UHD BT.2020 132. Más detalles con respecto a la gama de colores de la secuencia de muestra ilustrada en la FIG. 8 y la conversión de la gama de colores ilustrada en la FIG. 9 se pueden encontrar en L. Kerofsky, A. Segall, S.-H. Kim, K. Misra, "Color Gamut Scalable Video Coding: New Results," JCTVC-L0334, equipo colaborativo conjunto sobre codificación de vídeo (JCT-VC) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1 / SC 29 / WG 11, 12a reunión, Ginebra, CH, 14-23 enero de 2013 (en lo sucesivo, "JCTVC-L0334").
La FIG. 10 es un diagrama de bloques que ilustra un codificador 140 escalable de gama de colores que incluye una unidad 144 de procesamiento de predicción de color que puede generar una imagen de referencia entre capas cuando la gama de colores de la capa base y la gama de colores de la capa de mejora son diferentes. La unidad de procesamiento de predicción de color 144 puede ser utilizada por un codificador de video, tal como el codificador 20 de vídeo de la FIG. 2 o decodificador 30 de vídeo de la FIG. 3, para realizar una codificación de vídeo escalable de gama de colores, en la que la gama de colores de la capa base y de mejora es diferente. En algunos casos, la unidad 144 de procesamiento de predicción de color puede funcionar sustancialmente de manera similar a la unidad 66 de procesamiento de predicción de color del codificador 20 de vídeo de la FIG. 2. En otros casos, la unidad 144 de procesamiento de predicción de color puede funcionar sustancialmente de manera similar a la unidad 86 de procesamiento de predicción de color del decodificador 30 de vídeo de la FIG. 3.
En el ejemplo ilustrado en la FIG. 10, un circuito 142 de codificación de la capa base realiza la codificación de vídeo de imágenes que incluyen datos de color en una primera gama de colores, por ejemplo, BT.709, y un circuito 146 de codificación de la capa de mejora realiza la codificación de vídeo de imágenes que incluyen datos de color en una segunda gama de colores, por ejemplo, BT.2020. La unidad 144 de procesamiento de predicción de color realiza la predicción de color para mapear o convertir datos de color de una imagen de referencia de capa base en la primera gama de colores a la segunda gama de colores, y genera una imagen de referencia entre capas para la capa de mejora con base en los datos de color mapeados de la imagen de referencia de la capa base.
Para lograr una alta eficiencia de codificación, la unidad 144 de procesamiento de predicción de color está configurada para realizar una predicción de color específica cuando se generan imágenes de referencia entre capas. Como se describe con más detalle a continuación, la unidad 144 de procesamiento de predicción de color puede configurarse para realizar la predicción de color de acuerdo con cualquiera de un modelo de predicción lineal, un modelo de predicción lineal por partes o un modelo de predicción de color con base en una tabla de búsqueda 3D.
Se propone un modelo de predicción lineal en JCTVC-L0334, mencionado anteriormente. Generalmente, el proceso de predicción de color del modelo de predicción lineal puede describirse como un modelo de ganancia y compensación. El modelo de predicción lineal opera en planos de color individuales. Para facilitar el cálculo de números enteros, un parámetro describe el número de bits fraccionarios utilizados en el cálculo mediante el parámetro numFractionBits. Para cada canal, se especifican una ganancia [c] y un desplazamiento [c]. El modelo de predicción lineal se define de la siguiente manera:
Pred[c][x][y] = (gain[c]*In[x][y] ( I«(num FractionBits-1)) »
numFractionBits offset[c]
Se propone un modelo de predicción lineal por partes en C. Auyeung, K. Sato, "AHG14: Color gamut scalable video coding with piecewise linear predictions and shift-offset model," JCTVC-N0271, Viena, Austria, julio de 2013, con base en JCTVC-L0334, mencionado anteriormente. El proceso de predicción de color del modelo de predicción lineal por partes también puede describirse como un modelo de ganancia y compensación. El modelo de predicción lineal por partes se define de la siguiente manera:
Let d[c][x][y] = In[c] [x] [y] - knot[c].
If d[c][x][y] <= 0
Pred[c][x][y] = (gain1[c]*d[c][x][y] offset[c] (1<<(numFractionBits-1)))>> numFractionBits
else
Pred[c][x][y] = (gain2[c]*d[c][x][y] offset[c] (1<<(numFractionBits-1)))>> numFractionBits.
Los parámetros de predicción knot[c], offset[c], gain1[c], y gain2[c] puede estar codificado en el flujo de bits.
Las FIGS. 11A y 11B son ilustraciones conceptuales que muestran diferentes vistas de una tabla 150 de búsqueda 3D de ejemplo para la escalabilidad de la gama de colores. Se propone un modelo de predicción de color con base en tablas de búsqueda 3D en P. Bordes, P. Andrivon, F. Hiron, "Ah G14: Color Gamut Scalable Video Coding using 3D LUT: New Results," JCTVC-N0168, equipo colaborativo conjunto sobre codificación de vídeo (JCT-VC) de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 14va reunión, Viena, Austria, julio de 2013 (en lo sucesivo, "JCTVC-N0168"). El principio de la tabla de búsqueda 3D para la escalabilidad de la gama de colores se representa en las FIGS. 11A y 11B. La tabla 150 de búsqueda 3D se puede considerar como un submuestreo de un primer espacio de color 3D, por ejemplo, gama de colores HD BT.709, donde cada vértice está asociado con un valor de triplete de color (y, u, v) correspondiente a los valores del segundo espacio de color 3D (es decir, predichos), por ejemplo, gama de colores UHD BT.2020).
En general, la primera gama de colores se puede dividir en octantes o cuboides en cada dimensión de color (es decir, Y, U y V), y los vértices de los octantes se asocian con el valor del triplete de color correspondiente a la segunda gama de colores y se utilizan para rellenar la tabla de búsqueda 3D 150. El número de vértices o segmentos en cada dimensión de color indica el tamaño de la tabla de búsqueda 3D. La FIG. 11A ilustra los vértices o puntos de celosía que se cruzan de los octantes en cada dimensión de color de la tabla de búsqueda 3D 150. La FIG. 11B ilustra los diferentes valores de color asociados con cada uno de los vértices de la tabla 150 de búsqueda 3D. Como se ilustra, en la FIG. 11A cada dimensión de color tiene cuatro vértices y en la FIG. 11B cada dimensión de color incluye cuatro valores de color.
La FIG. 12 es una ilustración conceptual que muestra la interpolación trilineal con una tabla 152 de búsqueda 3D para la escalabilidad de la gama de colores. Para una muestra de color de capa base dada en la primera gama de colores, el cálculo de su predicción en la segunda gama de colores para una capa de mejora se realiza mediante interpolación trilineal de acuerdo con la siguiente ecuación:
Donde:
Figure imgf000015_0001
So(y) = yi-y y Si(y) = y-y0
yo es el índice del vértice submuestreado más cercano inferior a y,
yi es el índice del vértice submuestreado más cercano superior a y.
Se pueden encontrar más detalles de la tabla de búsqueda 3D ilustrada en las FIGs. 11A y 11B y la interpolación trilineal con la tabla de búsqueda de 3D ilustrada en la FIG. 12 en JCTVC-N0168, citado anteriormente.
La FIG. 13 es una ilustración conceptual que muestra la interpolación tetraédrica con una tabla 154 de búsqueda 3D para la escalabilidad de la gama de colores. La interpolación tetraédrica se puede utilizar en lugar de la interpolación trilineal descrita anteriormente para reducir la complejidad computacional de la tabla de búsqueda 3D.
La FIG. 14 es una ilustración conceptual que muestra seis ejemplos de tetraedros 156A-156F (colectivamente "tetraedros 156") usados para abarcar un punto P de una tabla de búsqueda 3D a interpolar usando interpolación tetraédrica. En el ejemplo de la FIG. 14, hay seis opciones para determinar el tetraedro que contiene el punto P que se interpolará en un octante de la tabla de búsqueda 3D dado que los vértices P0 y P7 tienen que estar incluidos en el tetraedro. Usando la interpolación tetraédrica, la tabla de búsqueda 3D puede diseñarse para una decisión rápida en lugar de verificar la relación de cada dos componentes: y y u, y y v, u y v.
En Solicitud de patente de EE. UU. No. 14/512,177, presentada el 10 de octubre de 2014, se describieron una LUT 3D asimétrica y una LUT 3D desequilibrada. Se puede usar una tabla de búsqueda 3D asimétrica de modo que los componentes de luma y croma tengan diferentes tamaños de tabla, por ejemplo, los componentes de croma usan una tabla de búsqueda más gruesa y el componente de luma usa una tabla de búsqueda más refinada. Se puede utilizar una tabla de búsqueda 3D no balanceada, es decir, la tabla [M] [N] [K], donde el tamaño de cada dimensión es diferente, de modo que el mapeo de color podría ser más preciso con el mismo componente de color, mientras que menos preciso con el otro componente de color. La tabla de búsqueda 3D solo se puede usar para el componente de luma, mientras que el mapeo lineal 1-D o el mapeo lineal por partes se usa para los componentes U y V, respectivamente.
En Solicitud de patente de EE. UU. No.14/571,939, presentada el 16 de diciembre de 2014, y Solicitud de Patente de EE.UU. No. 14/572,002, presentada el 16 de diciembre de 2014, se describieron las mejoras en la LUT 3D asimétrica y la LUT 3D desequilibrada descritas anteriormente. Por ejemplo, las mejoras descritas incluyen técnicas para señalizar información de partición y/o valores de color usados para generar una LUT 3D para la escalabilidad de la gama de colores. Se pueden encontrar más detalles en el texto de las solicitudes de patente de EE. UU. Pertinentes.
En el 17va Reunión de JCT-VC, se adoptó la escalabilidad de gama de colores asimétrica con base en tabla de búsqueda 3D propuesta en JCTVC-Q0048 (Li, X., et al., "SCE1.2: Color gamut scalability with asymmetric 3D LUT," JCT-VC de ITU-T SG 16 WP 3 e ISO/IEC JTC 1/SC 29/WG 11, 17va reunión: Valencia, ES, 27 de marzo -4 de abril de 2014). Las tablas de sintaxis y la semántica relacionadas son las siguientes.
Tabla de mapeo de colores sintaxis de RBSP
Figure imgf000015_0002
Tabla de mapeo de colores octante sintaxis de RBSP
Figure imgf000016_0001
Tabla de mapeo de colores Semántica RBSP
cm_octant_depth especifica la profundidad máxima de división de la tabla de mapeo de colores. En los flujos de bits que se ajustan a esta versión de esta memoria descriptica, el valor de cm_octant_depth estará en el intervalo de 0 a 1, inclusive. La variable COctantNum se deriva de la siguiente manera.
COe taníNum::: 1 « cisi ocíant depth
cm_y_part_num_log2 especifica el número de particiones del octante de tabla de asignación de color más pequeño para el componente de luma. Las variables YOctantNum e YPartNum se derivan de la siguiente manera.
YOctantNum ::: 1 « ( e m octant depth-fe m y parí num logz )
YPartNum = 1 « cm._jrjpart_num_log2
cm_input_bit_depth_luma_minus8 especifica la profundidad de bits de muestra del componente de luma de entrada del proceso de asignación de color. La variable CMInputBitDepthY se deriva de la siguiente manera:
CMInputBitDepthY = 8 -f c m_ in p u ib i id e ¡3 rblu ma _ trun u s 8 cm_input_bit_depth_chroma delta especifica la profundidad de bits de muestra de los componentes de croma de entrada del proceso de asignación de color. La variable CMInputBitDepthC se deriva de la siguiente manera:
CMInpuíBitDepthC::: CMInputBitDepthY cni_input_bit_depth_chroma_deIía
cm_output_bit_depth_luma_minus8 especifica la profundidad de bits de muestra del componente de luma de salida del proceso de asignación de color. La variable CMOutputBitDepthY se deriva de la siguiente manera:
CMOutputBitDepthY = 8 cm_ouiput_bit_depthjuma_mimis8
cm_output_bit_depth_chroma_delta especifica la profundidad de bits de muestra de los componentes de croma de salida del proceso de asignación de color. La variable CMOutputBitDepthC se deriva de la siguiente manera:
CMQutputBitDepthC::: CMOutputBitDepthY'
cm_output_bit_depth_cliroma__delta
cm_res_quant_bits especifica el número de bits menos significativos que se agregarán a los valores residuales del vértice res_y, res_u y res_v.
Tabla de mapeo de colores semántica RBSP octante
split_octant_flag igual a 1 especifica que el octante de la tabla de mapeo de colores actual se divide en ocho octantes con la mitad de la longitud en cada una de las tres dimensiones, el indicador de octante dividido igual a 0 especifica que el octante de la tabla de mapeo de colores actual no se divide en ocho octantes. Cuando no está presente, se infiere que el valor de split_octant_flag es igual a 0.
coded_vertex_flag [yIdx][uIdx][vIdx][vertex] igual a 1 especifica que los residuos del vértice con índice [yIdx][uIdx][vIdx][vertex] están presentes. coded_vertex_flag igual a 0 especifica que los residuos del vértice con índice [yIdx][uIdx][vIdx][vertex] no están presentes. Cuando no está presente, se infiere que el valor de coded_vertex_flag es igual a 0.
res_y[yIdx][uIdx][vIdx][vertex] especifica el residuo de predicción del componente de luma para el vértice con índice [yIdx] [yIdx][uIdx][vIdx][vertex]. Cuando no está presente, se infiere que el valor de res_y[yIdx][uIdx][vIdx][vertex] es igual a 0.
res_u[yIdx][uIdx][vIdx][vertex] especifica el residuo de predicción del componente Cb para el vértice con índice [yIdx][uIdx][vIdx][vertex]. Cuando no está presente, se infiere que el valor de res_u[yIdx][uIdx][vIdx][vertex] es igual a 0.
res_v[yIdx][uIdx][vIdx][vertex] especifica el residuo de predicción del componente Cr para el vértice con índice [yIdx][uIdx][vIdx][vertex]. Cuando no está presente, se infiere que el valor de es_v[yIdx][uIdx][vIdx][vertex] es igual a 0.
En el ejemplo anterior, para cada octante para cada uno de los componentes de color, se pueden señalizar los vértices del octante. En este ejemplo, se puede señalizar un valor residual entre un valor predicho de un vértice dado y un valor real de dicho vértice. En otro ejemplo, para cada octante para cada uno de los componentes de color, los coeficientes de mapeo de color (es decir, a, b, c y d) para una función de mapeo de color lineal de valores de color en la tabla de búsqueda 3D se pueden señalizar en lugar de los vértices de el octante. La función de mapeo de color lineal con parámetros de mapeo de color puede usarse directamente para realizar la predicción de color. La función de mapeo de color lineal común se puede representar como sigue.
Figure imgf000017_0001
En la función de ejemplo anterior, el subíndice e and b denotan la capa superior (es decir, capa de mejora) y la capa inferior (por ejemplo, capa base), respectivamente, para cada uno de los componentes de color de luma, primer croma y segundo croma (es decir, Y, U y V). Los parámetros a, b, c y, d representan los coeficientes de mapeo de color, que son factores de ponderación entre los componentes de color de las capas inferior y superior de los datos de vídeo.
En la técnica de ejemplo de señalización de coeficientes de mapeo de color para una función de mapeo de color lineal para cada octante de la tabla de búsqueda 3D, la tabla de sintaxis colour_mapping_table_octant puede indicar valores residuales que son las diferencias entre los coeficientes de mapeo de color (es decir, a, b, c, y d) para la función de mapeo de color lineal del octante y los valores de coeficiente de mapeo de color predichos para el octante, en lugar de señalizar los valores residuales del vértice resY[yIdx][uIdx][vIdx][vertex], resU[yIdx][uIdx][vIdx][vertex], y resV[yIdx][uIdx][vIdx][vertex]. La tabla de sintaxis y la semántica relacionadas son las siguientes.
Sintaxis de octantes de mapeo de colores
Figure imgf000018_0001
Semántica de octantes de mapeo de color
split_octant_flag igual a 1 especifica que el octante de mapeo de color actual se divide en ocho octantes con la mitad de longitud en cada una de las tres dimensiones. split_octant_flag igual a 0 especifica que el octante de mapeo de color actual no se divide en ocho octantes. Cuando no está presente, se infiere que el valor de split_octant_flag es igual a 0.
coded_res_flag[idxShiftY][idxCb][idxCr][j] igual a 1 especifica que los residuales para los coeficientes de mapeo de color j-ésimo del octante con índice de octante igual a (idxShiftY, idxCb, idxCr) están presentes. coded_res_flag[idxShiftY][idxCb][idxCr][j] igual a 0 especifica que los residuales para los coeficientes de mapeo de color j-ésimo del octante con índice de octante igual a (idxShiftY, idxCb, idxCr) no están presentes. Cuando no está presente, se infiere que el valor de coded_res_flag[idxShiftY][idxCb][idxCr][j] es igual a 0.
res_coeff_q[idxShiftY][idxCb][idxCr][j][c]especifica el cociente del residual para el j-ésimo coeficiente de mapeo de color del c-ésimo componente de color del octante con índice de octante igual a (idxShiftY, idxCb, idxCr). Cuando no está presente, se infiere que el valor de res_coeff_q[idxShiftY][idxCb][idxCr][j][c] es igual a 0.
res_coeff_r[idxShiftY][idxCb][idxCr][j][c] especifica el resto del residual para el j-ésimo coeficiente de mapeo de color del c-ésimo componente de color del octante con índice de octante igual a (idxShiftY, idxCb, idxCr). El número de bits utilizados para codificar res_coeff_r es igual a CMResLSBits. Si CMResLSBits es igual a 0, res coeff r no está presente. Cuando no está presente, el valor de res_coeff_r[idxShiftY][idxCb][idxCr][j][c] se infiere que es igual a 0.
res_coeff_s[idxShiftY][idxCb][idxCr][j][c] especifica el signo del residual para el j-ésimo coeficiente de mapeo de color del c-ésimo componente de color del octante con índice de octante igual a (idxShiftY, idxCb, idxCr). Cuando no está presente, se infiere que el valor de res_coeff_s[idxShiftY][idxCb][idxCr][j][c] es igual a 0.
Se han identificado los siguientes problemas potenciales en la escalabilidad de la gama de colores (CGS) con base en la tabla de búsqueda asimétrica 3D descrita anteriormente. Como primer problema potencial, en el diseño actual de predicción de color 3D para la escalabilidad de la gama de colores, las profundidades de bits de los componentes de color de entrada y salida del proceso de predicción de color se señalizan mediante un codificador, que puede no ser necesario. Además, la sintaxis actual permite que la señal de la capa de referencia (por ejemplo, los componentes de color de la capa base) y los componentes de color de entrada del proceso de predicción del color tengan diferentes profundidades de bits.
Como segundo problema potencial, en el caso de múltiples capas de referencia, el diseño actual define una tabla CGS para una capa de mejora, pero no define claramente a cuál de las capas de referencia se aplica la tabla CGS señalizada para obtener una imagen de referencia entre capas. Como tercer problema potencial, la sintaxis actual permite que la predicción ponderada entre capas se pueda aplicar además del proceso de predicción del color, lo que puede aumentar la complejidad sin aportar ningún beneficio de ganancia de codificación.
Las técnicas descritas en esta divulgación pueden resolver uno o más de los problemas mencionados anteriormente. Las siguientes técnicas pueden aplicarse individualmente. Alternativamente, se pueden aplicar dos o más técnicas juntas.
Como primera solución al primer problema potencial descrito anteriormente, las profundidades de bits de entrada y salida del proceso de predicción de color se señalizan en el flujo de bits con restricciones aplicadas a una o ambas profundidades de bits de entrada y salida en el codificador 20 de vídeo y/o decodificador 30 de vídeo. En un ejemplo, el codificador 20 de vídeo y/o el decodificador 30 de vídeo pueden configurarse para restringir las profundidades de bits de los componentes de luma y croma de entrada del proceso de predicción de color CGS de manera que sean iguales a las profundidades de bits de los componentes de luma y croma de la imagen de la capa de referencia. En este ejemplo, la señal de salida de la capa de referencia (por ejemplo, los componentes de color de la imagen de la capa de referencia) puede usarse como la señal de entrada de la tabla de búsqueda 3D para el proceso de predicción de color CGS.
En otro ejemplo, el codificador 20 de vídeo y/o el decodificador 30 de vídeo pueden configurarse para restringir las profundidades de bits de los componentes de luma y croma de salida del proceso de predicción de color CGS de manera que sean iguales a las profundidades de bits de los componentes de luma y croma de la imagen de la capa de mejora. En un ejemplo alternativo, el codificador 20 de vídeo y/o el decodificador 30 de vídeo pueden configurarse para restringir las profundidades de bits de los componentes de luma y croma de salida del proceso de predicción de color CGS de manera que estén en un intervalo entre las profundidades de bits de luma y componentes de croma de la imagen de la capa de referencia y las profundidades de bits de los componentes de luma y croma de la imagen de la capa de mejora, inclusive.
Como una segunda solución al primer problema potencial descrito anteriormente, solo las profundidades de bits de salida del proceso de predicción de color se señalizan en el flujo de bits y las profundidades de bits de entrada no se señalizan en el flujo de bits con restricciones aplicadas a una o ambas profundidades de bits de la entrada y la salida en el codificador 20 de vídeo y/o el decodificador 30 de vídeo. En este caso, el decodificador 30 de vídeo deriva las profundidades de bits de entrada del proceso de predicción de color de acuerdo con las limitaciones. En un ejemplo, el codificador 20 de vídeo y/o el decodificador 30 de vídeo pueden configurarse para restringir las profundidades de bits de los componentes de luma y croma de entrada del proceso de predicción de color CGS de manera que sean iguales a las profundidades de bits de los componentes de luma y croma de la imagen de la capa de referencia.
En otro ejemplo, el codificador 20 de vídeo y/o el decodificador 30 de vídeo pueden configurarse para restringir las profundidades de bits de los componentes de luma y croma de salida del proceso de predicción de color CGS de manera que sean iguales a las profundidades de bits de los componentes de luma y croma de la imagen de la capa de mejora. Como ejemplo alternativo, el codificador 20 de vídeo y/o el decodificador 30 de vídeo pueden configurarse para restringir las profundidades de bits de los componentes de luma y croma de salida del proceso de predicción de color CGS de manera que estén en un intervalo entre las profundidades de bits de luma y componentes de croma de la imagen de la capa de referencia y las profundidades de bits de los componentes de luma y croma de la imagen de la capa de mejora, inclusive.
Como tercera solución al primer problema potencial descrito anteriormente, las profundidades de bits de entrada y salida del proceso de predicción de color no se señalizan en el flujo de bits, pero en cambio se derivan con restricciones aplicadas a una o ambas profundidades de bits de entrada y salida en el codificador 20 de video y/o decodificador 30 de video. En un ejemplo, el codificador 20 de vídeo y/o el decodificador 30 de vídeo pueden configurarse para derivar las profundidades de bits de los componentes de luma y croma de entrada al proceso de predicción de color CGS de manera que sean iguales a las profundidades de bits de los componentes de luma y croma de la imagen de la capa de referencia. En otro ejemplo, el codificador 20 de vídeo y/o el decodificador 30 de vídeo están configurados para derivar las profundidades de bits de los componentes de luma y croma de salida del proceso de predicción de color CGS de manera que sean iguales a las profundidades de bits de los componentes de luma y croma de la imagen de la capa de mejora.
Como solución al segundo problema potencial descrito anteriormente, en el caso de múltiples capas de referencia, el codificador 20 de vídeo y/o el decodificador 30 de vídeo están obligados a aplicar una tabla de búsqueda 3D para una capa de mejora para hacer referencia a imágenes solo dentro de una o más capas de referencias identificadas La tabla de búsqueda 3D se señaliza en un conjunto de parámetros de imagen (PPS) del flujo de bits de manera que la tabla de búsqueda 3D se aplica a una o más imágenes referenciadas por el PPS. El PPS puede hacer referencia a una o más imágenes de la capa de mejora en una capa de mejora de los datos de vídeo, y una o más imágenes de la capa de referencia colocadas en una o más capas de referencia de los datos de vídeo. En los ejemplos en los que el PPS incluye una pluralidad de capas de referencia (por ejemplo, más de una capa de referencia), las técnicas de esta divulgación identifican al menos una de las capas de referencia a la que aplicar la tabla de búsqueda 3D para generar una imagen de referencia entre capas para una imagen de capa de mejora determinada.
Por ejemplo, el codificador 20 de vídeo puede señalizar uno o más identificadores de capa de referencia (ID) para una tabla de búsqueda 3D para CGS, y el decodificador 30 de vídeo solo aplica la tabla de búsqueda 3D a imágenes de capa de referencia en una o más capas de referencia identificadas por los ID de capa de referencia señalizados. La tabla de búsqueda 3D está señalizada para una imagen de capa de mejora dada con el fin de realizar CGS para generar una imagen de referencia entre capas para la imagen de capa de mejora. El decodificador 30 de vídeo necesita conocer la una o más capas de referencia a las que se va a aplicar la tabla de búsqueda 3D para generar la imagen de referencia entre capas.
En algunos ejemplos, las imágenes de la capa de referencia en dos o más de la pluralidad de capas de referencia pueden usarse juntas para generar la imagen de referencia entre capas usando la tabla de búsqueda 3D para la imagen de la capa de mejora. En este caso, dos o más ID de capa de referencia que identifican las dos o más capas de referencia se señalizan en el flujo de bits. En otros ejemplos, se puede usar una imagen de la capa de referencia en sólo una de la pluralidad de capas de referencia para generar la imagen de referencia entre capas usando la tabla de búsqueda 3D para la imagen de la capa de mejora. En este caso, un ID de capa de referencia que identifica la capa de referencia se señaliza en el flujo de bits.
Como ejemplo adicional, para mantener una baja complejidad computacional, el codificador 20 de vídeo y/o el decodificador 30 de vídeo pueden estar restringidos para aplicar el proceso de predicción de color CGS solo una vez para cada imagen de capa de mejora incluso cuando están disponibles múltiples capas de referencia. En este ejemplo, para cada imagen de capa de mejora, se puede usar una imagen de capa de referencia en exactamente una de la pluralidad de capas de referencia para generar la imagen de referencia entre capas usando la tabla de búsqueda 3D para la imagen de capa de mejora. El codificador 20 de vídeo puede estar limitado para señalizar exactamente un ID de capa de referencia para cada imagen de capa de mejora, y el decodificador 30 de vídeo puede estar restringido para aplicar solo la tabla de búsqueda 3D a una imagen de capa de referencia en exactamente una capa de referencia identificada por el ID de la capa de referencia señalizada.
Para dos imágenes de la capa de mejora sucesivas, se pueden usar imágenes de capa de referencia en diferentes capas de referencia para el proceso de predicción de color CGS. Por ejemplo, para una primera imagen de la capa de mejora, el codificador 20 de vídeo y/o el decodificador 30 de vídeo pueden usar una imagen de capa de referencia en una primera capa de referencia para generar una imagen de referencia entre capas para la primera imagen de la capa de mejora. Para una imagen de la segunda capa de mejora, el codificador 20 de vídeo y/o el decodificador 30 de vídeo pueden usar una imagen de la capa de referencia en una segunda capa de referencia diferente de la primera capa de referencia para generar una imagen de referencia entre capas para la segunda imagen de la capa de mejora.
A continuación, se describe un ejemplo de los ID de la capa de referencia de señalización en una tabla de búsqueda 3D para CGS. Las adiciones a la sintaxis y semántica de colour_mapping_table presentada anteriormente se indican mediante texto en cursiva.
Figure imgf000021_0002
cm_inter_layer_ref_idc especifica el nuh_layer_id de la imagen de la capa de referencia a la que se aplica el proceso de predicción de color especificado por la tabla de mapeo de color actual cuando se deriva la imagen entre capas.
Otro ejemplo de los ID de la capa de referencia de señalización en una tabla de búsqueda 3D para CGS se describe a continuación. Las adiciones a la sintaxis y semántica de colour_mapping_table se indican mediante texto en cursiva.
Figure imgf000021_0001
num_cm_refJayers_iTiinus1 especifica el número de los siguientes elementos de sintaxis cm_ref_layer_id [i]. El valor de num_cm_ref_layers_minus1 estará en el intervalo de 0 a 61, inclusive.
cm_ref_layer_id[i] especifica el valor nuh_layer_id de la imagen de la capa de referencia directa asociada para la que se especifica la tabla de mapeo de colores.
Como solución al tercer problema potencial descrito anteriormente, para mantener baja complejidad computacional, el codificador 20 de vídeo y/o el decodificador 30 de vídeo están restringidos para no aplicar predicción ponderada en una imagen de referencia entre capas generada por el proceso de predicción de color CGS. En este caso, la imagen de referencia entre capas generada para una imagen de capa de mejora usando una tabla de búsqueda 3D aplicada a una o más imágenes de capa de referencia se usa en sí misma para predecir la imagen de capa de mejora. La imagen de referencia entre capas no se utiliza como imagen de referencia candidata en un grupo de imágenes de referencia candidatas en el caso de la predicción ponderada para la imagen de la capa de mejora.
La FIG. 2 es un diagrama de bloques que ilustra un ejemplo de codificador 20 de vídeo que puede implementar técnicas descritas en esta divulgación. El codificador 20 de vídeo puede realizar codificación interna e intercodificación de bloques de vídeo dentro de segmentos de video. La codificación interna se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el vídeo dentro de una trama o imagen de vídeo determinado. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el vídeo dentro de tramas o imágenes adyacentes de una secuencia de video. Intramodo (modo I) puede referirse a cualquiera de varios modos de codificación con base en el espacio. Los modos intermedios, tales como la predicción unidireccional (modo P) o la predicción bidireccional (modo B), pueden referirse a cualquiera de los varios modos de codificación con base en el tiempo.
Como se muestra en la FIG. 2, el codificador 20 de vídeo recibe un bloque de vídeo actual dentro de una trama de vídeo que se va a codificar. En el ejemplo de la FIG. 2, el codificador 20 de vídeo incluye una unidad 40 de selección de modo, una memoria 41 de datos de vídeo, una memoria 64 intermedia de imágenes decodificadas, un sumador 50, una unidad 52 de procesamiento de transformación, una unidad 54 de cuantificación y una unidad 56 de codificación de entropía. La unidad 40 de selección de modo, a su vez, incluye una unidad 44 de compensación de movimiento, una unidad 42 de estimación de movimiento, una unidad 46 de intrapredicción y una unidad 48 de partición. Para la reconstrucción de bloques de video, el codificador 20 de vídeo también incluye una unidad 58 de cuantificación inversa, una unidad 60 de procesamiento de transformación inversa y un sumador 62. Un filtro de desbloqueo (no mostrado en la FIG. 2) también se pueden incluir para filtrar los límites de los bloques para eliminar los artefactos de bloqueo del vídeo reconstruido. Si se desea, el filtro de desbloqueo normalmente filtraría la salida del sumador 62. También se pueden utilizar filtros adicionales (en circuito o circuito posterior) además del filtro de desbloqueo. Dichos filtros no se muestran por brevedad, pero si se desea, pueden filtrar la salida del sumador 50 (como un filtro en circuito).
La memoria 41 de datos de vídeo puede almacenar datos de vídeo para ser codificados por los componentes del codificador 20 de video. Los datos de vídeo almacenados en la memoria 41 de datos de vídeo pueden obtenerse, por ejemplo, de la fuente 18 de vídeo. La memoria 64 intermedia de imágenes decodificadas puede ser una memoria de imágenes de referencia que almacena datos de vídeo de referencia para su uso en la codificación de datos de vídeo mediante el codificador 20 de vídeo, por ejemplo, en modos de codificación intra o inter. La memoria 41 de datos de vídeo y la memoria 64 intermedia de imágenes decodificadas pueden estar formadas por cualquiera de una variedad de dispositivos de memoria, tales como la memoria dinámica de acceso aleatorio (DRAM), incluyendo la DRAM síncrona (SDRAM), la RAM magnetorresistiva (MRAM), la RAM resistiva (RRAM), u otros tipos de dispositivos de memoria. La memoria 41 de datos de vídeo y la memoria 64 intermedia de imágenes decodificadas pueden ser proporcionadas por el mismo dispositivo de memoria o dispositivos de memoria separados. En diversos ejemplos, la memoria 41 de datos de vídeo puede estar en chip con otros componentes del codificador 20 de vídeo, o fuera de chip en relación con esos componentes.
Durante el proceso de codificación, el codificador 20 de vídeo recibe una trama o segmento de vídeo que se va a codificar. La trama o el segmento se puede dividir en varios bloques de vídeo. La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento realizan la codificación interepredecible del bloque de vídeo recibido en relación con uno o más bloques en una o más tramas de referencia para proporcionar predicción temporal. La unidad 46 de intrapredicción puede realizar alternativamente una codificación intrapredictiva del bloque de vídeo recibido en relación con uno o más bloques vecinos en la misma trama o segmento que el bloque que se va a codificar para proporcionar predicción espacial. El codificador 20 de vídeo puede realizar múltiples pasadas de codificación, por ejemplo, para seleccionar un modo de codificación apropiado para cada bloque de datos de video.
Además, la unidad 48 de partición puede dividir bloques de datos de vídeo en subbloques, con base en la evaluación de esquemas de partición previos en pasadas de codificación previas. Por ejemplo, la unidad 48 de partición puede dividir inicialmente una trama o segmento en LCU, y dividir cada una de las l Cu en subCU con base en el análisis de distorsión de velocidad (por ejemplo, optimización de distorsión de velocidad). La unidad 40 de selección de modo puede producir además una estructura de datos de cuatro árboles indicativa de la partición de una LCU en subCU. Las CU de nodo hoja del árbol cuádruple pueden incluir una o más PU y una o más TU.
La unidad 40 de selección de modo puede seleccionar uno de los modos de codificación, intra o inter, por ejemplo, con base en resultados de error, y proporciona el bloque intra o intercodificado resultante al sumador 50 para generar datos de bloque residuales y al sumador 62 para reconstruir el bloque codificado para usarlo como trama de referencia. La unidad 40 de selección de modo también proporciona elementos de sintaxis, tales como vectores de movimiento, indicadores intramodo, información de partición y otra información de sintaxis similar, a la unidad 56 de codificación de entropía.
La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento pueden estar muy integradas, pero se ilustran por separado con fines conceptuales. La estimación de movimiento, realizada por la unidad 42 de estimación de movimiento, es el proceso de generar vectores de movimiento, que estiman el movimiento para bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de vídeo dentro de una imagen o trama de vídeo actual en relación con un bloque predictivo dentro de una imagen de referencia (u otra unidad codificada) con relación al bloque actual que se codifica dentro de la imagen actual (u otra unidad codificada). Un bloque predictivo es un bloque que coincide estrechamente con el bloque que se va a codificar, en términos de diferencia de píxeles, que puede determinarse mediante la suma de la diferencia absoluta (SAD), la suma de la diferencia cuadrada (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador 20 de vídeo puede calcular valores para posiciones de píxeles subenteros de imágenes de referencia almacenadas en la memoria 64 intermedia de imágenes decodificadas. Por ejemplo, el codificador 20 de vídeo puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones de píxeles fraccionarios de la imagen de referencia. Por lo tanto, la unidad 42 de estimación de movimiento puede realizar una búsqueda de movimiento en relación con las posiciones de píxeles completos y las posiciones de píxeles fraccionarios y generar un vector de movimiento con precisión de píxeles fraccionarios.
La unidad 42 de estimación de movimiento calcula un vector de movimiento para una PU de un bloque de vídeo en un segmento intercodificado comparando la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria 64 intermedia de imágenes decodificadas. La unidad 42 de estimación de movimiento envía el vector de movimiento calculado a la unidad 56 de codificación de entropía y a la unidad 44 de compensación de movimiento.
La compensación de movimiento, realizada por la unidad 44 de compensación de movimiento, puede implicar buscar o generar el bloque predictivo con base en el vector de movimiento determinado por la unidad 42 de estimación de movimiento. De nuevo, la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento pueden integrarse funcionalmente, en algunos ejemplos. Al recibir el vector de movimiento para la PU del bloque de vídeo actual, la unidad 44 de compensación de movimiento puede localizar el bloque predictivo al que apunta el vector de movimiento en una de las listas de imágenes de referencia. El sumador 50 forma un bloque de vídeo residual restando los valores de píxeles del bloque predictivo de los valores de píxeles del bloque de vídeo actual que se está codificando, formando valores de diferencia de píxeles, como se describe a continuación. En general, la unidad 42 de estimación de movimiento realiza la estimación de movimiento con respecto a los componentes de luma, y la unidad 44 de compensación de movimiento usa vectores de movimiento calculados con base en los componentes de luma tanto para los componentes de croma como para los componentes de luma. La unidad 40 de selección de modo también puede generar elementos de sintaxis asociados con los bloques de vídeo y el segmento de vídeo para que los utilice el decodificador 30 de vídeo al decodificar los bloques de vídeo del segmento de video.
La unidad 46 de intrapredicción puede intrapredecir un bloque actual, como una alternativa a la interpredicción realizada por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento, como se describió anteriormente. En particular, la unidad 46 de intrapredicción puede determinar un modo de intrapredicción para usar para codificar un bloque actual. En algunos ejemplos, la unidad 46 de intrapredicción puede codificar un bloque actual usando diversos modos de intrapredicción, por ejemplo, durante pasadas de codificación separadas, y la unidad de intrapredicción 46 (o la unidad de selección de modo 40, en algunos ejemplos) puede seleccionar un modo de intrapredicción apropiado para usar entre los modos probados.
Por ejemplo, la unidad 46 de intrapredicción puede calcular valores de rata-distorsión usando un análisis de distorsión de rata para los diversos modos de intrapredicción probados, y seleccionar el modo de intrapredicción que tiene las mejores características de distorsión de velocidad entre los modos probados. El análisis de distorsión de velocidad generalmente determina una cantidad de distorsión (o error) entre un bloque codificado y un bloque no codificado original que fue codificado para producir el bloque codificado, así como una velocidad de bits (es decir, una cantidad de bits) utilizada para producir el bloque codificado. La unidad 46 de intrapredicción puede calcular las relaciones a partir de las distorsiones y ratas de los diversos bloques codificados para determinar qué modo de intrapredicción exhibe el mejor valor de rata-distorsión para el bloque.
Después de seleccionar un modo de intrapredicción para un bloque, la unidad 46 de intra-predicción puede proporcionar información indicativa del modo de intrapredicción seleccionado para el bloque a la unidad 56 de codificación de entropía. La unidad 56 de codificación de entropía puede codificar la información que indica el modo de intrapredicción seleccionado. El codificador 20 de vídeo puede incluir en los datos de configuración del flujo de bits transmitidos, que pueden incluir una pluralidad de tablas de índice de modo de intrapredicción y una pluralidad de tablas de índice de modo de intra-predicción modificadas (también denominadas tablas de mapeo de palabras de código), definiciones de contextos de codificación para diversos bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índice de modo de intrapredicción y una tabla de índice de modo de intrapredicción modificada para usar en cada uno de los contextos.
El codificador 20 de vídeo forma un bloque de vídeo residual restando los datos de predicción de la unidad 40 de selección de modo del bloque de vídeo original que se está codificando. El sumador 50 representa el componente o componentes que realizan esta operación de resta. La unidad 52 de procesamiento de transformada aplica una transformada, tal como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar, al bloque residual, produciendo un bloque de vídeo que comprende valores de coeficiente de transformada residual. La unidad 52 de procesamiento de transformada puede realizar otras transformada que son conceptualmente similares a DCT. También se podrían utilizar transformadas de ondas, transformadas de enteros, transformadas de subbandas u otros tipos de transformadas. En cualquier caso, la unidad 52 de procesamiento de transformada aplica la transformada al bloque residual, produciendo un bloque de coeficientes de transformada residual. La transformad puede convertir la información residual de un dominio de valor de píxel en un dominio de transformada, tal como un dominio de frecuencia. La unidad 52 de procesamiento de transformada puede enviar los coeficientes de transformada resultantes a la unidad 54 de cuantificación. La unidad 54 de cuantificación cuantifica los coeficientes de transformada para reducir aún más la rata de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o todos los coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad 54 de cuantificación puede entonces realizar una exploración de la matriz que incluye los coeficientes de transformada cuantificados. Alternativamente, la unidad 56 de codificación de entropía puede realizar la exploración.
Después de la cuantificación, la entropía de la unidad 56 de codificación de entropía codifica los coeficientes de transformada cuantificados. Por ejemplo, la unidad 56 de codificación de entropía puede realizar codificación de longitud variable adaptativa al contexto (CAVLC), la codificación aritmética binaria adaptativa al contexto (CABAC), la codificación aritmética binaria adaptativa al contexto con base en sintaxis (SBAC), la codificación de entropía de partición de intervalo de probabilidad (PIPE) u otra técnica de codificación de entropía. En el caso de la codificación de entropía con base en el contexto, el contexto puede basarse en bloques vecinos. Después de la codificación de entropía mediante la unidad 56 de codificación de entropía, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, decodificador 30 de vídeo) o archivarse para su posterior transmisión o recuperación.
La unidad 58 de cuantificación inversa y la unidad 60 de procesamiento de transforma inversa aplican cuantificación inversa y transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxeles, por ejemplo, para uso posterior como bloque de referencia. La unidad 44 de compensación de movimiento puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de una de las tramas de la memoria 64 intermedia de imágenes decodificadas. La unidad 44 de compensación de movimiento también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxeles subenteros para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque de predicción compensado por movimiento producido por la unidad 44 de compensación de movimiento para producir un bloque de vídeo reconstruido para su almacenamiento en la memoria 64 intermedia de imágenes decodificadas. El bloque de vídeo reconstruido puede ser utilizado por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento como un bloque de referencia para intercodificar un bloque en una trama de vídeo posterior.
El codificador 20 de vídeo representa un ejemplo de un codificador de vídeo que puede configurarse para realizar las técnicas de esta divulgación, solo o en cualquier combinación.
El codificador 20 de vídeo puede representar un dispositivo de codificación de vídeo que comprende uno o más procesadores configurados para realizar predicción de color 3D con profundidades de bits restringidas de componentes de color de entrada a una tabla de búsqueda 3D. En este caso, la unidad 66 de procesamiento de predicción de color del codificador 20 de vídeo determina que las profundidades de bits de entrada de la tabla de búsqueda 3D son iguales a las profundidades de bits de los componentes de color de una imagen de la capa de referencia en una capa de referencia de los datos de video. De esta manera, la profundidad de bits de entrada de la tabla de búsqueda 3D es igual a la profundidad de bits de los componentes de color de la imagen de la capa de referencia, que se puede ingresar a la tabla de búsqueda 3D para su conversión y generar una imagen de referencia entre capas para una imagen de capa de mejora.
En algunos ejemplos, la unidad 66 de procesamiento de predicción de color también puede determinar que las profundidades de bits de salida de la tabla de búsqueda 3D estén dentro de un intervalo mayor o igual a las profundidades de bits de los componentes de color de la imagen de la capa de referencia y menor o igual a profundidades de bits de los componentes de color de la imagen de la capa de mejora. En un ejemplo, la unidad 66 de procesamiento de predicción de color puede determinar que las profundidades de bits de salida de la tabla de búsqueda 3D sean iguales a las profundidades de bits de los componentes de color de la imagen de la capa de mejora.
La unidad 66 de procesamiento de predicción de color aplica la tabla de búsqueda 3D a los componentes de color de la imagen de la capa de referencia para convertir los componentes de color de una primera gama de colores y/o una primera profundidad de bits para la capa de referencia de los datos de vídeo a una segunda gama de colores y/o una segunda profundidad de bits para la capa de mejora de los datos de vídeo. La unidad 66 de procesamiento de predicción de color genera una imagen de referencia entre capas para la imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos. El codificador 20 de vídeo codifica bloques de vídeo en la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
De acuerdo con un ejemplo de las técnicas de esta divulgación, el codificador 20 de vídeo puede señalizar un primer elemento de sintaxis que indica una primera profundidad de bits para un componente de luma de entrada de la tabla de búsqueda 3D que es igual a una profundidad de bits de un componente de luma de la imagen de capa de referencia, y señalizar un segundo elemento de sintaxis que indica una segunda profundidad de bits para los componentes de croma de entrada de la tabla de búsqueda 3D que es igual a una profundidad de bits de los componentes de corma de la imagen de la capa de referencia. Adicional o alternativamente, el codificador 20 de vídeo puede señalizar un tercer elemento de sintaxis que indica una tercera profundidad de bits para un componente de luma de salida de la tabla de búsqueda 3D que es mayor o igual a la profundidad de bits del componente de luma de la imagen de la capa de referencia y menor que o igual a una profundidad de bits de un componente de luma de la imagen de la capa de mejora, y señalizar un cuarto elemento de sintaxis que indica una cuarta profundidad de bits para los componentes de croma de salida de la tabla de búsqueda 3D que es mayor o igual que la profundidad de bits de los componentes de croma de la imagen de la capa de referencia y menor o igual a una profundidad de bits de los componentes de croma de la imagen de la capa de mejora.
En otro ejemplo de las técnicas de esta divulgación, la unidad 66 de procesamiento de predicción de color puede determinar la primera profundidad de bits para el componente de luma de entrada de la tabla de búsqueda 3D, y determinar la segunda profundidad de bits para los componentes de croma de entrada de la tabla de búsqueda 3D, sin señalizar los elementos de sintaxis primero y segundo que indican las profundidades de bits primera y segunda. Adicional o alternativamente, la unidad 66 de procesamiento de predicción de color puede determinar la tercera profundidad de bits para el componente de luma de salida de la tabla de búsqueda 3D, y determinar la cuarta profundidad de bits para los componentes de croma de salida de la tabla de búsqueda 3D, sin señalizar los elementos de sintaxis tercero y cuarto indicando las profundidades de bits tercera y cuarta.
Además, el codificador 20 de vídeo puede representar un dispositivo de codificación de vídeo que comprende uno o más procesadores configurados para realizar predicción de color 3D con aplicación restringida solo para imágenes de referencia en al menos una capa de referencia determinada de una pluralidad de capas de referencia disponibles de los datos de vídeo. En este caso, la unidad 66 de procesamiento de predicción de color del codificador 20 de vídeo determina al menos una capa de referencia de la pluralidad de capas de referencia para una tabla de búsqueda 3D. La unidad 66 de procesamiento de predicción de color aplica la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en la al menos una capa de referencia para convertir los componentes de color de una primera gama de colores y/o una primera profundidad de bits para la capa de referencia de los datos de vídeo a una segunda gama de colores y/o una segunda profundidad de bits para la capa de mejora de los datos de vídeo. La unidad 66 de procesamiento de predicción de color genera una imagen de referencia entre capas para la imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos. El codificador 20 de vídeo codifica bloques de vídeo en la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
De acuerdo con las técnicas divulgadas, el codificador 20 de vídeo señaliza al menos un ID de capa de referencia que identifica al menos una capa de referencia a la que se aplica la tabla de búsqueda 3D. En un ejemplo, el codificador 20 de vídeo puede señalizar exactamente un ID de capa de referencia que identifica exactamente una capa de referencia a la que se aplica la tabla de búsqueda 3D para la imagen de la capa de mejora. En este ejemplo, la unidad 66 de procesamiento de predicción de color determina exactamente una capa de referencia para la tabla de búsqueda 3D y aplica la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en exactamente una capa de referencia. Aplicando la tabla de búsqueda 3D a las imágenes de la capa de referencia en solo una capa de referencia para generar una imagen de referencia entre capas para la imagen de la capa de mejora, el codificador 20 de vídeo reduce la complejidad de cálculo en el decodificador 30 de video.
En otro ejemplo, el codificador 20 de vídeo puede señalar dos o más ID de capa de referencia que identifican dos o más capas de referencia a las que se aplica la tabla de búsqueda 3D para la imagen de la capa de mejora. En este ejemplo, la unidad 66 de procesamiento de predicción de color determina las dos o más capas de referencia para la tabla de búsqueda 3D, aplica la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en cada una de las dos o más capas de referencia y genera la imagen de referencia entre capas para la imagen de la capa de mejora con base en una combinación de los componentes de color convertidos de las dos o más capas de referencia.
En un ejemplo adicional, para una primera imagen de capa de mejora en la capa de mejora, la unidad 66 de procesamiento de predicción de color puede señalizar un primer ID de capa de referencia que identifica una primera capa de referencia a la que se aplica la tabla de búsqueda 3D para generar una primera imagen de referencia entre capas para la primera imagen de la capa de mejora en la capa de mejora. Para una imagen de la segunda capa de mejora en la capa de mejora, que puede ser una imagen posterior a la imagen de la primera capa de mejora en el orden de visualización o en el orden de codificación, la unidad 66 de procesamiento de predicción de color puede señalizar un segundo ID de capa de referencia que identifica una segunda capa de referencia de la pluralidad de capas de referencia a las que se aplica la tabla de búsqueda 3D para generar una segunda imagen de referencia entre capas para la imagen de la segunda capa de mejora en la capa de mejora, donde la segunda capa de referencia es diferente a la primera capa de referencia.
Además, el codificador 20 de vídeo puede representar un dispositivo de codificación de vídeo que comprende uno o más procesadores configurados para realizar predicción de color 3D sin realizar predicción ponderada en una imagen de referencia entre capas generada por una tabla de búsqueda 3D. La unidad 66 de procesamiento de predicción de color del codificador 20 de vídeo genera una imagen de referencia entre capas para una imagen de capa de mejora en una capa de mejora usando una tabla de búsqueda 3D aplicada a componentes de color de imágenes de capa de referencia en al menos una capa de referencia. De acuerdo con las técnicas descritas, la propia imagen de referencia entre capas se utiliza para predecir la imagen de la capa de mejora. La imagen de referencia entre capas no se utiliza como imagen de referencia candidata en un grupo de imágenes de referencia candidatas en el caso de la predicción ponderada para la imagen de la capa de mejora. Al no aplicar predicción ponderada en la imagen de referencia entre capas, el codificador 20 de vídeo reduce la complejidad del cálculo en el decodificador 30 de vídeo.
La FIG. 3 es un diagrama de bloques que ilustra un ejemplo de decodificador 30 de vídeo que puede implementar técnicas descritas en esta divulgación. En el ejemplo de la FIG. 3, el decodificador 30 de vídeo incluye una unidad 70 de decodificación de entropía, una memoria 71 de datos de vídeo, una unidad 72 de compensación de movimiento, una unidad 86 de procesamiento de predicción de color, una unidad 74 de intrapredicción, una unidad 76 de cuantificación inversa, una unidad 78 de procesamiento de transformación inversa, un memoria 82 intermedia de imágenes decodificadas y un sumador 80. El decodificador 30 de vídeo puede, en algunos ejemplos, realizar una pasada de decodificación generalmente recíproca a la pasada de codificación descrita con respecto al codificador 20 de vídeo (FIG. 2). La unidad 72 de compensación de movimiento puede generar datos de predicción con base en vectores de movimiento recibidos desde la unidad 70 de decodificación de entropía, mientras que la unidad 74 de infrapredicción puede generar datos de predicción con base en indicadores de modo de intrapredicción recibidos desde la unidad 70 de decodificación de entropía.
La memoria 71 de datos de vídeo puede almacenar datos de video, tales como un flujo de bits de vídeo codificado, para ser decodificados por los componentes del decodificador 30 de vídeo. Los datos de vídeo almacenados en la memoria 71 de datos de vídeo se pueden obtener, por ejemplo, de un medio 16 legible por ordenador, por ejemplo, de una fuente de vídeo local, tal como una cámara, a través de la comunicación de datos de vídeo en red por cable o inalámbrica, o accediendo medios de almacenamiento de datos. La memoria 71 de datos de vídeo puede formar una memoria intermedia de imagen codificada (CPB) que almacena datos de vídeo codificados de un flujo de bits de vídeo codificado. La memoria 82 intermedia de imágenes decodificadas puede ser una memoria de imágenes de referencia que almacena datos de vídeo de referencia para usar en la decodificación de datos de vídeo por el decodificador 30 de video, por ejemplo, en modos de codificación intra o inter. La memoria 71 de datos de vídeo y la memoria 82 intermedia de imágenes decodificadas pueden estar formadas por cualquiera de una variedad de dispositivos de memoria, tales como la memoria dinámica de acceso aleatorio (DRAM), incluyendo la DRAM síncrona (SDRAM), la RAM magnetorresistiva (MRAM), la RAM resistiva (RRAM), u otros tipos de dispositivos de memoria. La memoria 71 de datos de vídeo y la memoria 82 intermedia de imágenes decodificadas pueden ser proporcionadas por el mismo dispositivo de memoria o dispositivos de memoria separados. En diversos ejemplos, la memoria 71 de datos de vídeo puede estar en chip con otros componentes del decodificador 30 de vídeo, o fuera de chip en relación con esos componentes.
Durante el proceso de decodificación, el decodificador 30 de vídeo recibe un flujo de bits de vídeo codificado que representa bloques de vídeo de un segmento de vídeo codificado y elementos de sintaxis asociados del codificador 20 de vídeo. La unidad 70 de decodificación de entropía del decodificador 30 de vídeo decodifica la entropía del flujo de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo de intra-predicción, y otros elementos de sintaxis. La unidad 70 de decodificación de entropía envía los vectores de movimiento y otros elementos de sintaxis a la unidad 72 de compensación de movimiento. El decodificador 30 de vídeo puede recibir los elementos de sintaxis en el nivel de segmento de vídeo y/o en el nivel de bloque de video.
Cuando el segmento de vídeo se codifica como un segmento intracodificado (I), la unidad 74 de intrapredicción puede generar datos de predicción para un bloque de vídeo del segmento de vídeo actual con base en un modo de intra­ predicción señalizado y datos de bloques previamente decodificados de la trama o imagen actual. Cuando la trama de vídeo se codifica como un segmento intercodificado (es decir, B o P), la unidad 72 de compensación de movimiento produce bloques predictivos para un bloque de vídeo del segmento de vídeo actual con base en los vectores de movimiento y otros elementos de sintaxis recibidos de la unidad 70 de decodificación de entropía. Los bloques predictivos pueden producirse a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador 30 de vídeo puede construir las listas de imágenes de referencia, Lista 0 y Lista 1, utilizando técnicas de construcción predeterminadas con base en imágenes de referencia almacenadas en la memoria 82 intermedia de imágenes decodificadas.
La unidad 72 de compensación de movimiento determina información de predicción para un bloque de vídeo del segmento de vídeo actual analizando los vectores de movimiento y otros elementos de sintaxis, y usa la información de predicción para producir los bloques predictivos para el bloque de vídeo actual que se está decodificando. Por ejemplo, la unidad 72 de compensación de movimiento usa algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra o interpredicción) usado para codificar los bloques de vídeo del segmento de vídeo, un tipo de segmento de interpredicción (por ejemplo, segmento B o segmento P), información de construcción para una o más de las listas de imágenes de referencia para el segmento, vectores de movimiento para cada bloque de vídeo intercodificado del segmento, estado de predicción mutua para cada bloque de vídeo intercodificado del segmento, y otra información para decodificar los bloques de vídeo en el segmento de vídeo actual.
La unidad 72 de compensación de movimiento también puede realizar una interpolación con base en filtros de interpolación. La unidad 72 de compensación de movimiento puede usar filtros de interpolación como los usa el codificador 20 de vídeo durante la codificación de los bloques de vídeo para calcular valores interpolados para píxeles subenteros de bloques de referencia. En este caso, la unidad 72 de compensación de movimiento puede determinar los filtros de interpolación usados por el codificador 20 de vídeo a partir de los elementos de sintaxis recibidos y usar los filtros de interpolación para producir bloques predictivos.
La unidad 76 de cuantificación inversa cuantifica inversamente, es decir, descuantifica, los coeficientes de transformación cuantificados proporcionados en el tren de bits y decodificados por la unidad 70 de decodificación de entropía. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación calculado por el decodificador 30 de vídeo para cada bloque de vídeo en el segmento de vídeo para determinar un grado de cuantificación e, igualmente, un grado de cuantificación inversa que debería aplicarse. La unidad 78 de procesamiento de transformada inversa aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada de entero inverso o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada para producir bloques residuales en el dominio de píxeles.
Después de que la unidad 72 de compensación de movimiento genera el bloque predictivo para el bloque de vídeo actual con base en los vectores de movimiento y otros elementos de sintaxis, el decodificador 30 de vídeo forma un bloque de vídeo decodificado sumando los bloques residuales de la unidad 78 de procesamiento de transformación inversa con los bloques predictivos correspondientes generados por unidad 72 de compensación de movimiento. El sumador 80 representa el componente o componentes que realizan esta operación de suma. Si se desea, también se puede aplicar un filtro de desbloqueo para filtrar los bloques decodificados con el fin de eliminar los artefactos de bloqueo. También se pueden utilizar otros filtros de circuito (ya sea en el circuito de codificación o después del circuito de codificación) para suavizar las transiciones de píxeles o mejorar de otro modo la calidad del vídeo. Los bloques de vídeo decodificados en una trama o imagen dados se almacenan luego en la memoria 82 intermedia de imágenes decodificadas, que almacena imágenes de referencia utilizadas para la compensación de movimiento subsiguiente. La memoria 82 intermedia de imágenes decodificadas también almacena vídeo decodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo 32 de visualización de la FIG. 1.
El decodificador 30 de vídeo puede configurarse para realizar las técnicas de esta divulgación, solo o en cualquier combinación.
El decodificador 30 de vídeo puede representar un dispositivo de decodificación de vídeo que comprende uno o más procesadores configurados para realizar predicción de color 3D con profundidades de bits restringidas de componentes de color de entrada a una tabla de búsqueda 3D. En este caso, la unidad 86 de procesamiento de predicción de color del decodificador 30 de vídeo determina que las profundidades de bits de entrada de la tabla de búsqueda 3D son iguales a las profundidades de bits de los componentes de color de una imagen de la capa de referencia en una capa de referencia de los datos de video. De esta manera, la profundidad de bits de entrada de la tabla de búsqueda 3D es igual a la profundidad de bits de los componentes de color de la imagen de la capa de referencia, que se puede ingresar a la tabla de búsqueda 3D para su conversión y generar una imagen de referencia entre capas para una imagen de capa de mejora. En algunos ejemplos, la unidad 86 de procesamiento de predicción de color también puede determinar que las profundidades de bits de salida de la tabla de búsqueda 3D estén dentro de un intervalo mayor o igual a las profundidades de bits de los componentes de color de la imagen de la capa de referencia y menor o igual a profundidades de bits de los componentes de color de la imagen de la capa de mejora. En un ejemplo, la unidad 86 de procesamiento de predicción de color puede determinar que las profundidades de bits de salida de la tabla de búsqueda 3D sean iguales a las profundidades de bits de los componentes de color de la imagen de la capa de mejora.
De acuerdo con un ejemplo de las técnicas de esta divulgación, la unidad 86 de procesamiento de predicción de color puede recibir un primer elemento de sintaxis que indica una primera profundidad de bits para un componente de luma de entrada de la tabla de búsqueda 3D que es igual a una profundidad de bits de un componente de luma de la imagen de la capa de referencia, y recibe un segundo elemento de sintaxis que indica una segunda profundidad de bits para los componentes de croma de entrada de la tabla de búsqueda 3D que es igual a una profundidad de bits de los componentes de croma de la imagen de la capa de referencia. Adicional o alternativamente, la unidad 86 de procesamiento de predicción de color puede recibir un tercer elemento de sintaxis que indica una tercera profundidad de bits para un componente de luma de salida de la tabla de búsqueda 3D que es mayor o igual que la profundidad de bits del componente de luma de la imagen de la capa de referencia y menor o igual a una profundidad de bits de un componente de luma de la imagen de la capa de mejora, y recibir un cuarto elemento de sintaxis que indica una cuarta profundidad de bits para los componentes de croma de salida de la tabla de búsqueda 3D que es mayor o igual que la profundidad de bits de la componentes de croma de la imagen de la capa de referencia y menor o igual a una profundidad de bits de los componentes de croma de la imagen de la capa de mejora.
En otro ejemplo de las técnicas de esta divulgación, la unidad 86 de procesamiento de predicción de color puede derivar independientemente la primera profundidad de bits para el componente de luma de entrada de la tabla de búsqueda 3D, y derivar independientemente la segunda profundidad de bits para los componentes de croma de entrada de la tabla de búsqueda 3D, sin recibir los elementos de sintaxis primeo y segundo, incluyendo las profundidades de bits primera y segunda. Adicional o alternativamente, la unidad 86 de procesamiento de predicción de color puede derivar independientemente la tercera profundidad de bit para el componente de luma de salida de la tabla de búsqueda 3D, y derivar independientemente la profundidad del cuarto bit para los componentes de croma de salida de la tabla de búsqueda 3D, sin recibir los elementos de sintaxis tercero y cuarto que indican las profundidades de bits tercera y cuarta.
La unidad 86 de procesamiento de predicción de color aplica la tabla de búsqueda 3D a los componentes de color de la imagen de la capa de referencia para convertir los componentes de color de una primera gama de colores y/o una primera profundidad de bits para la capa de referencia de los datos de vídeo a una segunda gama de colores y/o una segunda profundidad de bits para la capa de mejora de los datos de vídeo. La unidad 86 de procesamiento de predicción de color genera una imagen de referencia entre capas para la imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos. El decodificador 30 de vídeo decodifica luego bloques de vídeo en la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
Además, el decodificador 30 de vídeo puede representar un dispositivo de decodificación de vídeo que comprende uno o más procesadores configurados para realizar predicción de color 3D con aplicación restringida solo para imágenes de referencia en al menos una capa de referencia identificada de una pluralidad de capas de referencia disponibles de los datos de vídeo. En este caso, la unidad 86 de procesamiento de predicción de color del decodificador 30 de vídeo recibe al menos un ID de capa de referencia que identifica al menos una capa de referencia de la pluralidad de capas de referencia para una tabla de búsqueda 3D. La unidad 86 de procesamiento de predicción de color aplica la tabla de búsqueda 3D a los componentes de color de una imagen de capa de referencia en la al menos una capa de referencia identificada por el al menos un ID de capa de referencia para convertir los componentes de color de una primera gama de colores y/o una primera profundidad de bits para la capa de referencia de los datos de vídeo a una segunda gama de colores y/o una segunda profundidad de bits para la capa de mejora de los datos de vídeo. La unidad 86 de procesamiento de predicción de color genera una imagen de referencia entre capas para la imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos. El decodificador 30 de vídeo decodifica luego bloques de vídeo en la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
En un ejemplo de las técnicas divulgadas, la unidad 86 de procesamiento de predicción de color del decodificador 30 de vídeo puede recibir exactamente un ID de capa de referencia que identifica exactamente una capa de referencia a la que se aplica la tabla de búsqueda 3D para la imagen de la capa de mejora. En este ejemplo, la unidad 86 de procesamiento de predicción de color aplica entonces la tabla de búsqueda 3D a los componentes de color de una imagen de capa de referencia en exactamente una capa de referencia identificada por exactamente un ID de capa de referencia. La aplicación de la tabla de búsqueda 3D a las imágenes de la capa de referencia en una sola capa de referencia para generar una imagen de referencia entre capas para la imagen de la capa de mejora reduce la complejidad del cálculo en el decodificador 30 de vídeo.
En otro ejemplo de las técnicas divulgadas, la unidad 86 de procesamiento de predicción de color del decodificador 30 de vídeo puede recibir dos o más ID de capa de referencia que identifican dos o más capas de referencia a las que se aplica la tabla de búsqueda 3D para la imagen de la capa de mejora. En este ejemplo, la unidad 86 de procesamiento de predicción de color aplica la tabla de búsqueda 3D a los componentes de color de una imagen de capa de referencia en cada una de las dos o más capas de referencia identificadas por los dos o más ID de capa de referencia, y genera la imagen de referencia entre capas para la imagen de la capa de mejora con base en una combinación de los componentes de color convertidos de las dos o más capas de referencia.
En un ejemplo adicional de las técnicas divulgadas, para una imagen de la primera capa de mejora en la capa de mejora, la unidad 86 de procesamiento de predicción de color puede recibir un primer ID de la capa de referencia que identifica una primera capa de referencia a la que se aplica la tabla de búsqueda 3D para generar una primera imagen de referencia entre capas para la primera imagen de la capa de mejora en la capa de mejora. Para una imagen de la segunda capa de mejora en la capa de mejora, que puede ser una imagen posterior a la imagen de la primera capa de mejora en el orden de visualización o en el orden de codificación, la unidad 86 de procesamiento de predicción de color puede recibir un segundo ID de capa de referencia que identifica una segunda capa de referencia de la pluralidad de capas de referencia a las que se aplica la tabla de búsqueda 3D para generar una segunda imagen de referencia entre capas para la imagen de la segunda capa de mejora en la capa de mejora, donde la segunda capa de referencia es diferente a la primera capa de referencia.
Además, el decodificador 30 de vídeo puede representar un dispositivo de decodificación de vídeo que comprende uno o más procesadores configurados para realizar predicción de color 3D sin realizar predicción ponderada en una imagen de referencia entre capas generada por una tabla de búsqueda 3D. La unidad 86 de procesamiento de predicción de color del decodificador 30 de vídeo genera una imagen de referencia entre capas para una imagen de capa de mejora en una capa de mejora usando una tabla de búsqueda 3D aplicada a componentes de color de imágenes de capa de referencia en al menos una capa de referencia. De acuerdo con las técnicas descritas, la propia imagen de referencia entre capas se utiliza para predecir la imagen de la capa de mejora. La imagen de referencia entre capas no se utiliza como imagen de referencia candidata en un grupo de imágenes de referencia candidatas en el caso de la predicción ponderada para la imagen de la capa de mejora. No aplicar predicción ponderada en la imagen de referencia entre capas reduce la complejidad computacional en el decodificador 30 de video.
La FIG. 15 es un diagrama de flujo que ilustra una operación de ejemplo de un codificador de vídeo configurado para realizar predicción de color 3D con profundidades de bits restringidas de componentes de color de entrada a una tabla de búsqueda 3D. La operación de ejemplo de la FIG. 15 se describe en el presente documento como realizada por la unidad 66 de procesamiento de predicción de color del codificador 20 de vídeo de la FIG. 2. En otros ejemplos, la operación puede realizarse mediante la unidad 144 de procesamiento de predicción de color de la FIG. 10.
La unidad 66 de procesamiento de predicción de color del codificador 20 de vídeo puede generar una tabla de búsqueda en 3D para la escalabilidad de la gama de colores para realizar la predicción de color en 3D. La tabla de búsqueda 3D se señaliza en un conjunto de parámetros de imagen (PPS) para que los datos de vídeo se codifiquen, y se aplica a una o más imágenes a las que hace referencia el PPS. El PPS puede hacer referencia a una o más imágenes de la capa de mejora en una capa de mejora de los datos de vídeo, y una o más imágenes de la capa de referencia colocadas en una o más capas de referencia de los datos de vídeo. Por ejemplo, cada tabla de búsqueda 3D puede usarse para generar imágenes de referencia entre capas para las imágenes de la capa de mejora incluidas en la capa de mejora con base en las imágenes de la capa de referencia colocadas incluidas en las capas de referencia. Las capas de referencia pueden comprender capas base y/o capas inferiores de los datos de vídeo que la capa de mejora.
De acuerdo con las técnicas de esta divulgación, la unidad 66 de procesamiento de predicción de color determina que las profundidades de bits de entrada de la tabla de búsqueda 3D son iguales a las profundidades de bits de los componentes de color de una imagen de la capa de referencia en una capa de referencia de los datos de vídeo (160). Por ejemplo, la unidad 66 de procesamiento de predicción de color puede determinar una primera profundidad de bits para un componente de luma de entrada de la tabla de búsqueda 3D que es igual a una profundidad de bits de un componente de luma de la imagen de la capa de referencia. La unidad 66 de procesamiento de predicción de color puede determinar una segunda profundidad de bits para los componentes de croma de entrada de la tabla de búsqueda 3D que es igual a una profundidad de bits de los componentes de croma de la imagen de la capa de referencia. De esta manera, la profundidad de bits de entrada de la tabla de búsqueda 3D es igual a la profundidad de bits de los componentes de color de la imagen de la capa de referencia, que se puede ingresar a la tabla de búsqueda 3D para su conversión y generar una imagen de referencia entre capas para una imagen de capa de mejora.
En algunos ejemplos, la unidad 66 de procesamiento de predicción de color también puede determinar que las profundidades de bits de salida de la tabla de búsqueda 3D estén dentro de un intervalo entre las profundidades de bits de los componentes de color de la imagen de la capa de referencia y las profundidades de bits de los componentes de color de la imagen de la capa de mejora, inclusive. Por ejemplo, la unidad 66 de procesamiento de predicción de color puede determinar una tercera profundidad de bits para un componente de luma de salida de la tabla de búsqueda 3D que es mayor o igual a una profundidad de bits de un componente de luma de la imagen de la capa de referencia y menor o igual a un profundidad de bits de un componente de luma de la imagen de la capa de mejora y determinar una cuarta profundidad de bits para los componentes de croma de salida de la tabla de búsqueda 3D que sea mayor o igual a la profundidad de bits de los componentes de croma de la imagen de la capa de referencia y menor o igual a una profundidad de bits de los componentes croma de la imagen de la capa de mejora. En un ejemplo, la unidad 66 de procesamiento de predicción de color puede determinar que las profundidades de bits de salida de la tabla de búsqueda 3D sean iguales a las profundidades de bits de los componentes de color de la imagen de la capa de mejora.
La unidad 66 de procesamiento de predicción de color luego aplica la tabla de búsqueda 3D a los componentes de color de la imagen de la capa de referencia para convertir los componentes de color de una primera gama de colores para la capa de referencia de los datos de vídeo a una segunda gama de colores para la capa de mejora de los datos de vídeo (162). La conversión de los componentes de color puede incluir convertir la profundidad de bits de la capa de referencia a la profundidad de bits de la capa de mejora. La unidad 66 de procesamiento de predicción de color genera una imagen de referencia entre capas para la imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos (164).
El codificador 20 de vídeo codifica bloques de vídeo en la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D (166). A continuación, el codificador 20 de vídeo señaliza un flujo de bits de los datos de vídeo codificados y los elementos de sintaxis asociados (168). Por ejemplo, de acuerdo con las técnicas de esta divulgación, el codificador 20 de vídeo puede señalizar un primer elemento de sintaxis que indica la primera profundidad de bits para el componente de luma de entrada de la tabla de búsqueda 3D que es igual a la profundidad de bits del componente de luma de la imagen de la capa de referencia, y señalizar un segundo elemento de sintaxis que indica la segunda profundidad de bits para los componentes de croma de entrada de la tabla de búsqueda 3D que es igual a la profundidad de bits de los componentes de croma de la imagen de la capa de referencia. Adicional o alternativamente, el codificador 20 de vídeo puede señalizar un tercer elemento de sintaxis que indica la tercera profundidad de bits para el componente de luma de salida de la tabla de búsqueda 3D que es mayor o igual que la profundidad de bits del componente de luma de la imagen de la capa de referencia y menor que o igual a la profundidad de bits del componente de luma de la imagen de la capa de mejora, y señalizar un cuarto elemento de sintaxis que indica la cuarta profundidad de bits para los componentes de croma de salida de la tabla de búsqueda 3D que es mayor o igual que la profundidad de bits de los componentes de croma de la imagen de la capa de referencia y menor o igual que la profundidad de bits de los componentes de croma de la imagen de la capa de mejora.
La FIG. 16 es un diagrama de flujo que ilustra una operación de ejemplo de un decodificador de vídeo configurado para realizar predicción de color 3D con profundidades de bits restringidas de componentes de color de entrada a una tabla de búsqueda 3D. La operación de ejemplo de la FIG. 16 se describe en el presente documento como realizada por la unidad 86 de procesamiento de predicción de color del descodificador 30 de vídeo de la FIG. 3. En otros ejemplos, la operación puede realizarse mediante la unidad 144 de procesamiento de predicción de color de la FIG.
10.
El decodificador 30 de vídeo recibe un flujo de bits de los datos de vídeo codificados y los elementos de sintaxis asociados (170). Con base en uno o más de los elementos de sintaxis, la unidad 86 de procesamiento de predicción de color del decodificador 30 de vídeo puede generar una tabla de búsqueda 3D para la escalabilidad de la gama de colores para realizar la predicción de color 3D. La tabla de búsqueda 3D puede indicarse en un PPS para que los datos de vídeo se codifiquen, y se aplica a una o más imágenes a las que hace referencia el PPS. El PPS puede hacer referencia a una o más imágenes de la capa de mejora en una capa de mejora de los datos de vídeo, y una o más imágenes de la capa de referencia colocadas en una o más capas de referencia de los datos de vídeo. Por ejemplo, cada tabla de búsqueda 3D puede usarse para generar imágenes de referencia entre capas para las imágenes de la capa de mejora incluidas en la capa de mejora con base en las imágenes de la capa de referencia colocadas incluidas en las capas de referencia. Las capas de referencia pueden comprender capas base y/o capas inferiores de los datos de vídeo que la capa de mejora.
De acuerdo con las técnicas de esta divulgación, la unidad 86 de procesamiento de predicción de color determina que las profundidades de bits de entrada de la tabla de búsqueda 3D son iguales a las profundidades de bits de los componentes de color de una imagen de la capa de referencia en una capa de referencia de los datos de vídeo (172). De esta manera, la profundidad de bits de entrada de la tabla de búsqueda 3D es igual a la profundidad de bits de los componentes de color de la imagen de la capa de referencia, que se puede ingresar a la tabla de búsqueda 3D para su conversión y generar una imagen de referencia entre capas para una imagen de capa de mejora.
En un ejemplo, la unidad 86 de procesamiento de predicción de color puede recibir un primer elemento de sintaxis que indica una primera profundidad de bits para un componente de luma de entrada de la tabla de búsqueda 3D que está restringida a ser igual a una profundidad de bits de un componente de luma de la imagen de la capa de referencia y recibir un segundo elemento de sintaxis que indica una segunda profundidad de bits para los componentes de croma de entrada de la tabla de búsqueda 3D que está limitada a ser igual a una profundidad de bits de los componentes de croma de la imagen de la capa de referencia. En otro ejemplo, la unidad 86 de procesamiento de predicción de color puede derivar independientemente la primera profundidad de bits para el componente de luma de entrada de la tabla de búsqueda 3D para que sea igual a la profundidad de bits del componente de luma de la imagen de la capa de referencia, y derivar independientemente la segunda profundidad de bits para que los componentes de croma de entrada de la tabla de búsqueda 3D sean iguales a la profundidad de bits de los componentes de croma de la imagen de la capa de referencia.
En algunos ejemplos, la unidad 86 de procesamiento de predicción de color también puede determinar que las profundidades de bits de salida de la tabla de búsqueda 3D estén dentro de un intervalo entre las profundidades de bits de los componentes de color de la imagen de la capa de referencia y las profundidades de bits de los componentes de color de la imagen de la capa de mejora, inclusive. Por ejemplo, la unidad 86 de procesamiento de predicción de color puede determinar que las profundidades de bits de salida de la tabla de búsqueda 3D sean iguales a las profundidades de bits de los componentes de color de la imagen de la capa de mejora.
En un ejemplo, la unidad 86 de procesamiento de predicción de color puede recibir un tercer elemento de sintaxis que indica una tercera profundidad de bits para un componente de luma de salida de la tabla de búsqueda 3D que está restringido a ser mayor o igual que la profundidad de bits del componente luma de la imagen de referencia de la capa y menor o igual a una profundidad de bits de un componente de luma de la imagen de capa de mejora, y recibir un cuarto elemento de sintaxis que indica una cuarta profundidad de bits para los componentes de croma de salida de la tabla de búsqueda 3D que está restringida a ser mayor o igual a la profundidad de bits de los componentes de croma de la imagen de la capa de referencia y menor o igual a una profundidad de bits de los componentes de croma de la imagen de la capa de mejora. En otro ejemplo, la unidad 86 de procesamiento de predicción de color puede derivar independientemente la tercera profundidad de bits para el componente de luma de salida de la tabla de búsqueda 3D para que sea mayor o igual que la profundidad de bits del componente de luma de la imagen de la capa de referencia y menor o igual a la profundidad de bits del componente de luma de la imagen de la capa de mejora, y derivar de forma independiente la cuarta profundidad de bits de los componentes de croma de salida de la tabla de búsqueda 3D para que sea mayor o igual que la profundidad de bits de los componentes de croma de la imagen de la capa de referencia y menor o igual que la profundidad de bits de los componentes de croma de la imagen de la capa de mejora.
La unidad 86 de procesamiento de predicción de color luego aplica la tabla de búsqueda 3D a los componentes de color de la imagen de la capa de referencia para convertir los componentes de color de una primera gama de colores para la capa de referencia de los datos de vídeo a una segunda gama de colores para la capa de mejora de los datos de vídeo (174). La conversión de los componentes de color puede incluir convertir la profundidad de bits de la capa de referencia a la profundidad de bits de la capa de mejora. La unidad 86 de procesamiento de predicción de color genera una imagen de referencia entre capas para la imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos (176). El decodificador 30 de vídeo decodifica luego los bloques de vídeo en la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D (178).
La FIG. 17 es un diagrama de flujo que ilustra una operación de ejemplo de un codificador de vídeo configurado para realizar predicción de color 3D con aplicación restringida solo para imágenes de referencia en al menos una capa de referencia determinada. La operación de ejemplo de la FIG. 17 se describe en el presente documento como realizada por la unidad 66 de procesamiento de predicción de color del codificador 20 de vídeo de la FIG. 2. En otros ejemplos, la operación puede realizarse mediante la unidad 144 de procesamiento de predicción de color de la FIG. 10.
La unidad 66 de procesamiento de predicción de color del codificador 20 de vídeo puede generar una tabla de búsqueda en 3D para la escalabilidad de la gama de colores para realizar la predicción de color en 3D. En un ejemplo, la tabla de búsqueda 3D puede ser señalizada en un PPS para que los datos de vídeo sean codificados, y se aplica a una o más imágenes referenciadas por el PPS. El PPS puede hacer referencia a una o más imágenes de la capa de mejora en una capa de mejora de los datos de vídeo, y una o más imágenes de la capa de referencia colocadas en una o más capas de referencia de los datos de vídeo. Las capas de referencia pueden comprender capas base y/o capas inferiores de los datos de vídeo que la capa de mejora.
De acuerdo con las técnicas de esta divulgación, la unidad 66 de procesamiento de predicción de color determina al menos una capa de referencia de una pluralidad de capas de referencia de los datos de vídeo para la tabla de búsqueda 3D (180). La unidad 66 de procesamiento de predicción de color luego aplica la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en la al menos una capa de referencia para convertir los componentes de color de una primera gama de colores para la capa de referencia de los datos de vídeo a una segunda gama de colores para la capa de mejora de los datos de vídeo (182). La conversión de los componentes de color puede incluir convertir la profundidad de bits de la capa de referencia a la profundidad de bits de la capa de mejora. La unidad 66 de procesamiento de predicción de color genera una imagen de referencia entre capas para la imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos (184).
El codificador 20 de vídeo codifica bloques de vídeo en la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D (186). A continuación, el codificador 20 de vídeo señaliza un flujo de bits de los datos de vídeo codificados y los elementos de sintaxis asociados, que incluyen al menos un ID de capa de referencia que identifica al menos una capa de referencia a la que se aplica la tabla de búsqueda 3D (188). En un ejemplo, el codificador 20 de vídeo puede señalizar exactamente un ID de capa de referencia que identifica exactamente una capa de referencia a la que se aplica la tabla de búsqueda 3D para la imagen de la capa de mejora. En este ejemplo, la unidad 66 de procesamiento de predicción de color determina exactamente una capa de referencia para la tabla de búsqueda 3D y aplica la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en exactamente una capa de referencia.
En otro ejemplo, el codificador 20 de vídeo puede señalizar dos o más ID de capa de referencia que identifican dos o más capas de referencia a las que se aplica la tabla de búsqueda 3D para la imagen de la capa de mejora. En este ejemplo, la unidad 66 de procesamiento de predicción de color determina las dos o más capas de referencia para la tabla de búsqueda 3D, aplica la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en cada una de las dos o más capas de referencia y genera la imagen de referencia entre capas para la imagen de la capa de mejora con base en una combinación de los componentes de color convertidos de las dos o más capas de referencia.
En un ejemplo adicional, para una primera imagen de la capa de mejora en la capa de mejora, la unidad 66 de procesamiento de predicción de color puede señalizar un primer ID de capa de referencia que identifica una primera capa de referencia a la que se aplica la tabla de búsqueda 3D para generar una primera imagen de referencia entre capas para la primera imagen de la capa de mejora en la capa de mejora. Para una imagen de la segunda capa de mejora en la capa de mejora, que puede ser una imagen posterior a la imagen de la primera capa de mejora en el orden de visualización o en el orden de codificación, la unidad 66 de procesamiento de predicción de color puede señalizar un segundo ID de capa de referencia que identifica una segunda capa de referencia de la pluralidad de capas de referencia a las que se aplica la tabla de búsqueda 3D para generar una segunda imagen de referencia entre capas para la imagen de la segunda capa de mejora en la capa de mejora, donde la segunda capa de referencia es diferente a la primera capa de referencia.
La FIG. 18 es un diagrama de flujo que ilustra una operación de ejemplo de un decodificador de vídeo configurado para realizar predicción de color 3D con aplicación restringida solo para imágenes de referencia en al menos una capa de referencia identificada. La operación de ejemplo de la FIG. 18 se describe en el presente documento como realizada por la unidad 86 de procesamiento de predicción de color del descodificador 30 de vídeo de la FIG. 3. En otros ejemplos, la operación puede realizarse mediante la unidad 144 de procesamiento de predicción de color de la FIG.
10.
El decodificador 30 de vídeo recibe un flujo de bits de los datos de vídeo codificados y elementos de sintaxis asociados, que incluyen al menos un ID de capa de referencia que identifica al menos una capa de referencia de una pluralidad de capas de referencia para una tabla de búsqueda 3D (190). Con base en uno o más de los elementos de sintaxis, la unidad 86 de procesamiento de predicción de color del decodificador 30 de vídeo puede generar una tabla de búsqueda 3D para la escalabilidad de la gama de colores para realizar la predicción de color 3D. La tabla de búsqueda 3D puede ser señalizada en un PPS para que los datos de vídeo sean codificados y aplicados a una o más imágenes referenciadas por el PPS. El PPS puede hacer referencia a una o más imágenes de la capa de mejora en una capa de mejora de los datos de vídeo, y una o más imágenes de la capa de referencia colocadas en una o más capas de referencia de los datos de vídeo. Las capas de referencia pueden comprender capas base y/o capas inferiores de los datos de vídeo que la capa de mejora.
De acuerdo con las técnicas de esta divulgación, la al menos una ID de capa de referencia para la tabla de búsqueda 3D recibida en el flujo de bits identifica al menos una de las capas de referencia de los datos de vídeo a los que se aplica la tabla de búsqueda 3D para generar una imagen de referencia entre capas para una imagen de capa de mejora dada incluida en la capa de mejora. La unidad 86 de procesamiento de predicción de color luego aplica la tabla de búsqueda 3D a los componentes de color de una imagen de capa de referencia en la al menos una capa de referencia identificada por la al menos una ID de capa de referencia para convertir los componentes de color de una primera gama de colores para la capa de referencia de los datos de vídeo a una segunda gama de colores para la capa de mejora de los datos de vídeo (192). La conversión de los componentes de color puede incluir convertir la profundidad de bits de la capa de referencia a la profundidad de bits de la capa de mejora. La unidad 86 de procesamiento de predicción de color genera una imagen de referencia entre capas para la imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos (194). El decodificador 30 de vídeo decodifica luego los bloques de vídeo en la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D (196).
En un ejemplo, la unidad 86 de procesamiento de predicción de color del decodificador 30 de vídeo puede recibir exactamente un ID de capa de referencia que identifica exactamente una capa de referencia a la que se aplica la tabla de búsqueda 3D para la imagen de la capa de mejora. En este ejemplo, la unidad 86 de procesamiento de predicción de color aplica entonces la tabla de búsqueda 3D a los componentes de color de una imagen de capa de referencia en exactamente una capa de referencia identificada por exactamente un ID de capa de referencia.
En otro ejemplo, la unidad 86 de procesamiento de predicción de color del decodificador 30 de vídeo puede recibir dos o más ID de capa de referencia que identifican dos o más capas de referencia a las que se aplica la tabla de búsqueda 3D para la imagen de la capa de mejora. En este ejemplo, la unidad 86 de procesamiento de predicción de color aplica la tabla de búsqueda 3D a los componentes de color de una imagen de capa de referencia en cada una de las dos o más capas de referencia identificadas por los dos o más ID de capa de referencia, y genera la imagen de referencia entre capas para la imagen de la capa de mejora con base en una combinación de los componentes de color convertidos de las dos o más capas de referencia.
En un ejemplo adicional, para una primera imagen de capa de mejora en la capa de mejora, la unidad 86 de procesamiento de predicción de color puede recibir un primer ID de capa de referencia que identifica una primera capa de referencia a la que se aplica la tabla de búsqueda 3d para generar una primera imagen de referencia entre capas para la primera imagen de la capa de mejora en la capa de mejora. Para una imagen de la segunda capa de mejora en la capa de mejora, que puede ser una imagen posterior a la imagen de la primera capa de mejora en el orden de visualización o en el orden de codificación, la unidad 86 de procesamiento de predicción de color puede recibir un segundo ID de capa de referencia que identifica una segunda capa de referencia de la pluralidad de capas de referencia a las que se aplica la tabla de búsqueda 3D para generar una segunda imagen de referencia entre capas para la imagen de la segunda capa de mejora en la capa de mejora, donde la segunda capa de referencia es diferente a la primera capa de referencia.
Ciertos aspectos de esta divulgación se han descrito con respecto al estándar HEVC con fines ilustrativos. Sin embargo, las técnicas descritas en esta divulgación pueden ser útiles para otros procesos de codificación de video, incluyendo otros procesos de codificación de vídeo estándar o patentados que aún no se han desarrollado.
Un codificador de video, como se describe en esta divulgación, puede referirse a un codificador de vídeo o un decodificador de video. De manera similar, una unidad de codificación de vídeo puede referirse a un codificador de vídeo o un decodificador de video. Asimismo, la codificación de vídeo puede referirse a la codificación o decodificación de video, según corresponda.
Debe reconocerse que, dependiendo del ejemplo, ciertos actos o eventos de cualquiera de las técnicas descritas en el presente documento pueden realizarse en una secuencia diferente, pueden agregarse, fusionarse o omitirse por completo (por ejemplo, no todos los actos o eventos descritos son necesarios para la práctica de las técnicas). Además, en ciertos ejemplos, los actos o eventos se pueden realizar al mismo tiempo, por ejemplo, mediante procesamiento de múltiples subprocesos, procesamiento de interrupciones o múltiples procesadores, en lugar de secuencialmente.
En uno o más ejemplos, las funciones descritas pueden implementarse en hardware, software, firmware o cualquier combinación de los mismos. Si se implementan en software, las funciones pueden almacenarse o transmitirse como una o más instrucciones o código en un medio legible por ordenador y ejecutadas por una unidad de procesamiento con base en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible, tales como medios de almacenamiento de datos, o medios de comunicación, incluyendo cualquier medio que facilite la transferencia de un programa de ordenador de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador generalmente pueden corresponder a (1) medios de almacenamiento legibles por ordenador tangibles que no son transitorios o (2) un medio de comunicación tal como una señal u onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder mediante uno o más ordenador o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa de ordenador puede incluir un medio legible por ordenador.
A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que se puede utilizar para almacenar el código de programa deseado en forma de instrucciones o estructuras de datos y al que se puede acceder mediante un ordenador Además, cualquier conexión se denomina correctamente un medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, servidor u otra fuente remota utilizando un cable coaxial, cable de fibra óptica, par trenzado, línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, cable de fibra óptica, par trenzado, DSL o tecnologías inalámbricas tañes como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, debe entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que están dirigidos a medios de almacenamiento tangibles no transitorios. Disco, como se usa en el presente documento, incluye disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disquete y disco Blu-ray, donde los discos generalmente reproducen datos magnéticamente, mientras que los discos reproducen datos ópticamente con láser. Las combinaciones de los anteriores también deben incluirse dentro del alcance de los medios legibles por ordenador.
Las instrucciones pueden ser ejecutadas por uno o más procesadores, tal como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices lógicas programables en campo (FPGA) u otros circuitos lógicos integrados o discretos equivalentes. Por consiguiente, el término "procesador", como se usa en el presente documento, puede referirse a cualquiera de las estructuras anteriores o cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento puede proporcionarse dentro de módulos de hardware y/o software dedicados, configurados para codificar y decodificar, o incorporarse en un códec combinado. Además, las técnicas podrían implementarse completamente en uno o más circuitos o elementos lógicos.
Las técnicas de esta divulgación pueden implementarse en una amplia variedad de dispositivos o aparatos, incluyendo un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En esta divulgación se describen diversos componentes, módulos o unidades para enfatizar los aspectos funcionales de los dispositivos configurados para realizar las técnicas divulgadas, pero no necesariamente requieren la realización por diferentes unidades de hardware. Más bien, como se describió anteriormente, diversas unidades pueden combinarse en una unidad de hardware de códec o proporcionarse mediante una colección de unidades de hardware interoperativas, que incluyen uno o más procesadores como se describió anteriormente, junto con software y/o firmware adecuados.
Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.

Claims (15)

REIVINDICACIONES
1. Un método para decodificar datos de vídeo, comprendiendo el método:
recibir uno o más ID de identificadores de capa de referencia en una tabla de búsqueda 3D tridimensional para la escalabilidad de la gama de colores, en la que la tabla de búsqueda 3D es para una capa de mejora y en la que uno o más ID de capa de referencia identifican al menos una capa de referencia de una pluralidad de capas de referencia de los datos de vídeo a las que se aplicará la tabla de búsqueda 3D;
aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de capa de referencia, solo si la capa de referencia está identificada por uno o más ID de capa de referencia, para convertir los componentes de color de una primera gama de colores para las capas de referencia de los datos de vídeo a una segunda gama de colores para la capa de mejora de los datos de vídeo;
generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y
decodificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
2. El método de la reivindicación 1, en el que recibir el al menos un ID de capa de referencia para la tabla de búsqueda 3D comprende recibir exactamente un ID de capa de referencia que identifica exactamente una capa de referencia.
3. El método de la reivindicación 2, en el que aplicar la tabla de búsqueda 3D comprende aplicar la tabla de búsqueda 3D a componentes de color de una imagen de capa de referencia en exactamente una capa de referencia identificada por exactamente un ID de capa de referencia.
4. El método de la reivindicación 1, en el que recibir el al menos un ID de capa de referencia para la tabla de búsqueda 3D comprende recibir dos o más ID de capa de referencia que identifican dos o más capas de referencia.
5. El método de la reivindicación 4,
en el que aplicar la tabla de búsqueda 3D comprende aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en cada una de las dos o más capas de referencia identificadas por los dos o más ID de capa de referencia para convertir los componentes de color de las imágenes de la capa de referencia de la dos o más capas de referencia;
en el que generar la imagen de referencia entre capas comprende generar la imagen de referencia entre capas con base en una combinación de los componentes de color convertidos a partir de las dos o más capas de referencia.
6. El método de la reivindicación 1, en el que recibir el al menos una ID de capa de referencia comprende recibir un primera ID de capa de referencia que identifica una primera capa de referencia a la que se aplica la tabla de búsqueda 3D para generar una primera imagen de referencia entre capas para una primera imagen de capa de mejora. en la capa de mejora, comprendiendo el método, además:
recibir un segundo ID de capa de referencia que identifica una segunda capa de referencia de la pluralidad de capas de referencia de los datos de vídeo, siendo la segunda capa de referencia diferente a la primera capa de referencia; aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en la segunda capa de referencia para convertir los componentes de color de las imágenes de la capa de referencia de la segunda capa de referencia;
generar una segunda imagen de referencia entre capas para una segunda imagen de capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos, siendo la segunda capa de mejora diferente a la primera capa de mejora; y
decodificar bloques de vídeo de la imagen de la segunda capa de mejora con base en la segunda imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
7. Un método de codificación de datos de video, comprendiendo el método:
determinar una o más capas de referencia de una pluralidad de capas de referencia de los datos de vídeo para una tabla de búsqueda 3D tridimensional para la escalabilidad de la gama de colores, en el que la tabla de búsqueda 3D es para una capa de mejora y en el que el uno o más ID de capa de referencia se identifican en al menos una capa de referencia de una pluralidad de capas de referencia de los datos de vídeo a los que se va a aplicar la tabla de búsqueda 3D;
aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de capa de referencia, solo si la capa de referencia está identificada por uno o más ID de capa de referencia, para convertir los componentes de color de una primera gama de colores para las capas de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de video;
generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos;
codificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D; y
señalizar al menos un identificador de capa de referencia (ID) que identifica la capa de referencia en la tabla de búsqueda 3D.
8. El método de la reivindicación 7, en el que señalizar el al menos un ID de capa de referencia comprende señalizar exactamente un ID de capa de referencia que identifica exactamente una capa de referencia.
9. El método de la reivindicación 8,
en el que determinar la al menos una capa de referencia comprende determinar la exactamente una capa de referencia para la tabla de búsqueda 3D; y
en el que aplicar la tabla de búsqueda 3D comprende aplicar la tabla de búsqueda 3D a componentes de color de una imagen de capa de referencia en exactamente una capa de referencia.
10. El método de la reivindicación 7, en el que señalizar al menos un ID de capa de referencia comprende señalizar dos o más ID de capa de referencia que identifican dos o más capas de referencia.
11. El método de la reivindicación 10,
en el que determinar la al menos una capa de referencia comprende determinar las dos o más capas de referencia para la tabla de búsqueda 3D;
en el que aplicar la tabla de búsqueda 3D comprende aplicar la tabla de búsqueda 3D a componentes de color de una imagen de capa de referencia en cada una de las dos o más capas de referencia para convertir los componentes de color de las imágenes de capa de referencia de las dos o más capas de referencia; y
en el que generar la imagen de referencia entre capas comprende generar la imagen de referencia entre capas con base en una combinación de los componentes de color convertidos a partir de las dos o más capas de referencia.
12. El método de la reivindicación 7, en el que señalizar el al menos un ID de capa de referencia comprende señalizar un primer ID de capa de referencia que identifica una primera capa de referencia a la que se aplica la tabla de búsqueda 3D para generar una primera imagen de referencia entre capas para una primera imagen de capa de mejora en la capa de mejora, comprendiendo el método, además:
determinar un segundo ID de capa de referencia que identifica una segunda capa de referencia de la pluralidad de capas de referencia de los datos de vídeo, siendo la segunda capa de referencia diferente de la primera capa de referencia;
aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia en la segunda capa de referencia para convertir los componentes de color de las imágenes de la capa de referencia de la segunda capa de referencia;
generar una segunda imagen de referencia entre capas para una segunda imagen de capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos, siendo la segunda capa de mejora diferente a la primera capa de mejora;
codificar bloques de vídeo de la imagen de la segunda capa de mejora con base en la segunda imagen de referencia entre capas generada usando la tabla de búsqueda 3D; y
señalizar el ID de la segunda capa de referencia que identifica la segunda capa de referencia.
13. Un dispositivo de decodificación de vídeo que comprende:
una memoria configurada para almacenar datos de video; y
uno o más procesadores en comunicación con la memoria y configurados para:
recibir uno o más ID identificador de capa de referencia en una tabla de búsqueda 3D tridimensional para la escalabilidad de la gama de colores, en el que la tabla de búsqueda 3D es para una capa de mejora y en el que uno o más ID de capa de referencia identifica al menos una capa de referencia de una pluralidad de capas de referencia de los datos de vídeo a los que se aplicará la tabla de búsqueda 3D;
Aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de capa de referencia, solo si la capa de referencia está identificada por uno o más ID de capa de referencia, para convertir los componentes de color de una primera gama de colores para las capas de referencia de los datos de vídeo a una segunda gama de colores para una capa de mejora de los datos de video;
generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos; y
decodificar bloques de vídeo de la imagen de la capa de mejora basándose en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D.
14. Un dispositivo de codificación de vídeo que comprende:
una memoria configurada para almacenar datos de video; y
uno o más procesadores en comunicación con la memoria y configurados para:
determinar una o más capas de referencia de una pluralidad de capas de referencia de los datos de vídeo para una tabla de búsqueda 3D tridimensional para la escalabilidad de la gama de colores, en el que la tabla de búsqueda 3D es para una capa de mejora;
aplicar la tabla de búsqueda 3D a los componentes de color de una imagen de la capa de referencia, solo si la capa de referencia está en una o más capas de referencia, para convertir los componentes de color de una primera gama de colores para las capas de referencia de los datos de vídeo a un segundo color gama para una capa de mejora de los datos de video;
generar una imagen de referencia entre capas para una imagen de la capa de mejora en la capa de mejora de los datos de vídeo con base en los componentes de color convertidos;
codificar bloques de vídeo de la imagen de la capa de mejora con base en la imagen de referencia entre capas generada usando la tabla de búsqueda 3D; y
señalizar al menos un ID identificador de capa de referencia que identifica la capa de referencia en la tabla de búsqueda 3D.
15. Un medio de almacenamiento legible por ordenador que almacena instrucciones para decodificar y codificar datos de vídeo que, cuando se ejecutan, hacen que uno o más procesadores realicen el método de una cualquiera de las reivindicaciones 1 a 12.
ES15721398T 2014-04-17 2015-04-17 Capas de referencia de señalización para la predicción del color 3D para la escalabilidad de la gama de color Active ES2903013T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461981125P 2014-04-17 2014-04-17
US201462005651P 2014-05-30 2014-05-30
US14/688,700 US10104385B2 (en) 2014-04-17 2015-04-16 Signaling reference layers for 3D color prediction for color gamut scalability
PCT/US2015/026494 WO2015161268A1 (en) 2014-04-17 2015-04-17 Signaling reference layers for 3d color prediction for color gamut scalability

Publications (1)

Publication Number Publication Date
ES2903013T3 true ES2903013T3 (es) 2022-03-30

Family

ID=54323087

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15721398T Active ES2903013T3 (es) 2014-04-17 2015-04-17 Capas de referencia de señalización para la predicción del color 3D para la escalabilidad de la gama de color

Country Status (10)

Country Link
US (2) US10448029B2 (es)
EP (2) EP3132606A1 (es)
JP (2) JP6640108B2 (es)
KR (2) KR102381496B1 (es)
CN (2) CN106233729B (es)
BR (2) BR112016024129A8 (es)
ES (1) ES2903013T3 (es)
MX (1) MX360952B (es)
TW (2) TWI669949B (es)
WO (2) WO2015161268A1 (es)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10448029B2 (en) 2014-04-17 2019-10-15 Qualcomm Incorporated Signaling bit depth values for 3D color prediction for color gamut scalability
JP6330507B2 (ja) * 2014-06-19 2018-05-30 ソニー株式会社 画像処理装置及び画像処理方法
JP6769231B2 (ja) * 2016-10-17 2020-10-14 富士通株式会社 動画像符号化装置、動画像符号化方法、動画像復号装置、動画像復号方法、及び動画像符号化用コンピュータプログラムならびに動画像復号用コンピュータプログラム
US10681382B1 (en) * 2016-12-20 2020-06-09 Amazon Technologies, Inc. Enhanced encoding and decoding of video reference frames
GB2618718B (en) * 2019-03-20 2024-03-13 V Nova Int Ltd Low complexity enhancement video coding
CN113826382B (zh) * 2019-05-16 2023-06-20 北京字节跳动网络技术有限公司 视频编解码中的自适应比特深度转换
US20220067978A1 (en) * 2020-08-26 2022-03-03 Facebook Technologies, Llc Rate controlled image and texture data compression

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1494456A1 (en) 2003-07-01 2005-01-05 Deutsche Thomson-Brandt GmbH Method for run-length encoding of a bitmap data stream
US8446961B2 (en) 2008-07-10 2013-05-21 Intel Corporation Color gamut scalability techniques
EP2803190B1 (en) 2012-01-09 2017-10-25 Dolby Laboratories Licensing Corporation Hybrid reference picture reconstruction method for multiple layered video coding systems
US10178400B2 (en) 2012-11-21 2019-01-08 Dolby International Ab Signaling scalability information in a parameter set
KR102257783B1 (ko) 2013-04-08 2021-05-28 돌비 인터네셔널 에이비 Lut를 인코딩하는 방법, lut를 디코딩하는 방법 및 대응하는 장치들
WO2015054307A2 (en) 2013-10-07 2015-04-16 Vid Scale, Inc. Combined scalability processing for multi-layer video coding
US9948916B2 (en) 2013-10-14 2018-04-17 Qualcomm Incorporated Three-dimensional lookup table based color gamut scalability in multi-layer video coding
CN108337519B (zh) * 2013-12-13 2021-12-03 Vid拓展公司 视频编码设备及方法
US10531105B2 (en) 2013-12-17 2020-01-07 Qualcomm Incorporated Signaling partition information for 3D lookup table for color gamut scalability in multi-layer video coding
US9756337B2 (en) 2013-12-17 2017-09-05 Qualcomm Incorporated Signaling color values for 3D lookup table for color gamut scalability in multi-layer video coding
US10448029B2 (en) 2014-04-17 2019-10-15 Qualcomm Incorporated Signaling bit depth values for 3D color prediction for color gamut scalability

Also Published As

Publication number Publication date
BR112016024201A8 (pt) 2021-07-13
US10104385B2 (en) 2018-10-16
JP2017515386A (ja) 2017-06-08
CN106233728B (zh) 2019-06-14
BR112016024129A8 (pt) 2021-07-13
WO2015161260A1 (en) 2015-10-22
JP6640108B2 (ja) 2020-02-05
JP6768516B2 (ja) 2020-10-14
EP3132606A1 (en) 2017-02-22
WO2015161268A1 (en) 2015-10-22
BR112016024129A2 (pt) 2017-08-15
CN106233729B (zh) 2019-06-14
KR102138407B1 (ko) 2020-07-27
US20150304628A1 (en) 2015-10-22
BR112016024201A2 (pt) 2017-08-15
TW201543872A (zh) 2015-11-16
TW201543871A (zh) 2015-11-16
EP3132607B1 (en) 2021-12-15
TWI666919B (zh) 2019-07-21
KR20160145117A (ko) 2016-12-19
TWI669949B (zh) 2019-08-21
US10448029B2 (en) 2019-10-15
KR20160145118A (ko) 2016-12-19
JP2017515383A (ja) 2017-06-08
MX2016013403A (es) 2017-02-15
CN106233728A (zh) 2016-12-14
CN106233729A (zh) 2016-12-14
MX360952B (es) 2018-11-21
EP3132607A1 (en) 2017-02-22
KR102381496B1 (ko) 2022-03-31
US20150304664A1 (en) 2015-10-22

Similar Documents

Publication Publication Date Title
US10432942B2 (en) Signaling color values for 3D lookup table for color gamut scalability in multi-layer video coding
ES2753960T3 (es) Tabla de consulta tridimensional basada en la escalabilidad de la gama de colores en la codificación de vídeo multicapa
ES2703343T3 (es) Información de partición de señalización para la tabla de búsqueda 3D para la escalabilidad de gama de colores en la codificación de vídeo multicapas
ES2903013T3 (es) Capas de referencia de señalización para la predicción del color 3D para la escalabilidad de la gama de color
BR112016014129B1 (pt) Sinalização de informações de divisão para tabela de consulta 3d para escalabilidade de gama de cores em codificação de vídeo de multicamadas