ES2715555T3 - Predicción residual de componentes cruzadas adaptativa - Google Patents

Predicción residual de componentes cruzadas adaptativa Download PDF

Info

Publication number
ES2715555T3
ES2715555T3 ES16708487T ES16708487T ES2715555T3 ES 2715555 T3 ES2715555 T3 ES 2715555T3 ES 16708487 T ES16708487 T ES 16708487T ES 16708487 T ES16708487 T ES 16708487T ES 2715555 T3 ES2715555 T3 ES 2715555T3
Authority
ES
Spain
Prior art keywords
color component
linear model
parameters
residual signal
values
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
ES16708487T
Other languages
English (en)
Inventor
Jianle Chen
Hongbin Liu
Ying Chen
Li Zhang
Xiang Li
Xin Zhao
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 ES2715555T3 publication Critical patent/ES2715555T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Abstract

Un procedimiento de codificación de datos de vídeo, el procedimiento que comprende: determinar (100), dentro de un codificador, una señal residual predicha de una componente de color objetivo de un bloque actual en función de uno o más parámetros de un modelo lineal y de una señal residual de una componente de color de origen del bloque actual; determinar (102), dentro del codificador, una señal residual restante para la componente de color objetivo en base a una señal residual de la componente de color objetivo y la señal residual predicha de la componente de color objetivo; codificar (104) los valores de la señal residual restante de la componente de color objetivo; y emitir (106) los valores de la señal residual restante codificados en un flujo de bits de vídeo, en el que determinar una señal residual predicha incluye determinar uno o más parámetros del modelo lineal, en el que la determinación de uno o más parámetros del modelo lineal incluye: (i) determinar un error de predicción en función de los valores de la muestra de referencia de una componente de color objetivo de referencia y los valores de la muestra de referencia de una componente de color de origen de referencia; y (ii) seleccionar valores de los uno o más parámetros del modelo lineal que minimizan el error de predicción, incluyendo la selección obtener uno de los parámetros del modelo lineal al restringir uno de los parámetros del modelo lineal para que esté cerca de un valor de parámetro predefinido, en el que los valores de la muestra de referencia de la componente de color objetivo de referencia y los valores de la muestra de referencia de la componente de color de origen de referencia son las componentes de color primera y segunda, respectivamente, de muestras adyacentes espaciales reconstruidas.

Description

DESCRIPCIÓN
Predicción residual de componentes cruzadas adaptativa
CAMPO TÉCNICO
[0001] Esta divulgación se refiere a la codificación de vídeo.
ANTECEDENTES
[0002] Las capacidades del vídeo digital pueden incorporarse en una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes digitales personales (PDA), ordenadores portátiles o de escritorio, ordenadores de tableta, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos celulares o de radio por satélite, los denominados "teléfonos inteligentes", dispositivos de videoconferencia, dispositivos de transmisión por flujo de vídeo y similares. Los dispositivos de vídeo digital implementan técnicas de codificación de vídeo, como las descritas en las normas definidas por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación de vídeo avanzada (AVC), ITU-T H.265, codificación de vídeo de alta eficiencia (HEVC) y extensiones de dichas normas, como codificación de vídeo escalable (SVC), codificación de vídeo de múltiples vistas (MVC), HEVC escalable (SHVC), HEVC de múltiples vistas (MV-HEVC), 3D-HEVC y las extensiones de rango HEVC. Los dispositivos de vídeo pueden transmitir, recibir, codificar, descodificar y/o almacenar información de vídeo digital más eficazmente, implementando tales técnicas de codificación de vídeo.
[0003] 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 intrínseca en las secuencias de vídeo. Para la codificación de vídeo basada en bloques, un fragmento de vídeo (por ejemplo, una trama de vídeo o una parte de una trama de vídeo) puede dividirse en bloques de vídeo, que también pueden denominarse bloques de árbol, unidades de árbol de codificación (CTU), unidades de codificación (CU) y/o nodos de codificación. Los bloques de vídeo pueden incluir bloques de luma y bloques de croma. En un fragmento intracodificado (I) de una imagen, los bloques se codifican utilizando predicción espacial con respecto a muestras de referencia en bloques contiguos en la misma imagen. Los bloques de vídeo en un fragmento intercodificado (P o B) de una imagen pueden usar la predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o la predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes pueden denominarse tramas, y las imágenes de referencia pueden denominarse tramas de referencia.
[0004] La predicción espacial o temporal da como resultado un bloque predictivo para un bloque a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original 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 que indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con una modalidad de intracodificación y los datos residuales. Para una mayor compresión, los datos residuales pueden transformarse desde el dominio de píxeles a un dominio de transformación, dando como resultado coeficientes de transformación residuales, que a continuación se pueden cuantificar. Los coeficientes de transformación cuantificados pueden codificarse por entropía para lograr aún más compresión.
[0005] En el documento WO 2013/067667 A1, se divulga un procedimiento implementado por ordenador que comprende: en un descodificador de vídeo: recibir una primera predicción residual para un primer canal de datos de vídeo; y determinar, usando la primera predicción residual, una segunda predicción residual para un segundo canal de los datos de vídeo.
[0006] En el documento WO 2014/190171 A1, se divulga un procedimiento para descodificar datos de vídeo, comprendiendo el procedimiento: descodificar un flujo de bits que incluye una representación codificada de los datos de vídeo, en el que descodificar el flujo de bits comprende: reconstruir una señal residual de una primera componente de color, en el que la señal residual de la primer componente de color se genera usando la predicción de movimiento, la señal residual reconstruida de la primer componente de color incluye valores de la muestra residual reconstruida de la primer componente de color; y utilizar los valores de la muestra residual reconstruida de la primer componente de color para predecir los valores de la muestra residual de una segunda componente de color diferente.
SUMARIO
[0007] Esta divulgación está relacionada con el campo de la codificación de vídeo y, más particularmente, está relacionada con la predicción residual de componentes cruzadas adaptativa. Las técnicas particulares de esta divulgación pueden reducir, eliminar o controlar de otro modo la redundancia entre componentes. Se puede utilizar en el contexto de códecs de vídeo avanzados, como extensiones de HEVC o la próxima generación de normas de codificación de vídeo.
[0008] En un aspecto, esta divulgación describe un procedimiento para codificar datos de vídeo y un procedimiento para descodificar datos de vídeo, comprendiendo los procedimientos determinar, dentro de un codificador, una señal residual predicha de una componente de color objetivo de un bloque actual en función de uno o más parámetros de un modelo lineal y de una señal residual de una componente de color de origen del bloque actual; determinar, dentro del codificador, una señal residual restante para la componente de color objetivo en base a una señal residual de la componente de color objetivo y la señal residual predicha de la componente de color objetivo; codificar los valores de la señal residual restante de la componente de color objetivo; y emitir los valores de la señal residual restante codificados en un flujo de bits de vídeo. La determinación de una señal residual predicha incluye la determinación de uno o más parámetros del modelo lineal, en donde la determinación de uno o más parámetros del modelo lineal incluye: seleccionar los valores de uno o más parámetros del modelo lineal que minimizan el error de predicción, siendo el error de predicción una función de los valores de la muestra de referencia de una componente de color objetivo de referencia y los valores de la muestra de referencia de una componente de color de origen de referencia, incluyendo la selección obtener uno de los parámetros del modelo lineal al restringir uno de los parámetros del modelo lineal para que esté cerca de un valor de parámetro predefinido. Los valores de la muestra de referencia de la componente de color objetivo de referencia y los valores de la muestra de referencia de la componente de color de origen de referencia son las componentes primera y segunda de color, respectivamente, de muestras adyacentes espaciales reconstruidas.
[0009] En otro aspecto, esta divulgación describe un dispositivo para codificar datos de vídeo y un dispositivo para descodificar datos de vídeo, comprendiendo los dispositivos: una memoria configurada para almacenar los datos de vídeo; y uno o más procesadores configurados para: determinar una señal residual predicha de una componente de color objetivo de un bloque actual en función de uno o más parámetros de un modelo lineal y de una señal residual de una componente de color de origen del bloque actual; determinar una señal residual restante para la componente de color objetivo en base a una señal residual de la componente de color objetivo y la señal residual predicha de la componente de color objetivo; codificar los valores de la señal residual restante de la componente de color objetivo; y emitir los valores de la señal residual restante codificados en un flujo de bits de vídeo. La determinación de una señal residual predicha incluye la determinación de uno o más parámetros del modelo lineal, en donde la determinación de uno o más parámetros del modelo lineal incluye la selección de valores de uno o más parámetros del modelo lineal que minimizan el error de predicción, siendo el error de predicción una función de los valores de la muestra de referencia de una componente de color objetivo de referencia y valores de la muestra de referencia de una componente de color de origen de referencia, incluyendo la selección obtener uno de los parámetros del modelo lineal al restringir uno de los parámetros del modelo lineal para que esté cerca de un valor de parámetro predefinido. Los valores de la muestra de referencia de la componente de color objetivo de referencia y los valores de la muestra de referencia de la componente de color de origen de referencia son las componentes primera y segunda de color, respectivamente, de muestras adyacentes espaciales reconstruidas.
[0010] En otro aspecto, esta divulgación describe un medio de almacenamiento legible por ordenador que tiene almacenadas en el mismo instrucciones que, cuando se ejecutan, hacen que uno o más procesadores de un dispositivo lleven a cabo uno de los procedimientos anteriormente descritos.
[0011] Los detalles de uno o más ejemplos de la divulgación se exponen en los dibujos adjuntos y en la descripción siguiente. Otras características, objetivos y ventajas resultarán evidentes a partir de la descripción, de los dibujos y de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0012]
La figura 1 es un diagrama de bloques que ilustra un ejemplo de sistema de codificación y descodificación de vídeo que puede ser configurado o ser operativo de otro modo para implementar o utilizar de otro modo una o más técnicas descritas en esta divulgación.
La figura 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo que puede ser configurado o ser operativo de otro modo para implementar o utilizar de otro modo una o más técnicas de esta divulgación.
La figura 3 es un diagrama de bloques que ilustra un ejemplo de descodificador de vídeo que puede ser configurado o ser operativo de otro modo para implementar o utilizar de otro modo una o más técnicas descritas en esta divulgación.
La figura 4 es un diagrama de flujo que ilustra un ejemplo de la codificación de datos de vídeo de acuerdo con un aspecto de esta divulgación.
La figura 5 es un diagrama de flujo que ilustra un ejemplo más detallado de la codificación de datos de vídeo de acuerdo con un aspecto de esta divulgación.
La figura 6 es un diagrama de flujo que ilustra la predicción de la señal residual de una primera componente de color a partir de la señal residual de una segunda componente de color, de acuerdo con un aspecto de esta divulgación.
La figura 7 es un diagrama de flujo que ilustra la predicción de la señal residual de una componente de color Cb a partir de la señal residual de una componente de color Cr, de acuerdo con un aspecto de esta divulgación.
La figura 8 es un diagrama de flujo que ilustra la obtención de parámetros de un modelo lineal basado en la interpredicción, de acuerdo con un aspecto de esta divulgación.
La figura 9 es un diagrama de flujo que ilustra la obtención de parámetros de un modelo lineal basado en la intrapredicción, de acuerdo con un aspecto de esta divulgación.
DESCRIPCIÓN DETALLADA
[0013] Esta divulgación describe varias técnicas para codificación y/o compresión de vídeo. En ejemplos particulares, esta divulgación está relacionada con la predicción de componentes cruzadas, que se utiliza para reducir la redundancia entre componentes. Se puede utilizar en el contexto de códecs de vídeo avanzados, como extensiones de HEVC o la próxima generación de normas de codificación de vídeo.
[0014] El vídeo en color juega un papel esencial en los sistemas multimedia, donde se utilizan varios espacios de color para representar el color de manera eficiente. Un espacio de color especifica el color con valores numéricos utilizando múltiples componentes. Un espacio de color popular es el espacio de color RGB, donde el color se representa como una combinación de tres valores de componentes de colores primarios (es decir, rojo, verde y azul). Para la compresión de vídeo en color, el espacio de color YCbCr ha sido ampliamente utilizado. Véase, por ejemplo, A. Ford y A. Roberts, "Colour space conversions [Conversiones de espacio de color]", Universidad de Westminster, Londres, Tech. Rep., Agosto de 1998.
[0015] Las normas 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 conocida como ISO/IEC MPEG-4 AVC), incluyendo sus extensiones de codificación de vídeo ajustable a escala (SVC) y de codificación de vídeo multivista (MVC).
[0016] Una nueva norma internacional para codificación de vídeo, denominada codificación de vídeo de alta eficiencia (HEVC), se desarrolló y finalizó por el Equipo Conjunto de Colaboración en Codificación de vídeo (JCT-VC), un grupo de expertos en codificación de vídeo del Grupo de Expertos en Codificación de vídeo del ITU-T (VCEG) y del Grupo de expertos en imágenes en movimiento (MPEG) de ISO/IEC. La primera versión de la norma HEVC se finalizó en abril de 2013. Una segunda versión de HEVC que incluye las extensiones RExt, SHVC y MV-HEVC se finalizó en octubre de 2014. La tercera versión de HEVC, que incluye la extensión 3D-HEVC, se finalizó en febrero de 2015, actualmente está vigente y está disponible en http://www.itu.int/rec/T-REC-H.265. Esta tercera edición de la norma HEVC se conoce como la norma HEVC en lo sucesivo. La segunda y tercera ediciones de la norma HEVC incluyen la Extensión de rango de formato (RExt), que extiende la codificación de vídeo para espacios de color distintos a YCbCr 4:2:0, como YCbCr 4:2:2, YCbCr 4:4:4 y RGB 4:4:4.
[0017] YCbCr y RGB son los dos espacios de colores primarios utilizados para representar el vídeo digital. RGB representa el color como una combinación de Rojo, Verde y Azul, mientras que YCbCr representa el vídeo digital como brillo (Y o luma), Azul menos luma (Cb, azul de croma o azul de crominancia) y Rojo menos luma (Cr, rojo de croma o rojo de crominancia). YCbCr se puede convertir fácilmente desde el espacio de color RGB a través de una transformación lineal. La redundancia entre diferentes componentes, es decir, la redundancia de componentes cruzadas, se reduce significativamente en el espacio de color YCbCr. Además, una de las ventajas de YCbCr es la compatibilidad con versiones anteriores de la televisión en blanco y negro, ya que la señal Y transmite la información de luminancia. Además, el ancho de banda de crominancia se puede reducir al submuestrear las componentes Cb y Cr en un formato de muestreo de croma 4:2:0 con un impacto significativamente menos subjetivo que el del submuestreo en RGB. Debido a estas ventajas, YCbCr ha sido el principal espacio de color en la compresión de vídeo.
[0018] También hay otros espacios de color, como YCoCg, que se pueden usar en la compresión de vídeo. YCoCg representa el vídeo digital como brillo (Y o luma), naranja menos luma (Co, naranja de croma o naranja de crominancia) y verde menos luma (Cr, verde de croma o verde de crominancia). YCbCr se puede convertir fácilmente desde el espacio de color RGB a través de una transformación lineal. En este documento, independientemente del espacio de color real utilizado, los términos Y, Cb y Cr se utilizan para representar las tres componentes de color en cada esquema de compresión de vídeo. Debe entenderse que las técnicas también pueden aplicarse a otros tres espacios de color.
[0019] La figura 1 es un diagrama de bloques que ilustra un ejemplo de sistema de codificación y descodificación de vídeo que puede ser configurado o ser operativo de otro modo para implementar o utilizar de otro modo una o más técnicas descritas en esta divulgación. Como se muestra en la figura 1, el sistema 10 incluye un dispositivo 12 de origen que genera datos de vídeo codificados que un dispositivo 14 de destino va a descodificar en un momento posterior. El dispositivo 12 de origen y el dispositivo 14 de destino pueden comprender cualquiera de entre una amplia gama de dispositivos, incluidos ordenadores de escritorio, ordenadores plegables (es decir, portátiles), ordenadores de tableta, descodificadores, teléfonos tales como los denominados teléfonos «inteligentes», los denominados paneles «inteligentes», televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, un dispositivo de transmisión de vídeo en continuo o similares. En algunos casos, el dispositivo 12 de origen y el dispositivo 14 de destino pueden estar equipados para la comunicación inalámbrica.
[0020] El dispositivo 14 de destino puede recibir, a través de un enlace 16, los datos de vídeo codificados a descodificar. El enlace 16 puede comprender cualquier tipo de medio o dispositivo capaz de desplazar los datos de vídeo codificados desde el dispositivo 12 de origen hasta el dispositivo 14 de destino. En un ejemplo, el enlace 16 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 se pueden modular de acuerdo con una norma de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitir al dispositivo 14 de destino. El medio de comunicación puede comprender cualquier medio de comunicación, inalámbrica o cableada, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión física. El medio de comunicación puede formar parte de una red basada 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 encaminadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo 12 de origen hasta el dispositivo 14 de destino.
[0021] De forma alternativa, los datos codificados pueden facilitarse desde la interfaz de salida 22 hasta un dispositivo de almacenamiento 31. De forma similar, una interfaz de entrada puede acceder a los datos codificados desde el dispositivo de almacenamiento 31. El dispositivo 31 de almacenamiento puede incluir cualquiera de una variedad de medios de almacenamiento de datos de acceso distribuido o local, tales como una unidad de disco duro, unos discos Blu-ray, unos DVD, unos CD-ROM, una memoria flash, una memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de vídeo codificados. En otro ejemplo, el dispositivo 31 de almacenamiento puede corresponder a un servidor de archivos o a otro dispositivo de almacenamiento intermedio que puede contener el vídeo codificado generado por el dispositivo 12 de origen. El dispositivo 14 de destino puede acceder a datos de vídeo almacenados en el dispositivo 31 de almacenamiento por medio de transmisión en continuo 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 en 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 wifi), una conexión cableada (por ejemplo, DSL, módem de 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 31 de almacenamiento puede ser una transmisión en continuo, una transmisión de descarga o una combinación de ambas.
[0022] Las técnicas de esta divulgación no están limitadas a aplicaciones o a configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de vídeo como apoyo a cualquiera de una variedad de aplicaciones multimedia, tales como radiodifusiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo en continuo, por ejemplo, mediante Internet, codificación de vídeo digital para su almacenamiento en un medio de almacenamiento de datos, descodificación de vídeo digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 se puede configurar para admitir la transmisión de vídeo unidireccional o bidireccional, para admitir aplicaciones tales como la transmisión de vídeo en continuo, la reproducción de vídeo, la radiodifusión de vídeo y/o la videotelefonía.
[0023] En el ejemplo de la figura 1, el dispositivo 12 de origen incluye una fuente 18 de vídeo, un codificador 20 de vídeo y una interfaz 22 de salida. En algunos casos, la interfaz 22 de salida puede incluir un modulador/desmodulador (módem) y/o un transmisor. En el dispositivo 12 de origen, la fuente 18 de vídeo puede incluir una fuente tal como un dispositivo de captación de vídeo, por ejemplo, una videocámara, un archivo de vídeo que contiene vídeo captado previamente, una interfaz de señal vídeo en tiempo real para recibir vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos por ordenador para generar datos de gráficos por ordenador como el vídeo de origen, o una combinación de dichas fuentes. En un ejemplo, si la fuente 18 de vídeo es una videocámara, 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, las técnicas descritas en esta divulgación pueden ser aplicables a la codificación de vídeo en general, y se pueden aplicar a aplicaciones inalámbricas y/o cableadas.
[0024] El codificador 20 de vídeo puede codificar el vídeo captado, captado previamente o generado por ordenador. Los datos de vídeo codificados se pueden transmitir directamente al dispositivo 14 de destino por medio de la interfaz 22 de salida del dispositivo 12 de origen. Los datos de vídeo codificados se pueden almacenar también (o de forma alternativa) en el dispositivo 31 de almacenamiento para un posterior acceso por el dispositivo 14 de destino u otros dispositivos, para su descodificación y/o reproducción.
[0025] El dispositivo 14 de destino incluye una interfaz 28 de entrada, un descodificador 30 de vídeo y un dispositivo 32 de visualización. En algunos casos, la interfaz 28 de entrada puede incluir un receptor y/o un módem. La interfaz de entrada 28 del dispositivo 14 de destino recibe los datos de vídeo codificados por el enlace 16. Los datos de vídeo codificados, comunicados por el enlace 16, o proporcionados en el dispositivo 31 de almacenamiento, pueden incluir una diversidad de elementos sintácticos generados por el codificador 20 de vídeo, para su uso por un descodificador de vídeo, tal como el descodificador 30 de vídeo, en la descodificación de los datos de vídeo. Dichos elementos sintácticos se pueden incluir con los datos de vídeo codificados transmitidos en un medio de comunicación, almacenados en un medio de almacenamiento o almacenados en un servidor de archivos.
[0026] El dispositivo 32 de visualización puede estar integrado en, o ser externo a, el dispositivo 14 de destino. En algunos ejemplos, el dispositivo 14 de destino puede incluir un dispositivo de visualización integrado y también estar configurado para interconectarse con un dispositivo de visualización externo. En otros ejemplos, el dispositivo 14 de destino puede ser un dispositivo de visualización. En general, el dispositivo 32 de visualización visualiza los datos de vídeo descodificados ante un usuario y puede comprender cualquiera de una variedad de dispositivos de visualización, tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0027] El codificador 20 de vídeo y el descodificador 30 de vídeo pueden funcionar de acuerdo con una norma de compresión de vídeo, tal como la norma de codificación de vídeo de alta eficiencia (HEVC), mencionada anteriormente, y pueden ajustarse al modelo de prueba de HEVC (HM). De forma alternativa, el codificador 20 de vídeo y el descodificador 30 de vídeo pueden funcionar de acuerdo con otras normas patentadas o industriales, tales como la norma ITU-T H.264, de forma alternativa llamada MPEG-4, Parte 10, codificación avanzada de vídeo (AVC), o extensiones de dichas normas. Sin embargo, las técnicas de esta divulgación no están limitadas a ninguna norma de codificación particular. Otros ejemplos de normas de compresión de vídeo incluyen MPEG-2 e ITU-T H.263.
[0028] Aunque no se muestra en la figura 1, en algunos aspectos, tanto el codificador 20 de vídeo como el descodificador 30 de vídeo pueden estar integrados en un codificador y descodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro tipo de hardware y software, para ocuparse de la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos separados. Si procede, en algunos ejemplos, las unidades MUX-DEMUX pueden ajustarse al protocolo de multiplexador ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0029] El codificador 20 de vídeo y el descodificador 30 de vídeo pueden implementarse cada uno como cualquiera entre una variedad de circuitos codificadores adecuados, tales como circuitos que tienen uno o más procesadores, microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables por campo (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de estos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado no transitorio legible por ordenador, y ejecutar las instrucciones en hardware utilizando uno o más procesadores para realizar las técnicas de esta divulgación. Cada uno del codificador 20 de vídeo y el descodificador 30 de vídeo se puede incluir en uno o más codificadores o descodificadores, cualquiera de los cuales se puede integrar como parte de un codificador/descodificador (CODEC) combinado en un dispositivo respectivo.
[0030] En general, el modelo de explotación del HM especifica que una trama o imagen de vídeo puede dividirse en una secuencia de bloques de árbol o unidades de codificación de máximo tamaño (LCU), que incluyen muestras tanto de luma como de croma. Un bloque de árbol tiene un fin similar a un macrobloque de la norma H.264. Un fragmento incluye un número de bloques de árbol consecutivos en orden de codificación. Una trama o imagen de vídeo puede dividirse en uno o más fragmentos. Cada bloque de árbol puede dividirse en unidades de codificación (CU) de acuerdo con un árbol cuaternario. Por ejemplo, un bloque de árbol, como un nodo raíz del árbol cuaternario, puede dividirse en cuatro nodos hijo, y cada nodo hijo puede, a su vez, ser un nodo padre y dividirse en otros cuatro nodos hijo. Un nodo hijo final no dividido, como un nodo hoja del árbol cuaternario, comprende un nodo de codificación, es decir, un bloque de vídeo codificado. Los datos sintácticos asociados a un flujo de bits codificado pueden definir un número máximo de veces que puede dividirse un bloque de árbol, y también pueden definir un tamaño mínimo de los nodos de codificación.
[0031] En un enfoque de ejemplo, una CU puede incluir un bloque de codificación de luma y dos bloques de codificación de croma. En otro enfoque de ejemplo, una CU puede incluir un bloque de codificación de luma, un bloque de codificación de Co y un bloque de codificación de Cg en un espacio de color YCoCg. En otro enfoque de ejemplo, una CU puede incluir un bloque de codificación rojo, un bloque de codificación verde y un bloque de codificación azul en un espacio de color RGB.
[0032] En un enfoque de ejemplo, la CU puede tener unidades de predicción (PU) y unidades de transformación (TU) asociadas. Cada una de las PU puede incluir un bloque de predicción de luma y dos bloques de predicción de croma, y cada una de las TU puede incluir un bloque de transformación de luma y dos bloques de transformación de croma. Cada uno de los bloques de codificación puede dividirse en uno o más bloques de predicción que comprenden bloques para muestras a las que se aplica la misma predicción. Cada uno de los bloques de codificación también puede dividirse en uno o más bloques de transformación que comprenden bloques de muestra, sobre los que se aplica la misma transformación.
[0033] Un tamaño de la CU corresponde, en general, a un tamaño del nodo de codificación, y es típicamente de forma cuadrada. El tamaño de la CU puede variar desde 8x8 píxeles hasta el tamaño del bloque de árbol, con un máximo de 64x64 píxeles o más. Cada CU puede definir una o más PU y una o más TU. Los datos sintácticos asociados a una CU pueden describir, por ejemplo, la división del bloque de codificación en uno o más bloques de predicción. Los modos de división pueden diferir dependiendo de si la CU está codificada en modalidad de salto o directa, codificada en modalidad de intrapredicción o codificada en modalidad de interpredicción. Los bloques de predicción pueden dividirse para que tengan forma cuadrada o no cuadrada. Los datos sintácticos incluidos en una CU también pueden describir, por ejemplo, la división del bloque de codificación en uno o más bloques de transformación, según un árbol cuaternario. Los bloques de transformación pueden dividirse para que tengan forma cuadrada o no cuadrada.
[0034] La norma de HEVC admite transformaciones de acuerdo con las TU, que pueden ser diferentes para diferentes CU. El tamaño de las TU típicamente se basa en el tamaño de las PU de una CU dada, definida para una LCU dividida, aunque puede que no sea siempre así. Las TU son típicamente del mismo tamaño o de un tamaño más pequeño que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU pueden subdividirse en unidades más pequeñas mediante una estructura de árbol cuaternario conocida como «árbol cuaternario residual» (RQT). Los nodos de hoja del RQT pueden representar las TU. Los valores de diferencia de píxel asociados a las TU pueden transformarse para generar coeficientes de transformación, que pueden cuantificarse.
[0035] En general, una PU incluye datos relacionados con el proceso de predicción. Por ejemplo, cuando la PU se codifica en la modalidad intra, la PU puede incluir datos que describen una modalidad de intrapredicción para la PU. En otro ejemplo, cuando la PU se codifica en la modalidad inter, la PU puede incluir datos que definen un vector de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, una componente horizontal del vector de movimiento, una componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, precisión de un cuarto de píxel o precisión de un octavo de píxel), una imagen de referencia a la que apunta el vector de movimiento y/o una lista de imágenes de referencia (por ejemplo, lista 0, lista 1 o lista C) para el vector de movimiento.
[0036] En general, se usa una TU para los procesos de transformada y cuantificación. Una CU dada que tiene una o más PU también puede incluir una o más TU. Después de la predicción, el codificador 20 de vídeo puede calcular unos valores residuales a partir del bloque de vídeo identificado por el nodo de codificación de acuerdo con la PU. El nodo de codificación se actualiza luego para hacer referencia a los valores residuales, en lugar del bloque de vídeo original. Los valores residuales comprenden valores de diferencias de píxeles que pueden transformarse en coeficientes de transformación, cuantificarse y escanearse usando las transformadas y otra información de transformada especificada en las TU, para producir coeficientes de transformación en serie para la codificación por entropía. El nodo de codificación puede, una vez más, actualizarse para referirse a estos coeficientes de transformación en serie. La presente divulgación usa típicamente el término «bloque de vídeo» para referirse a un nodo de codificación de una CU. En algunos casos específicos, la presente divulgación también puede usar el término «bloque de vídeo» para referirse a un bloque de árbol, es decir, una LCU o una CU, que incluye un nodo de codificación y unas PU y TU.
[0037] Una secuencia de vídeo incluye típicamente una serie de tramas o imágenes de vídeo. Un grupo de imágenes (GOP) comprende, en general, una serie de una o más de las imágenes de vídeo. Un GOP puede incluir datos sintácticos en una cabecera del GOP, en una cabecera de una o más de las imágenes, o en otras ubicaciones, que describen un número de imágenes incluidas en el GOP. Cada fragmento de una imagen puede incluir datos sintácticos de fragmento que describen una modalidad de codificación para el fragmento respectivo. El codificador 20 de vídeo actúa típicamente sobre bloques de vídeo dentro de fragmentos de vídeo individuales con el fin de codificar los datos de vídeo. Un bloque de vídeo puede corresponder a un nodo de codificación de una CU. Los bloques de vídeo pueden tener tamaños fijos o variables y pueden diferir en tamaño de acuerdo con una norma de codificación especificada.
[0038] En un ejemplo, el HM admite predicción en diversos tamaños de PU. Si se supone que el tamaño de una CU particular es 2Nx2N, el HM admite intrapredicción en tamaños de PU de 2Nx2N o NxN e interpredicción en tamaños de PU simétricas de 2Nx2N, 2NxN, Nx2N o NxN. El HM también admite la división asimétrica para interpredicción en tamaños de PU de 2NxnU, 2NxnD, nLx2N y nRx2N. En la división asimétrica, una dirección de una CU no está dividida, mientras que la otra dirección está dividida en un 25 % y un 75 %. La parte de la CU correspondiente a la división del 25 % está indicada por una «n» seguida por una indicación de «arriba», «abajo», «izquierda» o «derecha». Así pues, por ejemplo, «2NxnU» se refiere a una CU 2Nx2N que está dividida horizontalmente y tiene una PU 2Nx0,5N encima y una PU 2Nx1,5N debajo.
[0039] En la presente divulgación, «NxN» y «N por N» pueden usarse indistintamente para hacer referencia a las dimensiones de píxeles de un bloque de vídeo en términos de dimensiones verticales y horizontales, por ejemplo, 16x16 píxeles o 16 por 16 píxeles. En general, un bloque de 16x16 tendrá 16 píxeles en una dirección vertical (y = 16) y 16 píxeles en una dirección horizontal (x = 16). Asimismo, un bloque de NxN tiene, en general, N píxeles en una dirección vertical y N píxeles en una dirección horizontal, donde N representa un valor entero no negativo. Los píxeles de un bloque se pueden disponer en filas y columnas. Además, no es necesario que los bloques tengan necesariamente el mismo número de píxeles en la dirección horizontal y en la dirección vertical. Por ejemplo, los bloques pueden comprender NxM píxeles, donde M no es necesariamente igual a N.
[0040] Tras la codificación intrapredictiva o interpredictiva, usando las PU de una CU, el codificador 20 de vídeo puede calcular datos residuales a los que se apliquen las transformadas especificadas por las TU de la CU. Los datos residuales pueden corresponder a diferencias de píxeles entre píxeles de la imagen no codificada y valores de predicción correspondientes a las CU. El codificador 20 de vídeo puede formar los datos residuales para la CU, y a continuación transformar los datos residuales para producir coeficientes de transformación.
[0041] Tras cualquier transformada para generar coeficientes de transformación, el codificador 20 de vídeo puede realizar la cuantificación de los coeficientes de transformación. La cuantificación se refiere, en general, a un proceso en el que los coeficientes de transformación se cuantifican para reducir posiblemente la cantidad de datos usados para representar los coeficientes, proporcionando compresión adicional. El proceso de cuantificación puede reducir la profundidad de bits asociada a algunos, o a la totalidad, de los coeficientes. Por ejemplo, un valor de n bits puede redondearse a la baja hasta un valor de m bits durante la cuantificación, donde n es mayor que m.
[0042] En algunos ejemplos, el codificador 20 de vídeo puede utilizar un orden de escaneo predefinido para examinar los coeficientes de transformación cuantificados para producir un vector en serie que se pueda someter a codificación por entropía. En otros ejemplos, el codificador 20 de vídeo puede realizar un escaneo adaptativo. Después de escanear los coeficientes de transformación cuantificados para formar un vector unidimensional, el codificador 20 de vídeo puede realizar la codificación por entropía del vector unidimensional, por ejemplo, de acuerdo con la codificación de longitud variable adaptativa de acuerdo con el contexto (CAVLC), la codificación aritmética binaria adaptativa de acuerdo con el contexto (CABAC), la codificación aritmética binaria adaptativa de acuerdo con el contexto basada en la sintaxis (SBAC), la codificación por entropía de división de intervalo de probabilidad (PIPE) u otra metodología de codificación por entropía. El codificador 20 de vídeo también puede realizar la codificación por entropía de los elementos sintácticos asociados a los datos de vídeo codificados, para su uso por el descodificador de vídeo 30 en la descodificación de los datos de vídeo.
[0043] Para realizar la CABAC, el codificador 20 de vídeo puede asignar un contexto de un modelo de contexto a un símbolo que se vaya a transmitir. El contexto se puede referir, por ejemplo, a si los valores contiguos del símbolo son distintos de cero o no. Para realizar la CAVLC, el codificador 20 de vídeo puede seleccionar un código de longitud variable para un símbolo que se vaya a transmitir. Las palabras de código en la VLC se pueden construir de modo que los códigos relativamente más cortos correspondan a símbolos más probables, mientras que los códigos más largos correspondan a símbolos menos probables. De esta forma, el uso de la VLC puede lograr un ahorro en bits con respecto, por ejemplo, al uso de palabras de código de igual longitud para cada símbolo que se vaya a transmitir. La determinación de la probabilidad se puede basar en un contexto asignado al símbolo.
[0044] La figura 2 es un diagrama de bloques que ilustra un ejemplo de codificador de vídeo que puede ser configurado o ser operativo de otro modo para implementar o utilizar de otro modo una o más técnicas descritas en esta divulgación. El codificador 20 de vídeo puede realizar intracodificación e intercodificación de bloques de vídeo dentro de fragmentos de vídeo. La intracodificación 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 dada. 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 vídeo. La modalidad intra (modalidad I) puede referirse a cualquiera de varias modalidades de codificación de base espacial. Las modalidades inter, tales como la predicción unidireccional (modalidad P) o la bipredicción (modalidad B), pueden referirse a cualquiera de varias modalidades de codificación de base temporal.
[0045] Como se muestra en la figura 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 figura 2, el codificador 20 de vídeo incluye una memoria 38 de datos de vídeo, una unidad 40 de procesamiento de predicciones, una memoria 64 de imágenes de referencia, un sumador 50, una unidad 52 de procesamiento de transformada, una unidad 54 de cuantificación y una unidad 56 de codificación por entropía. A su vez, la unidad 40 de procesamiento de predicciones incluye la unidad 44 de compensación de movimiento, la unidad 42 de estimación de movimiento, la unidad 46 de intrapredicción y la unidad 48 de división. Para la reconstrucción de bloques de vídeo, el codificador 20 de vídeo incluye también la unidad 58 de cuantificación inversa, la unidad 60 de transformación inversa y el sumador 62. También se puede incluir un filtro de eliminación de bloques (no mostrado en la figura 2) para filtrar fronteras de bloques y eliminar distorsiones de efecto pixelado del vídeo reconstruido. Si se desea, el filtro de eliminación de bloques filtrará típicamente la salida del sumador 62. También pueden usarse filtros adicionales (en bucle o bucle posterior), además del filtro de eliminación de bloques. Dichos filtros no se muestran por razones de brevedad pero, si se desea, pueden filtrar la salida del sumador 62 (tal como un filtro en bucle).
[0046] Durante el proceso de codificación, el codificador 20 de vídeo recibe una trama o un fragmento de vídeo que se va a codificar y lo almacena en la memoria 38 de datos de vídeo. La trama o el fragmento pueden ser divididos en múltiples bloques de vídeo por la unidad 40 de procesamiento de predicciones. La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento llevan a cabo la codificación interpredictiva del bloque de vídeo recibido con respecto a uno o más bloques en una o más tramas de referencia, para proporcionar la predicción temporal. La unidad 46 de intrapredicción, de forma alternativa, puede llevar a cabo la codificación intrapredictiva del bloque de vídeo recibido, con respecto a uno o más bloques contiguos en la misma trama o fragmento que el bloque a codificar, para proporcionar predicción espacial. El codificador 20 de vídeo puede llevar a cabo múltiples pasadas de codificación, por ejemplo, para seleccionar una modalidad de codificación adecuada para cada bloque de datos de vídeo.
[0047] Además, la unidad 48 de división puede dividir bloques de datos de vídeo en subbloques, basándose en la evaluación de los anteriores esquemas de división en las anteriores pasadas de codificación. Por ejemplo, la unidad 48 de división puede dividir inicialmente una trama o un fragmento en varias LCU, y dividir cada una de las LCU en varias subCU, basándose en un análisis de velocidad-distorsión (por ejemplo, una optimización de velocidad-distorsión). La unidad 40 de procesamiento de predicciones puede producir, además, una estructura de datos de árbol cuaternario que indica la división de una LCU en varias subCU. Las CU de nodos hoja del árbol cuaternario pueden incluir una o más PU y una o más TU.
[0048] La unidad 40 de procesamiento de predicciones puede seleccionar una de las modalidades de codificación, intracodificación o intercodificación, por ejemplo, en base a los resultados de errores, y proporciona el bloque intracodificado o intercodificado resultante al sumador 50, para generar datos de bloque residuales, y al sumador 62, para reconstruir el bloque codificado para su uso como trama de referencia. La unidad 40 de procesamiento de predicciones proporciona, además, elementos sintácticos, tales como vectores de movimiento, indicadores de modalidad intra, información de división y otra información sintáctica de este tipo, a la unidad 56 de codificación por entropía. La unidad 40 de procesamiento de predicciones puede seleccionar una o más modalidades inter usando el análisis de velocidad-distorsión.
[0049] La unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento pueden estar sumamente integradas, pero se ilustran por separado con fines conceptuales. La estimación del movimiento, realizada por la unidad 42 de estimación del movimiento, es el proceso de generación de vectores de movimiento, que estiman el movimiento de los 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 trama o imagen de vídeo actual, con respecto a un bloque predictivo dentro de una trama de referencia (u otra unidad codificada), con respecto al bloque actual que se está codificando dentro de la trama actual (u otra unidad codificada). Un bloque predictivo es un bloque que se revela como estrechamente coincidente con el bloque que se va a codificar, en lo que respecta a la diferencia de píxeles, lo cual puede determinarse mediante la suma de diferencias absolutas (SAD), suma de las diferencias al cuadrado (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador 20 de vídeo puede calcular los valores para las posiciones fraccionarias de píxeles de imágenes de referencia almacenadas en la memoria 64 de imágenes de referencia. 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 fraccionarias de píxel de la imagen de referencia. Por lo tanto, la unidad 42 de estimación de movimiento puede realizar una búsqueda de movimiento relativa a las posiciones de píxeles completas y las posiciones de píxeles fraccionarias, y generar un vector de movimiento con una precisión de píxel fraccionaria.
[0050] La unidad 42 de estimación de movimiento calcula un vector de movimiento para una PU de un bloque de vídeo en un fragmento intracodificado 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 (lista 0) de imágenes de referencia o una segunda lista (lista 1) de imágenes de referencia, cada una de las cuales identifica una o más imágenes de referencia almacenadas en una memoria 64 de imágenes de referencia. La unidad 42 de estimación del movimiento envía el vector de movimiento calculado a la unidad 56 de codificación por entropía y a la unidad 44 de compensación de movimiento.
[0051] La compensación de movimiento, llevada a cabo por la unidad 44 de compensación de movimiento, puede implicar capturar o generar el bloque predictivo basándose 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. Tras 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íxel del bloque predictivo a los valores de píxel del bloque de vídeo actual que se está codificando, generando valores de diferencias de píxel, como se analiza posteriormente. En general, la unidad 42 de estimación de movimiento lleva a cabo la estimación de movimiento con respecto a los bloques de codificación de luma, y la unidad 44 de compensación de movimiento usa los vectores de movimiento calculados en base a los bloques de codificación de luma, tanto para los bloques de codificación de croma como para los bloques de codificación de luma. La unidad 40 de procesamiento de predicciones también puede generar elementos sintácticos asociados a los bloques de vídeo y al fragmento de vídeo, para su uso por parte del descodificador 30 de vídeo en la descodificación de los bloques de vídeo del fragmento de vídeo.
[0052] La unidad 46 de intrapredicción puede intrapredecir un bloque actual, como alternativa a la interpredicción llevada a cabo por la unidad 42 de estimación de movimiento y la unidad 44 de compensación de movimiento, como se ha descrito anteriormente. En particular, la unidad 46 de intrapredicción puede determinar una modalidad 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 varias modalidades de intrapredicción, por ejemplo, durante diferentes pasadas de codificación, y la unidad 46 de intrapredicción (o la unidad 40 de procesamiento de predicciones, en algunos ejemplos) puede seleccionar una modalidad adecuada de intrapredicción a usar, entre las modalidades probadas.
[0053] Por ejemplo, la unidad 46 de intrapredicción puede calcular valores de velocidad-distorsión usando un análisis de velocidad-distorsión para las diversas modalidades de intrapredicción probadas, y seleccionar la modalidad de intrapredicción que tenga las mejores características de velocidad-distorsión entre las modalidades probadas. El análisis de velocidad-distorsión determina, en general, una cantidad de distorsión (o error) entre un bloque codificado y un bloque original no codificado que se ha codificado para generar el bloque codificado, así como una velocidad de bits (es decir, un número de bits) usada para generar el bloque codificado. La unidad 46 de intrapredicción puede calcular proporciones a partir de las distorsiones y velocidades para los diversos bloques codificados para determinar qué modalidad de intrapredicción presenta el mejor valor de velocidad-distorsión para el bloque.
[0054] Después de seleccionar una modalidad de intrapredicción para un bloque, la unidad 46 de intrapredicción puede proporcionar información, indicativa de la modalidad de intrapredicción seleccionada para el bloque, a la unidad 56 de codificación por entropía. La unidad 56 de codificación por entropía puede codificar la información que indica la modalidad de intrapredicción seleccionada. El codificador 20 de vídeo puede incluir datos de configuración en el flujo de bits transmitido, que pueden incluir una pluralidad de tablas de índices de modalidades de intrapredicción y una pluralidad de tablas de índices de modalidades de intrapredicción modificadas (también denominadas tablas de correlación de palabras de código), definiciones de contextos de codificación para diversos bloques e indicaciones de una modalidad de intrapredicción más probable, una tabla de índices de modalidades de intrapredicción y una tabla de índices de modalidades de intrapredicción modificadas para su uso para cada uno de los contextos.
[0055] 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 modalidad del bloque de vídeo original que se está codificando. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. La unidad 52 de procesamiento de transformación aplica una transformada, tal como una transformada discreta de coseno (DCT) o una transformada conceptualmente similar, al bloque residual, generando un bloque de vídeo que comprende valores residuales de coeficientes de transformación. La unidad 52 de procesamiento de transformadas puede llevar a cabo otras transformadas que son conceptualmente similares a la DCT. También podrían usarse transformadas de ondícula, transformadas de números enteros, transformadas de subbandas u otros tipos de transformadas. En cualquier caso, la unidad 52 de procesamiento de transformación aplica la transformada al bloque residual, generando un bloque de coeficientes de transformación residuales. La transformada puede convertir la información residual, desde un dominio de valor de píxel a un dominio de transformada, tal como un dominio de frecuencia. La unidad 52 de procesamiento de transformación puede enviar los coeficientes de transformación resultantes a la unidad 54 de cuantificación. La unidad 54 de cuantificación cuantifica los coeficientes de transformación para reducir todavía más la velocidad de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada a algunos, o a la totalidad, de 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 realizar, a continuación, una exploración de la matriz que incluye los coeficientes de transformación cuantificados. De forma alternativa, la unidad 56 de codificación por entropía puede realizar la exploración.
[0056] Tras la cuantificación, la unidad 56 de codificación por entropía codifica por entropía los coeficientes de transformación cuantificados. Por ejemplo, la unidad 56 de codificación por entropía puede llevar a cabo la codificación de longitud variable adaptativa según el contexto (CAVLC), la codificación aritmética binaria adaptativa según el contexto (CABAC), la codificación aritmética binaria adaptativa según el contexto y basada en sintaxis (SBAC), la codificación por entropía mediante la división en intervalos de probabilidades (PIPE) u otra técnica de codificación por entropía. En el caso de la codificación por entropía basada en el contexto, el contexto puede basarse en bloques contiguos. Tras la codificación por entropía realizada por la unidad 56 de codificación por entropía, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, el descodificador 30 de vídeo) o archivarse para su posterior transmisión o recuperación.
[0057] La unidad 58 de cuantificación inversa y la unidad 60 de transformación inversa aplican la cuantificación inversa y la transformación inversa, respectivamente, para reconstruir el bloque residual en el dominio del píxel, por ejemplo, para su 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 de imágenes de referencia. La unidad 44 de compensación del movimiento también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores fraccionarios de píxel 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, generado por la unidad 44 de compensación de movimiento, para generar un bloque de vídeo reconstruido para su almacenamiento en la memoria 64 de imágenes de referencia. 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 bloque de referencia para intercodificar un bloque en una trama de vídeo subsiguiente.
[0058] La figura 3 es un diagrama de bloques que ilustra un ejemplo de descodificador de vídeo que puede ser configurado o ser operativo de otro modo para implementar o utilizar de otro modo una o más técnicas descritas en esta divulgación. En el ejemplo de la figura 3, el descodificador 30 de vídeo incluye una memoria 68 de datos de vídeo, una unidad 70 de descodificación por entropía, una unidad 72 de compensación de movimiento, una unidad 74 de intrapredicción, una unidad 76 de cuantificación inversa, una unidad 78 de transformación inversa, un sumador 80 y una memoria 82 de imágenes de referencia. En el ejemplo de la figura 3, el descodificador 30 de vídeo incluye la unidad 71 de predicción, la cual, a su vez, incluye la unidad 72 de compensación de movimiento y la unidad 74 de intrapredicción. En algunos ejemplos, el descodificador 30 de vídeo puede realizar una pasada de descodificación, en general, recíproca a la pasada de codificación descrita con respecto al codificador 20 de vídeo (figura 2). La unidad 72 de compensación de movimiento puede generar datos de predicción basados en vectores de movimiento recibidos desde la unidad 70 de descodificación por entropía, mientras que la unidad 74 de intrapredicción puede generar datos de predicción basados en indicadores de modalidad de intrapredicción recibidos desde la unidad 70 de descodificación por entropía.
[0059] Durante el proceso de descodificación, la memoria 68 de datos de vídeo del descodificador 30 de vídeo recibe un flujo de bits de vídeo codificado y almacena el flujo de bits de vídeo codificado en la memoria 68 de datos de vídeo. El flujo de bits de vídeo codificado representa bloques de vídeo de un fragmento de vídeo codificado y elementos sintácticos asociados transmitidos desde el codificador 20 de vídeo. La unidad 70 de descodificación por entropía descodifica el flujo de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modalidad de intrapredicción y otros elementos sintácticos. La unidad 70 de descodificación por entropía remite los vectores de movimiento y otros elementos sintácticos a la unidad 72 de compensación de movimiento. El descodificador 30 de vídeo puede recibir los elementos sintácticos en el nivel de fragmento de vídeo y/o el nivel de bloque de vídeo.
[0060] Cuando el fragmento de vídeo se codifica como un fragmento intracodificado (I), la unidad 74 de intrapredicción puede generar datos de predicción para un bloque de vídeo del fragmento de vídeo actual basándose en una modalidad de intrapredicción señalizada y en datos de bloques previamente descodificados de la trama o imagen actual. Cuando la trama de vídeo se codifica como un fragmento intercodificado (es decir, tramas B, P o GPB), la unidad 72 de compensación de movimiento genera bloques predictivos para un bloque de vídeo del fragmento de vídeo actual basándose en los vectores de movimiento y en otros elementos sintácticos recibidos desde la unidad 70 de descodificación por entropía. Los fragmentos predichos (fragmento P) y los fragmentos P y B generalizados (fragmentos GPB) pueden usar datos de tramas anteriores para definir el fragmento, mientras que un fragmento predicho bidireccional (fragmento B) puede usar tramas anteriores y posteriores para definir el fragmento. En algunos enfoques de ejemplo, los bloques predictivos se pueden generar a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El descodificador 30 de vídeo puede construir las listas de tramas de referencia, lista 0 y lista 1, mediante técnicas de construcción predeterminadas, basándose en imágenes de referencia almacenadas en la memoria 82 de imágenes de referencia.
[0061] La unidad 72 de compensación de movimiento determina la información de predicción para un bloque de vídeo del fragmento de vídeo actual, analizando los vectores de movimiento y otros elementos sintácticos, y usa la información de predicción para generar los bloques predictivos para el bloque de vídeo actual que se está descodificando. Por ejemplo, la unidad 72 de compensación de movimiento usa algunos de los elementos sintácticos recibidos para determinar una modalidad de predicción (por ejemplo, intrapredicción o interpredicción) usada para codificar los bloques de vídeo del fragmento de vídeo, un tipo de fragmento de interpredicción (por ejemplo, fragmento B, fragmento P o fragmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el fragmento, vectores de movimiento para cada bloque de vídeo intercodificado del fragmento, un estado de interpredicción para cada bloque de vídeo intercodificado del fragmento y otro tipo de información para descodificar los bloques de vídeo en el fragmento de vídeo actual.
[0062] La unidad 72 de compensación de movimiento también puede realizar la interpolación basándose en unos filtros de interpolación. La unidad 72 de compensación de movimiento puede usar filtros de interpolación como los usados por el codificador 20 de vídeo durante la codificación de los bloques de vídeo, para calcular valores interpolados para píxeles fraccionarios de los 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 sintácticos recibidos y usar los filtros de interpolación para generar bloques predictivos.
[0063] La unidad 76 de cuantificación inversa cuantifica de manera inversa, es decir, descuantifica, los coeficientes de transformación cuantificados proporcionados en el flujo de bits y descodificados por la unidad 70 de descodificación por entropía. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación QPY, calculado por el descodificador 30 de vídeo de cada bloque de vídeo en el fragmento de vídeo para determinar un grado de cuantificación y, asimismo, un grado de cuantificación inversa que debería aplicarse.
[0064] La unidad 78 de transformada inversa aplica una transformada inversa, por ejemplo, una DCT inversa, una transformada inversa de enteros, o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformación, con el fin de generar bloques residuales en el dominio del píxel.
[0065] Después de que la unidad 72 de compensación de movimiento genera el bloque predictivo para el bloque de vídeo actual basándose en los vectores de movimiento y otros elementos sintácticos, el descodificador 30 de vídeo forma un bloque de vídeo descodificado sumando los bloques residuales de la unidad 78 de transformación inversa y los correspondientes bloques predictivos generados por la unidad 72 de compensación de movimiento. El sumador 80 representa el componente o los componentes que realizan esta operación de suma. Si se desea, también se puede aplicar un filtro de eliminación de bloques para filtrar los bloques descodificados a fin de eliminar distorsiones de efecto pixelado. También se pueden usar otros filtros de bucle (en el bucle de codificación o bien después del bucle 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 descodificados de una trama o imagen determinada se almacenan a continuación en la memoria 82 de imágenes de referencia, que almacena imágenes de referencia usadas para una subsiguiente compensación de movimiento. La memoria 82 de imágenes de referencia almacena también vídeo descodificado para su presentación posterior en un dispositivo de visualización, tal como el dispositivo 32 de visualización de la figura 1.
[0066] La predicción residual de componentes cruzadas adaptativa se analizará a continuación.
[0067] Aunque la redundancia de componentes cruzadas se reduce significativamente en el espacio de color YCbCr, aún puede existir correlación entre las tres componentes de color. Se han estudiado varios procedimientos para mejorar el rendimiento de la codificación de vídeo al reducir aún más la correlación, especialmente para la codificación de vídeo en formato croma 4:4:4. En un enfoque, se utilizan un factor de escala y un desplazamiento para cada bloque para predecir la señal de croma a partir de la señal de luma reconstruida. (Véase B. C. Song, Y. G. Lee, and N. H. Kim, "Block adaptive inter-color compensation algorithm for RGB 4:4:4 video coding" ["Algoritmo de compensación entre colores adaptativo de bloques para codificación de vídeo RGB 4:4:4"], IEEE Trans. Circuits Syst. Video Technol., vol. 18, no. 10, páginas 1447-1451, Octubre 2008. Propuesta de LM.)
[0068] En otro enfoque, se realiza una técnica llamada Predicción de componentes cruzadas (CCP) en el dominio residual. (Véase, W. Pu, W.-S. Kim, J. Chen, J. Sole, M. Karczewicz, "RCE1: Descriptions and Results for Experiments 1,2, 3, and 4" ["Descripciones y resultados para los Experimentos 1,2, 3 y 4"], Equipo de colaboración conjunta en codificación de vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, JCTVC-O0202, Gevena, noviembre 2013.) En CCP, la señal residual de croma se predice utilizando la señal residual de luma reconstruida en el lado del codificador como
A rc(x,y) = rc (x,y ) - (a x r’L(x,y ) ) » 3 ( 1 )
y se compensa en el lado del descodificador como
r'c{x,y) = Ar'c{x,y) (a x r'L{x, y ) ) » 3 (2)
donde rc(x,y) y r'o(x,y) denotan las muestras residuales de croma originales y reconstruidas en una posición (x,y). En CCP, Arc(x,y) y Ar'c(x,y) indican las muestras residuales de croma finales después de la predicción de componentes cruzadas, mientras que rL(x,y) representa el valor de la muestra residual de luma reconstruida. En algunos ejemplos, el factor de ponderación a se señala explícitamente en el flujo de bits para cada unidad de transformación de croma en HEVC. Este procedimiento de predicción residual de componentes cruzadas se adoptó en la extensión de formato y rango de la norma HEVC para codificación de vídeo en formato de muestreo de croma 4:4:4, realizado tanto para el residuo intrapredicho como para el residuo interpredicho. También se propuso el procedimiento de CCP, pero aún no se ha adoptado para la codificación de formato de vídeo 4:2:0.
[0069] Además de usar luma para predecir las componentes de croma, es posible usar una de las componentes de croma para predecir la otra componente de croma. Es decir, en algunos enfoques de ejemplo, el residuo de Cb codificado anteriormente reconstruido puede usarse para predecir el residuo de Cr. (Véase, A. Khairat, T. Nguyen, M. Siekmann, D. Marpe, "Non-RCEl: Extended Adaptive Inter-Component Prediction" ["No RCEl: Predicción adaptativa ampliada entre componentes"], Equipo de colaboración conjunta sobre codificación de vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, JCTVC-00150, Gevena, noviembre de 2013.)
[0070] En la codificación de vídeo de croma 4:2:0, se estudió bien un procedimiento denominado modalidad de predicción del Modelo Lineal (LM) durante el desarrollo de la norma HEVC. (Véase J. Chen, V. Seregi, W.-J. Han, J.-S. Kim, B.-M. Joen. "CE6.a.4: Chroma intra prediction by reconstructed luma samples ["CE6.a.4: Intrapredicción cromática mediante muestras de luma reconstruidas", Equipo de colaboración conjunta en codificación de vídeo (JCT-VC) del ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, JCTVC-E266, Ginebra, 16-23 de marzo de 2011). Con la modalidad de predicción LM, las muestras de croma se predicen basándose en muestras de luma reconstruidas del mismo bloque mediante el uso de un modelo lineal de la siguiente manera:
Figure imgf000013_0002
donde predc(i, j) representa la predicción de las muestras de croma en un bloque y recL{¡, j) representa las muestras de luma reconstruidas diezmadas del mismo bloque. Los parámetros a y f i se obtienen al minimizar el error de regresión entre las muestras de luma y croma reconstruidas vecinas alrededor del bloque actual.
Figure imgf000013_0001
[0071] Los parámetros a y f i se resuelven de la siguiente manera:
Figure imgf000013_0003
donde x¡ es una muestra de referencia de luma reconstruida diezmada, y¡ es una muestra de referencia de croma reconstruida, y N es el número de las muestras de referencia.
[0072] Un problema con la modalidad de predicción LM es que, en la modalidad de predicción LM, las muestras de luma reconstruidas se utilizan para predecir las componentes de croma. Esto introduce retardos adicionales de codificación/descodificación en la codificación de croma. Tal retardo puede aumentar significativamente el coste de implementación, especialmente para la implementación de hardware. Otro inconveniente de la modalidad LM es que no es fácil de usar en la modalidad de interpredicción.
[0073] Un problema con el procedimiento de Predicción de componentes cruzadas (CCP) es que la ganancia de codificación está limitada debido al coste de señalización a nivel de bloque de los factores de ponderación (o cualquier otro parámetro para el modelo lineal).
[0074] En la predicción residual de componentes cruzadas, los factores de ponderación se obtienen tanto en el codificador 20 como en el descodificador 30 en base a las muestras reconstruidas vecinas espaciales o temporales. El residuo podría ser, aunque no se limita a, el residuo intra o interpredicho, y puede ser el residuo de cualquier tipo de procedimiento de predicción. No hay necesidad de transferir parámetros de bloque lineales como en CCP.
[0075] Los procedimientos para definir los factores de ponderación se analizan a continuación. Se pueden aplicar individualmente, o en cualquier combinación.
[0076] En general, se puede diseñar un modelo lineal para minimizar el error de predicción entre dos conjuntos de señales X e Y, donde X se denota como la señal de predicción e Y se denota como la señal objetivo durante la optimización:
Figure imgf000013_0004
uno o más factores de ponderación a y/o p se aplican a los residuos inter o intrapredichos de una componente de color para predecir otra componente de color. En un enfoque de ejemplo, uno o más de los parámetros del modelo lineal (por ejemplo, factor de ponderación a o desplazamiento p) obtenidos del modelo lineal anterior se aplican a los residuos inter o intrapredichos de una componente de color (por ejemplo, componente de luma) para predecir otra componente de color (por ejemplo, componente Cb y/o Cr). Dicho modelo también se puede aplicar a otras componentes en el orden de descodificación (por ejemplo, Cb a Cr). Además, el orden de descodificación de las componentes se puede cambiar de manera intermedia y todavía se aplica la técnica de predicción de componentes cruzadas.
[0077] La figura 4 es un diagrama de flujo que ilustra un ejemplo de la codificación de datos de vídeo de acuerdo con un aspecto de esta divulgación. En el ejemplo de enfoque de la figura 4, el codificador 20 de vídeo determina la señal residual predicha de una componente de color objetivo (100). En un ejemplo de este enfoque, el codificador 20 determina la señal residual predicha de la componente de color objetivo de un bloque actual en función de uno o más parámetros de un modelo lineal y de una señal residual de una componente de color de origen del bloque actual. El codificador 20 de vídeo determina una señal residual restante de la componente de color objetivo (102). En uno de estos enfoques, el codificador 20 determina la señal residual restante de la componente de color objetivo al restar la señal residual predicha de la componente de color objetivo de la señal residual de la componente de color objetivo. El codificador 20 codifica la señal residual restante de la componente de color objetivo y la señal residual de la componente de color de origen (104) antes de emitir las señales codificadas en el flujo de bits de vídeo (106).
[0078] En un enfoque de ejemplo, el modelo lineal predice una señal residual predicha de una componente de color objetivo a partir de la señal residual de una componente de color de origen en base a los parámetros del modelo lineal. Tanto el codificador 20 como el descodificador 30 mantienen los parámetros del modelo lineal del modelo lineal en la memoria y los aplican como se analiza a continuación. En un ejemplo de enfoque, el codificador 20 y el descodificador 30 calculan los parámetros del modelo lineal en función de los bloques de referencia. En un ejemplo de este tipo de enfoque, los valores predeterminados de los parámetros se mantienen en la memoria para utilizarlos cuando el cálculo de los valores de los parámetros no es apropiado.
[0079] La figura 5 es un diagrama de flujo que ilustra un ejemplo más detallado de la codificación de datos de vídeo de acuerdo con un aspecto de esta divulgación. En el ejemplo de enfoque de la figura 5, el codificador 20 de vídeo determina la señal residual predicha de una componente de color de croma (120). En un ejemplo de este enfoque, el codificador 20 determina la señal residual predicha de la componente de color objetivo de un bloque actual en función de uno o más parámetros de un modelo lineal y de una señal residual de una componente de color de origen del bloque actual. En un enfoque de ejemplo, los parámetros del modelo lineal incluyen un factor de ponderación a y un desplazamiento p. El codificador 20 utiliza el modelo lineal para predecir una señal residual predicha de la componente de color de croma Cr en función de una señal residual de la componente de color de luma. El codificador 20 determina una señal residual restante para la componente de color de croma Cr (122), codifica la señal residual restante con la señal residual de la componente de color de luma (124) y emite la señal residual restante codificada de la componente de color de croma Cr con la señal residual codificada de la componente de luma en el flujo de bits de vídeo.
[0080] La descodificación de los residuos codificados de la señal de predicción de la componente de color se analizará a continuación. La figura 6 es un diagrama de flujo que ilustra la predicción de la señal residual de una primera componente de color a partir de la señal residual de una segunda componente de color, de acuerdo con un aspecto de esta divulgación. En un ejemplo de enfoque, un descodificador 30 de vídeo recibe la señal residual codificada de una componente de color de origen y la señal residual restante codificada de la componente de color objetivo, almacena las señales residuales codificadas en la memoria del descodificador 30 de vídeo y descodifica los valores residuales codificados. El descodificador 30 de vídeo predice una señal residual predicha de una componente de color objetivo del bloque actual basándose en la señal residual descodificada de la componente de color de origen del bloque actual (140). El descodificador 30 determina entonces una señal residual para la componente de color objetivo en función de la señal residual predicha para la componente de color objetivo y de la señal residual restante descodificada para la componente de color objetivo (142).
[0081] La figura 7 es un diagrama de flujo que ilustra la predicción de la señal residual de una componente de color Cb a partir de la señal residual de una componente de color Cr, de acuerdo con un aspecto de esta divulgación. En un enfoque de ejemplo, un descodificador 30 de vídeo recibe la señal residual codificada de la componente de color Cr y la señal residual restante de la componente de color Cb, almacena las señales residuales codificadas en la memoria del descodificador 30 de vídeo y descodifica las señales residuales codificadas. El descodificador 30 de vídeo determina la señal residual predicha de la componente de color Cb del bloque actual en base a la señal residual descodificada de la componente de color Cr y los parámetros del modelo lineal (por ejemplo, factor de ponderación a y un desplazamiento p) (160). El descodificador 30 determina entonces una señal residual para la componente de color Cb en función de la señal residual predicha para la componente de color Cb y de la señal residual restante descodificada para la componente de color Cb (162).
[0082] En un enfoque de ejemplo, los valores predeterminados de los parámetros del modelo lineal se utilizan al predecir la señal residual de la componente de color objetivo. En otro enfoque de ejemplo, los valores de uno o más de los parámetros se obtienen de las señales de muestra, como se detallará a continuación. En un ejemplo de este tipo de enfoque, los valores obtenidos de los parámetros del modelo lineal se almacenan en la memoria del codificador 20 de vídeo y el descodificador 30 de vídeo y se usan como valores predeterminados hasta que se modifican.
[0083] Los procedimientos para obtener parámetros del modelo lineal se analizan a continuación para la interpredicción y la intrapredicción.
[0084] La figura 8 es un diagrama de flujo que ilustra la obtención de parámetros de un modelo lineal basado en la interpredicción, de acuerdo con un aspecto de esta divulgación. En el ejemplo de enfoque de la figura 8, un codificador 20 de vídeo selecciona una componente de color de origen interpredicha de referencia X (200) y una correspondiente componente de color objetivo interpredicha de referencia Y (202). El codificador 20 de vídeo calcula uno o más factores de ponderación en el modelo lineal en función de la componente de color de origen X y la componente de color objetivo Y (204), en el que los factores de ponderación se calculan para minimizar el error de predicción como se muestra en la ecuación (7) anterior. En un ejemplo de este enfoque, el codificador 20 de vídeo predice los valores de una componente de color objetivo Y en función de los factores de ponderación calculados y de los valores de una componente de color de origen X.
[0085] En un ejemplo, el modelo lineal se simplifica al establecer p igual a 0 o a cualquier valor predeterminado. En otro ejemplo, el modelo lineal puede simplificarse estableciendo a igual a 1 o a cualquier valor predeterminado.
[0086] En un ejemplo de enfoque, las muestras vecinas temporales (por ejemplo, muestras de predicción con compensación de movimiento) se utilizan como muestras de referencia para obtener los parámetros del modelo lineal a y/o p. En uno de estos ejemplos, la señal de predicción X es la señal con compensación de movimiento que pertenece a una componente (por ejemplo, la componente de luma con compensación de movimiento, también conocida como la componente de luma del bloque de referencia) y la señal objetivo Y es la señal con compensación de movimiento que pertenece a otra componente (por ejemplo, la componente Cb con compensación de movimiento también conocida como la componente Cb del bloque de referencia).
[0087] En un enfoque de ejemplo, la señal de predicción X es la señal residual del bloque de referencia para una componente (por ejemplo, componente de luma) y la señal objetivo Y es la señal residual del bloque de referencia para otra componente (por ejemplo, la componente Cb y/o Cr). En uno de estos casos, el residuo del bloque de referencia se calcula sobre la marcha en base a, por ejemplo, el movimiento de la referencia o un vector de movimiento escalado basado en el vector de movimiento del bloque actual.
[0088] En un enfoque de ejemplo, el codificador 20 almacena una imagen residual de la imagen de referencia y obtiene el residuo del bloque de referencia de la imagen residual almacenada de la imagen de referencia. En uno de estos ejemplos, el bloque residual se ubica en base al vector de movimiento del bloque actual. En otro ejemplo de este tipo, el bloque residual se establece adicionalmente al bloque residual que se superpone estrechamente (por ejemplo, en cuadrículas de 4x4) al bloque de referencia.
[0089] En un enfoque de ejemplo, el codificador 20 aplica la interpolación al generar el bloque residual basado en el vector de movimiento del bloque actual. En uno de estos ejemplos, la interpolación es a través de un filtro bilineal.
[0090] En un ejemplo de enfoque, el codificador 20 utiliza muestras vecinas espaciales reconstruidas (por ejemplo, superior y/o izquierda) (como en Intra LM) como muestras de referencia para obtener los parámetros del modelo lineal a y/o p. En uno de estos ejemplos, la señal de predicción X incluye los valores reconstruidos de una componente de las muestras vecinas (por ejemplo, componente de luma) y la señal objetivo Y incluye los valores reconstruidos de otra componente de las muestras vecinas (por ejemplo, Cb y/o Cr, o Co y/o Cg).
[0091] En un enfoque de ejemplo, el codificador 20 usa muestras vecinas espaciales y temporales para obtener a y/o p. Es decir, la señal de predicción X es una composición selectiva de la señal X obtenida de un bloque de referencia temporal (como se describió anteriormente) y la señal X de las muestras vecinas espaciales (como se describió anteriormente). Mientras tanto, la señal objetivo Y es una composición selectiva (correspondiente) de la señal de Y obtenida de un bloque de referencia temporal (como se describe anteriormente) y la señal Y de las muestras vecinas espaciales (como se describe anteriormente).
[0092] En algunos enfoques de ejemplo, el codificador 20 selecciona entre muestras vecinas espaciales y muestras vecinas temporales al elegir muestras de referencia utilizadas para obtener los parámetros del modelo lineal. En uno de estos ejemplos, el codificador 20 elige entre utilizar muestras vecinas espaciales o muestras vecinas temporales en función del tamaño del bloque actual, o en base a otras estadísticas correspondientes al bloque actual o uno o más de los bloques vecinos. Las estadísticas representativas incluyen valores de píxeles, autocorrelación de muestras de una sola componente de color y correlación cruzada entre muestras de dos componentes de color.
[0093] En algunos enfoques de ejemplo, el dispositivo 12 de origen muestra información complementaria a través del enlace 16 o del dispositivo de almacenamiento 31. La información complementaria (podría ser un indicador) se puede señalar, por ejemplo, en el Conjunto de parámetros de secuencia (SPS), el Conjunto de parámetros de imagen (PPS), la cabecera de fragmento, la LCU, el grupo de nivel de LCU o cualquier otro nivel de bloque o cuerpo sintáctico de alto nivel para indicar las muestras X e Y que se utilizarán para obtener los factores de ponderación.
[0094] En algunos enfoques de ejemplo, los parámetros del modelo lineal a y/o p se obtienen al minimizar el error de regresión entre las muestras de luma y croma de referencia como se hace en la modalidad de predicción LM.
[0095] En algunas predicciones de componentes cruzadas de los ejemplos residuales intrapredichos, las muestras reconstruidas espaciales vecinas (por ejemplo, superior y/o izquierda) pueden usarse como muestras de referencia para obtener los parámetros del modelo lineal.
[0096] La figura 9 es un diagrama de flujo que ilustra un ejemplo de predicción de componentes cruzadas de residuos intrapredichos, de acuerdo con un aspecto de esta divulgación. En el ejemplo de enfoque de la figura 9, uno o más factores de ponderación a y/o p se aplican a una señal residual intrapredicha de una componente de color para predecir otra componente de color. En un enfoque de ejemplo, un codificador 20 aplica uno o más de los factores de ponderación a y p obtenidos del modelo lineal de la ecuación (7) a la señal residual intrapredicha de una componente de color (por ejemplo, componente de luma) para determinar la señal residual predicha de otra componente de color (por ejemplo, componente Cb y/o Cr). Como se señaló en el análisis anterior sobre la modalidad de interpredicción, esta modalidad también puede aplicarse a otras componentes en el orden de descodificación (por ejemplo, Cb a Cr). Además, el orden de descodificación de las componentes se puede cambiar de manera intermedia y todavía se aplica la técnica de predicción de componentes cruzadas. La señal residual predicha de una componente de color se puede combinar entonces con la señal residual restante de la misma componente de color para llegar a la señal residual de la componente de color.
[0097] En el enfoque de la figura 9, un codificador 20 de vídeo selecciona una componente de color predicha X (300). En un enfoque de ejemplo, el codificador 20 de vídeo usa las muestras reconstruidas del vecino izquierdo como componente de color de origen X. En otro enfoque de ejemplo, el codificador 20 de vídeo usa las muestras reconstruidas del vecino superior como componente de color de origen X. En aún otro enfoque de ejemplo, el codificador 20 de vídeo calcula una componente de color de origen X en función de las muestras reconstruidas de cada uno de los vecinos superior e izquierdo.
[0098] El codificador 20 de vídeo selecciona una componente de color objetivo intrapredicha Y correspondiente (302). El codificador 20 de vídeo calcula uno o más factores de ponderación en función de la componente de color de origen de referencia X y la componente de color objetivo de referencia Y (304), en el que los factores de ponderación se calculan para minimizar el error de predicción como se muestra en la ecuación (7) anterior. El codificador 20 de vídeo luego predice los valores de una componente de color objetivo Y en función de los parámetros del modelo lineal calculados y los valores de la componente de color de origen X.
[0099] En un ejemplo, el modelo lineal puede simplificarse estableciendo p igual a 0 o a cualquier valor predeterminado. En otro ejemplo, el modelo lineal se simplifica al establecer a igual a 1 o a cualquier valor predeterminado.
Contabilización de ruido o error cuantificado
[0100] En la predicción residual de componentes cruzadas, cuando el modelo lineal se resuelve en base a las muestras reconstruidas espaciales o temporales vecinas, el valor de los parámetros del modelo lineal puede ser subóptimo debido al ruido/error cuantificado de las muestras de referencia o debido a la disimilitud entre las muestras de bloques actuales y las muestras de referencia. Para mejorar el rendimiento de la predicción residual de componentes cruzadas, en algunos ejemplos, se incluye una restricción para que el problema de optimización esté sujeto a la restricción de que se espera que a esté cerca de un valor predeterminado. De manera similar, se puede incluir una restricción para que el problema de optimización esté sujeto a la restricción de que se espera que a esté cerca de algún otro valor predeterminado. En algunos enfoques de ejemplo, al sesgar el cálculo de a a una o más restricciones, el codificador 20 de vídeo mejora el rendimiento de la predicción residual de componentes cruzadas.
[0101] En algunos enfoques de ejemplo, el codificador 20 de vídeo usa un factor de ponderación predefinido a como una restricción para determinar a. En uno de estos enfoques de ejemplo, el factor de ponderación a definido previamente es una función de las componentes de color involucradas en la predicción residual. En algunos enfoques de ejemplo, por ejemplo, el codificador 20 de vídeo usa un factor de ponderación predeterminado predefinido de -0,5 al predecir un residuo de Cr usando un residuo de Cr. En algunos enfoques de ejemplo, el codificador 20 de vídeo usa un factor de ponderación predeterminado predefinido de 0 cuando predice un residuo de croma utilizando el residuo de luma. En algunos de estos enfoques de ejemplo, los factores de ponderación predeterminados predefinidos de a varían según la componente de color y el espacio de color.
[0102] En un ejemplo de enfoque, el codificador 20 de vídeo modifica de forma adaptativa el valor predeterminado de a según sea necesario. Por ejemplo, el codificador 20 de vídeo puede señalar un valor predeterminado de a como -0,5 al predecir un residuo de Cr utilizando un residuo de Cr basado en valores de a determinados experimentalmente para el espacio YCbCr pero luego modifica el valor predeterminado basándose en el contenido del flujo de bits de vídeo. En un ejemplo de enfoque, dichos cambios pueden ocurrir y ser señalizados a un nivel alto, de modo que el codificador 20 de vídeo y el descodificador 30 de vídeo puedan adaptarse a los cambios en la transmisión de vídeo.
[0103] En algunos enfoques de ejemplo, el dispositivo 12 de origen señala el valor del factor de ponderación predeterminado a y/o el valor de compensación p en el flujo de bits. En varios enfoques de ejemplo, los valores predeterminados de los factores de ponderación se señalan en el SPS, el PPS, la cabecera de fragmento o cualquier otro lugar como sintaxis de alto nivel. En algunos ejemplos, los valores del factor de ponderación predeterminados se indican en CU, LCU, grupo de LCU u otro nivel de bloque.
[0104] En algunos enfoques de ejemplo, cuando un valor predeterminado no se señala, se utilizan valores predefinidos. En algunos de estos enfoques de ejemplo, se puede utilizar un valor predeterminado diferente para los diferentes espacios de color. En algunos enfoques de ejemplo, un valor de parámetro predeterminado se usa solo para ciertos espacios de color.
[0105] En algunos enfoques de ejemplo, el valor del factor de ponderación predeterminado a y/o el valor de desplazamiento p se actualizan utilizando el valor a obtenido sobre la marcha previamente y/o el valor de desplazamiento p para tamaños de bloque mayores que un umbral predefinido que, en general, son más tolerantes al ruido/error de cuantificación. En algunos de estos ejemplos, se utiliza un umbral de tamaño de bloque de 16x16, 32x32 o mayor.
[0106] En algunos enfoques de ejemplo, se incluye una restricción en la variación del valor de ponderación a y/o del valor de desplazamiento p, de modo que la diferencia entre el valor a y/o el valor de desplazamiento p obtenidos actualmente y el valor a y/o el valor de desplazamiento p obtenidos de adyacentes es menor que un valor de umbral o proporción predefinidos.
[0107] En algunos ejemplos, el codificador 20 incluye un mecanismo de selección que determina si se tiene en cuenta un valor predeterminado dedicado para la obtención de un factor de ponderación. En algunos de estos ejemplos, la selección depende del contexto del bloque actual. Por ejemplo, el valor del factor de ponderación predeterminado a se puede tener en cuenta al obtener el factor de ponderación cuando se aplica la predicción de componentes cruzadas entre dos componentes de croma, mientras que puede no considerarse cuando se predice una componente de croma a partir de una componente de luma. En algunos ejemplos, el valor del factor de ponderación predeterminado a se puede tener en cuenta al obtener la obtención del factor de ponderación cuando el tamaño del bloque está por encima o por debajo de un tamaño umbral, o en base a otras características del bloque actual.
[0108] En un ejemplo de enfoque, se puede tener en cuenta un valor predeterminado dedicado al obtener el factor de ponderación y puede depender del contexto del bloque actual. En un enfoque de ejemplo, un coste de regresión relativo al valor predeterminado a se agrega a la función de error como sigue:
Figure imgf000017_0002
Y el a óptimo se resuelve como:
Figure imgf000017_0001
Basado en la ecuación (9), el valor a obtenido debe permanecer cerca del valor predeterminado.
[0109] El valor de Á determina cuán grande es el impacto del valor predeterminado apredeterminado sobre el valor a finalmente obtenido. El valor predeterminado apredeterminado tiene más impacto cuando se utiliza un valor Á mayor. El valor de Á puede estar predefinido tanto para el codificador como para el descodificador, de lo contrario, el valor de Á se puede señalar en el flujo de bits. En un enfoque de ejemplo, el valor de Á puede ser igual a (£ x ■ xi) >> k, donde k es un valor fijo predefinido (por ejemplo, 7, 8 o 9). En otro enfoque de ejemplo, el valor de Á puede cambiar según el contexto. Por ejemplo, el valor de Á puede variar en base a una característica del bloque actual (por ejemplo, el tamaño del bloque, si se utilizan muestras de referencia espacial o temporal, etc.).
[0110] Este proceso también puede usarse mientras se obtiene el valor a y/o el valor de desplazamiento p en la modalidad de predicción LM descrita anteriormente, donde se utilizan muestras reconstruidas de una componente (por ejemplo, luma o Cb) para predecir la muestra de otra componente (por ejemplo, Cb o Cr) con un modelo lineal.
[0111] En algunos enfoques de ejemplo, el codificador 20 reduce la complejidad del proceso de obtención de parámetros en la predicción residual de componentes cruzadas mediante un diezmado o un submuestreo de las muestras de referencia (por ejemplo, muestras reconstruidas vecinas espaciales o temporales) antes de utilizar las muestras de referencia diezmadas o submuestreadas para obtener los parámetros a y p. En algunos ejemplos, el codificador 20 determina cuándo y si el diezmado o submuestreo se aplica a las muestras de referencia. En algunos de estos ejemplos, la decisión de diezmar o submuestrear depende del contexto del bloque actual y/o las muestras de referencia, como el tamaño del bloque actual, si la muestra de referencia es de vecinos temporales o vecinos espaciales, o de otras características del bloque actual o las muestras de referencia.
[0112] En algunos de los enfoques de ejemplo, el codificador 20 varía la proporción de diezmado o de submuestreo en función del tamaño del bloque actual. En algunos enfoques de ejemplo, se aplica una mayor proporción de diezmado/submuestreo cuando se procesa un bloque mayor.
[0113] En algunos enfoques de ejemplo, la proporción de diezmado/submuestreo difiere según si las muestras de referencia son muestras vecinas espaciales o muestras vecinas temporales. En un ejemplo de este tipo de enfoque, se puede aplicar una proporción de diezmado/submuestreo relativamente más alta a las muestras de referencia temporales, y se puede aplicar una proporción de diezmado/submuestreo relativamente más pequeña (o ninguna proporción de diezmado/submuestreo) a muestras de referencia espaciales.
[0114] Este procedimiento de diezmado/submuestreo también se puede aplicar a la modalidad de predicción LM, donde se utilizan muestras reconstruidas de una componente (por ejemplo, luma o Cb) para predecir, utilizando un modelo lineal, la muestra de otra componente (por ejemplo, Cb o Cr).
[0115] Debe reconocerse que, según el ejemplo, ciertos actos o sucesos de cualquiera de las técnicas descritas en el presente documento pueden realizarse en una secuencia distinta, pueden añadirse, combinarse u omitirse por completo (por ejemplo, no todos los actos o sucesos descritos son necesarios para la puesta en práctica de las técnicas). Además, en ciertos ejemplos, los actos o sucesos pueden realizarse simultáneamente, por ejemplo, mediante el procesamiento de múltiples hilos, el procesamiento de interrupciones o múltiples procesadores, en lugar de secuencialmente.
[0116] 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 en, y transmitirse por, un medio legible por ordenador, como una o más instrucciones o código, y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que correspondan a un medio tangible tal como medios de almacenamiento de datos o medios de comunicación que incluyan cualquier medio que facilite la transferencia de un programa informático desde un lugar a otro, por ejemplo, de acuerdo a un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder en general a (1) medios de almacenamiento tangibles legibles por ordenador que sean no transitorios o (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder desde uno o más ordenadores 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 informático puede incluir un medio legible por ordenador. Tal como se usa en el presente documento, el término "señalización" puede incluir almacenar o incluir de otro modo datos con un flujo de bits codificado. En otras palabras, en varios ejemplos de acuerdo con esta divulgación, el término 'señalización' puede estar asociado con la comunicación de datos en tiempo real, o de forma alternativa, la comunicación que no se realiza en tiempo real.
[0117] A modo de ejemplo, y no de manera limitativa, tales medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que pueda usarse para almacenar código de programa deseado en forma de instrucciones o estructuras de datos y al que pueda accederse mediante un ordenador. Además, cualquier conexión recibe debidamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde una sede de la Red, un servidor u otro origen remoto usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, debería 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, en cambio, están orientados a medios de almacenamiento tangibles no transitorios. El término disco, como se usa en el presente documento, incluye un disco compacto (CD), un disco láser, un disco óptico, un disco versátil digital (DVD), un disco flexible y un disco Blu-ray, donde algunos discos normalmente emiten datos magnéticamente, mientras que otros discos emiten datos ópticamente con láseres. Las combinaciones de lo anterior también deberían incluirse dentro del alcance de los medios legibles por ordenador.
[0118] Las instrucciones pueden ser ejecutadas por uno o más procesadores, tales 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 de puertas programables in situ (FPGA) u otros circuitos lógicos integrados o discretos equivalentes. En consecuencia, el término "procesador", como se usa en el presente documento, se puede referir a cualquiera de las estructuras anteriores o a 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 se puede proporcionar dentro de módulos de hardware y/o software dedicados, configurados para la codificación y la descodificación, o incorporados en un códec combinado. También, las técnicas se podrían implementar totalmente en uno o más circuitos o elementos lógicos.
[0119] Las técnicas de la presente divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluidos un equipo manual inalámbrico, un circuito integrado (CI) o un conjunto de CI (por ejemplo, un conjunto de chips). Diversos componentes, módulos o unidades se describen en esta divulgación para enfatizar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no requieren necesariamente su realización mediante diferentes unidades de hardware. En cambio, como se ha descrito anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec, o ser proporcionadas por un grupo de unidades de hardware interoperativas, incluyendo uno o más procesadores, como se ha descrito anteriormente, conjuntamente con software y/o firmware adecuados.
[0120] Se han descrito diversos ejemplos. Estos y otros ejemplos están dentro del alcance de las siguientes reivindicaciones.

Claims (1)

  1. REIVINDICACIONES
    Un procedimiento de codificación de datos de vídeo, el procedimiento que comprende:
    determinar (100), dentro de un codificador, una señal residual predicha de una componente de color objetivo de un bloque actual en función de uno o más parámetros de un modelo lineal y de una señal residual de una componente de color de origen del bloque actual;
    determinar (102), dentro del codificador, una señal residual restante para la componente de color objetivo en base a una señal residual de la componente de color objetivo y la señal residual predicha de la componente de color objetivo;
    codificar (104) los valores de la señal residual restante de la componente de color objetivo; y emitir (106) los valores de la señal residual restante codificados en un flujo de bits de vídeo, en el que determinar una señal residual predicha incluye determinar uno o más parámetros del modelo lineal,
    en el que la determinación de uno o más parámetros del modelo lineal incluye:
    (i) determinar un error de predicción en función de los valores de la muestra de referencia de una componente de color objetivo de referencia y los valores de la muestra de referencia de una componente de color de origen de referencia; y
    (ii) seleccionar valores de los uno o más parámetros del modelo lineal que minimizan el error de predicción, incluyendo la selección obtener uno de los parámetros del modelo lineal al restringir uno de los parámetros del modelo lineal para que esté cerca de un valor de parámetro predefinido, en el que los valores de la muestra de referencia de la componente de color objetivo de referencia y los valores de la muestra de referencia de la componente de color de origen de referencia son las componentes de color primera y segunda, respectivamente, de muestras adyacentes espaciales reconstruidas.
    Un procedimiento de codificación de datos de vídeo, el procedimiento que comprende:
    determinar (100), dentro de un codificador, una señal residual predicha de una componente de color objetivo de un bloque actual en función de uno o más parámetros de un modelo lineal y de una señal residual de una componente de color de origen del bloque actual;
    determinar (102), dentro del codificador, una señal residual restante para la componente de color objetivo en base a una señal residual de la componente de color objetivo y la señal residual predicha de la componente de color objetivo;
    codificar (104) los valores de la señal residual restante de la componente de color objetivo; y emitir (106) los valores de la señal residual restante codificados en un flujo de bits de vídeo, en el que determinar una señal residual predicha incluye determinar uno o más parámetros del modelo lineal,
    en el que la determinación de uno o más parámetros del modelo lineal incluye la selección de valores de los uno o más parámetros del modelo lineal que minimizan un error de predicción, siendo el error de predicción una función de los valores de la muestra de referencia de una componente de color objetivo de referencia y valores de la muestra de referencia de una componente de color de origen de referencia, incluyendo la selección obtener uno de los parámetros del modelo lineal al restringir uno de los parámetros del modelo lineal para que esté cerca de un valor de parámetro predefinido,
    en el que seleccionar los valores de los uno o más parámetros del modelo lineal incluye obtener un factor de ponderación a y un desplazamiento p que minimicen E(a, p), donde
    Figure imgf000020_0001
    donde apredeterminado es un valor predeterminado de a, donde y¡ son valores de la muestra de referencia de la componente de color objetivo de referencia y x¡ son valores de la muestra de referencia de la componente de color de origen de referencia,
    en el que los valores de la muestra de referencia de la componente de color objetivo de referencia y los valores de la muestra de referencia de la componente de color de origen de referencia son las componentes de color primera y segunda, respectivamente, de muestras adyacentes espaciales reconstruidas.
    El procedimiento según la reivindicación 1 o la reivindicación 2, en el que obtener uno de los parámetros del modelo lineal incluye además uno de:
    limitar la variación entre el parámetro del modelo lineal obtenido y los parámetros del modelo lineal de uno o más bloques adyacentes temporales o espaciales,
    reemplazar el valor del parámetro predefinido con el parámetro del modelo lineal obtenido, y reemplazar el valor del parámetro predefinido con el parámetro del modelo lineal obtenido si un tamaño de bloque es mayor que un tamaño de bloque de umbral predefinido.
    El procedimiento según la reivindicación 1 o la reivindicación 2, en el que:
    la selección de valores de los uno o más parámetros del modelo lineal incluye determinar si la componente de color de origen es un primer tipo de componente de color, y
    uno de los parámetros del modelo lineal se obtiene en respuesta a que se determina que la componente de color de origen es del primer tipo de componente de color.
    Un dispositivo para codificar datos de vídeo, el dispositivo que comprende:
    una memoria configurada para almacenar datos de vídeo; y
    uno o más procesadores configurados para:
    determinar (100) una señal residual predicha de una componente de color objetivo de un bloque actual en función de uno o más parámetros de un modelo lineal y de una señal residual de una componente de color de origen del bloque actual;
    determinar (102) una señal residual restante para la componente de color objetivo en base a una señal residual de la componente de color objetivo y la señal residual predicha de la componente de color objetivo;
    codificar (104) los valores de la señal residual restante de la componente de color objetivo; y emitir (106) los valores de la señal residual restante codificados en un flujo de bits de vídeo, en el que determinar una señal residual predicha incluye determinar uno o más parámetros del modelo lineal,
    en el que la determinación de uno o más parámetros del modelo lineal incluye:
    (i) determinar un error de predicción en función de los valores de la muestra de referencia de una componente de color objetivo de referencia y los valores de la muestra de referencia de una componente de color de origen de referencia; y
    (ii) seleccionar valores de los uno o más parámetros del modelo lineal que minimizan el error de predicción, incluyendo la selección obtener uno de los parámetros del modelo lineal al restringir uno de los parámetros del modelo lineal para que esté cerca de un valor de parámetro predefinido, en el que los valores de la muestra de referencia de la componente de color objetivo de referencia y los valores de la muestra de referencia de la componente de color de origen de referencia son las componentes de color primera y segunda, respectivamente, de muestras adyacentes espaciales reconstruidas.
    Un dispositivo para codificar datos de vídeo, el dispositivo que comprende:
    una memoria configurada para almacenar datos de vídeo; y
    uno o más procesadores configurados para:
    determinar (100) una señal residual predicha de una componente de color objetivo de un bloque actual en función de uno o más parámetros de un modelo lineal y de una señal residual de una componente de color de origen del bloque actual;
    determinar (102) una señal residual restante para la componente de color objetivo en base a una señal residual de la componente de color objetivo y la señal residual predicha de la componente de color objetivo;
    codificar (104) los valores de la señal residual restante de la componente de color objetivo; y
    emitir (106) los valores de la señal residual restante codificados en un flujo de bits de vídeo,
    en el que determinar una señal residual predicha incluye determinar uno o más parámetros del modelo lineal,
    en el que la determinación de uno o más parámetros del modelo lineal incluye la selección de valores de los uno o más parámetros del modelo lineal que minimizan el error de predicción, siendo el error de predicción una función de los valores de la muestra de referencia de una componente de color objetivo de referencia y los valores de la muestra de referencia de una componente de color de origen de referencia, incluyendo la selección obtener uno de los parámetros del modelo lineal al restringir uno de los parámetros del modelo lineal para que esté cerca de un valor de parámetro predefinido,
    en el que seleccionar los valores de los uno o más parámetros del modelo lineal incluye obtener un factor de ponderación a y un desplazamiento p que minimicen E(a, p), donde
    Figure imgf000022_0001
    donde apredeterminado es un valor predeterminado de a, donde yi son valores de la muestra de referencia de la componente de color objetivo de referencia y xi son valores de la muestra de referencia de la componente de color de origen de referencia,
    en el que los valores de la muestra de referencia de la componente de color objetivo de referencia y los valores de la muestra de referencia de la componente de color de origen de referencia son las componentes de color primera y segunda, respectivamente, de muestras adyacentes espaciales reconstruidas.
    El dispositivo según la reivindicación 5 o la reivindicación 6, en el que seleccionar valores de los uno o más parámetros del modelo lineal incluye seleccionar un valor de parámetro predefinido basado en el tipo de componente de color de la componente de color objetivo y en el tipo de componente de color de la componente de color de origen y obtener uno de los parámetros del modelo lineal al restringir el parámetro del modelo lineal para que esté cerca del valor del parámetro predefinido seleccionado.
    El dispositivo según la reivindicación 5 o la reivindicación 6, en el que obtener uno de los parámetros del modelo lineal incluye además uno de:
    limitar la variación entre el parámetro del modelo lineal obtenido y los parámetros del modelo lineal de uno o más bloques adyacentes temporales o espaciales,
    reemplazar el valor del parámetro predefinido con el parámetro del modelo lineal obtenido, y
    reemplazar el valor del parámetro predefinido con el parámetro del modelo lineal obtenido si un tamaño de bloque es mayor que un tamaño de bloque de umbral predefinido.
    El dispositivo según la reivindicación 5 o la reivindicación 6, en el que:
    la selección de los valores de los uno o más parámetros del modelo lineal incluye determinar si la componente de color de origen es de un primer tipo de componente de color, y
    uno de los parámetros del modelo lineal se obtiene en respuesta a la determinación de que la componente de color de origen sea del primer tipo de componente de color.
    10. Un procedimiento de descodificación de datos de vídeo, que comprende:
    determinar (140), en función de uno o más parámetros lineales de un modelo lineal y de una señal residual de una componente de color de origen, una señal residual predicha de una componente de color objetivo; y
    determinar (142) una señal residual de la componente de color objetivo en función de una señal residual restante descodificada de la componente de color objetivo y de la señal residual predicha de la componente de color objetivo,
    en el que determinar una señal residual predicha incluye determinar uno o más parámetros del modelo lineal,
    en el que la determinación de uno o más parámetros del modelo lineal incluye:
    (i) determinar un error de predicción en función de los valores de la muestra de referencia de una componente de color objetivo de referencia y los valores de la muestra de referencia de una componente de color de origen de referencia; y
    (ii) seleccionar valores de los uno o más parámetros del modelo lineal que minimizan el error de predicción, incluyendo la selección obtener uno de los parámetros del modelo lineal al restringir uno de los parámetros del modelo lineal para que esté cerca de un valor de parámetro predefinido,
    en el que los valores de la muestra de referencia de la componente de color objetivo de referencia y los valores de la muestra de referencia de la componente de color de origen de referencia son las componentes de color primera y segunda, respectivamente, de muestras adyacentes espaciales reconstruidas.
    11. Un procedimiento de descodificación de datos de vídeo, que comprende:
    determinar (140), en función de uno o más parámetros lineales de un modelo lineal y de una señal residual de una componente de color de origen, una señal residual predicha de una componente de color objetivo; y
    determinar (142) una señal residual de la componente de color objetivo en función de una señal residual restante descodificada de la componente de color objetivo y de la señal residual predicha de la componente de color objetivo,
    en el que determinar una señal residual predicha incluye determinar uno o más parámetros del modelo lineal,
    en el que la determinación de uno o más parámetros del modelo lineal incluye la selección de valores de los uno o más parámetros del modelo lineal que minimizan el error de predicción, siendo el error de predicción una función de los valores de la muestra de referencia de una componente de color objetivo de referencia y los valores de la muestra de referencia de una componente de color de origen de referencia, incluyendo la selección obtener uno de los parámetros del modelo lineal al restringir uno de los parámetros del modelo lineal para que esté cerca de un valor de parámetro predefinido,
    en el que seleccionar los valores de los uno o más parámetros del modelo lineal incluye obtener un factor de ponderación a y un desplazamiento p que minimicen E(a, p), donde
    Figure imgf000023_0001
    donde apredeterminado es un valor predeterminado de a, donde yi son valores de la muestra de referencia de la componente de color objetivo de referencia y xi son valores de la muestra de referencia de la componente de color de origen de referencia,
    en el que los valores de la muestra de referencia de la componente de color objetivo de referencia y los valores de la muestra de referencia de la componente de color de origen de referencia son las componentes de color primera y segunda, respectivamente, de muestras adyacentes espaciales reconstruidas.
    12. El procedimiento según la reivindicación 10 o la reivindicación 11, en el que obtener uno de los parámetros del modelo lineal incluye reemplazar el valor del parámetro predefinido con el parámetro del modelo lineal obtenido.
    13. El procedimiento según la reivindicación 10 o la reivindicación 11, en el que obtener uno de los parámetros del modelo lineal incluye reemplazar el valor del parámetro predefinido con el parámetro del modelo lineal obtenido si un tamaño de bloque es mayor que un tamaño de bloque umbral predefinido.
    14. Un dispositivo para descodificar datos de vídeo, el dispositivo que comprende:
    una memoria configurada para almacenar datos de vídeo; y
    uno o más procesadores configurados para:
    determinar (140), en función de uno o más parámetros lineales de un modelo lineal y de una señal residual de una componente de color de origen, una señal residual predicha de una componente de color objetivo; y
    determinar (142) una señal residual de la componente de color objetivo en función de una señal residual restante descodificada de la componente de color objetivo y de la señal residual predicha de la componente de color objetivo,
    en el que determinar una señal residual predicha incluye determinar uno o más parámetros del modelo lineal,
    en el que la determinación de uno o más parámetros del modelo lineal incluye:
    (i) determinar un error de predicción en función de los valores de la muestra de referencia de una componente de color objetivo de referencia y los valores de la muestra de referencia de una componente de color de origen de referencia; y
    (ii) seleccionar valores de los uno o más parámetros del modelo lineal que minimizan el error de predicción, incluyendo la selección obtener uno de los parámetros del modelo lineal al restringir uno de los parámetros del modelo lineal para que esté cerca de un valor de parámetro predefinido, en el que los valores de la muestra de referencia de la componente de color objetivo de referencia y los valores de la muestra de referencia de la componente de color de origen de referencia son las componentes de color primera y segunda, respectivamente, de muestras adyacentes espaciales reconstruidas.
    15. Un dispositivo para descodificar datos de vídeo, el dispositivo que comprende:
    una memoria configurada para almacenar datos de vídeo; y
    uno o más procesadores configurados para:
    determinar (140), en función de uno o más parámetros lineales de un modelo lineal y de una señal residual de una componente de color de origen, una señal residual predicha de una componente de color objetivo; y
    determinar (142) una señal residual de la componente de color objetivo en función de una señal residual restante descodificada de la componente de color objetivo y de la señal residual predicha de la componente de color objetivo,
    en el que determinar una señal residual predicha incluye determinar uno o más parámetros del modelo lineal,
    en el que la determinación de uno o más parámetros del modelo lineal incluye la selección de valores de los uno o más parámetros del modelo lineal que minimizan el error de predicción, siendo el error de predicción una función de los valores de la muestra de referencia de una componente de color objetivo de referencia y los valores de la muestra de referencia de una componente de color de origen de referencia, incluyendo la selección obtener uno de los parámetros del modelo lineal al restringir uno de los parámetros del modelo lineal para que esté cerca de un valor de parámetro predefinido, en el que seleccionar los valores de los uno o más parámetros del modelo lineal incluye obtener un factor de ponderación a y un desplazamiento p que minimicen E(a, p), donde
    Figure imgf000025_0001
    donde apredeterminado es un valor predeterminado de a, donde y¡ son valores de la muestra de referencia de la componente de color objetivo de referencia y x¡ son valores de la muestra de referencia de la componente de color de origen de referencia,
    en el que los valores de la muestra de referencia de la componente de color objetivo de referencia y los valores de la muestra de referencia de la componente de color de origen de referencia son las componentes de color primera y segunda, respectivamente, de muestras adyacentes espaciales reconstruidas.
    16. Un medio de almacenamiento legible por ordenador que presenta instrucciones almacenadas en el mismo que, al ejecutarse, hacen que uno o más procesadores realicen el procedimiento según cualquiera de las reivindicaciones 1 a 4 y 10 a 13.
ES16708487T 2015-01-27 2016-01-27 Predicción residual de componentes cruzadas adaptativa Active ES2715555T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562108491P 2015-01-27 2015-01-27
US15/006,994 US9998742B2 (en) 2015-01-27 2016-01-26 Adaptive cross component residual prediction
PCT/US2016/015129 WO2016123219A1 (en) 2015-01-27 2016-01-27 Adaptive cross component residual prediction

Publications (1)

Publication Number Publication Date
ES2715555T3 true ES2715555T3 (es) 2019-06-04

Family

ID=56433529

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16708487T Active ES2715555T3 (es) 2015-01-27 2016-01-27 Predicción residual de componentes cruzadas adaptativa

Country Status (13)

Country Link
US (1) US9998742B2 (es)
EP (1) EP3092803B1 (es)
JP (1) JP6543716B2 (es)
KR (1) KR102519241B1 (es)
CN (1) CN107211124B (es)
BR (1) BR112017016111A2 (es)
CA (1) CA2972501C (es)
EA (1) EA034473B1 (es)
ES (1) ES2715555T3 (es)
HU (1) HUE041885T2 (es)
TN (1) TN2017000284A1 (es)
TW (1) TWI705698B (es)
WO (1) WO2016123219A1 (es)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10491922B2 (en) 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
JPWO2017061189A1 (ja) * 2015-10-05 2018-09-13 シャープ株式会社 画像復号装置または画像符号化装置のための画像予測装置
US10623774B2 (en) 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
US20180014021A1 (en) * 2016-07-05 2018-01-11 Cisco Technology, Inc. Prediction in image and video compression
US10419757B2 (en) * 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
US11095893B2 (en) 2016-10-12 2021-08-17 Qualcomm Incorporated Primary transform and secondary transform in video coding
US10873746B2 (en) * 2016-12-21 2020-12-22 Sharp Kabushiki Kaisha Intra prediction image generation device using cross-component liner model, image decoding apparatus, and image coding apparatus using same
JP6680260B2 (ja) * 2017-04-28 2020-04-15 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号化装置、画像復号化方法及び画像復号化プログラム
CN107580222B (zh) * 2017-08-01 2020-02-14 北京交通大学 一种基于线性模型预测的图像或视频编码方法
JP2021005741A (ja) * 2017-09-14 2021-01-14 シャープ株式会社 画像符号化装置及び画像復号装置
WO2019135636A1 (ko) * 2018-01-05 2019-07-11 에스케이텔레콤 주식회사 Ycbcr간의 상관 관계를 이용한 영상 부호화/복호화 방법 및 장치
GB2571313B (en) * 2018-02-23 2022-09-21 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
KR20190130502A (ko) * 2018-05-14 2019-11-22 인텔렉추얼디스커버리 주식회사 영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체
WO2019229683A1 (en) 2018-05-31 2019-12-05 Beijing Bytedance Network Technology Co., Ltd. Concept of interweaved prediction
US20200007872A1 (en) * 2018-06-29 2020-01-02 Industrial Technology Research Institute Video decoding method, video decoder, video encoding method and video encoder
WO2020015433A1 (en) * 2018-07-15 2020-01-23 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction using cross-component linear model
GB2590844B (en) * 2018-08-17 2023-05-03 Beijing Bytedance Network Tech Co Ltd Simplified cross component prediction
CN117478883A (zh) 2018-09-12 2024-01-30 北京字节跳动网络技术有限公司 交叉分量线性模型中的尺寸相关的下采样
GB2577338A (en) * 2018-09-24 2020-03-25 Sony Corp Data encoding and decoding
WO2020071617A1 (ko) * 2018-10-04 2020-04-09 엘지전자 주식회사 Cclm에 기반한 인트라 예측 방법 및 그 장치
WO2020094061A1 (en) * 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Multi-models for intra prediction
CN116916016A (zh) 2018-11-23 2023-10-20 Lg电子株式会社 解码设备、编码设备以及用于图像的数据的发送设备
US20210392321A1 (en) * 2018-11-23 2021-12-16 Intellectual Discovery Co., Ltd. Inter-image component prediction method, and image encoding and decoding method and device using same
WO2020108591A1 (en) 2018-12-01 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
TWI734059B (zh) * 2018-12-10 2021-07-21 財團法人工業技術研究院 動態預測模型建立方法、電子裝置及使用者介面
CN112235577B (zh) * 2018-12-13 2021-08-20 华为技术有限公司 色度块的预测方法和装置
GB2580108A (en) * 2018-12-21 2020-07-15 Sony Corp Image data encoding and decoding
GB2580106A (en) * 2018-12-21 2020-07-15 Sony Corp Image data encoding and decoding
CN113273203B (zh) 2018-12-22 2024-03-12 北京字节跳动网络技术有限公司 两步交叉分量预测模式
JP7304153B2 (ja) * 2018-12-27 2023-07-06 Kddi株式会社 動画像復号装置、動画像復号方法及びプログラム
WO2020140951A1 (en) 2019-01-02 2020-07-09 Beijing Bytedance Network Technology Co., Ltd. Motion vector derivation between color components
TWI675718B (zh) 2019-01-03 2019-11-01 財團法人工業技術研究院 工具機的加工件負載特性判斷及加速度調整方法
WO2020149630A1 (ko) * 2019-01-15 2020-07-23 엘지전자 주식회사 영상 코딩 시스템에서 cclm 예측 기반 영상 디코딩 방법 및 그 장치
WO2020156533A1 (en) 2019-02-01 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Interactions between in-loop reshaping and palette mode
MX2021008916A (es) 2019-02-01 2021-08-24 Beijing Bytedance Network Tech Co Ltd Interacciones entre reformacion en bucle y herramientas de intercodificacion.
CN113439437B (zh) * 2019-02-22 2023-11-24 北京字节跳动网络技术有限公司 用于帧内预测的邻近样点选择
SG11202109150QA (en) 2019-03-08 2021-09-29 Beijing Bytedance Network Technology Co Ltd Constraints on model-based reshaping in video processing
US20200288159A1 (en) 2019-03-08 2020-09-10 Qualcomm Incorporated Combined residual coding in video coding
CN111683247A (zh) * 2019-03-11 2020-09-18 上海天荷电子信息有限公司 多权重可减少分量数的分量间自预测数据压缩方法和装置
CN111698501B (zh) * 2019-03-11 2022-03-01 杭州海康威视数字技术股份有限公司 解码方法及装置
CN117499644A (zh) 2019-03-14 2024-02-02 北京字节跳动网络技术有限公司 环路整形信息的信令和语法
CN113632476B (zh) * 2019-03-23 2024-03-19 北京字节跳动网络技术有限公司 默认的环内整形参数
EP3944621A4 (en) * 2019-03-25 2022-05-18 Guangdong Oppo Mobile Telecommunications Corp., Ltd. FRAME PREDICTION METHOD, ENCODER, DECODER, AND STORAGE MEDIA
EP3930324A4 (en) * 2019-03-25 2022-07-20 Guangdong Oppo Mobile Telecommunications Corp., Ltd. IMAGE COMPONENT PREDICTION METHOD, ENCODER, DECODER AND STORAGE MEDIUM
KR20210139327A (ko) * 2019-03-25 2021-11-22 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 화상 예측 방법, 인코더, 디코더 및 저장 매체
CA3135968A1 (en) 2019-04-18 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Restriction on applicability of cross component mode
EP3935855A4 (en) 2019-04-23 2022-09-21 Beijing Bytedance Network Technology Co., Ltd. METHOD OF CROSS-COMPONENT DEPENDENCE REDUCTION
EP3949395A4 (en) 2019-05-08 2022-06-29 Beijing Bytedance Network Technology Co., Ltd. Conditions for applicability of cross-component coding
KR20220024006A (ko) 2019-06-22 2022-03-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 크로마 잔차 스케일링을 위한 신택스 요소
EP3977738A4 (en) 2019-07-07 2022-08-17 Beijing Bytedance Network Technology Co., Ltd. SIGNALING OF CHROMA RESIDUAL SCALE
KR20220030950A (ko) * 2019-07-10 2022-03-11 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 픽처 컴포넌트의 예측 방법, 인코더, 디코더 및 저장 매체
CN113711603A (zh) * 2019-08-23 2021-11-26 华为技术有限公司 对使用联合色度译码的块执行色度去块效应滤波的编码器、解码器及对应方法
JP7460760B2 (ja) * 2019-09-17 2024-04-02 ホアウェイ・テクノロジーズ・カンパニー・リミテッド サブピクチャベースビデオコーディングにおいてサブピクチャidをシグナリングする
JPWO2021054380A1 (es) * 2019-09-20 2021-03-25
WO2021086061A1 (ko) * 2019-10-29 2021-05-06 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
CN114902678A (zh) * 2019-10-29 2022-08-12 Lg电子株式会社 基于变换的图像编码方法及其设备
WO2022114768A1 (ko) * 2020-11-24 2022-06-02 현대자동차주식회사 성분 간 참조를 이용하는 잔차신호 생성방법과 장치
WO2023016408A1 (en) * 2021-08-13 2023-02-16 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
CN117376551B (zh) * 2023-12-04 2024-02-23 淘宝(中国)软件有限公司 视频编码加速方法及电子设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101616330B (zh) * 2003-07-16 2012-07-04 三星电子株式会社 用于色彩图像的视频编码/解码装置和方法
TR201802291T4 (tr) * 2011-04-14 2018-03-21 Dolby Laboratories Licensing Corp Çoklu renk kanallı çoklu regresyon öngörücü.
KR20120140181A (ko) * 2011-06-20 2012-12-28 한국전자통신연구원 화면내 예측 블록 경계 필터링을 이용한 부호화/복호화 방법 및 그 장치
IN2014CN03184A (es) * 2011-11-02 2015-07-03 Nec Corp
JP2014534746A (ja) * 2011-11-07 2014-12-18 インテル コーポレイション クロスチャネル残差予測
US9344722B2 (en) * 2011-11-18 2016-05-17 Futurewei Technologies, Inc. Scanning of prediction residuals in high efficiency video coding
CN103379321B (zh) * 2012-04-16 2017-02-01 华为技术有限公司 视频图像分量的预测方法和装置
US20140286413A1 (en) * 2013-03-25 2014-09-25 Qualcomm Incorporated Disabling sign data hiding in video coding
US9736487B2 (en) * 2013-03-26 2017-08-15 Mediatek Inc. Method of cross color intra prediction
EP2984837B1 (en) * 2013-04-08 2018-01-17 GE Video Compression, LLC Inter-component prediction
US20140348240A1 (en) 2013-05-22 2014-11-27 Qualcomm Incorporated Video coding using sample prediction among color components

Also Published As

Publication number Publication date
KR20170107448A (ko) 2017-09-25
CN107211124B (zh) 2019-10-18
EA034473B1 (ru) 2020-02-12
CN107211124A (zh) 2017-09-26
TW201640895A (zh) 2016-11-16
WO2016123219A1 (en) 2016-08-04
TN2017000284A1 (en) 2019-01-16
HUE041885T2 (hu) 2019-06-28
CA2972501C (en) 2020-08-18
TWI705698B (zh) 2020-09-21
JP6543716B2 (ja) 2019-07-10
EP3092803B1 (en) 2018-12-12
US9998742B2 (en) 2018-06-12
EA201791476A1 (ru) 2017-11-30
CA2972501A1 (en) 2016-08-04
BR112017016111A2 (pt) 2018-03-27
US20160219283A1 (en) 2016-07-28
EP3092803A1 (en) 2016-11-16
JP2018509035A (ja) 2018-03-29
KR102519241B1 (ko) 2023-04-06

Similar Documents

Publication Publication Date Title
ES2715555T3 (es) Predicción residual de componentes cruzadas adaptativa
ES2611349T3 (es) Codificación de Indicador de bloque codificado (CBF) para el formato de muestra 4:2:2 en codificación de vídeo
ES2779461T3 (es) Intrapredicción de vídeo mejorada que usa una combinación de predicción dependiente de la posición para codificación de vídeo
ES2657546T3 (es) Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo
ES2763443T3 (es) Codificación de vídeo en modo intra
ES2705746T3 (es) Inicialización de estados y probabilidades de contexto para codificación de entropía adaptativa al contexto
ES2897708T3 (es) Modelado de contexto eficiente en memoria
ES2688359T3 (es) Filtro de desplazamiento de banda central adaptativo para codificación de vídeo
ES2549145T3 (es) Reducción de contexto para codificación aritmética binaria adaptativa según el contexto
ES2899642T3 (es) Procesamiento en paralelo de mosaicos y de frente de onda
ES2637490T3 (es) Grupos de coeficientes y codificación de coeficientes para barridos de coeficientes
ES2765038T3 (es) Modelo de almacenamiento intermedio de bajo retardo en codificación de vídeo
ES2608595T3 (es) Mejora del rendimiento para la codificación del nivel de coeficientes de la CABAC
ES2648312T3 (es) Relleno de píxeles de borde para intra-predicción en codificación de vídeo
ES2750124T3 (es) Elementos sintácticos de señalización para coeficientes de transformada para subconjuntos de una unidad de codificación a nivel de hoja
ES2649532T3 (es) Predicción ponderada explícita de alta precisión para la codificación de vídeo
ES2736312T3 (es) Señalización de imágenes de referencia a largo plazo para codificación de vídeo
US20120307894A1 (en) Intra prediction mode coding with directional partitions
ES2736308T3 (es) Predicción de texturas entre capas para codificación de vídeo
ES2886344T3 (es) Predicción residual generalizada para codificación de vídeo escalable y codificación de vídeo 3D
ES2842082T3 (es) Indicación de alineación de tipos de imágenes entre capas en la codificación de vídeo multicapa
ES2703342T3 (es) Selección de imagen de referencia
WO2013155428A1 (en) Common spatial candidate blocks for parallel motion estimation
ES2616486T3 (es) Obtención de contexto para la codificación de última posición para la codificación de vídeo
WO2013155424A1 (en) Common motion information candidate list construction process