ES2892479T3 - Modo de predicción ponderada para codificación de video escalable - Google Patents

Modo de predicción ponderada para codificación de video escalable Download PDF

Info

Publication number
ES2892479T3
ES2892479T3 ES19212280T ES19212280T ES2892479T3 ES 2892479 T3 ES2892479 T3 ES 2892479T3 ES 19212280 T ES19212280 T ES 19212280T ES 19212280 T ES19212280 T ES 19212280T ES 2892479 T3 ES2892479 T3 ES 2892479T3
Authority
ES
Spain
Prior art keywords
weighted
predictor
video
prediction
block
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
ES19212280T
Other languages
English (en)
Inventor
Vadim Seregin
Jianle Chen
Xiang Li
Krishnakanth Rapaka
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 ES2892479T3 publication Critical patent/ES2892479T3/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/46Embedding additional information in the video signal during the compression process
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Un método de decodificación video, el método comprende: obtener un flujo de bits de video que define la información de video de la capa base y la información de video de la capa de mejora; y determinar un predictor de un bloque actual de información de video de la capa de mejora basado al menos en un predictor intercapa ponderado de al menos un componente de color de una unidad de video del bloque actual y un predictor intracapa ponderado de al menos un componente de color de la unidad de video, caracterizado porque un factor de ponderación asociado con el predictor intercapa ponderado y un factor de ponderación asociado con el predictor intracapa ponderado se basan al menos en una distancia de la unidad de video desde un límite del bloque actual en donde la determinación del predictor del bloque actual basado al menos en el predictor intercapa ponderado y el predictor intracapa ponderado es en respuesta a la determinación de que el bloque actual tiene un tamaño que excede un umbral o en una lista o grupo de tamaños de bloque.

Description

DESCRIPCIÓN
Modo de predicción ponderada para codificación de video escalable
CAMPO TÉCNICO
La presente divulgación se refiere a la codificación y compresión de video y, en particular, a la codificación de video escalable (SVC).
ANTECEDENTES
Las capacidades de video digital se pueden incorporar en una amplia gama de dispositivos, incluidos televisores digitales, sistemas de transmisión directa digital, sistemas de transmisión inalámbrica, asistentes digitales personales (PDA), computadoras portátiles o de escritorio, tabletas, lectores de libros electrónicos, cámaras digitales, dispositivos de grabación digital, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, radioteléfonos móviles o por satélite, los denominados "teléfonos inteligentes", dispositivos de video teleconferencia, dispositivos de transmisión de video y similares. Los dispositivos de video digital implementan técnicas de codificación de video, como las descritas en los estándares definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificación de video avanzada (AVC), el estándar de Codificación de video de alta eficiencia (HEVC) actualmente en desarrollo, y extensiones de dichos estándares. Los dispositivos de video pueden transmitir, recibir, codificar, decodificar y/o almacenar información de video digital de manera más eficiente implementando tales técnicas de codificación de video.
Las técnicas de codificación de video incluyen predicciones espaciales (intraimagen) y/o predicciones temporales (interimagen) para reducir o eliminar la redundancia inherente a las secuencias de video. Para la codificación de video basada en bloques, un segmento de video (por ejemplo, una trama de video o una parte de una trama de video) se puede dividir en bloques de video, que también pueden denominarse bloques de árbol, unidades de codificación (CU) y/o nodos de codificación. Los bloques de video en un segmento intracodificado (I) de una imagen se codifican utilizando la predicción espacial con respecto a las muestras de referencia en los bloques vecinos en la misma imagen. Los bloques de video en un segmento intercodificado (P o B) de una imagen pueden usar predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma imagen o predicción temporal con respecto a muestras de referencia en otras imágenes de referencia. Las imágenes pueden denominarse fotogramas y las imágenes de referencia pueden denominarse fotogramas de referencia.
La predicción espacial o temporal da como resultado un bloque predictivo para la codificación de un bloque. Los datos residuales representan las diferencias de píxeles entre el bloque original a codificar y el bloque predictivo. Un bloque intercodificado se codifica según un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales indican la diferencia entre el bloque codificado y el bloque predictivo. Un bloque intracodificado se codifica según un modo de intracodificación y los datos residuales. Para una compresión adicional, los datos residuales pueden transformarse del dominio de píxeles a un dominio de transformada, lo que resulta en coeficientes de transformada residuales, que luego pueden cuantificarse. Los coeficientes de transformada cuantificados, dispuestos inicialmente en una matriz bidimensional, se pueden escanear para producir un vector unidimensional de coeficientes de transformada, y se puede aplicar codificación entrópica para lograr una compresión aún mayor.
Algunos esquemas de codificación y compresión de video basados en bloques utilizan técnicas escalables, como la codificación de video escalable (SVC). La codificación de video escalable, descrito de forma general, se refiere a la codificación de video en la que se utilizan una capa base y una o más capas de mejora escalables. Para SVC, una capa base normalmente transporta datos de video con un nivel de calidad básico. Una o más capas de mejora transportan datos de video adicionales para admitir niveles más altos de espacio, tiempo y/o calidad (también denominados relación señal/ruido o SNR). En algunos casos, la capa base puede transmitirse de una manera más confiable que la transmisión de capas de mejora.
Cada una de estas capas puede incluir uno o más bloques de video, que pueden codificarse en un orden de codificación particular (por ejemplo, codificados secuencialmente de izquierda a derecha y línea por línea, de arriba a abajo). Las capas pueden tener el mismo tamaño de bloque o diferentes tamaños de bloque, según la resolución espacial de la capa.
En este contexto, los siguientes documentos son técnica anterior relevante y divulgan el uso de un predictor intracapa ponderado y un predictor intercapa ponderado para determinar un predictor de un bloque actual de información de capa de mejora:
D1 SEUNG HWAN KIM ET AL: "Algoritmo de codificación de video escalable basado en trama de referencia múltiple adaptable", CONFERENCIA INTERNACIONAL SOBRE PROCESAMIENTO DE IMÁGENES (ICIP), IEEE, vol. 2, 22 de septiembre de 2002, páginas 33-36, ISBN: 978-0-7803-7622-9
D2 KAMP S ET AL: "Adaptación local del factor de fuga AR-FGS", 19. REUNIÓN JVT; 31 de marzo de 2006 al 07 de abril 2006; GINEBRA, CH; (EQUIPO CONJUNTO DE VIDEO DE ISO/IEC JTC1/SC29/WG11 E ITU-TSG.16), n. ° JVT-S092, 28 de marzo de 2006, ISSN: 0000-0409
D3 CIEPLINSKI L: "Factores de fuga de adaptación basados en MV para AR-FGS", 20. REUNIÓN JVT; 77. REUNIÓN MPEG; 15 de julio de 2006 al 21 de julio de 2006; KLAGENFURT, AT; (EQUIPO CONJUNTO DE VIDEO DE ISO/IEC JTC1/SC29/WG11 E ITUTSG.16), n. ° JVT-T078, 18 de julio de 2006, ISSN: 0000-0408
SUMARIO
Los sistemas, métodos y dispositivos de la invención tienen cada uno varios aspectos, ninguno de los cuales es el único responsable de sus atributos deseables. Sin limitar el alcance de esta invención, como se expresa en las siguientes reivindicaciones, ahora se explicarán brevemente algunas características. Después de considerar este análisis, y en particular después de leer la sección titulada "Descripción detallada", se entenderá cómo las características de esta invención proporcionan ventajas que incluyen determinar un predictor para un bloque de información de video basado en el predictor ponderado de una primera capa de datos de video y un predictor ponderado de una segunda capa de datos de video.
En una realización, se proporciona un método de decodificación de video según la reivindicación 1.
En una realización adicional, se proporciona un método de codificación de video según la reivindicación 2.
En una realización adicional, se proporciona un medio de almacenamiento legible por ordenador que comprende instrucciones ejecutables según la reivindicación 16.
En otra realización adicional, se proporciona un aparato para codificar video digital según la reivindicación 17.
En otra realización adicional, se proporciona un aparato para decodificar video según la reivindicación 18.
Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y en la siguiente descripción. Otras características, objetos y ventajas serán evidentes a partir de la descripción, dibujos y reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La figura 1 es un diagrama de bloques que ilustra un sistema de codificación y decodificación de video de ejemplo que puede utilizar las técnicas según los aspectos descritos en la presente divulgación.
La figura 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de video que puede implementar las técnicas según los aspectos descritos en la presente divulgación.
La figura 3 es un diagrama de bloques que ilustra un ejemplo de un decodificador de video que puede implementar las técnicas según los aspectos descritos en la presente divulgación.
La figura 4A es un diagrama de bloques que ilustra predicciones de ejemplo de una unidad de video de capa de mejora.
La figura 4B es un diagrama de bloques que ilustra un modo de predicción ponderada de ejemplo de una unidad de video de capa de mejora.
La figura 5 es un diagrama de flujo de un proceso ilustrativo para determinar un valor de una unidad de video mediante el uso de predicciones ponderadas generadas según uno o más modos de predicción.
La figura 6 es un diagrama de flujo de un proceso ilustrativo para restringir el uso de la base del modo ponderado en el tamaño del bloque.
La figura 7 es un diagrama de flujo de un proceso ilustrativo para restringir el uso de compensación de movimiento con modo ponderado.
Las figuras 8A y 8B son diagramas de flujo que ilustran métodos de ejemplo para la predicción residual generalizada según los aspectos de la presente divulgación.
La figura 9 es un diagrama de flujo que ilustra un método de ejemplo para la predicción residual generalizada mediante el uso de decodificación de bucle único según aspectos de la presente divulgación.
Las figuras 10A y 10B son diagramas de flujo que ilustran métodos de ejemplo para la predicción residual generalizada mediante el uso de decodificación de bucle múltiple según los aspectos de la presente divulgación.
La figura 11 es un diagrama de flujo que ilustra un método de ejemplo para señalar parámetros de predicción residual generalizados según los aspectos de la presente divulgación.
La figura 12 es un diagrama de flujo que ilustra un método de ejemplo para derivar parámetros de predicción residual generalizados según los aspectos de la presente divulgación.
La figura 13 es un diagrama de flujo que ilustra un método de ejemplo para sobremuestreo o submuestreo de una capa en la predicción residual generalizada según los aspectos de la presente divulgación.
La figura 14 es un diagrama de flujo que ilustra un método de ejemplo para el remapeo, sobremuestreo o submuestreo de la información de movimiento en la predicción residual generalizada según los aspectos de la presente divulgación.
La figura 15 es un diagrama de flujo que ilustra un método de ejemplo para determinar un factor de ponderación en la predicción residual generalizada según los aspectos de la presente divulgación.
DESCRIPCIÓN DETALLADA
En una descripción general, la presente divulgación se refiere a la codificación de video. Durante el proceso de codificación de video, se pueden hacer predicciones con respecto a los componentes de unidades de video individuales (por ejemplo, píxeles o bloques de píxeles). Por ejemplo, los valores de luma y/o croma para ciertos píxeles o bloques de píxeles pueden predecirse a partir de otra información. Esto puede conservar los recursos informáticos (por ejemplo, ancho de banda, espacio de almacenamiento) porque los valores predichos pueden excluirse de un flujo de bits si el decodificador está configurado para predecir adecuadamente los valores. En la codificación de video de una sola capa, las predicciones normalmente son espaciales (por ejemplo, basadas en otras unidades de video en la misma trama de video que se codifica) o temporales (por ejemplo, en base a unidades de video correspondientes de tramas anteriores o posteriores). En la codificación de video escalable (SVC), la información de video puede codificarse lógica o físicamente como múltiples capas, como una capa base y cualquier número de capas de mejora. Por lo tanto, una trama individual de video SVC puede abarcar varias capas de información de video. En SVC, las predicciones para bloques en una trama de la capa de mejora se pueden hacer sobre una base espacial o temporal, como se describió anteriormente, o sobre una base intercapa (por ejemplo, basándose en las unidades de video correspondientes de la capa base para la misma trama). Sin embargo, en algunos casos una predicción realizada según uno de los métodos de predicción mencionados anteriormente (por ejemplo, predicción espacial, temporal o intercapa) puede no proporcionar una ventaja sustancial en la calidad de la imagen sobre los otros modos de predicción. Además, cada modo de predicción individual tiene sus propias limitaciones. La combinación de predicciones realizadas según múltiples modos de predicción, en algunos casos, puede proporcionar una ventaja en la calidad de la imagen sobre el uso de una predicción realizada según un único modo de predicción.
Los aspectos de esta divulgación se refieren a la combinación de predicciones realizadas según múltiples métodos o modos de predicción para generar una predicción final para una unidad de video. En algunas realizaciones, se puede definir un nuevo modo de predicción, que puede denominarse modo combinado o modo ponderado. En el modo combinado o modo ponderado, las predicciones realizadas según otros modos de predicción individuales se pueden ponderar y combinar para añadir diversidad a la predicción final (por ejemplo, una predicción de intercapa ponderada se puede combinar con una predicción de intracapa ponderada). Al añadir diversidad a una predicción final, el resultado puede ser una mejor predicción en los casos en los que, por ejemplo, un solo modo de predicción no proporciona una ventaja sustancial sobre otros modos de predicción o sobre una combinación de predicciones realizadas según múltiples modos de predicción. Por ejemplo, una predicción espacial (por ejemplo, una intrapredicción, como se describe con mayor detalle a continuación) puede proporcionar solo resultados marginalmente mejores, o resultados que no son mejores en absoluto, que una predicción temporal o una predicción intercapa (por ejemplo, una interpredicción o una predicción intraBL, respectivamente, como se describe con mayor detalle a continuación). La interpredicción se puede combinar con una o más predicciones de manera ponderada. Las predicciones pueden ponderarse de manera que una predicción realizada según un modo tenga mayor peso en la predicción final para una unidad de video determinada que una predicción realizada según un modo diferente. Opcionalmente, la predicción combinada se puede normalizar. Un predictor final generado de esta manera puede proporcionar resultados sustancialmente mejores que cualquier predictor individual.
En algunas realizaciones, los pesos usados en modo ponderado pueden ser diferentes para uno o más de los componentes de color individuales (por ejemplo, luma y ambos cromas) de una unidad de video. Por ejemplo, se puede aplicar un primer conjunto de ponderaciones (por ejemplo, 0,5 y 0,5) a dos predictores diferentes, respectivamente, para el componente de luma de la unidad de video. Se puede aplicar un segundo conjunto de ponderaciones (por ejemplo, 0 y 1) a dos predictores diferentes, respectivamente, para los componentes de croma. En algunas realizaciones, el modo ponderado se puede aplicar de manera selectiva a componentes de una unidad de video, como por ejemplo solo al componente de luma.
Las predicciones que pueden combinarse para generar un predictor final en el modo ponderado o modo combinado descrito en la presente no se limitan a interpredicciones, intrapredicciones y/o predicciones intercapa, tales como predicciones intraBL. Por el contrario, se puede usar cualquier predicción de una unidad de video en el modo ponderado. Por ejemplo, también puede usarse una predicción para un bloque de capa de mejora que se basa en un bloque de capa base reconstruido mediante el uso de técnicas de predicción residual. En esta predicción residual intercapa, el residuo de la capa base puede usarse para predecir el bloque actual u otra unidad de video en la capa de mejora. El residuo puede definirse como la diferencia entre la predicción temporal para una unidad de video y una unidad de video fuente (por ejemplo, una unidad de video de entrada). En la predicción residual intercapa, también denominada en la presente como predicción residual generalizada, el residuo de la capa base se factoriza en la predicción del bloque de corriente de la capa de mejora actual. Las técnicas de predicción residual se describen con mayor detalle a continuación. También se pueden combinar otras técnicas de predicción para generar un predictor final en modo ponderado.
Los aspectos adicionales de la divulgación se relacionan con la reducción o eliminación de cualquier efecto negativo que la implementación del modo ponderado pueda tener sobre el desempeño de la codificación de video, el almacenamiento de información de video o la transmisión de flujo de bits. En algunas realizaciones, el modo ponderado solo puede usarse para ciertos tamaños de bloque más grandes. Esto puede minimizar la cantidad de información de modo ponderado adicional que se incluye en un flujo de bits codificado. En realizaciones adicionales, ciertos modos de predicción pueden estar limitados o restringidos cuando se usan en modo ponderado. Por ejemplo, solo se puede usar la predicción de movimiento unidireccional para bloques de capa de mejora cuando se genera un predictor final en modo ponderado. Esto puede reducir la cantidad de información de compensación de movimiento y la complejidad computacional asociada que se incluye en un flujo de bits codificado. En realizaciones adicionales, ciertos modos de predicción pueden modificarse de otra manera cuando se utilizan en modo ponderado. Por ejemplo, la predicción unidireccional puede utilizarse para ciertos tamaños de bloque, incluso si se incluye información de compensación de movimiento bidireccional en un flujo de bits, reduciendo de este modo la complejidad de la codificación. Según otro ejemplo, el modo ponderado puede no usarse cuando se incluye información de compensación de movimiento bidireccional, o cuando los bloques a predecir están por debajo de un cierto tamaño, incluso si se señala un indicador de modo ponderado en el flujo de bits o el modo ponderado se utilizaría de otra manera.
Las técnicas descritas en la presente divulgación por lo general se refieren a la codificación de video escalable (SVC) y la codificación de video 3D. Por ejemplo, las técnicas pueden estar relacionadas y usarse con o dentro de una extensión de codificación de video escalable (SVC) de codificación de video de alta eficiencia (HEVC). La SVC se puede utilizar para proporcionar escalabilidad de calidad (también denominada señal-ruido (SNR)), escalabilidad espacial y/o escalabilidad temporal. En una extensión SVC, podría haber múltiples capas de información de video. La capa en el nivel inferior puede servir como capa base (BL) y la capa en la parte superior puede servir como capa mejorada (EL). La "capa mejorada" a veces se denomina "capa de mejora" y estos términos pueden usarse indistintamente. Todas las capas del medio pueden servir como e L o BL o como ambas. Por ejemplo, una capa en el medio puede ser una EL para las capas debajo de ella, como la capa base o cualquier capa de mejora intermedia, y al mismo tiempo servir como BL para las capas de mejora por encima de ella.
Solo a efectos ilustrativos, las técnicas descritas en la presente divulgación se describen con ejemplos que incluyen solo dos capas (por ejemplo, una capa de nivel inferior como la capa base y una capa de nivel superior como la capa mejorada). Debe entenderse que los ejemplos descritos en la presente divulgación pueden extenderse a ejemplos con múltiples capas base y también capas de mejora.
Una capa de mejora puede tener una resolución espacial diferente a la de la capa base. Por ejemplo, la relación de aspecto espacial entre EL y BL puede ser 1,0, 1,5, 2,0 u otras relaciones diferentes. En otras palabras, el aspecto espacial de la EL puede ser igual a 1,0, 1,5 o 2,0 veces el aspecto espacial de la BL. En algunos ejemplos, el factor de escala de la EL puede ser mayor que el factor de escala de la BL. Por ejemplo, el tamaño de las imágenes en la EL puede ser mayor que el tamaño de las imágenes en la BL. De esta manera, puede ser posible, aunque no una limitación, que la resolución espacial de la EL sea mayor que la resolución espacial de la BL.
Los estándares de codificación de video incluyen ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 o ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (también conocido como ISO/IEC MPEG-4 AVC), incluidas sus extensiones Codificación de video escalable (SVC) y Codificación de video multivista (MVC). Además, un nuevo estándar de codificación de video, a saber, codificación de video de alta eficiencia (HEVC), es desarrollado por el equipo de colaboración conjunta sobre codificación de video (JCT-VC) del grupo de expertos en codificación de video iTU-T (VCEG) y el grupo de expertos en imágenes en movimiento ISO/IEC (MPEG). Un borrador reciente de HEVC está disponible en http://wg11.sc29.org/jet/doc_end user/currentdocument.php?id=5885/JCTVC-I1003-v2, con fecha 7 de junio de 2012. Otro borrador reciente del estándar HEVC, denominado "Borrador de trabajo 7 de HEVC", se puede descargar de http://phenix.itsudparis.eu/ict/doc end user/documents/9 Geneva/wg11/JCTVC-I1003-v3.zip, con fecha de 7 de junio de 2012. La cita completa para el borrador de trabajo 7 de HEVC es el documento HCTVC-11003, Bross et al., "Borrador 7 de la especificación de texto de codificación de video de alta eficiencia (HEVC)", Equipo colaborativo conjunto sobre codificación de video (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 9° reunión: Ginebra, Suiza, 27 de abril de 2012 al 7 de mayo de 2012.
Varios aspectos de los nuevos sistemas, aparatos y métodos se describen con mayor detalle a continuación con referencia a los dibujos adjuntos. Se pretende que los aspectos de la divulgación se puedan aplicar ampliamente a diferentes tecnologías inalámbricas, configuraciones de sistemas, redes y protocolos de transmisión, algunos de los cuales se ilustran a modo de ejemplo en las figuras y en la siguiente descripción de los aspectos preferidos. La descripción detallada y los dibujos son meramente ilustrativos de la divulgación más que limitativos, el alcance de la divulgación está definido por las reivindicaciones adjuntas.
La figura 1 es un diagrama de bloques que ilustra un sistema de codificación y decodificación de video de ejemplo que puede utilizar las técnicas según los aspectos descritos en la presente divulgación. Como se muestra en la figura 1, el sistema 10 incluye un dispositivo de origen 12 que proporciona datos de video codificados para ser decodificados en un momento posterior por un dispositivo de destino 14. En particular, el dispositivo de origen 12 proporciona los datos de video al dispositivo de destino 14 a través de un medio legible por ordenador 16. El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera de una amplia gama de dispositivos, que incluyen ordenadores de escritorio, ordenadores portátiles (es decir, ordenadores portátiles), tabletas, decodificadores, aparato telefónico con microteléfono como los denominados teléfonos "inteligentes", los denominadas teclados "inteligentes", televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos, dispositivos de transmisión de video o similares. En algunos casos, el dispositivo de origen 12 y el dispositivo de destino 14 pueden estar equipados para comunicación inalámbrica.
El dispositivo de destino 14 puede recibir los datos de video codificados para decodificarlos a través de un medio legible por ordenador 16. El medio legible por ordenador 16 puede comprender cualquier tipo de medio o dispositivo capaz de mover los datos de video codificados desde el dispositivo de origen 12 al dispositivo de destino 14. En un ejemplo, el medio legible por ordenador 16 puede comprender un medio de comunicación para permitir que el dispositivo de origen 12 transmita datos de video codificados directamente al dispositivo de destino 14 en tiempo real. Los datos de video codificados pueden modularse de acuerdo con un estándar de comunicación, tal como un protocolo de comunicación inalámbrica, y transmitirse al dispositivo 14 de destino. El medio de comunicación puede comprender cualquier medio de comunicación inalámbrica o cableada, como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión físicas. El medio de comunicación puede formar parte de una red basada en paquetes, como una red de área local, una red de área amplia o una red global como Internet. El medio de comunicación puede incluir enrutadores, conmutadores, estaciones base o cualquier otro equipo que pueda ser útil para facilitar la comunicación desde el dispositivo de origen 12 al dispositivo de destino 14.
En algunos ejemplos, los datos codificados pueden salir desde la interfaz de salida 22 a un dispositivo de almacenamiento. De manera similar, se puede acceder a los datos codificados desde el dispositivo de almacenamiento mediante la interfaz de entrada. El dispositivo de almacenamiento puede incluir cualquiera de una variedad de medios de almacenamiento de datos distribuidos o de acceso local, como un disco duro, discos Blu-ray, DVD, CD-ROM, memoria rápida, memoria volátil o no volátil o cualquier otro medio de almacenamiento digital adecuado para almacenar datos de video codificados. En un ejemplo adicional, el dispositivo de almacenamiento puede corresponder a un servidor de archivos u otro dispositivo de almacenamiento intermedio que puede almacenar el video codificado generado por el dispositivo de origen 12. El dispositivo de destino 14 puede acceder a los datos de video almacenados desde el dispositivo de almacenamiento mediante transmisión o descarga. El servidor de archivos puede ser cualquier tipo de servidor capaz de almacenar datos de video codificados y transmitir esos datos de video codificados al dispositivo de destino 14. Ejemplos de los servidores de archivos incluyen un servidor web (por ejemplo, para un sitio web), un servidor FTP, dispositivos de almacenamiento conectados a la red (NAS) o una unidad de disco local. El dispositivo de destino 14 puede acceder a los datos de video codificados a través de cualquier conexión de datos estándar, incluida una conexión a Internet. Puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión por cable (por ejemplo, DSL, módem por cable, etc.) o una combinación de ambos que sea adecuada para acceder a datos de video codificados almacenados en un servidor de archivos. La transmisión de datos de video codificados desde el dispositivo de almacenamiento puede ser una transmisión en directo, una transmisión de descarga o una combinación de las mismas.
Las técnicas de esta divulgación no se limitan necesariamente a aplicaciones o configuraciones inalámbricas. Las técnicas se pueden aplicar a la codificación de video para admitir cualquiera de una variedad de aplicaciones multimedia, como transmisiones de televisión por aire, transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de video en directo por Internet, tales como transmisión dinámica adaptativa a través de HTTP (DASH), video digital que está codificado en un medio de almacenamiento de datos, decodificación de video digital almacenado en un medio de almacenamiento de datos u otras aplicaciones. En algunos ejemplos, el sistema 10 puede configurarse para admitir transmisión de video unidireccional o bidireccional para admitir aplicaciones tales como transmisión de video, reproducción de video, difusión de video y/o telefonía de video.
En el ejemplo de la figura 1, el dispositivo de origen 12 incluye una fuente de video 18, un codificador de video 20, una interfaz de salida 22. El dispositivo de destino 14 incluye una interfaz de entrada 28, un decodificador de video 30 y un dispositivo de visualización 32. Según esta descripción, el codificador de video 20 del dispositivo de origen 12 puede configurarse para aplicar las técnicas para codificar un flujo de bits que incluye datos de video que se ajustan a múltiples estándares o extensiones estándar. En otros ejemplos, un dispositivo de origen y un dispositivo de destino pueden incluir otros componentes o disposiciones. Por ejemplo, el dispositivo de origen 12 puede recibir datos de video desde una fuente de video externa 18, tal como una cámara externa. Asimismo, el dispositivo de destino 14 puede interactuar con un dispositivo de visualización externo, en lugar de incluir un dispositivo de visualización integrado.
El sistema ilustrado 10 de la figura 1 es simplemente un ejemplo. Las técnicas para determinar candidatos para una lista de candidatos para predictores de vector de movimiento para un bloque actual pueden realizarse mediante cualquier dispositivo de codificación y/o decodificación de video digital. Aunque generalmente las técnicas de esta divulgación se realizan mediante un dispositivo de codificación de video, las técnicas también se pueden realizar mediante un codificador/decodificador de video, por lo general denominado "CÓDEC". Además, las técnicas de esta divulgación también pueden ser realizadas por un preprocesador de video. El dispositivo de origen 12 y el dispositivo de destino 14 son simplemente ejemplos de tales dispositivos de codificación en los que el dispositivo de origen 12 genera datos de video codificados para su transmisión al dispositivo de destino 14. En algunos ejemplos, los dispositivos 12, 14 pueden funcionar de una manera sustancialmente simétrica de modo que cada uno de los dispositivos 12, 14 incluya componentes de codificación y decodificación de video. Por lo tanto, el sistema 10 puede admitir la transmisión de video unidireccional o bidireccional entre dispositivos de video 12, 14, por ejemplo, para transmisión de video, reproducción de video, transmisión de video o telefonía de video.
La fuente de video 18 del dispositivo de origen 12 puede incluir un dispositivo de captura de video, como una cámara de video, un archivo de video que contiene video capturado previamente y/o una interfaz de alimentación de video para recibir video de un proveedor de contenido de video. Como alternativa adicional, la fuente de video 18 puede generar datos basados en gráficos de computadora como el video fuente, o una combinación de video en vivo, video archivado y video generado por ordenador. En algunos casos, si la fuente de video 18 es una cámara de video, el dispositivo de origen 12 y el dispositivo de destino 14 pueden formar los denominados teléfonos con cámara o videoteléfonos. Sin embargo, como se mencionó anteriormente, las técnicas descritas en esta divulgación pueden ser aplicables a la codificación de video en general, y pueden aplicarse a aplicaciones inalámbricas y/o cableadas. En cada caso, el video capturado, precapturado o generado por ordenador puede ser codificado por el codificador de video 20. La información de video codificada puede ser emitida luego por la interfaz de salida 22 a un medio legible por ordenador 16.
El medio legible por ordenador 16 puede incluir medios transitorios, como una transmisión inalámbrica o una transmisión de red por cable, o medios de almacenamiento (es decir, medios de almacenamiento no transitorios), como un disco duro, una unidad rápida, un disco compacto, un disco de video digital, disco Blu-ray u otro medio legible por ordenador. En algunos ejemplos, un servidor de red (no mostrado) puede recibir datos de video codificados desde el dispositivo de origen 12 y proporcionar los datos de video codificados al dispositivo 14 de destino, por ejemplo, a través de transmisión de red, comunicación por cable directa, etc. De manera similar, un dispositivo informático de una instalación de producción de medio, como una instalación de estampado de discos, puede recibir datos de video codificados desde el dispositivo de origen 12 y producir un disco que contenga los datos de video codificados. Por lo tanto, puede entenderse que el medio legible por ordenador 16 incluye uno o más medios legibles por ordenador de diversas formas, en varios ejemplos.
La interfaz de entrada 28 del dispositivo de destino 14 recibe información desde el medio legible por ordenador 16. La información del medio legible por ordenador 16 puede incluir información de sintaxis definida por el codificador de video 20, que también es utilizada por el decodificador de video 30, que incluye elementos de sintaxis que describen características y/o procesamiento de bloques y otras unidades codificadas, por ejemplo, GOP. El dispositivo de visualización 32 muestra los datos de video decodificados a un usuario y puede comprender cualquiera de una variedad de dispositivos de visualización tales como un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodo emisor de luz orgánica (OLED), u otro tipo de dispositivo de visualización.
] El codificador de video 20 y el decodificador de video 30 pueden funcionar según un estándar de codificación de video, como el estándar de codificación de video de alta eficiencia (HEVC) actualmente en desarrollo, y pueden ajustarse al modelo de prueba HEVC (HM). Alternativamente, el codificador de video 20 y el decodificador de video 30 pueden operar de acuerdo con otros estándares de propiedad o de la industria, como el estándar ITU-T H.264, también conocido como MPEG-4, Parte 10, Codificación de video avanzada (AVC) o extensiones de tales estándares. Sin embargo, las técnicas de la presente divulgación no se limitan a ningún estándar de codificación particular, que incluye, entre otros, cualquiera de los estándares enumerados anteriormente. Otros ejemplos de estándares de codificación de video incluyen MPEG-2 e ITU-T H.263. Aunque no se muestra en la figura 1, en algunos aspectos, el codificador de video 20 y el decodificador de video 30 pueden estar integrados cada uno con un codificador y decodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro hardware y software, para manejar la codificación de audio y video en un flujo de datos común o flujos de datos separados. Si corresponde, las unidades MUX-DEMUX pueden ajustarse al protocolo multiplexor ITU H.223 u otros protocolos como el protocolo de datagramas de usuario (UDP).
] El codificador de video 20 y el decodificador de video 30 pueden implementarse cada uno como cualquiera de una variedad de circuitos de codificador adecuados, como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados de aplicación específica (ASIC), matrices de puertas programables en campo (FPGA), lógica discreta, software, hardware, microprograma o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio legible por ordenador adecuado y no transitorio y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Cada codificador de video 20 y decodificador de video 30 se pueden incluir en uno o más codificadores o decodificadores, cualquiera de los cuales puede integrarse como parte de un codificador/decodificador combinado (CÓDEC) en un dispositivo respectivo. Un dispositivo que incluye un codificador de video 20 y/o un decodificador de video 30 puede comprender un circuito integrado, un microprocesador y/o un dispositivo de comunicación inalámbrica, como un teléfono celular.
El JCT-VC está trabajando en el desarrollo del estándar HEVC. Los esfuerzos de estandarización de HEVC se basan en un modelo en evolución de un dispositivo de codificación de video denominado modelo de prueba de HEVC (HM). El HM presupone varias capacidades adicionales de los dispositivos de codificación de video en relación con los dispositivos existentes según, por ejemplo, ITU-T H.264/AVC. Por ejemplo, mientras que H.264 proporciona nueve modos de codificación intrapredicción, el HM puede proporcionar hasta treinta y tres modos de codificación intrapredicción.
En general, el modelo de trabajo del HM describe que una trama de video o una imagen se puede dividir en una secuencia de bloques de árbol o unidades de codificación más grandes (LCU) que incluyen tanto muestras de luma como de croma. Los datos de sintaxis dentro de un flujo de bits pueden definir un tamaño para la LCU, que es la unidad de codificación más grande en términos de número de píxeles. Un segmento incluye varios bloques de árboles consecutivos en orden de codificación. Una trama de video o una imagen se puede dividir en uno o más segmentos. Cada bloque de árbol se puede dividir en unidades de codificación (CU) según un árbol cuaternario. En general, una estructura de datos del árbol cuaternario incluye un nodo por CU, con un nodo raíz correspondiente al bloque de árbol. Si una CU se divide en cuatro sub-CU, el nodo correspondiente a la CU incluye cuatro nodos hoja, cada uno de los cuales corresponde a una de las sub-CU.
Cada nodo de la estructura de datos del árbol cuaternario puede proporcionar datos de sintaxis para la CU correspondiente. Por ejemplo, un nodo en el árbol cuaternario puede incluir un indicador de división, que indica si la CU correspondiente al nodo está dividida en sub-CU. Los elementos de sintaxis de una CU pueden definirse de forma recursiva y pueden depender de si la CU se divide en sub-UC. Si una CU no se divide más, se denomina hoja-CU. En esta divulgación, cuatro sub-CU de una hoja-CU también se denominará hojas-CU incluso si no hay una división explícita de la hoja-CU original. Por ejemplo, si una CU con un tamaño de 16x16 no se divide más, las cuatro sub-CU de 8x8 también se denominarán hojas-CU, aunque la CU de 16x16 nunca se dividió.
Una CU tiene un propósito similar a un macrobloque del estándar H.264, excepto que una CU no tiene una distinción de tamaño. Por ejemplo, un bloque de árbol puede dividirse en cuatro nodos secundarios (también denominados sub-CU), y cada nodo secundario puede ser a su vez un nodo principal y dividirse en otros cuatro nodos secundarios. Un nodo secundario final no dividido, denominado nodo hoja del árbol cuaternario, comprende un nodo de codificación, también denominado hoja-CU. Los datos de sintaxis asociados con un flujo de bits codificado pueden definir un número máximo de veces que un bloque de árbol se puede dividir, lo que se denomina profundidad máxima de CU, y también pueden definir un tamaño mínimo de los nodos de codificación. Por consiguiente, un flujo de bits también puede definir una unidad de codificación más pequeña (SCU). Esta divulgación utiliza el término "bloque" para referirse a cualquiera de una CU, PU o TU, en el contexto de HEVC, o estructuras de datos similares en el contexto de otros estándares (por ejemplo, macrobloques y sub-bloques de los mismos en H.264/AVC).
Una CU incluye un nodo de codificación y unidades de predicción (PU) y unidades de transformada (TU) asociadas con el nodo de codificación. Un tamaño de la CU corresponde al tamaño del nodo de codificación y debe tener 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 contener una o más PU y una o más TU. Los datos de sintaxis asociados con una CU pueden describir, por ejemplo, la división de la CU en una o más PU. Los modos de división pueden diferir entre si la CU está codificada en modo directo u omisión, codificada en modo intrapredicción o codificada en modo interpredicción. Las PU pueden dividirse para que tengan una forma no cuadrada. Los datos de sintaxis asociados con una CU también pueden describir, por ejemplo, la división de la CU en una o más TU según un árbol cuaternario. Una TU puede tener forma cuadrada o no cuadrada (por ejemplo, rectangular).
El estándar HEVC permite transformadas de acuerdo con las TU, que pueden ser diferentes para diferentes CU. El tamaño de las TU normalmente se basa en el tamaño de las PU dentro de una CU determinada definida para una LCU dividida, aunque puede que no siempre sea así. Las TU suelen ser del mismo tamaño o más pequeñas que las PU. En algunos ejemplos, las muestras residuales correspondientes a una CU pueden subdividirse en unidades más pequeñas utilizando una estructura de árbol cuaternario conocida como "árbol cuaternario residual" (RQT). Los nodos hoja del RQT pueden denominarse unidades de transformada (TU). Los valores de diferencia de píxeles asociados con las TU pueden transformarse para producir coeficientes de transformación, que pueden cuantificarse.
Una hoja-CU puede incluir una o más unidades de predicción (PU). En general, una PU representa un área espacial que corresponde a la totalidad o una parte de la CU correspondiente, y puede incluir datos para recuperar una muestra de referencia para la PU. Además, una PU incluye datos relacionados con la predicción. Por ejemplo, cuando la PU está codificada intramodo, los datos para la PU pueden incluirse en un árbol cuaternario residual (RQT), que puede incluir datos que describen un modo de intrapredicción para una TU correspondiente a la PU. Como otro ejemplo, cuando la PU está codificada intermodo, la PU puede incluir datos que definen uno o más vectores de movimiento para la PU. Los datos que definen el vector de movimiento para una PU pueden describir, por ejemplo, un componente horizontal del vector de movimiento, un 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.
Una hoja-CU que tiene una o más PU también puede incluir una o más unidades de transformada (TU). Las unidades de transformada se pueden especificar usando un RQT (también denominado estructura de árbol cuaternario de TU), como se discutió anteriormente. Por ejemplo, un indicador de división puede indicar si una hoja-CU se divide en cuatro unidades de transformada. Entonces, cada unidad de transformada puede dividirse en más sub-TU. Cuando una TU no se divide más, puede denominarse hoja-CU. Por lo general, para la intracodificación, todas las TU de hoja que pertenecen a una hoja-CU comparten el mismo modo de intrapredicción. Es decir, el mismo modo de intrapredicción se aplica generalmente para calcular los valores predichos para todas las TU de una hoja-CU. Para la intracodificación, un codificador de video puede calcular un valor residual para cada hoja-TU usando el modo de intrapredicción, como una diferencia entre la parte de la CU correspondiente a la TU y el bloque original. Una TU no se limita necesariamente al tamaño de una Pu. Por lo tanto, las TU pueden ser más grandes o más pequeñas que una PU. Para la intracodificación, una PU puede estar colocada con una hoja-TU correspondiente para la misma CU. En algunos ejemplos, el tamaño máximo de una hoja-TU puede corresponder al tamaño de la hoja-CU correspondiente.
Además, las TU de las hojas-CU también se pueden asociar con las respectivas estructuras de datos del árbol cuaternario, denominadas árboles cuaternarios residuales (RQT). Es decir, una hoja-CU puede incluir un árbol cuaternario que indica cómo la hoja-CU se divide en las TU. El nodo raíz de un árbol cuaternario de TU corresponde generalmente a una hoja-CU, mientras que el nodo raíz de un árbol cuaternario de CU corresponde generalmente a un bloque de árbol (o LCU). Las TU del RQT que no están divididas se denominan hojas-TU. En general, esta divulgación utiliza los términos CU y TU para referirse a hoja-CU y hoja-TU, respectivamente, a menos que se indique lo contrario.
Una secuencia de video generalmente incluye una serie de tramas o imágenes de video. Un grupo de imágenes (GOP) generalmente comprende una serie de una o más de las imágenes de video. Un GOP puede incluir datos de sintaxis en un encabezado del GOP, un encabezado de una o más de las imágenes, o en cualquier otro lugar, que describa una serie de imágenes incluidas en el GOP. Cada segmento de una imagen puede incluir datos de sintaxis de segmento que describen un modo de codificación para el segmento respectivo. El codificador de video 20 normalmente funciona en bloques de video dentro de segmentos de video individuales para codificar los datos de video. Un bloque de video puede corresponder a un nodo de codificación dentro de una CU. Los bloques de video pueden tener tamaños fijos o variables, y pueden diferir en tamaño según un estándar de codificación específico.
Como ejemplo, el HM admite la predicción en varios tamaños de PU. Suponiendo que el tamaño de una CU particular es 2Nx2N, el HM admite la intrapredicción en tamaños de PU de 2Nx2N o NxN, y la interpredicción en tamaños de PU simétricos de 2Nx2N, 2NxN, Nx2N o NxN. El HM también admite divisiones asimétricas para la 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 se divide, mientras que la otra dirección se divide en 25 % y 75 %. La parte de la CU correspondiente a la división del 25 % se indica con una "n" seguida de una indicación de "Arriba", "Abajo", "Izquierda" o "Derecha". Así, por ejemplo, "2NxnU" se refiere a una CU de 2Nx2N que está dividida horizontalmente con una PU de 2Nx0,5N en la parte superior y una PU de 2Nx1,5N en la parte inferior.
En esta descripción, "NxN" y "N por N" pueden usarse indistintamente para referirse a las dimensiones de píxeles de un bloque de video 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 dirección vertical (y = 16) y 16 píxeles en dirección horizontal (x = 16). Asimismo, un bloque NxN generalmente tiene 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 pueden disponerse en filas y columnas. Además, es posible que los bloques no tengan necesariamente el mismo número de píxeles en la dirección horizontal que en la dirección vertical. Por ejemplo, los bloques pueden comprender NxM píxeles, donde M no es necesariamente igual a N.
Después de la codificación intrapredictiva o interpredictiva usando las PU de una CU, el codificador de video 20 puede calcular datos residuales para las TU de la CU. Las PU pueden comprender datos de sintaxis que describen un método o modo para generar datos de píxeles predictivos en el dominio espacial (también denominado dominio de píxeles) y las TU pueden comprender coeficientes en el dominio de transformada después de la aplicación de una transformada, por ejemplo, una transformada de coseno discreta (DCT), una transformada entera, una transformada ondícula o una transformada conceptualmente similar a los datos de video residuales. Los datos residuales pueden corresponder a las diferencias de píxeles entre los píxeles de la imagen no codificada y los valores de predicción correspondientes a las PU. El codificador de video 20 puede formar las TU que incluyen los datos residuales para la CU, y luego transformar las TU para producir coeficientes de transformada para la CU. Después de cualquier transformación para producir coeficientes de transformada, el codificador de video 20 puede realizar la cuantificación de los coeficientes de transformada. La cuantificación es un término amplio destinado a tener su significado común más amplio. En una realización, la cuantificación se refiere a un proceso en el que los coeficientes de transformada se cuantifican para reducir posiblemente la cantidad de datos utilizados para representar los coeficientes, proporcionando una mayor compresión. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o todos los coeficientes. Por ejemplo, un valor de n bits puede redondearse hacia abajo a un valor de m bits durante la cuantificación, donde n es mayor que m.
Después de la cuantificación, el codificador de video puede escanear los coeficientes de transformada, produciendo un vector unidimensional a partir de la matriz bidimensional que incluye los coeficientes de transformada cuantificados. La exploración puede diseñarse para colocar coeficientes de energía más alta (y por lo tanto de frecuencia más baja) en la parte delantera de la matriz y para colocar coeficientes de energía más baja (y por lo tanto de frecuencia más alta) en la parte posterior de la matriz. En algunos ejemplos, el codificador de video 20 puede utilizar un orden de exploración predefinido para explorar los coeficientes de transformada cuantificados para producir un vector serializado que puede codificarse por entropía. En otros ejemplos, el codificador de video 20 puede realizar una exploración adaptativa. Después de escanear los coeficientes de transformada cuantificados para formar un vector unidimensional, el codificador de video 20 puede codificar por entropía el vector unidimensional, por ejemplo, según la codificación de longitud variable adaptativa al contexto (CAVLC), la codificación aritmética binaria adaptativa al contexto (CABAC), codificación aritmética binaria adaptativa al contexto basada en 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 de video 20 también puede codificar por entropía los elementos de sintaxis asociados con los datos de video codificados para su uso mediante el decodificador de video 30 al decodificar los datos de video. Para realizar CABAC, el codificador de video 20 puede asignar un contexto dentro de un modelo de contexto a un símbolo que se transmitirá. El contexto puede referirse, por ejemplo, a si los valores vecinos del símbolo son distintos de cero o no. Para realizar CAVLC, el codificador de video 20 puede seleccionar un código de longitud variable para que se transmita un símbolo. Las palabras de código en VLC se pueden construir de manera 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 manera, el uso de VLC puede lograr un ahorro de bits con respecto, por ejemplo, al uso de palabras de código de igual longitud para cada símbolo que se transmitirá. La determinación de la probabilidad puede basarse en un contexto asignado al símbolo.
El codificador de video 20 puede enviar además datos de sintaxis, como datos de sintaxis basados en bloques, datos de sintaxis basados en tramas y datos de sintaxis basados en GOP, al decodificador de video 30, por ejemplo, en un encabezado de trama, un encabezado de bloque, un encabezado de segmento, o un encabezado del GOP. Los datos de sintaxis del GOP pueden describir un número de tramas en el respectivo GOP, y los datos de sintaxis de tramas pueden indicar un modo de codificación/predicción usado para codificar la trama correspondiente.
La figura 2 es un diagrama de bloques que ilustra un ejemplo de un codificador de video que puede implementar las técnicas según los aspectos descritos en la presente divulgación. El codificador de video 20 puede configurarse para realizar cualquiera o todas las técnicas de la presente divulgación. Como ejemplo, la unidad de selección de modo 40 puede configurarse para realizar cualquiera o todas las técnicas descritas en la presente divulgación. Sin embargo, los aspectos de esta divulgación no están tan limitados. En algunos ejemplos, las técnicas descritas en la presente divulgación pueden compartirse entre los diversos componentes del codificador de video 20. En algunos ejemplos, además o en lugar de, un procesador (no mostrado) puede configurarse para realizar cualquiera o todas las técnicas descritas en la presente divulgación.
En algunas realizaciones, la unidad de selección de modo 40, la unidad de estimación de movimiento 42, la unidad de compensación de movimiento 44, la unidad de predicción intercapa 45, la unidad de intrapredicción 46, la unidad de predicción ponderada 47 u otro componente de la unidad de selección de modo 40 (mostrado o no), u otro componente del codificador 20 (mostrado o no) pueden llevar a cabo las técnicas de la presente divulgación. Por ejemplo, la unidad de selección de modo 40 puede recibir datos de video para la codificación, que pueden codificarse en una capa base y una o más capas de mejora correspondientes. La unidad de selección de modo 40, la unidad de estimación de movimiento 42, la unidad de compensación de movimiento 44, la unidad de predicción intercapa 45, la unidad de intrapredicción 46, la unidad de predicción ponderada 47 u otra unidad adecuada del codificador 20 pueden determinar un valor de una unidad de video actual basada, al menos en parte, en una combinación de dos o más predicciones ponderadas, incluidas las intrapredicciones, las interpredicciones, predicciones intercapa como predicciones intraBL, predicciones residuales generalizadas, etc. El codificador 20 puede codificar la unidad de video y señalar el factor o factores de ponderación o la información de ponderación en un flujo de bits.
El codificador de video 20 puede realizar intra- e intercodificación de bloques de video dentro de segmentos de video. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en el video dentro de un fotograma o imagen de video determinado. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal en el video dentro de tramas o imágenes adyacentes de una secuencia de video. El intramodo (modo I) puede referirse a cualquiera de varios modos de codificación basados en el espacio. Los intermodos, como la predicción unidireccional (modo P) o la predicción bidireccional (modo B), pueden referirse a cualquiera de varios modos de codificación basados en el tiempo.
Como se muestra en la figura 2, el codificador de video 20 recibe un bloque de video actual dentro de una trama de video que se codificará. En el ejemplo de la figura 1, el codificador de video 20 incluye la unidad de selección de modo 40, la memoria de trama de referencia 64, el sumador 50, la unidad de procesamiento de transformada 52, la unidad de cuantificación 54 y la unidad de codificación de entropía 56. La unidad de selección de modo 40, a su vez, incluye la unidad de compensación de movimiento 44, la unidad de estimación de movimiento 42, la unidad de predicción intercapa 45, la unidad de intrapredicción 46, la unidad de predicción ponderada 47 y la unidad de división 48. Para la reconstrucción de bloques de video, el codificador de video 20 también incluye la unidad de cuantificación inversa 58, la unidad de transformada inversa 60 y el sumador 62. También se puede incluir un filtro de desbloqueo (no mostrado en la figura 2) para filtrar los límites de los bloques para eliminar los artefactos de bloqueo del video reconstruido. Si lo desea, el filtro de desbloqueo normalmente filtraría la salida del sumador 62. También se pueden utilizar filtros adicionales (en bucle o bucle posterior) además del filtro de desbloqueo. Dichos filtros no se muestran por brevedad, pero si se desea, pueden filtrar la salida del sumador 62 (como un filtro en bucle).
Durante el proceso de codificación, el codificador de video 20 recibe una trama o segmento de video para codificar. La trama o el segmento se pueden dividir en varios bloques de video. La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 realizan una codificación interpredictiva del bloque de video recibido en relación con uno o más bloques en una o más tramas de referencia para proporcionar predicción temporal. La unidad de predicción intercapa 45 alternativamente puede llevar a cabo una codificación predictiva intercapa del bloque de video recibido en relación con uno o más bloques de una capa diferente de información de video, como un bloque coubicado de una capa base, como se describe con mayor detalle a continuación. La unidad de intrapredicción 46 puede realizar alternativamente una codificación intrapredictiva del bloque de video recibido en relación con uno o más bloques vecinos en la misma trama o segmento que el bloque a codificar para proporcionar predicción espacial. El codificador de video 20 puede realizar múltiples pases de codificación, por ejemplo, para seleccionar un modo de codificación adecuado para cada bloque de datos de video. La unidad de predicción ponderada 47 alternativamente puede llevar a cabo una predicción ponderada usando una combinación de predicciones realizadas según varios modos de predicción, como se describe con mayor detalle a continuación.
Además, la unidad de división 48 puede dividir bloques de datos de video en sub-bloques, basándose en la evaluación de esquemas de división previos en pases de codificación previos. Por ejemplo, la unidad de división 48 puede dividir inicialmente una trama o segmento en LCU, y dividir cada una de las LCU en sub-CU basándose en el análisis de distorsión de velocidad (por ejemplo, optimización de distorsión de velocidad). La unidad de selección de modo 40 puede producir además una estructura de datos de árbol cuaternario indicativa de la división de una LCU en sub-CU. Las CU de hoja-nodo del árbol cuaternario pueden incluir una o más PU y una o más TU.
La unidad de selección de modo 40 puede seleccionar uno de los modos de codificación, intra o inter, por ejemplo, basándose en resultados de error, y proporcionar el bloque intra o intercodificado resultante al sumador 50 para generar datos de bloque residuales y al sumador 62 para reconstruir el bloque codificado para su uso como trama de referencia. La unidad de selección de modo 40 también proporciona elementos de sintaxis, como vectores de movimiento, indicadores de intramodo, información de división y demás información de sintaxis, a la unidad de codificación de entropía 56.
La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar muy integradas, pero se ilustran por separado con fines conceptuales. La estimación de movimiento, realizada por la unidad 42 de estimación de movimiento, es el proceso de generar vectores de movimiento, que estiman el movimiento para bloques de video. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una PU de un bloque de video dentro de una trama de video actual o una imagen relativa a un bloque predictivo dentro de una trama de referencia (u otra unidad codificada) relativa al bloque actual que se codifica dentro de la trama actual (u otra unidad codificada). Un bloque predictivo es un bloque que coincide estrechamente con el bloque que se codificará, en términos de diferencia de píxeles, que puede determinarse mediante la suma de la diferencia absoluta (SAD), la suma de la diferencia cuadrada (SSD) u otras métricas de diferencia. En algunos ejemplos, el codificador de video 20 puede calcular valores para posiciones de píxeles sub-enteros de imágenes de referencia almacenadas en la memoria de la trama de referencia 64. Por ejemplo, el codificador de video 20 puede interpolar valores de posiciones de un cuarto de píxel, posiciones de un octavo de píxel u otras posiciones de píxeles fraccionarios de la imagen de referencia. Por lo tanto, la unidad de estimación de movimiento 42 puede realizar una búsqueda de movimiento en relación con las posiciones de píxeles completos y las posiciones de píxeles fraccionarios y generar un vector de movimiento con precisión de píxeles fraccionarios.
La unidad de estimación de movimiento 42 calcula un vector de movimiento para una PU de un bloque de video en un segmento intercodificado mediante la comparación de la posición de la PU con la posición de un bloque predictivo de una imagen de referencia. La imagen de referencia puede seleccionarse de una primera lista de imágenes de referencia (Lista 0) o una segunda lista de imágenes de referencia (Lista 1), cada una de las cuales identifica una o más imágenes de referencia almacenadas en la memoria de la trama de referencia 64. La unidad de estimación de movimiento 42 envía el vector de movimiento calculado a la unidad de codificación por entropía 56 y a la unidad de compensación de movimiento 44.
La compensación de movimiento, realizada por la unidad de compensación de movimiento 44, puede implicar buscar o generar el bloque predictivo en base al vector de movimiento determinado por la unidad de estimación de movimiento 42. Nuevamente, la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden integrarse funcionalmente, en algunos ejemplos. Al recibir el vector de movimiento para la PU del bloque de video 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 video residual restando los valores de píxeles del bloque predictivo de los valores de píxeles del bloque de video actual que se está codificando, formando valores de diferencia de píxeles, como se discutió anteriormente. En general, la unidad de estimación de movimiento 42 realiza una estimación de movimiento con respecto a los componentes de luma, y la unidad de compensación de movimiento 44 usa vectores de movimiento calculados en base a los componentes de luma tanto para los componentes de croma como para los componentes de luma. La unidad de selección de modo 40 también puede generar elementos de sintaxis asociados con los bloques de video y el segmento de video para su uso por el decodificador de video 30 al decodificar los bloques de video del segmento de video.
La unidad de intrapredicción 46 puede intrapredecir o calcular un bloque actual, como una alternativa a la interpredicción realizada por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44, como se describió anteriormente. En particular, la unidad de intrapredicción 46 puede determinar un modo de intrapredicción para su uso para codificar un bloque actual. En algunos ejemplos, la unidad de intrapredicción 46 puede codificar un bloque actual usando varios modos de intrapredicción, por ejemplo, durante pases de codificación separados, y la unidad de intrapredicción 46 (o la unidad de selección de modo 40, en algunos ejemplos) puede seleccionar un modo de intrapredicción adecuado para utilizar a partir de los modos evaluados.
Por ejemplo, la unidad de intrapredicción 46 puede calcular valores de distorsión de velocidad usando un análisis de distorsión de velocidad para los diversos modos de intrapredicción evaluados, y seleccionar el modo de intrapredicción que tiene las mejores características de distorsión de velocidad entre los modos evaluados. El análisis de distorsión de velocidad generalmente determina una cantidad de distorsión (o error) entre un bloque codificado y un bloque no codificado original que fue codificado para producir el bloque codificado, así como una tasa de bits (es decir, una cantidad de bits) que se usa para producir el bloque codificado. La unidad de intrapredicción 46 puede calcular las relaciones a partir de las distorsiones y velocidades para los diversos bloques codificados para determinar qué modo de intrapredicción exhibe el mejor valor de distorsión de velocidad para el bloque.
Después de seleccionar un modo de intrapredicción para un bloque, la unidad de intrapredicción 46 puede proporcionar información indicativa del modo de intrapredicción seleccionado al bloque a la unidad de codificación de entropía 56. La unidad de codificación de entropía 56 puede codificar la información que indica el modo de intrapredicción seleccionado. El codificador de video 20 puede incluir en los datos de configuración de flujo de bits transmitidos, que pueden incluir una pluralidad de tablas de índice de modo de intrapredicción y una pluralidad de tablas de índice de modo de intrapredicción modificadas (también denominadas tablas de mapeo de palabras de código), definiciones de contextos de codificación para varios bloques e indicaciones de un modo de intrapredicción más probable, una tabla de índice de modo de intrapredicción y una tabla de índice de modo de intrapredicción modificada para su uso en cada uno de los contextos.
El codificador de video 20 forma un bloque de video residual restando los datos de predicción de la unidad de selección de modo 40 del bloque de video original que se está codificando. El sumador 50 representa el componente o componentes que realizan esta operación de resta. La unidad de procesamiento de transformada 52 aplica una transformada, como una transformada de coseno discreta (DCT) o una transformada conceptualmente similar, al bloque residual, lo que produce un bloque de video que comprende valores de coeficiente de transformada residual. La unidad de procesamiento de transformada 52 puede realizar otras transformadas, que son conceptualmente similares a DCT. También se podrían utilizar transformadas de ondículas, transformadas de enteros, transformadas de sub-bandas u otros tipos de transformadas. En cualquier caso, la unidad de procesamiento de transformada 52 aplica la transformada al bloque residual, produciendo un bloque de coeficientes de transformada residual. La transformada puede convertir la información residual de un dominio de valor de píxel en un dominio transformada, como un dominio de frecuencia. La unidad de procesamiento de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 cuantifica los coeficientes de transformada para reducir aún más la tasa de bits. El proceso de cuantificación puede reducir la profundidad de bits asociada con algunos o todos los coeficientes. El grado de cuantificación se puede modificar ajustando un parámetro de cuantificación. En algunos ejemplos, la unidad de cuantificación 54 puede luego realizar una exploración de la matriz que incluye los coeficientes de transformada cuantificados. Alternativamente, la unidad de codificación por entropía 56 puede realizar la exploración.
Después de la cuantificación, la entropía de la unidad de codificación de entropía 56 codifica los coeficientes de transformada cuantificados. Por ejemplo, la unidad de codificación de entropía 56 puede realizar codificación de longitud variable adaptativa al contexto (CAVLC), codificación aritmética binaria adaptativa al contexto (CABAC), codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC), codificación de entropía de división de intervalo de probabilidad (PIPE) u otra técnica de codificación de entropía. En el caso de la codificación por entropía basada en el contexto, el contexto puede basarse en bloques vecinos. Después de la codificación de entropía mediante la unidad de codificación de entropía 56, el flujo de bits codificado puede transmitirse a otro dispositivo (por ejemplo, decodificador de video 30) o archivarse para su posterior transmisión o recuperación.
La unidad de cuantificación inversa 58 y la unidad de transformada inversa 60 aplican cuantificación inversa y transformada inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxeles, por ejemplo, para su uso posterior como un bloque de referencia. La unidad de compensación de movimiento 44 puede calcular un bloque de referencia añadiendo el bloque residual a un bloque predictivo de una de las tramas de la memoria de la trama de referencia 64. La unidad de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque residual reconstruido para calcular valores de píxeles subenteros para su uso en la estimación de movimiento. El sumador 62 añade el bloque residual reconstruido al bloque de predicción compensado por movimiento producido por la unidad de compensación de movimiento 44 para producir un bloque de video reconstruido para el almacenamiento en la memoria de la trama de referencia 64. El bloque de video reconstruido puede ser utilizado por la unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 como un bloque de referencia para intercodificar un bloque en una trama de video posterior.
La figura 3 es un diagrama de bloques que ilustra un ejemplo de un decodificador de video que puede implementar las técnicas según los aspectos descritos en la presente divulgación. El decodificador de video 30 puede configurarse para realizar cualquiera o todas las técnicas de la presente divulgación. Como ejemplo, la unidad de compensación de movimiento 72, la unidad de predicción intercapa 73, la unidad de intrapredicción 74 y/o la unidad de predicción ponderada 75 pueden configurarse para realizar alguna o todas las técnicas descritas en la presente divulgación. Sin embargo, los aspectos de esta divulgación no están tan limitados. En algunos ejemplos, las técnicas descritas en la presente divulgación pueden compartirse entre los diversos componentes del decodificador de video 30. En algunos ejemplos, además o en lugar de, un procesador (no mostrado) puede configurarse para realizar cualquiera o todas las técnicas descritas en la presente divulgación.
En algunas realizaciones, la unidad de decodificación de entropía 70, la unidad de compensación de movimiento 72, la unidad de predicción intercapa 73, la unidad de intrapredicción 74, la unidad de predicción ponderada 75 u otro componente del decodificador 30 (mostrado o no) pueden realizar las técnicas de la presente divulgación. Por ejemplo, la unidad de decodificación de entropía 70 puede recibir un flujo de bits de video codificado, que puede codificar datos relacionados con una capa base y una o más capas de mejora correspondientes. La unidad de compensación de movimiento 72, la unidad de predicción intercapa 73, la unidad de intrapredicción 74, la unidad de predicción ponderada 75 u otra unidad adecuada del decodificador 30 pueden determinar un valor de una unidad de video actual basada, al menos en parte, en una combinación de dos o más predicciones ponderadas, incluidas las intrapredicciones, las interpredicciones, las predicciones intraBL, predicciones residuales generalizadas, etc. El decodificador 30 puede decodificar la unidad de video y recibir el factor o factores de ponderación o la información de ponderación en un flujo de bits.
En el ejemplo de la figura 3, el decodificador de video 30 incluye una unidad de decodificación de entropía 70, una unidad de compensación de movimiento 72, una unidad de predicción intercapa 73, una unidad de intrapredicción 74, una unidad de predicción ponderada 75, una unidad de cuantificación inversa 76, una unidad de transformación inversa 78, una memoria de trama de referencia 82 y un sumador 80. El decodificador de video 30 puede, en algunos ejemplos, realizar un pase de decodificación generalmente recíproco al pase de codificación descrito con respecto al codificador de video 20 (figura 2). La unidad de compensación de movimiento 72 puede generar datos de predicción basados en vectores de movimiento recibidos desde la unidad de decodificación de entropía 70, mientras que la unidad de intrapredicción 74 puede generar datos de predicción basados en indicadores de modo de intrapredicción recibidos desde la unidad de decodificación de entropía 70.
Durante el proceso de decodificación, el decodificador de video 30 recibe un flujo de bits de video codificado que representa bloques de video de un segmento de video codificado y elementos de sintaxis asociados del codificador de video 20. La unidad de decodificación por entropía 70 del decodificador de video 30 decodifica por entropía el flujo de bits para generar coeficientes cuantificados, vectores de movimiento o indicadores de modo de intrapredicción, y demás elementos de sintaxis. La unidad de decodificación por entropía 70 envía los vectores de movimiento y otros elementos de sintaxis a la unidad de compensación de movimiento 72. El decodificador de video 30 puede recibir los elementos de sintaxis en el nivel de segmento de video y/o en el nivel de bloque de video. Cuando el segmento de video se codifica como un segmento intracodificado (I), la unidad de intrapredicción 74 puede generar datos de predicción para un bloque de video del segmento de video actual en base a un modo de intrapredicción señalizado y datos de bloques previamente decodificados de la trama o imagen actual. Cuando la trama de video se codifica como un segmento intercodificado (por ejemplo, B, P o GPB), la unidad de compensación de movimiento 72 produce bloques predictivos para un bloque de video del segmento de video actual basado en los vectores de movimiento y otros elementos de sintaxis recibidos de la unidad de decodificación de entropía 70. Los bloques predictivos pueden producirse a partir de una de las imágenes de referencia dentro de una de las listas de imágenes de referencia. El decodificador de video 30 puede construir las listas de tramas de referencia, Lista 0 y Lista 1, usando técnicas de construcción predeterminadas basadas en imágenes de referencia almacenadas en la memoria de la trama de referencia 92. La unidad de compensación de movimiento 72 determina información de predicción para un bloque de video del segmento de video actual analizando los vectores de movimiento y otros elementos de sintaxis, y usa la información de predicción para producir los bloques predictivos para el bloque de video actual que se está decodificando. Por ejemplo, la unidad de compensación de movimiento 72 usa algunos de los elementos de sintaxis recibidos para determinar un modo de predicción (por ejemplo, intra o interpredicción) usado para codificar los bloques de video del segmento de video, un tipo de segmento de interpredicción (por ejemplo, el segmento B o el segmento P o el segmento GPB), información de construcción para una o más de las listas de imágenes de referencia para el segmento, vectores de movimiento para cada bloque de video intercodificado del segmento, estado de interpredicción para cada bloque de video intercodificado del segmento, y otra información para decodificar los bloques de video en el segmento de video actual.
La unidad de compensación de movimiento 72 también puede realizar una interpolación basada en filtros de interpolación. La unidad de compensación de movimiento 72 puede usar filtros de interpolación como los usa el codificador de video 20 durante la codificación de los bloques de video para calcular valores interpolados para píxeles subenteros de bloques de referencia. En este caso, la unidad de compensación de movimiento 72 puede determinar los filtros de interpolación usados por el codificador de video 20 a partir de los elementos de sintaxis recibidos y usar los filtros de interpolación para producir bloques predictivos.
La unidad de cuantificación inversa 76 cuantifica inversamente, por ejemplo, descuantifica, los coeficientes de transformada cuantificados proporcionados en el flujo de bits y decodificados por la unidad de decodificación de entropía 80. El proceso de cuantificación inversa puede incluir el uso de un parámetro de cuantificación QPY calculado por el decodificador de video 30 para cada bloque de video en el segmento de video para determinar un grado de cuantificación e, igualmente, un grado de cuantificación inversa que debería aplicarse.
La unidad de transformada inversa 78 aplica una transformación inversa, por ejemplo, una DCT inversa, una transformada inversa de número entero o un proceso de transformada inversa conceptualmente similar, a los coeficientes de transformada para producir bloques residuales en el dominio de píxeles.
Después de que la unidad de compensación de movimiento 82 genera el bloque predictivo para el bloque de video actual basado en los vectores de movimiento y otros elementos de sintaxis, el decodificador de video 30 forma un bloque de video decodificado sumando los bloques residuales de la unidad de transformada inversa 78 con los correspondientes bloques predictivos generados por la unidad de compensación de movimiento 72. El sumador 90 representa el componente o componentes que realizan esta operación de suma. Si se desea, también se puede aplicar un filtro de desbloqueo para filtrar los bloques decodificados con el fin de eliminar los artefactos de bloqueo. También se pueden utilizar otros filtros de bucle (ya sea en el bucle de codificación o después del bucle de codificación) para suavizar las transiciones de píxeles o mejorar de otro modo la calidad del video. Los bloques de video decodificados en una trama o imagen determinadas se almacenan luego en la memoria de la imagen de referencia 92, que almacena imágenes de referencia utilizadas para la compensación de movimiento posterior. La memoria de trama de referencia 82 también almacena video decodificado para una presentación posterior en un dispositivo de visualización, tal como el dispositivo de visualización 32 de la figura 1.
El codificador 20 y el decodificador 30 de ejemplo descritos anteriormente son meramente ilustrativos y no pretenden ser restrictivos. En algunas realizaciones, un codificador o decodificador configurado para realizar las técnicas y proporcionar la funcionalidad descrita en la presente puede incluir componentes adicionales o menos componentes. En algunas realizaciones, otros componentes o dispositivos pueden proporcionar la funcionalidad descrita en la presente, como un procesador de ordenador de propósito general configurado para ejecutar instrucciones específicas almacenadas en un medio legible por ordenador.
Como se describió anteriormente, las predicciones de modo ponderado pueden incluir combinaciones de predicciones individuales generadas según varios modos de predicción. Por ejemplo, una predicción de un solo modo ponderado puede incluir intrapredicciones y/o interpredicciones. Los modos de predicción específicos de SVC también se pueden utilizar para proporcionar predicciones individuales para el modo ponderado. Por ejemplo, las predicciones realizadas según el modo intraBL, el intramodo de dominio de diferencia, la predicción residual generalizada y similares pueden combinarse entre sí y/o con interpredicciones e intrapredicciones, etc. Estos y otros modos de predicción se describen con mayor detalle a continuación. Los modos de predicción mencionados anteriormente son solo ilustrativos y no pretenden ser restrictivos. En general, las predicciones realizadas según cualquier modo o técnica de predicción pueden combinarse en el modo ponderado descrito en la presente.
La figura 4A muestra predicciones ilustrativas para una unidad de video particular, incluidas predicciones tanto intracapa como intercapa. Un bloque u otra unidad de video de una trama de capa de mejora (EL) 140 pueden predecirse a partir de diversas fuentes, tanto en la misma trama como en tramas diferentes, y ambas en la misma capa o en una capa diferente. Como se muestra en la figura 4A, el bloque actual 142 puede predecirse en (A) a partir de otro bloque 144 en la misma trama 140 y en la misma capa (EL). El bloque actual 142 también puede predecirse en (B) a partir de un bloque correspondiente 132 en una trama de referencia 130 en la misma capa. El bloque actual 142 también puede predecirse en (C) a partir de un bloque correspondiente 122 en una trama 120 de una capa diferente, la capa base (BL). En los casos en los que la EL tiene una resolución diferente, por ejemplo mayor, que la BL (por ejemplo, la EL proporciona mejora espacial), se puede aplicar un sobremuestreo de un bloque reconstruido de BL para que coincida con la resolución de la EL antes de predecir un bloque de EL correspondiente. Algunos ejemplos de predicción intercapa pueden incluir la intrapredicción intercapa, la predicción de movimiento intercapa y la predicción residual intercapa. La intrapredicción intercapa, o intraBL, utiliza la reconstrucción de bloques coubicados en la capa base para predecir el bloque actual en la capa de mejora. La predicción de movimiento intercapa utiliza el movimiento de la capa base para predecir el movimiento en la capa de mejora. La predicción residual intercapa utiliza el residuo de la capa base para predecir el residuo de la capa de mejora.
En la predicción residual intercapa, el residuo de la capa base puede usarse para predecir el bloque actual en la capa de mejora. El residuo puede definirse como la diferencia entre la predicción temporal para una unidad de video y la unidad de video fuente. En algunas realizaciones, el bloque EL actual puede reconstruirse mediante el uso del residuo de la capa de mejora, la predicción temporal de la capa de mejora y el residuo de la capa base. El bloque actual puede reconstruirse según la siguiente ecuación:
Figure imgf000015_0001
donde íe (o íc) denota la reconstrucción del bloque actual, re denota el residuo de la capa de mejora, Pe (o Pc) denota la predicción temporal de la capa de mejora y rb denota la predicción de residuo de la capa base.
A fin de usar la predicción residual intercapa para un bloque en la capa de mejora, el bloque coubicado en la capa base debe ser un bloque intercodificado, y el residuo del bloque de la capa base coubicada puede sobremuestrearse según la relación de resolución espacial de la capa de mejora (por ejemplo, porque las capas en SVC pueden tener diferentes resoluciones espaciales). En la predicción de residuo intercapa, la diferencia entre el residuo de la capa de mejora y el residuo de la capa base sobremuestreada puede codificarse en el flujo de bits. El residuo de la capa base puede normalizarse basándose en la relación entre los pasos de cuantificación de las capas base y de mejora. La predicción residual intercapa se describe con mayor detalle a continuación.
Para añadir más diversidad a una predicción final, los predictores de los modos de predicción descritos anteriormente, u otros modos de predicción, se pueden ponderar y combinar para generar un predictor de modo ponderado. La figura 4B muestra una predicción ilustrativa para el bloque actual 142 generado en modo ponderado. La intrapredicción del bloque 144 en la misma capa se puede ponderar y combinar con la predicción intraBL ponderada del bloque 122 en la capa base. En otro ejemplo, la interpredicción del bloque 132 en la misma capa se puede ponderar y combinar con la predicción intraBL ponderada del bloque 122 en la capa base. En un ejemplo adicional, las tres predicciones mencionadas (intra-, inter- e intercapa) se pueden ponderar y combinar. Como resultado, la reconstrucción del bloque 142 se puede basar en una predicción diversa determinada a partir de varias predicciones individuales. Esto puede ayudar a evitar los errores y otras limitaciones inherentes a los modos de predicción individuales.
Como se describe generalmente, un predictor de modo ponderado se puede determinar de la siguiente manera:
Figure imgf000016_0001
donde Predicton es un predictor de algún modo de predicción, w¡ es un peso correspondiente al modo de predicción y Norma es un factor de normalización. La suma se realiza sobre un número i de modos de predicción. En algunas realizaciones, el número i de modos de predicción puede ser más de 2.
Los pesos y el factor de normalización en la ecuación (2) pueden ser cualquier número (por ejemplo, números de coma flotante o enteros) y pueden ser diferentes para diferentes componentes de color. En una realización específica, no restrictiva, wi = 1, W2 = 1 y Norma = 2 para el componente de luma, mientras que wi = 0, W2 = 1 y Norma = 1 para los componentes de croma. Estos pesos son solo ilustrativos. En algunas realizaciones, los pesos pueden ser los mismos para cada componente de color de la unidad de video que se predice.
En algunas realizaciones, se puede imponer una restricción adicional a la ecuación (2) de manera que
Figure imgf000016_0002
Como se observa en la ecuación (3), el factor de normalización Norma puede ser igual a la suma de los factores de ponderación. Cuando se impone tal restricción a la Norma, la ecuación (2) puede producir un promedio ponderado de múltiples predictores.
La figura 5 muestra un método o proceso de ejemplo 500 para determinar un valor de una unidad de video actual, como un píxel o bloque de píxeles, usando el modo ponderado. Por ejemplo, un codificador de video digital, como el codificador 20 o el decodificador 30 descritos anteriormente, puede utilizar el proceso 500 para generar predicciones en modo ponderado. En algunas realizaciones, el proceso 500 puede llevarse a cabo por algún otro componente o aparato. A efectos ilustrativos, la descripción que sigue describe los pasos del proceso 500 con respecto a la unidad de predicción ponderada 75 y otros componentes del decodificador 30 en la figura 3.
El proceso 500 comienza en el bloque 502. En el bloque 504, se almacena información de video. Por ejemplo, la información de video asociada con una capa base, una capa de mejora, una capa de sobremuestreo, una capa de submuestreo, una capa de referencia o cualquier combinación, puede almacenarse en el bloque 504.
En el bloque 506, se determina (o predice) un valor de una unidad de video actual (como un píxel o un bloque de píxeles) mediante el uso de una predicción ponderada generada según un modo de predicción individual. El modo ponderado se puede aplicar a todos los componentes de color de una unidad de video, o algún subconjunto de los mismos. Por ejemplo, el modo ponderado se puede aplicar a luma y a ambos cromas, o alternativamente se puede aplicar de manera selectiva a uno o más componentes, por ejemplo solo al componente de luma. En el modo ponderado, el valor de la unidad de video se puede determinar usando una o más predicciones ponderadas de al menos un componente de color de la unidad de video. Por ejemplo, el valor puede determinarse aplicando selectivamente un factor de ponderación a uno o más componentes de color de la información de video, dependiendo del modo de predicción individual que se use.
Volviendo al ejemplo de la figura 4B, la predicción de modo ponderado para el bloque EL 142 se basará en las predicciones realizadas utilizando tanto la intrapredicción como la predicción intraBL. Primero, se puede hacer una intrapredicción para una unidad de video en el bloque EL 142 usando un valor del bloque EL 144 y un factor de ponderación. El factor de ponderación se puede determinar en base a cualquier número de factores. En algunas realizaciones, los factores de ponderación para cada predicción utilizada en la predicción del modo ponderado final pueden determinarse de manera que cada predicción (por ejemplo, la intrapredicción y la predicción intraBL en este caso) se ponderen de manera uniforme. En algunas realizaciones, los factores de ponderación pueden basarse, al menos en parte, en la ubicación de la unidad de video que se va a predecir. Para unidades de video tales como subbloques o píxeles que están cerca de unidades o bloques de video previamente reconstruidos en la misma capa y trama, se puede usar un factor de ponderación más alto para la intrapredicción que para la predicción intraBL. En el ejemplo de la figura 4B, las intrapredicciones para píxeles u otras unidades de video que están cerca de la parte superior del bloque EL 142, y por lo tanto cerca del bloque EL 144 previamente reconstruido, pueden recibir una ponderación cercana o igual a 1. Las intrapredicciones para las unidades de video que están más lejos de la parte superior del bloque EL 142 pueden recibir un peso menor, como un peso que se aproxima o es igual a cero para las unidades de video en la parte inferior del bloque EL 142. Este ejemplo es solamente ilustrativo y supone muchos detalles, como una dirección de predicción vertical, etc. Se pueden utilizar otros factores y técnicas para determinar factores de ponderación, como apreciará un experto en la técnica.
En 508, el proceso 500 determina si hay factores de ponderación adicionales para aplicar a las predicciones realizadas según los modos de predicción individuales. De ser así, el proceso 500 vuelve a 506. Volviendo al ejemplo de la figura 4B, una predicción intraBL para una unidad de video determinada en el bloque EL 142 puede ser una predicción ponderada de un bloque 122 colocado o correspondiente, de otro modo, en la capa base. Para las unidades de video que están cerca de la parte superior del bloque EL 142, el factor de ponderación puede ser cercano o igual a cero para la predicción intraBL. El factor de ponderación para la predicción intraBL puede acercarse o ser igual a 1 para las unidades de video que están más cerca o en la parte inferior del bloque EL 142. El valor de la unidad de video actual puede determinarse como la suma de todas las predicciones ponderadas o como la suma de un grupo seleccionado de predictores ponderados.
Si no hay factores de ponderación adicionales en el bloque 508, el proceso puede terminar en el bloque 510.
El modo ponderado se puede señalar expresamente en un flujo de bits codificado como un indicador adicional (por ejemplo, ponderado_modo_indicador = 0 o 1) al menos en el bloque, PU, CU, LCU, segmento, trama, nivel de secuencia o en cualquier otro lugar. Por ejemplo, un codificador 20 que implementa el proceso 500 anterior puede primero determinar que se va a utilizar el modo ponderado, y luego señalar el indicador de modo ponderado en el flujo de bits para que un decodificador pueda saber que la información de video para el bloque particular, PU, CU, LCU, segmento, trama o nivel de secuencia que sigue se codifica en modo ponderado. Un decodificador 30 que implementa el proceso 500 puede detectar el indicador de modo ponderado y luego usar el proceso 500 a fin de decodificar al menos una parte del flujo de bits. De manera alternativa, la determinación de si usar el modo ponderado puede derivar de la información de BL, información de EL, alguna combinación de los mismos, etc.
En algunas realizaciones, si se señala un indicador de modo ponderado, las ponderaciones también se pueden señalar para cada bloque, PU, CU, LCU, segmento, trama, nivel de secuencia o en cualquier otro lugar. De manera alternativa, como se describió anteriormente, los pesos usados en el modo ponderado pueden ser fijos (por ejemplo, wi =1, o 0,5 cuando se combinan dos predicciones), derivados de las proximidades previamente reconstruidas o determinadas en base a la distancia desde el límite del bloque. Por ejemplo, para el modo intraponderado, se pueden otorgar mayores pesos al modo de intrapredicción para los píxeles cerrados al límite del bloque, ya que la intrapredicción puede tener una mejor correlación con los píxeles en las proximidades inmediatas.
En algunas realizaciones, los pesos se pueden organizar en una lista con una o más entradas, donde se asignan una o más ponderaciones a cada índice de ponderación de la lista. El índice de ponderación se puede señalar en el flujo de bits. Esta lista puede ser fija o conocida tanto por el codificador como por el decodificador. En otras realizaciones, la lista se deriva implícita o explícitamente. Por ejemplo, la lista de ponderación se puede determinar en base a la relación de aciertos de ponderación obtenida de bloques codificados anteriores. De manera alternativa o adicional, la lista puede ser diferente para diferentes modos de predicción del modo ponderado. Por ejemplo, una lista se puede usar para bloques intrapredichos y otra lista se puede usar para bloques interpredichos. Estas listas se pueden actualizar por separado, por ejemplo, en base a estadísticas de bloques procesados previamente. El uso de este modo se puede indicar mediante un elemento de sintaxis en uno o más encabezados, como por ejemplo, segmento, imagen, encabezados de secuencia o conjunto de parámetros de video.
En una realización no restrictiva específica, el Predictori en la ecuación (2) puede ser un bloque BL reconstruido (por ejemplo, sobremuestreado en el caso de escalabilidad espacial) o un predictor intraBL. Se puede utilizar un predictor intramodo o intermodo convencional como Predictor. Las ponderaciones w1 = 1 y w2 = 1, y Norma = 2, pueden usarse para el componente de luma, y w1 = 0, w2 = 1 y Norma = 1 puede usarse para ambos componentes de croma.
Cuando el Predictor en el ejemplo anterior es un predictor generado según el modo de intrapredicción, todas las intradirecciones, o algún subconjunto de las mismas, pueden usarse para predecir el componente de luma y/o un componente de croma. En algunas realizaciones, para reducir la sobrecarga intradireccional, se puede usar predicción intra DC o DM para ambos componentes de croma. Como resultado, no es necesario señalar la dirección o las intradirecciones de croma. Esto puede reducir la complejidad del codificador y la señalización aérea, o ambas, ya que no es necesario buscar la mejor intradirección.
Se pueden usar diferentes estructuras de sintaxis según la aplicación del modo ponderado. Por ejemplo, un indicador de "ponderado_modo" puede estar señalizado por CU, Pu, etc. El indicador puede estar señalizado antes de las direcciones de intrapredicción de luma y croma si la ponderación se aplica para varios sobremuestreos del bloque base. En dichos casos, se puede suprimir la señalización de las interdirecciones de luma y/o croma.
Como otro ejemplo adicional, se pueden aplicar diferentes filtros de sobremuestreo al bloque BL, y el modo ponderado se puede aplicar al resultado de los sobremuestreos de diferencia. Se pueden usar otras combinaciones de modos, ponderaciones y factores de normalización, como apreciará un experto en la técnica.
En algunas realizaciones, un modelo de contexto se usa para codificar un indicador de modo ponderado para todos los bloques. En otras realizaciones, el modelo de contexto puede depender de qué modos de predicción individuales se usen con el modo ponderado. Por ejemplo, se puede asignar un modelo de contexto a los bloques intrapredichos y se puede asignar otro modelo de contexto a los bloques interpredichos.
En realizaciones adicionales, el modelo de contexto se puede separar según el modo de interpredicción (por ejemplo, unipredicción o bipredicción) que se utilice. Por ejemplo, los bloques de unipredicción pueden usar un modelo de contexto y los bloques de bipredicción pueden usar otro modelo de contexto. En realizaciones adicionales, el modelo de contexto puede depender de otros factores, como intradirecciones, indicador de fusión, indicador de omisión, profundidad de CU o tipos de segmento. El costo del modelo de contexto del modo ponderado se puede usar para determinar la mejor tabla de inicialización CABAC a partir de las tablas de inicialización existentes utilizadas para la inicialización del modelo de contexto de EL.
En determinadas situaciones, los requisitos de ancho de banda y/o la complejidad de codificación introducida por el uso del modo ponderado pueden degradar el rendimiento o producir resultados insatisfactorios. Por ejemplo, el modo ponderado que utiliza compensación de movimiento de subpíxeles (subpel) bidireccional para la capa de mejora y sobremuestreo para la capa base puede generar un nuevo "escenario del peor de los casos" en comparación con las técnicas de codificación de capa única de HEVC. En la codificación de una sola capa de HEVC, el "escenario del peor de los casos" implica solo una predicción bidireccional. Para reducir los requisitos de ancho de banda y/o la complejidad de la codificación para SVC que utiliza el modo ponderado, se pueden aplicar las técnicas y los procesos descritos a continuación con respecto a las figuras 6 y 7.
La figura 6 muestra un proceso de ejemplo 600 para limitar el uso del modo ponderado a ciertos tamaños de bloque. Ventajosamente, esto puede reducir el ancho de banda requerido para señalar información específica del modo ponderado. El proceso 600 puede ser implementado por cualquier número de componentes o dispositivos, como la unidad de predicción ponderada 47 del codificador 20, la unidad de predicción ponderada 75 del decodificador 30, o algún otro componente del codificador 20 y/o decodificador 30 descrito anteriormente.
El proceso 600 comienza en el bloque 602. En 604, se determina el tamaño de un bloque EL actual a reconstruir. Por ejemplo, los tamaños de los bloques pueden oscilar desde 4x4 hasta 32x32, incluidos varios tamaños intermedios.
En el bloque de decisión 606, el componente o dispositivo que implementa el proceso 600 puede determinar si el tamaño, determinado anteriormente, excede un umbral. Si es así, el proceso 600 procede hasta 608, en donde el valor de al menos un componente de color de una unidad de video en el bloque EL actual se determina aplicando selectivamente un factor de ponderación a una predicción, como se describe anteriormente con respecto a la figura 5. Por ejemplo, los bloques mayores de 8x8 o mayores de 16x16 pueden codificarse (por ejemplo, codificarse o decodificarse) utilizando el modo de predicción ponderada.
Para los bloques que no llegan o superan el umbral, como se determinó anteriormente en 606, el proceso 600 procede a 610. En 610, los valores de las unidades de video en el bloque actual se generan utilizando modos de predicción individuales (por ejemplo, sin sumar predicciones ponderadas realizadas según múltiples modos de predicción).
En algunas realizaciones, puede no utilizarse necesariamente un tamaño de umbral. En cambio, se puede mantener una lista o grupo de tamaños de bloque con los que se puede utilizar el modo ponderado. En algunas realizaciones, se puede definir un tamaño de bloque mínimo y un modo de división para los que se puede utilizar un modo ponderado. En un ejemplo no restrictivo específico, el modo ponderado se puede usar solo para tamaños de CU mayores o iguales a 8x8 y que tengan un modo de división igual a 2Nx2N. Para tales bloques, el proceso 600 procede hasta 608, descrito anteriormente. Para una CU 8x8 que tiene un modo de división diferente a 2Nx2N, el modo ponderado puede prohibirse, restringirse o suprimirse (por ejemplo, el codificador 20 no señala un indicador de modo ponderado para la CU, o el decodificador 30 ignora un indicador de modo ponderado), y el proceso 600 procede a 610.
Como otra realización adicional, el modo ponderado puede usarse solo con ciertos modos de predicción individuales. Por ejemplo, el modo ponderado se puede suprimir (y no se señala ningún indicador de modo ponderado, o se ignora un indicador de modo ponderado señalado) cuando se usa el modo de predicción intrarresidual, el modo inter omisión, etc. Como otro ejemplo, el modo ponderado se puede usar solo con intrapredicciones usando ciertas intradirecciones. Como ejemplo adicional, ciertos tipos de compensación de movimiento pueden suprimirse, restringirse o limitarse cuando se usa el modo ponderado, o el modo ponderado puede suprimirse cuando se usan ciertos tipos de compensación de movimiento.
La figura 7 muestra un proceso de ejemplo 700 para limitar, restringir o suprimir el uso del modo ponderado con ciertos tipos de modos de predicción de compensación de movimiento. Ventajosamente, esto puede reducir el ancho de banda requerido para señalar información específica del modo ponderado cuando se usan dichos modos. Esto también puede reducir la complejidad de determinar los valores de las unidades de video mediante el uso el modo ponderado. El proceso 700 puede ser implementado por cualquier número de componentes o dispositivos, como la unidad de predicción ponderada 47 del codificador 20, la unidad de predicción ponderada 75 del decodificador 30, o algún otro componente del codificador 20 y/o decodificador 30 descrito anteriormente.
El proceso 700 comienza en el bloque 702. En el bloque 704, el componente o dispositivo que ejecuta el proceso 700 puede determinar que se va a usar la compensación de movimiento para el bloque actual. En el bloque de decisión 706, el componente o dispositivo que se ejecuta en el proceso 700 puede determinar si la compensación de movimiento es bidireccional o si se va a utilizar de otro modo la bipredicción. Por ejemplo, en el modo de fusión, el vector de movimiento candidato utilizado para la interpredicción puede ser bidireccional. De ser así, el proceso 700 procede a 708. De lo contrario, el proceso 700 procede a 710.
En 708, la compensación de movimiento para la unidad o bloque de video actual puede convertirse en predicción unidireccional para conservar ancho de banda (por ejemplo, en el codificador 20) o para reducir la complejidad de codificación (por ejemplo, en el decodificador 30). En una realización específica, no restrictiva, se usa una interpredicción que usa una dirección unidireccional L0 o una dirección unidireccional L1, pero no ambas, en combinación con una predicción intraBL para el modo ponderado. El vector de movimiento bidireccional se convierte en un vector de movimiento uni-L0 o uni-L1 antes o durante la compensación de movimiento (por ejemplo, se usa un solo vector de movimiento de la lista L0 o L1). De manera alternativa, el candidato de vector de movimiento bidireccional se puede convertir en un vector de movimiento unidireccional (uni-L0 o uni-L1) durante la construcción de la lista de fusión.
En algunas realizaciones, la bipredicción puede suprimirse o convertirse en predicción unidireccional solo para componentes de luma, mientras que un componente de croma puede estar bipredicho. En algunas realizaciones (por ejemplo, para el modo ponderado basado en el modo AMVP), el vector de movimiento bidireccional se suprime en el codificador y solo se codifica un vector de movimiento unidireccional en el flujo de bits. En realizaciones adicionales, la señalización interdireccional se puede restringir para que el flujo de bits contenga solo direcciones uni-L0 o uni-L1. Como resultado, cualquier bit redundante asociado con la bidirección no está incluido en el flujo de bits. En otras realizaciones, solo se utilizan vectores de movimiento de pel enteros. Como resultado, el ancho de banda se puede reducir ya que no es necesario hacer una interpolación, incluso para la predicción bidireccional.
En algunas realizaciones, la bipredicción se restringe en modo ponderado aplicando una restricción normativa de flujo de bits a fin de evitar cambios en la señalización de los elementos de sintaxis. La codificación se puede realizar con la restricción de que la bipredicción (por ejemplo, toda la sintaxis asociada con la bipredicción) no se puede señalar en un flujo de bits si se utiliza el modo ponderado. Por ejemplo, un vector de movimiento bidireccional, interdireccional bidireccional y dos índices de referencia (para la lista L0 y la lista L0) no pueden estar presentes en un flujo de bits si el modo ponderado está habilitado (por ejemplo, cuando ponderado_modo_indicador es igual a 1). Por el contrario, solo la información de movimiento unidireccional (un vector de movimiento unidireccional, una interdirección unidireccional y solo un índice de referencia) puede estar presente en el flujo de bits. Esta restricción implica que la sintaxis asociada como fusión_índice, MVPidx, MVD y similares también se ajustan a la restricción y no conducen a la bipredición.
El tamaño de bloque y las limitaciones de predicción del movimiento y las técnicas de supresión descritas anteriormente con respecto a las figuras 6-7 pueden combinarse. El modo ponderado puede utilizar la predicción bidireccional solo para tamaños de bloque y modos de división particulares. Como ejemplo específico, no restrictivo, se puede usar la predicción bidireccional con modo ponderado, por ejemplo, para el tamaño de CU a partir de 16x16 y el modo de división 2Nx2N. Para CU de 16x16 y modos de división distintos de 2Nx2N, solo se puede usar la predicción unidireccional para el modo ponderado, como se describió anteriormente. Además, los candidatos de vector de movimiento del modo de fusión se pueden convertir en candidatos unidireccionales, y la señalización interdireccional para el modo AMVP se puede restringir a unidireccional para esos bloques, como también se describió anteriormente. En algunas realizaciones, para ciertas CU (por ejemplo, que tienen un tamaño de 16x16 con un modo de división que no es de 2Nx2N), la predicción bidireccional puede bloquearse o suprimirse solo para ciertas unidades de predicción en una CU determinada (por ejemplo, solo para la primera unidad de predicción), y la bipredicción se puede utilizar para los demás (por ejemplo, para la segunda PU). Aunque los ejemplos anteriores se describen en el contexto de tamaños de bloque de CU de 8x8 y 16x16, las técnicas se pueden aplicar fácilmente a bloques que tengan cualquier otro tamaño.
En algunas realizaciones, el modo ponderado puede suprimirse o restringirse sin modificaciones de sintaxis cambiando el comportamiento de la predicción del modo ponderado según el tamaño del bloque o la interdirección. Por ejemplo, un vector de movimiento bidireccional se puede señalar al decodificador y, si la bipredicción está restringida para el modo ponderado para reducir la complejidad, entonces se lleva a cabo la interpredicción normal en lugar del modo ponderado incluso si se señaliza el modo ponderado (por ejemplo, "ponderado_modojndicador "es igual a 1). Si está presente un vector de movimiento unidireccional y se señala el modo ponderado, se lleva a cabo la predicción del modo ponderado.
Para mantener la complejidad del "peor caso" dentro del "peor caso" actual para la codificación de capa única de HEVC, se puede usar la señalización condicional del modo ponderado. Por ejemplo, el modo ponderado puede suprimirse o restringirse para PU de 8x4 y 4x8. Sin embargo, el modo ponderado todavía se puede señalar para todos los tamaños de CU. Cuando se señaliza el modo ponderado (por ejemplo, "ponderado_modo indicador" es igual a 1), se puede realizar una verificación del tamaño de la PU en la etapa de predicción. Si el tamaño de la PU es 4x8 u 8x4, entonces se lleva a cabo la interpredicción normal (por ejemplo, predicción unidireccional o bidireccional) en lugar de la predicción del modo ponderado, aunque se haya señalado el modo ponderado. Solo si se señala un vector de movimiento unidireccional y el tamaño del bloque de PU no es de 8x4 o 4x8, se llevará a cabo la predicción ponderada. La señalización del vector de movimiento se puede realizar a través de los modos de fusión o AMVP. En algunas realizaciones, el modo ponderado puede restringirse de manera similar para tamaños de bloques distintos de 8x4 o 4x8. Además, la restricción del modo ponderado puede basarse en el modo de división, o en si se utiliza la señalización del modo de fusión o AMVP para la información de movimiento con el modo ponderado.
Cualquiera de las técnicas anteriores puede emplearse sola o en combinación para reducir el ancho de banda y/o la complejidad de la codificación.
Volviendo ahora a las figuras 8-15, se describirá con mayor detalle el modo de predicción residual generalizada (GRP). Como se describió anteriormente, el modo ponderado puede usar cualquier tipo de predicción, incluso GRP. Las técnicas de GRP descritas a continuación pueden abordar problemas relacionados con la predicción residual intercapa y la compensación de movimiento en el dominio de diferencia en SVC. En GRP, las ponderaciones se utilizan para varios componentes de una predicción residual generalizada, como se describe a continuación. En un bloque interpredicho, el modo ponderado se puede utilizar para todos las ponderaciones GRP. En algunas realizaciones, el modo ponderado se puede aplicar solo a ciertas ponderaciones de GRP. Por ejemplo, el modo ponderado solo se puede usar cuando las ponderaciones de GRP equivalen a 2. En este caso, el indicador del modo ponderado u otra información del modo ponderado deben señalarse después de las ponderaciones de GRP para aprovechar la dependencia del modo. En este ejemplo, la señalización del indicador del modo ponderado se puede omitir o suprimir para ciertas ponderaciones de GRP, por ejemplo, cuando los pesos de GRP son t 2, reduciendo de este modo el ancho de banda y/o los requisitos de almacenamiento. En otra realización, el modo ponderado se usa con ciertas ponderaciones de GRP, por ejemplo cuando las ponderaciones de GRP = 1 o 2, y por lo tanto no sería necesario señalar los indicadores del modo ponderado o información para ponderaciones de GRP que no se usan en modo combinado, por ejemplo cuando las ponderaciones de GRP = cero. Se pueden usar otras combinaciones de ponderaciones de GRP y supresión de modo ponderado.
La extensión SVC a H.264 requiere decodificación de bucle único para compensación de movimiento a fin de mantener una baja complejidad para el decodificador. En general, la compensación de movimiento se realiza agregando la predicción temporal y el residuo para el bloque actual de la siguiente manera:
Figure imgf000020_0001
donde I denota la trama actual, r denota el residuo y P denota la predicción temporal. En la decodificación de un solo bucle, cada capa admitida en SVC se puede decodificar con un bucle único de compensación de movimiento. Para lograrlo, todas las capas que se usan para la intrapredicción de intracapa de capas superiores se codifican mediante el uso de intrapredicción restringida. En la intrapredicción restringida, los bloques intramodo se intracodifican sin hacer referencia a ninguna muestra de los bloques intercodificados próximos. Por otro lado, HEVC permite la decodificación de bucle múltiple para SVC, donde una capa de SVC se puede decodificar utilizando bucles múltiples de compensación de movimiento. Por ejemplo, primero se decodifica por completo la capa base y luego se decodifica la capa de mejora.
La predicción residual formulada en la ecuación (1), descrita anteriormente, puede ser una técnica eficaz en la extensión SVC H.264. Sin embargo, su rendimiento se puede mejorar aún más en la extensión SVC de HEVC, en especial cuando se usa la decodificación de bucle múltiple en la extensión SVC de HEVC.
En el caso de la decodificación de bucle múltiple, se puede utilizar la compensación de movimiento del dominio de diferencia en lugar de la predicción residual. En SVC, una capa de mejora puede codificarse usando codificación de dominio de píxeles o codificación de dominio de diferencia. En la codificación del dominio de píxeles, los píxeles de entrada para los píxeles de una capa de mejora pueden codificarse, como para una capa HEVC que no es SVC. Por otro lado, en la codificación de dominios de diferencia, pueden codificarse valores de diferencia para una capa de mejora. Los valores de diferencia pueden ser la diferencia entre los píxeles de entrada para la capa de mejora y los correspondientes píxeles reconstruidos de la capa base escalada. Estos valores de diferencia se pueden utilizar en la compensación de movimiento para la compensación de movimiento del dominio de diferencia.
Para la intercodificación usando el dominio de diferencia, el bloque predicho actual se determina basándose en los valores de diferencia entre las correspondientes muestras de bloque predicho en la imagen de referencia de la capa de mejora y las muestras correspondientes de bloque predicho en la imagen de referencia de la capa base escalada. Los valores de diferencia pueden denominarse bloque de predicción de diferencia. Las muestras reconstruidas de la capa base coubicada se añaden al bloque predicho de diferencia para obtener muestras reconstruidas de la capa de mejora.
Sin embargo, el uso de la compensación de movimiento del dominio de diferencia en la predicción intercapa introduce dos conjuntos de estimación de movimiento y compensación de movimiento, ya que la estimación de movimiento y la compensación de movimiento se utilizan a menudo tanto para el dominio de píxeles como para el dominio de diferencia. La introducción de dos conjuntos de estimación de movimiento y compensación de movimiento puede generar un mayor costo de memoria intermediaria y computacional, lo que puede no ser práctico para un codificador o decodificador. Además, la codificación de dos conjuntos de vectores de movimiento puede reducir la eficiencia de codificación, ya que el campo de movimiento puede volverse irregular cuando los dos conjuntos de vectores de movimiento tienen propiedades diferentes y están intercalados en el nivel de la unidad de codificación (CU). Además, la estimación de movimiento en el dominio de diferencia requiere que la capa base y la capa de mejora compartan el mismo movimiento. Además, la compensación de movimiento del dominio de la diferencia no funciona con la decodificación de bucle único, ya que la derivación de imágenes diferenciales entre dos capas se basa en imágenes completamente reconstruidas de cada capa. Por consiguiente, sería ventajoso evitar la redundancia al tener dos conjuntos de estimación de movimiento y compensación de movimiento cuando se usa compensación de movimiento del dominio de diferencia. Además, sería ventajoso extender la compensación de movimiento del dominio de diferencia en la decodificación de bucle único.
Como se explicó con anterioridad, la predicción residual intercapa usa el residuo de la capa de referencia para predecir la unidad de video actual, por ejemplo, un bloque o una trama. En la predicción residual generalizada, la predicción residual intercapa de la unidad de video actual puede basarse en el residuo de la capa actual, la predicción temporal de la capa actual y el residuo de la capa de referencia. El residuo de la capa de referencia puede ajustarse mediante un factor de ponderación. El factor de ponderación puede basarse e incluir varios tipos de información. Ejemplos de dicha información pueden incluir el número de candidatos de ponderación, el paso de ponderación, el índice de ponderación y la tabla de ponderación.
El marco de GRP según los aspectos de la presente divulgación puede alojar varios tipos de predicción residual incorporando un factor de ponderación. El ajuste adecuado del factor de ponderación puede conducir a ganancias de codificación significativas para la predicción residual. Además, en el marco de GRP, la predicción residual se puede realizar mediante el uso de una capa de referencia que no es necesariamente la capa base en la predicción residual tradicional. Por ejemplo, la capa de referencia puede derivarse de la capa de mejora actual. GRP también puede ajustarse a la predicción residual tradicional cuando el factor de ponderación se establece en 1. El marco de GRP se puede utilizar con decodificación de bucle único y decodificación de bucle múltiple. Además, en el marco de GRP, la estimación de movimiento en el dominio de diferencia puede no ser necesaria y, por lo tanto, la capa actual y la capa de mejora no tienen que compartir el mismo movimiento para la estimación de movimiento. El marco de GRP se puede aplicar a muchos tipos diferentes de predicción residual, y la predicción residual tradicional según se define en la Ecuación (1) y la compensación de movimiento del dominio de diferencia son dos escenarios específicos para el uso del marco de GRP. Las técnicas pueden mejorar el rendimiento de la compensación de movimiento en la extensión escalable de HEVC y también pueden aplicarse a la extensión de codificación de video 3D de HEVC.
Según ciertos aspectos, el valor diferencial entre las predicciones de la capa actual (por ejemplo, de mejora) y la capa de referencia (por ejemplo, base) puede emplearse como predictor de diferencia. En algunas realizaciones, el valor diferencial puede denominarse píxeles diferenciales. Debido a que la capa de mejora y la capa base pueden tener un objetivo de calidad diferente, el movimiento de las predicciones temporales de la capa actual y la capa base pueden ser diferentes. En algunas situaciones, la reconstrucción mediante el uso del valor diferencial puede ser más eficiente y/o producir mejores resultados. Por ejemplo, cuando hay un cambio o corte de escena, de manera que las tramas secuenciales pueden ser muy diferentes entre sí, se puede preferir la reconstrucción utilizando el predictor de diferencia. Se puede aplicar un factor de ponderación al valor diferencial. Dicha técnica puede denominarse predicción de diferencia ponderada (WDP). En algunas realizaciones, WDP se puede implementar como una extensión del marco de GRP.
Las figuras 8A y 8B son diagramas de flujo que ilustran métodos de ejemplo para la predicción residual generalizada utilizando píxeles residuales (por ejemplo, ir - Pr) y píxeles diferenciales (por ejemplo, Pc - Pr), respectivamente. Las técnicas descritas en la presente divulgación pueden proporcionar un marco de predicción residual generalizada (GRP). Como se explicó con anterioridad, la predicción residual intercapa usa el residuo de la capa de referencia para predecir la unidad de video actual, por ejemplo, una trama. En la predicción residual generalizada, la predicción residual intercapa de la unidad de video actual puede basarse en el residuo de la capa actual, la predicción temporal de la capa actual y el residuo de la capa de referencia. El residuo de la capa de referencia puede ajustarse mediante un factor de ponderación. El esquema de GRP se puede definir de la siguiente manera:
Figure imgf000022_0001
donde lc denota la reconstrucción de la trama actual, rc denota la predicción residual de la capa actual, Pc denota la predicción temporal de la misma capa, rr denota la predicción residual de la capa de referencia y w denota un factor de ponderación.
El factor de ponderación puede basarse e incluir varios tipos de información. Ejemplos de dicha información pueden incluir el número de candidatos de ponderación, el paso de ponderación, el índice de ponderación y la tabla de ponderación. El número de candidatos de ponderación puede indicar el número de factores de ponderación diferentes que están disponibles para su aplicación al residuo de la capa de referencia. El paso de ponderación puede indicar el tamaño del incremento o la unidad entre los factores de ponderación disponibles. El índice de ponderación puede indicar un factor de ponderación particular entre los factores de ponderación disponibles. La tabla de ponderación puede incluir información sobre el factor de ponderación y se puede acceder mediante el índice de ponderación, similar a una tabla de búsqueda. En un ejemplo específico, pueden estar disponibles tres candidatos del factor de ponderación: 0,0, 0,5 y 1,0. En este ejemplo, el número de candidatos de ponderación es 3 porque están disponibles tres candidatos del factor de ponderación. El paso de ponderación entre los 3 candidatos de ponderación es 0,5. Cada candidato de ponderación puede identificarse mediante un índice de ponderación. El factor de ponderación 0 se identifica con el índice 0, el factor de ponderación 0,5 con el índice 1 y el factor de ponderación 1,0 con el índice 2. El paso de ponderación y el índice pueden usarse para derivar el factor de ponderación ya que las fracciones de señalización pueden ser costosas.
El marco de GRP según los aspectos de la presente divulgación puede alojar varios tipos de predicción residual incorporando un factor de ponderación. El ajuste adecuado del factor de ponderación puede conducir a ganancias de codificación significativas para la predicción residual. La GRP puede mejorar el rendimiento de codificación mientras que reduce la cantidad de memoria y el costo computacional al incorporar información de ponderación para la capa de referencia en la predicción residual. Por ejemplo, la GRP puede mejorar el rendimiento de codificación, ya que la predicción de residuo ponderado es más precisa. Además, la cantidad de memoria y el costo computacional se pueden reducir, por ejemplo, porque dos conjuntos de bucles de compensación de movimiento no se usan normalmente como en la compensación de movimiento del dominio de diferencia. Además, en el marco de GRP, la predicción residual se puede realizar mediante el uso de una capa de referencia que no es necesariamente la capa base en la predicción residual tradicional. Por ejemplo, la capa de referencia puede derivarse de la capa de mejora de la capa actual. GRP también puede ajustarse a la predicción residual tradicional cuando el factor de ponderación se establece en 1. El marco de GRP se puede utilizar con decodificación de bucle único y decodificación de bucle múltiple.
Con respecto a la compensación de movimiento del dominio de diferencia, el marco de GRP puede aplicarse en decodificación de bucle único. Como se explicó con anterioridad, en H.264, la compensación de movimiento del dominio de diferencia no se puede emplear en un escenario de decodificación de bucle único, ya que las imágenes diferenciales entre capas deben calcularse en base a la imagen completamente reconstruida de cada capa. Para obtener la imagen de diferencia en la compensación de movimiento del dominio de diferencia, a menudo se utiliza la reconstrucción completa de cada capa, y para cada capa se puede utilizar un bucle de compensación de movimiento para la reconstrucción completa. Por ejemplo, a menudo se utilizan dos bucles de compensación de movimiento para tener una reconstrucción completa de dos capas. Por consiguiente, la compensación de movimiento del dominio de diferencia no se puede emplear en la decodificación de bucle único. Por el contrario, la GRP puede admitir decodificación de bucle único y decodificación de bucle múltiple. Además, en el marco de GRP, la estimación de movimiento del dominio de diferencia puede no ser necesaria. Por lo tanto, la capa actual y la capa de mejora no tienen que compartir el mismo movimiento para la estimación de movimiento. El marco de GRP es aplicable a muchos tipos diferentes de predicción residual, y la predicción residual tradicional según se define en la Ecuación (1) y la compensación de movimiento del dominio de diferencia son dos escenarios específicos para el uso del marco de GRP.
El método de ejemplo para la predicción residual generalizada según aspectos de esta descripción se explicará ahora con referencia a la figura 8A. El proceso 800A puede llevarse a cabo por un codificador (por ejemplo, el codificador como se muestra en la figura 2), un decodificador (por ejemplo, el decodificador como se muestra en la figura 3), o cualquier otro componente. Los pasos del proceso 800A se describen con respecto al decodificador 30 en la figura 3, pero el proceso 800A puede ser realizado por otros componentes, tales como un codificador, como se mencionó anteriormente.
En el bloque 801A, el decodificador 30 aplica un factor de ponderación a la predicción residual de la capa de referencia. Como se explicó con anterioridad, la predicción residual generalizada (GRP) puede aplicar un factor de ponderación al residuo de la capa de referencia. Se puede determinar que el factor de ponderación es óptimo para un escenario particular, como la decodificación de bucle único. El factor de ponderación puede incluir información como el número de candidatos de ponderación, el paso de ponderación, el índice de ponderación y la tabla de ponderación.
En el bloque 802A, el decodificador 30 obtiene la predicción residual de la capa de mejora. En el bloque 803A, el decodificador 30 obtiene la predicción temporal de la capa de mejora.
En el bloque 804A, el decodificador 30 determina la unidad de video actual basándose en la predicción residual de la capa de referencia ajustada por el factor de ponderación, la predicción residual de la capa de mejora y la predicción temporal de la capa de mejora. Como se explicó con anterioridad, en GRP, la unidad de video actual se puede predecir según la Ecuación (5).
El método de ejemplo para la predicción residual generalizada según aspectos de esta descripción se explicará ahora con referencia a la figura 8B. El proceso 800B puede llevarse a cabo por un codificador (por ejemplo, el codificador como se muestra en la figura 2), un decodificador (por ejemplo, el decodificador como se muestra en la figura 3), o cualquier otro componente. Los pasos del proceso 800B se describen con respecto al decodificador 30 en la figura 3, pero el proceso 800B puede ser realizado por otros componentes, tales como un codificador, como se mencionó anteriormente.
En el bloque 801B, el decodificador 30 aplica un factor de ponderación a la predicción de diferencia. La predicción residual generalizada (GRP) puede aplicar un factor de ponderación a la diferencia entre las predicciones de la capa actual o de mejora (Pe) y la capa de referencia o base (Pb). Se puede determinar que el factor de ponderación es óptimo para un escenario particular, como la decodificación de bucle múltiple. El factor de ponderación puede incluir información como el número de candidatos de ponderación, el paso de ponderación, el índice de ponderación y la tabla de ponderación.
En el bloque 802B, el decodificador 30 obtiene la predicción residual de la capa de mejora. En el bloque 803B, el decodificador 30 obtiene la reconstrucción de la imagen actual en la capa de referencia.
En el bloque 804B, el decodificador 30 determina la unidad de video actual basándose en la predicción de diferencia ajustada por el factor de ponderación, la predicción residual de la capa de mejora y la reconstrucción de la capa de referencia. La unidad de video actual puede predecirse según la Ecuación (7B), que se analiza a continuación. El método de ejemplo para la predicción residual generalizada según aspectos de la presente divulgación descritos con respecto a la figura 8A y figura 8B puede implementarse en varios niveles de codificación, como secuencia, imagen, un grupo de tramas, trama, un grupo de segmentos, segmento, un grupo de unidades de codificación (CU), unidad de codificación (CU), un grupo de unidades de predicción (PU), unidad de predicción (PU), bloques o una región de píxeles. Además, todas las realizaciones descritas con respecto a las figuras 8A y 8B pueden implementarse por separado o en combinación entre sí.
La figura 9 es un diagrama de flujo que ilustra un método de ejemplo para la predicción residual generalizada mediante el uso de decodificación de bucle único según aspectos de la presente divulgación. Como se explicó anteriormente, en la decodificación de bucle único, se utiliza un bucle para la compensación de movimiento de la capa de mejora. En el escenario de decodificación de bucle único, no se dispone de una reconstrucción completa de la capa base. Por consiguiente, el residuo normalizado de la capa base puede emplearse directamente como predictor residual base. Para la capa de mejora, la reconstrucción íe se puede determinar de la siguiente manera:
ie = re + P e W * l'b = re + P e W • rb' • (Q e / Q b ) ( 6 ) donde re y Pe denotan residuo descuantificado y predicción temporal de la capa de mejora, rb denota el predictor residual normalizado de la capa base (sobremuestreado en el caso escalable espacial), rb' denota el residuo de la capa base y Qe y Qb denotan el paso de cuantificación de la capa de mejora y la capa base, respectivamente.
El método de ejemplo para la predicción residual generalizada que usa decodificación de bucle único según aspectos de la presente divulgación se explicará ahora con referencia a la figura 9. El proceso 900 puede llevarse a cabo por un codificador (por ejemplo, el codificador como se muestra en la figura 2), un decodificador (por ejemplo, el decodificador como se muestra en la figura 3), o cualquier otro componente. Los pasos del proceso 900 se describen con respecto al decodificador 30 en la figura 3, pero el proceso 900 puede ser realizado por otros componentes, tales como un codificador, como se mencionó anteriormente. En el bloque 901, el decodificador 30 determina un factor de ponderación para la predicción residual desde la capa de referencia en la decodificación de bucle único para el marco de GRP. En el bloque 902, el decodificador 30 determina la unidad de video actual basándose en la predicción residual de la RL ajustada por el factor de ponderación, la predicción residual de la EL y la predicción temporal de la EL. Por ejemplo, como se explicó con anterioridad con respecto a la Ecuación (6), el residuo de la capa base normalizado puede usarse para la predicción residual de la RL. El método de ejemplo para la predicción residual generalizada que usa decodificación de bucle único según aspectos de la presente divulgación descritos con respecto a la figura 9 puede implementarse en varios niveles de codificación, como secuencia, imagen, un grupo de tramas, trama, un grupo de segmentos, segmento, un grupo de unidades de codificación (CU), unidad de codificación (CU), un grupo de unidades de predicción (PU), unidad de predicción (PU), bloques o una región de píxeles. Además, todas las realizaciones descritas con respecto a la figura 9 pueden implementarse por separado o en combinación entre sí.
La figura 10A y la figura 10B son diagramas de flujo que ilustran métodos de ejemplo para la predicción residual generalizada mediante el uso de decodificación de bucle múltiple según los aspectos de la presente divulgación. Como se explicó anteriormente, en la decodificación de bucle múltiple, se utilizan múltiples bucles para la compensación de movimiento de la capa de mejora. En el escenario de la decodificación de bucle múltiple, la reconstrucción completa de la capa base está disponible cuando se codifica/decodifica la capa de mejora. Por consiguiente, el valor diferencial entre la reconstrucción de la capa de mejora y la capa base previamente codificadas (sobremuestreadas si es necesario) puede emplearse como predictor residual. Para la capa de mejora, la reconstrucción íe se puede determinar de la siguiente manera:
Figure imgf000024_0001
donde re re indica el residuo descuantificado de la unidad de video actual en la capa de mejora, Pe y Pb indican la predicción temporal para la unidad de video actual en la capa de mejora y la capa base, respectivamente, íb indica la reconstrucción completa de la unidad de video actual en la capa base. Debido a que la capa de mejora y la capa base pueden tener un objetivo de calidad diferente, el movimiento de las predicciones temporales Pe y Pb puede ser diferente.
Si la capa base y la capa de mejora tienen el mismo movimiento, el movimiento de las predicciones temporales Pe y Pb es el mismo, y la Ecuación (7A) puede emplearse directamente. Cuando se decodifica una unidad de intervideo de la capa de mejora, sus predicciones temporales Pe y Pb de la capa de mejora y capa base están ambas disponibles. La reconstrucción de la capa base íb también está disponible. Por consiguiente, la reconstrucción íe se puede obtener a partir del residuo descuantificado re y w, que se puede señalar o derivar como se explica con mayor detalle con respecto a las figuras 11 y 12.
Si la capa base y la capa de mejora tienen un movimiento diferente, el movimiento de las predicciones temporales Pe y Pb de la capa de mejora y capa base es diferente, y el residuo de la capa base y el residuo de la capa de mejora pueden no estar correlacionados. En tal caso, la predicción residual puede no conducir a buenos resultados. Para mejorar el rendimiento de la predicción residual, se puede suponer que las predicciones temporales de la capa de mejora y de la capa base comparten el mismo movimiento. Además o en lugar de suponer que las predicciones temporales de la El y BL comparten el mismo movimiento, el movimiento de la capa base o el movimiento de la capa de mejora puede verse obligado a aplicarse a otra capa a fin de generar el predictor residual. Por ejemplo, el movimiento de la predicción temporal Pe de la capa de mejora puede aplicarse a la capa base para obtener Pb. En tal caso, a menudo se utilizan dos compensaciones de movimiento para decodificar la capa de mejora, ya que tanto Pe como Pb pueden generarse con el movimiento de Pe.
En otra realización, el valor diferencial entre las predicciones de la capa actual (por ejemplo, de mejora) y la capa de referencia (por ejemplo, base) puede emplearse como predictor de diferencia. Para la capa de mejora, la reconstrucción íe se puede determinar de la siguiente manera:
Figure imgf000024_0002
donde re indica el residuo descuantificado de la unidad de video actual en la capa de mejora, Pe y Pb indican la predicción temporal para la unidad de video actual en la capa de mejora y la capa base, respectivamente, ib indica la reconstrucción completa de la unidad de video actual en la capa base. Debido a que la capa de mejora y la capa base pueden tener un objetivo de calidad diferente, el movimiento de las predicciones temporales Pe y Pb puede ser diferente. En muchas situaciones, la reconstrucción según la ecuación (7A) será más eficiente que según la ecuación (7B). Sin embargo, en alguna situación, la reconstrucción según la ecuación (7B) será más eficiente y/o producirá mejores resultados. Por ejemplo, cuando hay un cambio o corte de escena, de manera que las tramas secuenciales son muy diferentes entre sí, se prefiere la reconstrucción según la ecuación (7B).
En una realización, se asignan diferentes índices de ponderación a factores de ponderación de GRP normales y factores de ponderación de WDP. Por ejemplo, en una realización, se permiten cuatro índices de ponderación en el nivel de CU. Los índices de ponderación 0, 1 y 2 indican que se usa la ecuación (7A) para el cálculo de predicción, donde w = 0, 0,5 y 1, respectivamente. El índice de ponderación 3 indica que se usa la ecuación (7B) para el cálculo de predicción y w = 0,5. En otra realización, los factores de ponderación de GRP (por ejemplo, la ecuación (7A)) están todos deshabilitados y solo se permiten los factores de ponderación de WDP (por ejemplo, la ecuación (7B)). Todos los métodos descritos en la presente con respecto a GRP, incluidos, entre otros, métodos de señalización/derivación de parámetros, métodos de determinación de factor de ponderación, sobremuestreo de imagen/movimiento relacionado, métodos de submuestreo, etc., también se pueden aplicar a WDP.
Los métodos de ejemplo para la predicción residual generalizada mediante el uso de decodificación de bucle múltiple según aspectos de la presente divulgación se explicarán ahora con referencia a la figura 10A y la figura 10B. El proceso 1000A y el proceso 1000B pueden llevarse a cabo por un codificador (por ejemplo, el codificador como se muestra en la figura 2), un decodificador (por ejemplo, el decodificador como se muestra en la figura 3), o cualquier otro componente. Los pasos del proceso 1000A y el proceso 1000B se describen con respecto al decodificador 30 en la figura 3, pero el proceso 1000A y el proceso 1000B pueden ser realizados por otros componentes, tales como un codificador, como se mencionó anteriormente.
En referencia a la figura 10A, en el bloque 1001A, el decodificador 30 determina un factor de ponderación para la predicción residual desde la capa de referencia en la decodificación de bucle múltiple para el marco de GRP. En el bloque 1002A, el decodificador 30 determina la unidad de video actual basándose en la predicción residual de la RL ajustada por el factor de ponderación, la predicción residual de la EL y la predicción temporal de la EL. Por ejemplo, como se explicó con anterioridad con respecto a la Ecuación (7), ib - Pb pueden usarse para la predicción residual de la RL.
En referencia a la figura 10B, en el bloque 1001B, el decodificador 30 determina un factor de ponderación para la predicción de diferencia en la decodificación de bucle múltiple para el marco de GRP. En el bloque 1002B, el decodificador 30 determina la unidad de video actual basándose en la predicción de diferencia ajustada por el factor de ponderación, la predicción residual de la EL y la reconstrucción de la RL (por ejemplo, la reconstrucción completa de la imagen actual en la capa de referencia). Por ejemplo, como se explicó con anterioridad con respecto a la ecuación (7B), Pe - Pb (o Pc - Pr) pueden usarse para la predicción de diferencia.
El método de ejemplo para la predicción residual generalizada que usa decodificación de bucle múltiple según aspectos de la presente divulgación descritos con respecto a la figura 10A y figura 10B puede implementarse en varios niveles de codificación, como secuencia, imagen, un grupo de tramas, trama, un grupo de segmentos, segmento, un grupo de unidades de codificación (CU), unidad de codificación (CU), un grupo de unidades de predicción (PU), unidad de predicción (PU), bloques o una región de píxeles. Además, todas las realizaciones descritas con respecto a las figuras 10A y la figura 10B pueden implementarse por separado, o en combinación entre sí.
En algunas situaciones, los píxeles residuales (por ejemplo, ib - Pb) y los píxeles diferenciales (por ejemplo, Pe - Pb) pueden extenderse más allá de una profundidad de bits asignada o deseada. Por ejemplo, en algunas situaciones, es posible que esos píxeles no se puedan representar en 8 o 16 bits. Eso puede crear complicaciones para la implementación de hardware. Por lo tanto, en algunas realizaciones, el recorte se lleva a cabo para truncar los píxeles residuales o diferenciales a fin de asegurarse de que cada uno se encuentre dentro de un rango deseado, por ejemplo, entre otros, la representación de 8 o 16 bits.
La figura 11 es un diagrama de flujo que ilustra un método de ejemplo para señalar parámetros de predicción residual generalizados según los aspectos de la presente divulgación. Como se explicó con anterioridad, la información de ponderación puede incluir el número de candidatos de ponderación, el paso de ponderación (o la tabla de ponderación) y el índice de ponderación. El factor de ponderación w puede determinarse en base a dicha información de ponderación. El número de candidatos de ponderación puede indicarse con Nw. El paso de ponderación puede indicarse con Swy la tabla de ponderación con Wt. El índice de ponderación puede indicarse con iw. En una realización, el factor de ponderación w se deriva en base al paso de ponderación Sw y el índice de ponderación iwde la siguiente manera:
En otra realización, w puede obtenerse de una tabla de búsqueda Wt según el índice iw.
La información del factor de ponderación, que puede incluir, entre otros, Nw, Sw, Wt, e iw, puede señalarse de diversas formas. En algunas realizaciones, el paso de ponderación Sw o la tabla de ponderación WT pueden estar predefinidos en código o señalizados. Sw o Wt pueden señalarse en el nivel de secuencia o en el nivel de imagen. El índice de ponderación iw puede señalarse en un nivel inferior, como CU y PU.
En una realización, el paso de ponderación Sw se representa con cuantificación de 3 bits (Sw puede ser 1/8, 2/8, ... , 8/8) y un entero sin señalización Exp-Golomb codificado en el Conjunto de parámetros de secuencia (SPS). Considerando que Nw ^ 1, (Nw - 1) también es un entero sin señalización Exp-Golomb codificado en SPS. El índice de ponderación iw, primero se binariza con código unario truncado (con Nw como el número máximo) y luego se codifica por CABAC. En la codificación CABAC, el primer segmento se codifica con un contexto y el resto se codifica con otro contexto. Para codificar el índice de ponderación iw, el contexto puede depender de parámetros codificados previamente. Por ejemplo, iw de CU espacialmente vecinas, tales como CU izquierdas y superiores, pueden usarse como contexto para el índice de ponderación iw de la CU actual. Además, el tipo de CU actual, como si la CU actual está codificada por omisión o fusión, o el tamaño de la CU actual se puede utilizar como contexto.
En otras realizaciones, diferentes modos de CU pueden tener diferentes métodos de señalización de factores de ponderación. Por ejemplo, para los modos de omisión y fusión, se pueden seleccionar y señalar tres factores de ponderación (como w = 0, w = 0,5 y w = 1). Para los intermodos distintos de los modos de omisión y fusión, solo se pueden seleccionar y señalar dos factores de ponderación (como w = 0 y w = 1). De manera alternativa, para los intermodos distintos de los modos de omisión y fusión, solo se puede aplicar un factor de ponderación fijo. En tal caso, no se puede utilizar ninguna señalización adicional para el factor de ponderación.
El método de ejemplo para señalar parámetros de predicción residual generalizados según aspectos de la presente divulgación se explicará ahora con referencia a la figura 11. El proceso 1100 puede llevarse a cabo por un codificador (por ejemplo, el codificador como se muestra en la figura 2), un decodificador (por ejemplo, el decodificador como se muestra en la figura 3), o cualquier otro componente. Los pasos del proceso 1100 se describen con respecto al codificador 20 en la figura 2, pero el proceso 1100 puede ser realizado por otros componentes, tales como un decodificador, como se mencionó anteriormente. En el bloque 1101, el codificador 20 señala el paso de ponderación o la tabla de ponderación. En el bloque 1102, el codificador 20 señala el número de candidatos de ponderación. En el bloque 1103, el codificador 20 señala el índice de ponderación. Los pasos del proceso 1100 pueden llevarse a cabo en un orden diferente. Por ejemplo, el número de candidatos de ponderación puede señalarse antes del paso de ponderación (o la tabla de ponderación). El método de ejemplo para señalar parámetros de predicción residual generalizados según aspectos de la presente divulgación descritos con respecto a la figura 11 puede implementarse en varios niveles de codificación, como secuencia, imagen, un grupo de tramas, trama, un grupo de segmentos, segmento, un grupo de unidades de codificación (CU), unidad de codificación (CU), un grupo de unidades de predicción (PU), unidad de predicción (PU), bloques o una región de píxeles. Además, todas las realizaciones descritas con respecto a la figura 11 pueden implementarse por separado o en combinación entre sí.
La figura 12 es un diagrama de flujo que ilustra un método de ejemplo para derivar parámetros de predicción residual generalizados según los aspectos de la presente divulgación. Los parámetros de GRP se pueden señalar como se explica con respecto a la figura 11. Los parámetros de GRP también pueden derivarse de la información incluida en el flujo de bits. Los parámetros de GRP pueden derivarse total o parcialmente de la información del flujo de bits. En una realización, el paso de ponderación Sw se deriva en el nivel de CU según el tamaño de CU relacionado. En la siguiente tabla se muestra un ejemplo de mapeo entre el paso de ponderación Sw y el tamaño de CU.
Tabla 1 - Mapeo de ejemplo entre el paso de ponderación y el tamaño de CU
Figure imgf000026_0001
En otra realización, el número máximo de candidatos de ponderación se ajusta al nivel de CU basándose en información previamente codificada, como el modo de CU, el tamaño de CU y la cuantificación. Por ejemplo, para CU menores de 16x16, solo se pueden permitir dos candidatos de ponderación, por ejemplo, para ahorrar costes de señalización.
El método de ejemplo para derivar parámetros de predicción residual generalizados según aspectos de la presente divulgación se explicará ahora con referencia a la figura 12. El proceso 1200 puede llevarse a cabo por un codificador (por ejemplo, el codificador como se muestra en la figura 2), un decodificador (por ejemplo, el decodificador como se muestra en la figura 3), o cualquier otro componente. Los pasos del proceso 1200 se describen con respecto al decodificador 30 en la figura 3, pero el proceso 1200 puede ser realizado por otros componentes, tales como un codificador, como se mencionó anteriormente.
En el bloque 1201, el decodificador 30 obtiene información del flujo de bits u obtiene información previamente codificada para determinar la información de ponderación. Por ejemplo, como se explicó con anterioridad, los parámetros de GRP pueden basarse en el tamaño de CU. O los parámetros de GRP pueden basarse en información previamente codificada, como el modo de CU, el tamaño de CU y la cuantificación. En el bloque 1202, el decodificador 30 determina uno o más parámetros para la predicción residual generalizada basándose en la información obtenida en el bloque 1201. Por ejemplo, el decodificador 30 puede determinar el paso de ponderación Sw basándose en el tamaño de CU. El decodificador 30 también puede determinar el número de candidatos de ponderación Nw basándose en el tamaño de CU. El decodificador 30 también puede ajustar la información de ponderación basándose en información previamente codificada, como el modo de CU, el tamaño de CU y la cuantificación. El método de ejemplo para derivar parámetros de predicción residual generalizados según aspectos de la presente divulgación descritos con respecto a la figura 8 puede implementarse en varios niveles de codificación, como secuencia, imagen, un grupo de tramas, trama, un grupo de segmentos, segmento, un grupo de unidades de codificación (CU), unidad de codificación (CU), un grupo de unidades de predicción (PU), unidad de predicción (PU), bloques o una región de píxeles. Además, todas las realizaciones descritas con respecto a la figura 12 pueden implementarse por separado o en combinación entre sí.
La figura 13 es un diagrama de flujo que ilustra un método de ejemplo para sobremuestreo o submuestreo de una capa en la predicción residual generalizada según los aspectos de la presente divulgación. En el proceso de predicción entre capas, se aplica un proceso de filtrado de sobremuestreo o submuestreo a la imagen de la capa base para que coincida con la relación de aspecto espacial de la capa de mejora. También se puede aplicar un proceso de filtrado, como un filtro de suavizado, incluso cuando el tamaño de la imagen de la capa base y la capa de mejora son idénticos. En general, se usa y predefine en código un conjunto fijo de filtros de sobremuestreo, submuestreo y suavizado. El filtro puede seleccionarse del conjunto según el desplazamiento fraccional de píxeles (a veces denominado fase), que se calcula en función de la relación de aspecto espacial entre la capa base y las imágenes de la capa de mejora.
En el marco de GRP, se pueden aplicar conjuntos de filtrado variantes para mejorar el rendimiento de predicción intercapa. Los conjuntos de filtrado pueden estar predefinidos en código o señalizados en el nivel de secuencia o de imagen. El índice del conjunto de filtros puede señalarse o derivarse en un nivel inferior, como CU y PU. El índice del conjunto de filtros se puede derivar en base al valor del factor de ponderación w, o se puede derivar en base al índice de ponderación iw. La tabla de mapeo de derivación entre el índice del conjunto de filtrado y el factor de ponderación w, o entre el conjunto de filtrado y el índice de ponderación iw puede estar predefinida en código o señalizada en nivel de secuencia o imagen.
El método de ejemplo para el sobremuestreo o submuestreo de una capa en la predicción residual generalizada según los aspectos de la presente divulgación se explicará ahora con referencia a la figura 13. El proceso 1300 puede llevarse a cabo por un codificador (por ejemplo, el codificador como se muestra en la figura 2), un decodificador (por ejemplo, el decodificador como se muestra en la figura 3), o cualquier otro componente. Los pasos del proceso 1300 se describen con respecto al decodificador 30 en la figura 3, pero el proceso 1300 puede ser realizado por otros componentes, tales como un codificador, como se mencionó anteriormente.
En el bloque 1301, el decodificador 30 determina si se debe sobremuestrear la capa de referencia o submuestrear la capa de mejora. En la escalabilidad espacial, dicho sobremuestreo y submuestreo se realiza para que la predicción intercapa se pueda realizar con la misma resolución. Si se determina que la capa de referencia se sobremuestreará en el bloque 1302, el decodificador 30 sobremuestrea la capa de referencia a la resolución de la capa de mejora en el bloque 1303. Por otro lado, si se determina que la capa de mejora será submuestreada en el bloque 1302, el decodificador 30 submuestrea la capa de mejora a la resolución de la capa de referencia en el bloque 1304. En el bloque 1305, el decodificador 30 aplica un filtro de suavizado a las imágenes sobremuestreadas o submuestreadas. El filtro de suavizado se puede aplicar incluso si la capa de mejora y las imágenes de la capa de referencia son las mismas. El filtro de suavizado se puede seleccionar de forma adecuada. En el bloque 1306, el decodificador 30 determina la unidad de video actual mediante el uso de GRP basándose en las imágenes sobremuestreadas o submuestreadas.
El método de ejemplo para el sobremuestreo o submuestreo de una capa en la predicción residual generalizada según los aspectos de la presente divulgación descritos con respecto a la figura 13 puede implementarse en varios niveles de codificación, como secuencia, imagen, un grupo de tramas, trama, un grupo de segmentos, segmento, un grupo de unidades de codificación (CU), unidad de codificación (CU), un grupo de unidades de predicción (PU), unidad de predicción (PU), bloques o una región de píxeles. Además, todas las realizaciones descritas con respecto a la figura 13 pueden implementarse por separado o en combinación entre sí.
La figura 14 es un diagrama de flujo que ilustra un método de ejemplo para el remapeo, sobremuestreo o submuestreo de la información de movimiento en la predicción residual generalizada según los aspectos de la presente divulgación. En algunos casos, al aplicar información de movimiento de una capa a otra capa para generar el predictor residual, la referencia disponible en una capa puede no estar disponible en otra capa. En dicho caso, se necesita el remapeo de movimiento. En una realización, si una referencia solo está disponible en una capa, se marca como no disponible de manera tal que esa referencia no se utilizará para generar un predictor residual en el marco de GRP propuesto. En otra realización, la referencia no disponible se reemplaza por la referencia al comienzo de la lista de referencia relacionada, y el movimiento se establece en movimiento cero.
En la codificación de video 3D, los datos de video SVC también incluyen datos de video para diferentes vistas. Debido a que las vistas pueden relacionarse con diferentes ángulos, puede existir disparidad entre las diferentes vistas. Si el movimiento se remapea en el contexto de la codificación de video 3D, el vector de disparidad se puede considerar al remapear el movimiento.
En casos de escalabilidad espacial, el vector de movimiento se puede sobremuestrear o submuestrear debido a las diferentes resoluciones entre la capa de mejora y la capa base. En una realización, la escala del vector de movimiento se basa directamente en la relación de resolución. En otra realización, se puede aplicar un desplazamiento de fase adicional (+1 o -1) después de la escala directa. El desplazamiento de fase adicional puede estar señalado en el flujo de bits o derivarse según la información previamente codificada, como el tamaño de PU, el vector de movimiento, la profundidad de CU, etc.
El método de ejemplo para remapear, sobremuestrear o submuestrear la información de movimiento según los aspectos de la presente divulgación se explicará ahora con referencia a la figura 14. El proceso 1400 puede llevarse a cabo por un codificador (por ejemplo, el codificador como se muestra en la figura 2), un decodificador (por ejemplo, el decodificador como se muestra en la figura 3), o cualquier otro componente. Los pasos del proceso 1400 se describen con respecto al decodificador 30 en la figura 3, pero el proceso 1400 puede ser realizado por otros componentes, tales como un codificador, como se mencionó anteriormente. En el bloque 1401, si una referencia para la información de movimiento no está disponible en una de las capas, el decodificador 30 remapea la información de movimiento en el bloque 1402. Por ejemplo, el decodificador 30 puede marcar una referencia como no disponible si la referencia correspondiente en otra capa no está disponible. O el decodificador 30 puede remapear la referencia a una referencia en una lista de referencia relacionada. Si hay una referencia para la información de movimiento disponible en las capas utilizadas para la interpredicción en el bloque 1401, el decodificador 30 puede no realizar un procesamiento adicional como se muestra en el bloque 1403. En el bloque 1404, si se usa SVC espacial, el decodificador 30 determina si sobremuestrear la información de movimiento de la capa de referencia o si submuestrear la información de movimiento de la capa de mejora en el bloque 1405. Si no se usa la escalabilidad espacial, el decodificador 30 puede no realizar ningún procesamiento adicional como se muestra en el bloque 1406. En el bloque 1407, si se determina que la información de movimiento de la capa de referencia será sobremuestreada, el decodificador 30 sobremuestrea la información de movimiento de la capa de referencia a la resolución de la capa de mejora en el bloque 1008. Por otro lado, si se determina que la información de movimiento de la capa de mejora será submuestreada en el bloque 1407, el decodificador 30 submuestrea la información de movimiento de la capa de mejora a la resolución de la capa de referencia en el bloque 1409. En el bloque 1410, el decodificador 30 determina la unidad de video actual mediante el uso de GRP usando las imágenes de sobremuestreo o submuestreo.
El método de ejemplo para remapear, sobremuestrear o submuestrear la información de movimiento según los aspectos de la presente divulgación descritos con respecto a la figura 10 puede implementarse en varios niveles de codificación, como secuencia, imagen, un grupo de tramas, trama, un grupo de segmentos, segmento, un grupo de unidades de codificación (CU), unidad de codificación (CU), un grupo de unidades de predicción (PU), unidad de predicción (PU), bloques o una región de píxeles. Además, todas las realizaciones descritas con respecto a la figura 14 pueden implementarse por separado o en combinación entre sí.
La figura 15 es un diagrama de flujo que ilustra un método de ejemplo para determinar un factor de ponderación para la codificación en la predicción residual generalizada según los aspectos de la presente divulgación. El método de ejemplo puede aplicarse a la optimización del lado del codificador. En una realización, el mejor factor de ponderación w para cada CU se determina verificando el coste de distorsión de velocidad de CU con cada factor de ponderación candidato. El factor de ponderación con coste mínimo se selecciona como factor de ponderación w para la CU. En otra realización, el predictor residual deriva mediante la aplicación del movimiento de la predicción temporal Pe de la capa de mejora a la predicción temporal Pb de la capa base. El factor de ponderación w se puede determinar de la siguiente manera:
Figure imgf000029_0001
donde I indica la imagen de origen para la capa de mejora, £x,y{(I - pe). (ib - Pb)} indica la suma del producto escalar del bloque diferencial (I - Pe) y (ib - Pb).
El método de ejemplo para determinar un factor de ponderación para codificar en la predicción residual generalizada según aspectos de la presente divulgación se explicará ahora con referencia a la figura 15. El proceso 1500 puede llevarse a cabo por un codificador (por ejemplo, el codificador como se muestra en la figura 2), un decodificador (por ejemplo, el decodificador como se muestra en la figura 3), o cualquier otro componente. Los pasos del proceso 1500 se describen con respecto al codificador 20 en la figura 2, pero el proceso 1500 puede ser realizado por otros componentes, tales como un decodificador, como se mencionó anteriormente. En el bloque 1501, el codificador 20 deriva la predicción residual de la EL aplicando el movimiento de la predicción temporal de la EL a la predicción temporal de la BL. En el bloque 1502, el decodificador 30 deriva el factor de ponderación basándose en la predicción residual derivada. El método de ejemplo para determinar un factor de ponderación para la codificación en la predicción residual generalizada según los aspectos de la presente divulgación descritos con respecto a la figura 15 puede implementarse en varios niveles de codificación, como secuencia, imagen, un grupo de tramas, trama, un grupo de segmentos, segmento, un grupo de unidades de codificación (CU), unidad de codificación (CU), un grupo de unidades de predicción (PU), unidad de predicción (PU), bloques o una región de píxeles. Además, todas las realizaciones descritas con respecto a la figura 15 pueden implementarse por separado o en combinación entre sí.
Debe reconocerse que, dependiendo del ejemplo, ciertos actos o eventos de cualquiera de las técnicas descritas en la presente pueden realizarse en una secuencia diferente, pueden agregarse, fusionarse u omitirse por completo (por ejemplo, no todos los actos o eventos descritos son necesarios para la poner en práctica las técnicas). Además, en ciertos ejemplos, los actos o eventos se pueden realizar al mismo tiempo, por ejemplo, mediante el procesamiento de múltiples subprocesos, procesamiento de interrupción o múltiples procesadores, en lugar de secuencialmente.
En uno o más ejemplos, las funciones descritas pueden implementarse en hardware, software, microprograma o cualquier combinación de los mismos. Si se implementan en software, las funciones pueden almacenarse o transmitirse, como una o más instrucciones o código en un medio legible por ordenador y ejecutarse mediante una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador, que corresponden a un medio tangible, como medios de almacenamiento de datos, o medios de comunicación, incluido cualquier medio que facilite la transferencia de un programa informático de un lugar a otro, por ejemplo, según un protocolo de comunicación. De esta manera, los medios legibles por ordenador generalmente pueden corresponder a (1) medios de almacenamiento legibles por ordenador tangibles que no son transitorios o (2) un medio de comunicación tal como una señal u onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder mediante uno o más 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.
A modo de ejemplo, y no restrictivo, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que se puede utilizar para almacenar el código de programa deseado en forma de instrucciones o estructuras de datos y al que se puede acceder mediante un ordenador. Además, cualquier conexión se denomina correctamente un medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, servidor u otra fuente remota utilizando un cable coaxial, cable de fibra óptica, par trenzado, línea de suscriptor digital (DSL) o tecnologías inalámbricas como infrarrojos, radio y microondas, entonces el cable coaxial, cable de fibra óptica, par trenzado, DSL o tecnologías inalámbricas como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, debe entenderse que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales u otros medios transitorios, sino que están dirigidos a medios de almacenamiento tangibles no transitorios. El disco, como se usa en la presente, incluye disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disquete y disco Blu-ray, donde los discos generalmente reproducen datos magnéticamente, mientras que los discos reproducen datos ópticamente con láser.
Las combinaciones de los anteriores también deben incluirse dentro del alcance de los medios legibles por ordenador.
Las instrucciones pueden ser ejecutadas por uno o más procesadores, como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices lógicas programables en campo (FPGA) u otro circuito lógico integrado o discreto equivalente. Por consiguiente, el término "procesador", como se usa en la presente, puede referirse a cualquiera de las estructuras anteriores o cualquier otra estructura adecuada para la implementación de las técnicas descritas en la presente. Además, en algunos aspectos, la funcionalidad descrita en la presente puede proporcionarse dentro de módulos de hardware y/o software dedicados configurados para codificar y decodificar, o incorporarse en un códec combinado. Además, las técnicas podrían implementarse completamente en uno o más circuitos o elementos lógicos.
Las técnicas de esta divulgación pueden implementarse en una amplia variedad de dispositivos o aparatos, incluido un microteléfono, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En esta divulgación se describen varios componentes, módulos o unidades para enfatizar los aspectos funcionales de los dispositivos configurados para realizar las técnicas divulgadas, pero no necesariamente requieren la realización por diferentes unidades de hardware. Más bien, como se describió anteriormente, varias unidades pueden combinarse en una unidad de hardware de códec o proporcionarse mediante una colección de unidades de hardware interoperativas, que incluyen uno o más procesadores como se describió anteriormente, junto con el software y/o microprograma adecuados.
Se han descrito varios ejemplos. La invención se define mediante las reivindicaciones adjuntas.

Claims (21)

REIVINDICACIONES
1. Un método de decodificación video, el método comprende:
obtener un flujo de bits de video que define la información de video de la capa base y la información de video de la capa de mejora; y
determinar un predictor de un bloque actual de información de video de la capa de mejora basado al menos en un predictor intercapa ponderado de al menos un componente de color de una unidad de video del bloque actual y un predictor intracapa ponderado de al menos un componente de color de la unidad de video,
caracterizado porque un factor de ponderación asociado con el predictor intercapa ponderado y un factor de ponderación asociado con el predictor intracapa ponderado se basan al menos en una distancia de la unidad de video desde un límite del bloque actual en donde la determinación del predictor del bloque actual basado al menos en el predictor intercapa ponderado y el predictor intracapa ponderado es en respuesta a la determinación de que el bloque actual tiene un tamaño que excede un umbral o en una lista o grupo de tamaños de bloque.
2. Un método de codificación de video, el método comprende:
generar un flujo de bits de video que define la información de video de la capa base y la información de video de la capa de mejora; y
determinar un predictor de un bloque actual de información de video de la capa de mejora basado al menos en un predictor intercapa ponderado de al menos un componente de color de una unidad de video del bloque actual y un predictor intracapa ponderado de al menos un componente de color de la unidad de video,
caracterizado porque un factor de ponderación asociado con el predictor intercapa ponderado y un factor de ponderación asociado con el predictor intracapa ponderado se basan al menos en una distancia de la unidad de video desde un límite del bloque actual en donde la determinación del predictor del bloque actual basado al menos en el predictor intercapa ponderado y el predictor intracapa ponderado es en respuesta a la determinación de que el bloque actual tiene un tamaño que excede un umbral o en una lista o grupo de tamaños de bloque.
3. El método de la reivindicación 1 o 2, que comprende además el uso de un factor de normalización, el factor de normalización comprende una suma del factor de ponderación asociado con el predictor intercapa ponderado y el factor de ponderación asociado con el predictor intracapa ponderado.
4. El método de la reivindicación 1 o 2, en donde el predictor intercapa ponderado comprende un producto del factor de ponderación y al menos uno de un predictor temporal, un predictor espacial o un predictor residual.
5. El método de la reivindicación 1 o 2, que comprende además determinar el predictor del bloque actual basado, al menos en parte, en uno o más predictores ponderados adicionales de al menos un componente de color, y en donde el predictor intercapa ponderado, el predictor intracapa ponderado, y cada uno del único o más predictores ponderados adicionales están asociados con un modo de codificación de video diferente.
6. El método de la reivindicación 1 o 2, que comprende además determinar el predictor del bloque actual basado al menos en un segundo predictor intercapa ponderado de un segundo componente de color de la unidad de video y un segundo predictor intracapa ponderado del segundo componente de color de la unidad de video.
7. El método de la reivindicación 6, en donde un primer factor de ponderación para el predictor intercapa es diferente de un segundo factor de ponderación para el segundo predictor intercapa.
8. El método de la reivindicación 1 o 2, que comprende además determinar un factor de ponderación basado al menos en una lista predefinida de factores de ponderación.
9. El método de la reivindicación 8, que comprende además identificar un índice de ponderación en la lista predefinida de factores de ponderación, el índice de ponderación está asociado con el factor de ponderación.
10. El método de la reivindicación 2,
que comprende además evitar la señalización de una interdirección asociada con al menos un componente de color de la unidad de video en respuesta a la determinación de que el predictor del bloque actual se va a determinar basándose al menos en el predictor intercapa ponderado y el predictor intracapa ponderado; o
que comprende además evitar la señalización de un indicador que indica que se va a determinar un predictor de un bloque de capa de mejora basándose al menos en un predictor intercapa ponderado y un predictor intracapa ponderado en respuesta a la determinación de que un factor de ponderación asociado con un modo de predicción residual es un valor restringido.
11. El método de la reivindicación 1 o 2, que comprende además determinar el predictor del bloque actual basado al menos en el predictor intercapa ponderado y el predictor intracapa ponderado en respuesta a determinar que un modo de predicción asociado con el predictor intracapa ponderado no es un modo de predicción restringido.
12. El método de la reivindicación 1 o 2, que comprende además determinar un indicador que indica que el predictor del bloque actual se va a determinar basándose al menos en el predictor intercapa ponderado y el predictor intracapa ponderado, y en donde un modelo de contexto utilizado para codificar el indicador se determina basándose al menos en uno de un grupo que consiste en: un modo de predicción asociado con el bloque actual, una interdirección asociada con el bloque actual, una intradirección asociada con el bloque actual, un indicador de fusión, un indicador de omisión, una profundidad de CU o un tipo de segmento.
13. El método de la reivindicación 1 o 2, en donde el tamaño de bloque mínimo es 8x8.
14. El método de la reivindicación 13, en donde para una CU de 8x8 que tiene un modo de división distinto de 2Nx2N, el modo ponderado está prohibido, restringido o suprimido y no se señaliza un indicador de modo ponderado.
15. El método de la reivindicación 1 o 2, en donde el modo ponderado se utiliza solo con intrapredicciones realizadas usando ciertas intradirecciones.
16. Un medio de almacenamiento legible por ordenador que comprende instrucciones que, cuando son ejecutadas por un ordenador, hacen que el ordenador lleve a cabo los pasos del método de cualquiera de las reivindicaciones 1 a 15.
17. Un aparato para codificar video digital, el aparato comprende:
medios para generar un flujo de bits de video que define información de video de capa base e información de video de capa de mejora; y
medios para determinar un predictor de un bloque actual de información de video de la capa de mejora basado al menos en un predictor intercapa ponderado de al menos un componente de color de una unidad de video del bloque actual y un predictor intracapa ponderado de al menos un componente de color de la unidad de video, caracterizado porque un factor de ponderación asociado con el predictor intercapa ponderado y un factor de ponderación asociado con el predictor intracapa ponderado se basan al menos en una distancia de la unidad de video desde un límite del bloque actual en donde la determinación del predictor del bloque actual basado al menos en el predictor intercapa ponderado y el predictor intracapa ponderado es en respuesta a la determinación de que el bloque actual tiene un tamaño que excede un umbral o en una lista o grupo de tamaños de bloque.
18. Aparato para decodificar video, el aparato comprende:
medios para obtener un flujo de bits de video que define la información de video de la capa base y la información de video de la capa de mejora; y
medios para determinar un predictor de un bloque actual de información de video de la capa de mejora basado al menos en un predictor intercapa ponderado de al menos un componente de color de una unidad de video del bloque actual y un predictor intracapa ponderado de al menos un componente de color de la unidad de video, caracterizado porque un factor de ponderación asociado con el predictor intercapa ponderado y un factor de ponderación asociado con el predictor intracapa ponderado se basan al menos en una distancia de la unidad de video desde un límite del bloque actual en donde la determinación del predictor del bloque actual basado al menos en el predictor intercapa ponderado y el predictor intracapa ponderado es en respuesta a la determinación de que el bloque actual tiene un tamaño que excede un umbral o en una lista o grupo de tamaños de bloque.
19. El aparato de la reivindicación 17 o 18, en donde el tamaño de bloque mínimo es 8x8.
20. El aparato de la reivindicación 19, en donde para una CU de 8x8 que tiene un modo de división distinto de 2Nx2N, el modo ponderado está prohibido, restringido o suprimido y no se señaliza un indicador de modo ponderado.
21. El aparato de la reivindicación 17 o 18, en donde el modo ponderado se utiliza solo con intrapredicciones realizadas usando ciertas intradirecciones.
ES19212280T 2012-09-07 2013-09-06 Modo de predicción ponderada para codificación de video escalable Active ES2892479T3 (es)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201261698526P 2012-09-07 2012-09-07
US201261707843P 2012-09-28 2012-09-28
US201361754490P 2013-01-18 2013-01-18
US201361807271P 2013-04-01 2013-04-01
US201361809800P 2013-04-08 2013-04-08
US201361814288P 2013-04-21 2013-04-21
US201361814640P 2013-04-22 2013-04-22
US14/019,468 US9906786B2 (en) 2012-09-07 2013-09-05 Weighted prediction mode for scalable video coding

Publications (1)

Publication Number Publication Date
ES2892479T3 true ES2892479T3 (es) 2022-02-04

Family

ID=50233265

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19212280T Active ES2892479T3 (es) 2012-09-07 2013-09-06 Modo de predicción ponderada para codificación de video escalable

Country Status (7)

Country Link
US (1) US9906786B2 (es)
EP (2) EP2893704B1 (es)
JP (1) JP2015531561A (es)
KR (1) KR20150052259A (es)
CN (1) CN104737537B (es)
ES (1) ES2892479T3 (es)
WO (1) WO2014039802A2 (es)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108337522B (zh) 2011-06-15 2022-04-19 韩国电子通信研究院 可伸缩解码方法/设备、可伸缩编码方法/设备和介质
US9420302B2 (en) * 2012-01-24 2016-08-16 Dolby Laboratories Licensing Corporation Weighted multi-band cross color channel predictor
KR102259792B1 (ko) * 2012-07-02 2021-06-02 엘지전자 주식회사 영상 정보 코딩 방법 및 이를 이용하는 장치
CN104584553A (zh) * 2012-09-28 2015-04-29 英特尔公司 层间残差预测
CN108401157B (zh) 2012-10-01 2022-06-24 Ge视频压缩有限责任公司 可伸缩视频解码器、编码器及可伸缩视频解码、编码方法
US9491460B2 (en) * 2013-03-29 2016-11-08 Qualcomm Incorporated Bandwidth reduction for video coding prediction
WO2015062002A1 (en) * 2013-10-31 2015-05-07 Mediatek Singapore Pte. Ltd. Methods for sub-pu level prediction
WO2015093565A1 (ja) * 2013-12-19 2015-06-25 シャープ株式会社 画像復号装置、画像符号化装置および残差予測装置
WO2015175549A1 (en) * 2014-05-12 2015-11-19 Apple Inc. Techniques for hdr/wcr video coding
US10327001B2 (en) 2014-06-19 2019-06-18 Qualcomm Incorporated Systems and methods for intra-block copy
US10666940B2 (en) 2014-11-06 2020-05-26 Samsung Electronics Co., Ltd. Video encoding method and apparatus, and video decoding method and apparatus
US10250904B2 (en) * 2015-05-05 2019-04-02 Avago Technologies International Sales Pte. Limited Apparatus and method for overlapped motion compensation for video coding
EP3273692A4 (en) * 2015-06-10 2018-04-04 Samsung Electronics Co., Ltd. Method and apparatus for encoding or decoding image using syntax signaling for adaptive weight prediction
ES2677193B1 (es) 2015-08-28 2019-06-19 Kt Corp Procedimiento y dispositivo para procesar señales de vídeo
KR20250030972A (ko) * 2015-09-10 2025-03-05 엘지전자 주식회사 인터-인트라 병합 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10469838B2 (en) * 2015-09-10 2019-11-05 Lg Electronics Inc. Method and apparatus for processing video signal using graph-based transformation based on prediction angle
CN107015900B (zh) * 2016-01-27 2019-08-06 中国科学院声学研究所 一种视频网站的服务性能预测方法
WO2017135692A1 (ko) * 2016-02-02 2017-08-10 엘지전자(주) 픽셀 순환 코딩과 변환 코딩의 결합에 기초하여 비디오 신호를 처리하는 방법 및 장치
US11032550B2 (en) * 2016-02-25 2021-06-08 Mediatek Inc. Method and apparatus of video coding
US10834420B2 (en) * 2016-04-29 2020-11-10 Intellectual Discovery Co., Ltd. Method and apparatus for encoding/decoding video signal
EP3453178A1 (en) * 2016-05-06 2019-03-13 VID SCALE, Inc. Systems and methods for motion compensated residual prediction
CN115118970B (zh) 2016-05-13 2025-09-23 交互数字Vc控股公司 用于视频编码的通用式多假设预测的系统及方法
US10944963B2 (en) 2016-05-25 2021-03-09 Arris Enterprises Llc Coding weighted angular prediction for intra coding
EP3985967B1 (en) * 2016-07-05 2025-08-20 KT Corporation Method and apparatus for processing video signal
ES2699749B2 (es) * 2016-07-05 2020-07-06 Kt Corp Método y aparato para procesar una señal de vídeo
KR102270228B1 (ko) * 2016-07-12 2021-06-28 한국전자통신연구원 영상 부호화/복호화 방법 및 이를 위한 기록 매체
CN116708782A (zh) * 2016-07-12 2023-09-05 韩国电子通信研究院 图像编码/解码方法以及用于该方法的记录介质
US10440391B2 (en) * 2016-08-05 2019-10-08 Mediatek Inc. Method and apparatus of video coding
CN109804627B (zh) * 2016-08-11 2023-07-25 Lx 半导体科技有限公司 图像编码/解码方法和设备
US10368107B2 (en) * 2016-08-15 2019-07-30 Qualcomm Incorporated Intra video coding using a decoupled tree structure
AU2016231584A1 (en) * 2016-09-22 2018-04-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
WO2018054269A1 (en) * 2016-09-22 2018-03-29 Mediatek Inc. Method and apparatus for video coding using decoder side intra prediction derivation
US10880552B2 (en) * 2016-09-28 2020-12-29 Lg Electronics Inc. Method and apparatus for performing optimal prediction based on weight index
US10798404B2 (en) 2016-10-05 2020-10-06 Qualcomm Incorporated Systems and methods of performing improved local illumination compensation
US10750190B2 (en) * 2016-10-11 2020-08-18 Lg Electronics Inc. Video decoding method and device in video coding system
JP6769231B2 (ja) * 2016-10-17 2020-10-14 富士通株式会社 動画像符号化装置、動画像符号化方法、動画像復号装置、動画像復号方法、及び動画像符号化用コンピュータプログラムならびに動画像復号用コンピュータプログラム
EP3547687B1 (en) * 2016-11-28 2025-03-19 Intellectual Discovery Co., Ltd. Image decoding method
CN116916014A (zh) 2016-12-07 2023-10-20 株式会社Kt 对视频进行解码或编码的方法和存储视频数据的设备
US11496747B2 (en) 2017-03-22 2022-11-08 Qualcomm Incorporated Intra-prediction mode propagation
US10893267B2 (en) * 2017-05-16 2021-01-12 Lg Electronics Inc. Method for processing image on basis of intra-prediction mode and apparatus therefor
EP3625963A4 (en) * 2017-06-07 2020-11-18 MediaTek Inc. INTRA-INTER PREDICTION MODE METHOD AND APPARATUS FOR VIDEO CODING
WO2018236133A1 (ko) * 2017-06-19 2018-12-27 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US20180376148A1 (en) 2017-06-23 2018-12-27 Qualcomm Incorporated Combination of inter-prediction and intra-prediction in video coding
WO2019009590A1 (ko) 2017-07-03 2019-01-10 김기백 추가 영역을 포함하는 분할 단위를 이용한 영상 복호화 방법 및 장치
CN116248868B (zh) * 2017-07-03 2025-11-25 汉阳大学校产学协力团 利用包含追加区域的分割单位的影像解码方法以及装置
CN108876841B (zh) * 2017-07-25 2023-04-28 成都通甲优博科技有限责任公司 一种视差图视差求精中插值的方法及系统
US11172203B2 (en) * 2017-08-08 2021-11-09 Mediatek Inc. Intra merge prediction
US10609384B2 (en) * 2017-09-21 2020-03-31 Futurewei Technologies, Inc. Restriction on sub-block size derivation for affine inter prediction
EP3744102B1 (en) 2018-01-24 2026-03-04 InterDigital VC Holdings, Inc. Generalized bi-prediction for video coding with reduced coding complexity
CN110113600B (zh) * 2018-02-01 2022-08-26 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机可读存储介质和计算机设备
CN112154502B (zh) * 2018-04-05 2024-03-01 瑞典爱立信有限公司 支持生成舒适噪声
WO2019203517A1 (ko) * 2018-04-15 2019-10-24 엘지전자 주식회사 영상 코딩 시스템에서 움직임 정보 도출 방법 및 장치
CN108961318B (zh) * 2018-05-04 2020-05-15 上海芯仑光电科技有限公司 一种数据处理方法及计算设备
CN110636296B (zh) * 2018-06-22 2022-05-27 腾讯美国有限责任公司 视频解码方法、装置、计算机设备以及存储介质
US11632546B2 (en) * 2018-07-18 2023-04-18 Electronics And Telecommunications Research Institute Method and device for effective video encoding/decoding via local lighting compensation
KR102622452B1 (ko) * 2018-09-13 2024-01-09 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 아핀 선형 가중 인트라 예측
CN113411575B (zh) * 2018-09-24 2022-07-22 华为技术有限公司 用于执行质量优化去块的图像处理设备、方法和存储介质
CN112840645B (zh) * 2018-10-10 2023-12-12 寰发股份有限公司 视频编码系统中组合多个预测子用于块预测的方法及装置
CN111083489B (zh) 2018-10-22 2024-05-14 北京字节跳动网络技术有限公司 多次迭代运动矢量细化
CN111083484B (zh) 2018-10-22 2024-06-28 北京字节跳动网络技术有限公司 基于子块的预测
WO2020094052A1 (en) * 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Side information signaling for inter prediction with geometric partitioning
CN111630865B (zh) * 2018-11-12 2023-06-27 北京字节跳动网络技术有限公司 广义双向预测模式的线缓冲器减少
US11310515B2 (en) * 2018-11-14 2022-04-19 Tencent America LLC Methods and apparatus for improvement for intra-inter prediction mode
BR112021009149A2 (pt) * 2018-11-15 2021-08-10 Telefonaktiebolaget Lm Ericsson (Publ) método e aparelho para desbloquear uma fronteira, programa de computador, e, portadora
US11652984B2 (en) * 2018-11-16 2023-05-16 Qualcomm Incorporated Position-dependent intra-inter prediction combination in video coding
US20200162737A1 (en) 2018-11-16 2020-05-21 Qualcomm Incorporated Position-dependent intra-inter prediction combination in video coding
CN113170171B (zh) 2018-11-20 2024-04-12 北京字节跳动网络技术有限公司 组合帧间帧内预测模式的预测细化
KR20210091161A (ko) 2018-11-20 2021-07-21 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 부분적 위치에 기반한 차분 계산
WO2020113065A1 (en) * 2018-11-27 2020-06-04 Op Solutions, Llc Adaptive block update of unavailable reference frames using explicit and implicit signaling
US11876957B2 (en) 2018-12-18 2024-01-16 Lg Electronics Inc. Method and apparatus for processing video data
US10855992B2 (en) * 2018-12-20 2020-12-01 Alibaba Group Holding Limited On block level bi-prediction with weighted averaging
WO2020140862A1 (en) 2018-12-30 2020-07-09 Beijing Bytedance Network Technology Co., Ltd. Conditional application of inter prediction with geometric partitioning in video processing
CN113366844B (zh) 2019-02-02 2023-10-03 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的缓冲区中的数据存储
WO2020156548A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer updating for intra block copy in video coding
US11290726B2 (en) 2019-02-07 2022-03-29 Qualcomm Incorporated Inter-intra prediction mode for video data
WO2020177661A1 (en) 2019-03-01 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Order-based updating for intra block copy in video coding
JP7405861B2 (ja) 2019-03-01 2023-12-26 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのための方向に基づく予測
JP7284284B2 (ja) 2019-03-04 2023-05-30 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーの実装形態の態様
WO2020177756A1 (en) 2019-03-06 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Size dependent inter coding
US11197009B2 (en) 2019-05-30 2021-12-07 Hulu, LLC Processing sub-partitions in parallel using reference pixels
US11202070B2 (en) * 2019-05-30 2021-12-14 Hulu, LLC Parallel bi-directional intra-coding of sub-partitions
AU2020293843B2 (en) * 2019-06-14 2023-12-07 Lg Electronics Inc. Image decoding method and device for deriving weight index information for generation of prediction sample
PH12022550024A1 (en) 2019-07-06 2022-11-21 Beijing Bytedance Network Tech Co Ltd Virtual prediction buffer for intra block copy in video coding
CN114175633B (zh) 2019-07-10 2023-12-29 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的样点标识
JP7609842B2 (ja) 2019-07-11 2025-01-07 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのためのビットストリーム適合性の制約
CN116074528B (zh) * 2021-10-29 2025-08-26 北京猿力未来科技有限公司 视频编码方法及装置、编码信息调度方法及装置
EP4459995A4 (en) * 2021-12-28 2025-11-05 Guangdong Oppo Mobile Telecommunications Corp Ltd METHOD, DEVICE AND SYSTEM FOR INTRAFRAM PREDICTION, AND RECORDING MEDIUM
CN118844059A (zh) * 2022-03-07 2024-10-25 夏普株式会社 用于在视频编码中处置边界外运动补偿预测因子的系统和方法
US12556728B2 (en) * 2022-10-14 2026-02-17 Tencent America LLC CABAC context model grouping
WO2025149306A1 (en) * 2024-01-08 2025-07-17 Interdigital Ce Patent Holdings, Sas Histogram normalization of blocks for decoder side intra mode derivation

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001148858A (ja) * 1999-11-18 2001-05-29 Sony Corp 画像情報変換装置及び画像情報変換方法
US8406301B2 (en) 2002-07-15 2013-03-26 Thomson Licensing Adaptive weighting of reference pictures in video encoding
KR100985366B1 (ko) * 2002-11-25 2010-10-04 파나소닉 주식회사 움직임 보상 방법, 화상 부호화 방법 및 화상 복호화 방법
MXPA05007444A (es) 2003-01-10 2005-09-12 Thomson Licensing Sa Ocultamiento de error espacial con base en los modos de intra-prediccion transmitidos en una corriente codificada.
WO2005081524A1 (en) * 2004-02-23 2005-09-01 Koninklijke Philips Electronics N.V. Reducing artefacts in scan-rate conversion of image signals by combining interpolation and extrapolation of images
KR100888962B1 (ko) * 2004-12-06 2009-03-17 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
KR20060063608A (ko) * 2004-12-06 2006-06-12 엘지전자 주식회사 영상신호의 엔코딩/디코딩시에 영상블록에 대한 레지듀얼예측을 수행하는 방법 및 장치
KR100703748B1 (ko) 2005-01-25 2007-04-05 삼성전자주식회사 다 계층 기반의 비디오 프레임을 효율적으로 예측하는 방법및 그 방법을 이용한 비디오 코딩 방법 및 장치
KR100763179B1 (ko) * 2005-04-01 2007-10-04 삼성전자주식회사 비동기 픽쳐의 모션 벡터를 압축/복원하는 방법 및 그방법을 이용한 장치
KR100746007B1 (ko) * 2005-04-19 2007-08-06 삼성전자주식회사 엔트로피 코딩의 컨텍스트 모델을 적응적으로 선택하는방법 및 비디오 디코더
KR100763181B1 (ko) 2005-04-19 2007-10-05 삼성전자주식회사 기초계층과 향상계층의 데이터를 바탕으로 예측 정보를코딩하여 코딩율을 향상시키는 방법 및 장치
US8619860B2 (en) 2005-05-03 2013-12-31 Qualcomm Incorporated System and method for scalable encoding and decoding of multimedia data using multiple layers
US8457203B2 (en) * 2005-05-26 2013-06-04 Ntt Docomo, Inc. Method and apparatus for coding motion and prediction weighting parameters
WO2006129184A1 (en) * 2005-06-03 2006-12-07 Nokia Corporation Residual prediction mode in scalable video coding
US8867618B2 (en) * 2005-07-22 2014-10-21 Thomson Licensing Method and apparatus for weighted prediction for scalable video coding
KR100891662B1 (ko) * 2005-10-05 2009-04-02 엘지전자 주식회사 비디오 신호 디코딩 및 인코딩 방법
CN101288311B (zh) 2005-10-12 2011-05-11 汤姆森特许公司 用于可分级视频编码和解码中的加权预测的方法和装置
KR100772868B1 (ko) * 2005-11-29 2007-11-02 삼성전자주식회사 복수 계층을 기반으로 하는 스케일러블 비디오 코딩 방법및 장치
KR100736096B1 (ko) * 2005-12-12 2007-07-06 삼성전자주식회사 비디오 신호를 그룹별로 인코딩 및 디코딩하는 방법 및장치
US20070160137A1 (en) * 2006-01-09 2007-07-12 Nokia Corporation Error resilient mode decision in scalable video coding
KR100791295B1 (ko) * 2006-01-12 2008-01-04 삼성전자주식회사 플래그 부호화 방법, 플래그 복호화 방법, 및 상기 방법을이용한 장치
KR100781524B1 (ko) * 2006-04-04 2007-12-03 삼성전자주식회사 확장 매크로블록 스킵 모드를 이용한 인코딩/디코딩 방법및 장치
CN101491107B (zh) 2006-07-07 2012-07-18 艾利森电话股份有限公司 一种对图像元素组进行解码的方法及其相关的编码器、解码器
EP2039171B1 (en) * 2006-07-07 2016-10-05 Telefonaktiebolaget LM Ericsson (publ) Weighted prediction for video coding
US20080089411A1 (en) * 2006-10-16 2008-04-17 Nokia Corporation Multiple-hypothesis cross-layer prediction
WO2008060125A1 (en) * 2006-11-17 2008-05-22 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal
WO2008084817A1 (ja) 2007-01-09 2008-07-17 Kabushiki Kaisha Toshiba 画像符号化と復号化の方法及び装置
US7983496B2 (en) * 2007-06-26 2011-07-19 Mitsubishi Electric Research Laboratories, Inc. Inverse tone mapping for bit-depth scalable image coding adapted to variable block sizes
CN101690237B (zh) 2007-07-02 2012-03-21 日本电信电话株式会社 活动图像可分级编码方法及解码方法、其装置
CN101877785A (zh) 2009-04-29 2010-11-03 祝志怡 一种基于混合预测的视频编码方法
KR20120118782A (ko) * 2011-04-19 2012-10-29 삼성전자주식회사 적응적 필터링을 이용한 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US20130051467A1 (en) * 2011-08-31 2013-02-28 Apple Inc. Hybrid inter/intra prediction in video coding systems
US9467692B2 (en) 2012-08-31 2016-10-11 Qualcomm Incorporated Intra prediction improvements for scalable video coding

Also Published As

Publication number Publication date
EP2893704B1 (en) 2019-12-11
EP2893704A2 (en) 2015-07-15
WO2014039802A2 (en) 2014-03-13
CN104737537B (zh) 2018-09-21
US20140072041A1 (en) 2014-03-13
US9906786B2 (en) 2018-02-27
CN104737537A (zh) 2015-06-24
WO2014039802A3 (en) 2014-06-05
EP3687169A1 (en) 2020-07-29
EP3687169B1 (en) 2021-09-01
JP2015531561A (ja) 2015-11-02
KR20150052259A (ko) 2015-05-13

Similar Documents

Publication Publication Date Title
ES2892479T3 (es) Modo de predicción ponderada para codificación de video escalable
ES3008269T3 (en) Improvements on history-based motion vector predictor
KR102094588B1 (ko) 공간적 및/또는 시간적 모션 정보를 사용하는 서브-예측 유닛 모션 벡터 예측
ES2884375T3 (es) Intra predicción de croma de modelo lineal para codificación de vídeo
ES2975180T3 (es) Modificación de las profundidades de bits en la codificación de transformación de espacio de color
ES2973247T3 (es) Indicación de modo de intra-predicción mejorada para codificación de vídeo utilizando el modo contiguo
ES2895442T3 (es) Dispositivo y método para la codificación escalable de información de video
CA3000373C (en) Video intra-prediction using position dependent prediction combination for video coding
ES2755573T3 (es) Predicción de vector de movimiento temporal avanzada basada en unidades de subpredicción
ES2895270T3 (es) Codificación de mensajes SEI de MCTS-EIS de una unidad de acceso
ES2900751T3 (es) Extensiones de sintaxis de alto nivel para codificación de vídeo de alta eficacia
ES2869854T3 (es) Unificar copia intrabloque e interpredicción
ES2886344T3 (es) Predicción residual generalizada para codificación de vídeo escalable y codificación de vídeo 3D
ES2778350T3 (es) Dispositivo y procedimiento para codificación escalable de información de vídeo
KR102182441B1 (ko) 비디오 코딩에서 hevc 확장들을 위한 다중 계층들의 저복잡도 지원
US20130188717A1 (en) Motion prediction in svc using partition mode without split flag
US9479778B2 (en) Device and method for coding video information using base layer motion vector candidate
US20130258052A1 (en) Inter-view residual prediction in 3d video coding
WO2014036174A2 (en) Intra prediction improvements for scalable video coding
ES2905124T3 (es) Dispositivo y método para procesar datos de video
US9219913B2 (en) Inferred base layer block for TEXTURE—BL mode in HEVC based single loop scalable video coding
EP2859722A2 (en) Adaptive upsampling filters for video compression
ES2769837T3 (es) Escalamiento del vector de movimiento espacial para codificación escalable de vídeo
US9392268B2 (en) Using base layer motion information
HK1189734B (en) Method and apparatus for decoding video data