ES2856051T3 - Candidatos de fusión favorables a la paralelización para codificación de vídeo - Google Patents
Candidatos de fusión favorables a la paralelización para codificación de vídeo Download PDFInfo
- Publication number
- ES2856051T3 ES2856051T3 ES12733553T ES12733553T ES2856051T3 ES 2856051 T3 ES2856051 T3 ES 2856051T3 ES 12733553 T ES12733553 T ES 12733553T ES 12733553 T ES12733553 T ES 12733553T ES 2856051 T3 ES2856051 T3 ES 2856051T3
- Authority
- ES
- Spain
- Prior art keywords
- fusion
- candidate
- candidates
- prediction unit
- unit
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/109—Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Un procedimiento de descodificación de datos de vídeo que comprende: determinar (200) un conjunto de candidatos de fusión para una unidad de predicción actual de una unidad de codificación actual, en el que el conjunto de candidatos de fusión incluye candidatos de fusión espacial y un candidato de fusión temporal, en el que los candidatos de fusión espacial son un candidato de fusión superior izquierdo, un candidato de fusión superior, un candidato de fusión superior derecho, un candidato de fusión izquierdo y un candidato de fusión inferior izquierdo en el que la localización de los candidatos de fusión espacial se especifica con respecto a la unidad de predicción actual; eliminar (202) del conjunto de candidatos de fusión para la unidad de predicción actual todos los candidatos de fusión que están dentro de otra unidad de predicción de la unidad de codificación actual, cuando la unidad de codificación actual tiene un tipo de división 2NxN, 2NxnU o 2NxnD que incluye una unidad de predicción 0 situada sobre una unidad de predicción 1, eliminar el candidato de fusión superior del conjunto de candidatos de fusión para la unidad de predicción 1, y cuando la unidad de codificación actual tiene un tipo de división Nx2N, nLx2N o nRx2N que incluye una unidad de predicción 0 situada a la izquierda de una unidad de predicción 1, eliminar el candidato de fusión izquierdo del conjunto de candidatos de fusión para la unidad de predicción 1; y realizar (204) un proceso de predicción del vector de movimiento de fusión para la unidad de predicción actual usando el conjunto de candidatos de fusión.
Description
DESCRIPCIÓN
Candidatos de fusión favorables a la paralelización para codificación de vídeo
CAMPO TÉCNICO
[0001] La presente divulgación se refiere a la codificación de vídeo y, más en particular, a técnicas para determinar un conjunto de candidatos de predicción del vector de movimiento en un proceso de predicción del vector de movimiento.
ANTECEDENTES
[0002] Las capacidades de vídeo digital se pueden incorporar a una amplia gama de dispositivos, incluyendo televisores digitales, sistemas de radiodifusión directa digital, sistemas de radiodifusión inalámbrica, asistentes personales digitales (PDA), ordenadores portátiles o de escritorio, cámaras digitales, dispositivos de grabación digitales, reproductores de medios digitales, dispositivos de videojuegos, consolas de videojuegos, teléfonos de radio celulares o por satélite, dispositivos de videoconferencia y similares. Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo, tales 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 Avanzada de Vídeo (AVC), el estándar de Codificación de Vídeo de Alta Eficacia (HEVC), actualmente en desarrollo, y ampliaciones de dichos estándares, para transmitir, recibir y almacenar información de vídeo digital más eficazmente.
[0003] Las técnicas de compresión de vídeo incluyen la predicción espacial y/o la predicción temporal para reducir o eliminar la redundancia inherente en las secuencias de vídeo. Para la codificación de vídeo basada en bloques, una trama o un fragmento de vídeo se puede dividir en bloques. Cada bloque se puede dividir adicionalmente. Los bloques en una trama o fragmento intracodificado (I) se codifican usando predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma trama o segmento. Los bloques en una trama o fragmento intercodificado (P o B) pueden usar predicción espacial con respecto a muestras de referencia en bloques vecinos en la misma trama o fragmento, o predicción temporal con respecto a muestras de referencia en otras tramas de referencia. La predicción espacial o temporal da como resultado un bloque predictivo para un bloque que se va a codificar. Los datos residuales representan diferencias de píxeles entre el bloque original que se va a codificar y el bloque predictivo.
[0004] Un bloque intercodificado se codifica de acuerdo con un vector de movimiento que apunta a un bloque de muestras de referencia que forman el bloque predictivo, y los datos residuales que indican la diferencia entre los valores de píxel en el bloque codificado y las muestras de referencia en el bloque predictivo. Un bloque intracodificado se codifica de acuerdo con un modo de intracodificación y los datos residuales. Para una mayor compresión, los datos residuales se pueden transformar desde el dominio de píxeles a un dominio de transformada, dando como resultado coeficientes de transformada residuales, que a continuación se pueden cuantificar. Los coeficientes de transformada cuantificados, inicialmente dispuestos en una matriz bidimensional, se pueden recorrer en un orden particular para producir un vector unidimensional de coeficientes de transformada para la codificación de entropía.
[0005] El artículo "Quad-Tree Motion Modeling With Leaf Merging" de Mathew R et al publicado por Transacciones del IEEE sobre circuitos y sistemas para tecnología de vídeo, vol. 20, n.° 10, 1 de octubre de 2010, páginas 1331-1345,describe el uso de una estructura de árbol cuádruple para permitir que bloques más pequeños y de tamaño variable adopten diferentes modelos de movimiento.
[0006] El documento de propuesta de JCTVC-E085 "Method and syntax for partial CU merge" por S Liu, X Zhang y S Lei en la Quinta conferencia del Equipo Conjunto de Colaboración sobre Codificación de Vídeo de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG GT11 en Ginebra del 16 al 23 de marzo de 2011describe un procedimiento para forzar la fusión de ambas PU en una CU que consta de dos PU y determinar los candidatos de fusión para la 2a PU.
[0007] El documento " High Efficiency Video Coding (HEVC) Test Model 2 (HM 2) Encoder Description" es un informe para el Equipo conjunto de colaboración sobre codificación de vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11 con número de documento JCTVC-D502 de McCann et al, que sirve como fuente de información de tutorial general sobre HEVC y una descripción del lado del codificador del segundo modelo de prueba de HEVC (HM2) establecido por el JCT-VC en su conferencia de enero de 2011.
BREVE EXPLICACIÓN
[0008] La invención se define en las reivindicaciones a las que hace ahora referencia. En general, la presente divulgación describe técnicas para codificar datos de vídeo. La presente divulgación describe técnicas para determinar un conjunto de candidatos de fusión en un proceso de predicción del vector de movimiento de modo de fusión.
[0009] Los detalles de uno o más ejemplos se exponen en los dibujos adjuntos y la siguiente descripción. Otros rasgos característicos, objetivos y ventajas resultarán evidentes a partir de la descripción y los dibujos, y a partir
de las reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0010]
La FIG. 1 es un dibujo conceptual que ilustra bloques de candidatos para la predicción del vector de movimiento
de acuerdo con el modo de fusión.
La FIG. 2 es un dibujo conceptual que ilustra tipos de división de ejemplo.
La FIG. 3A es un diagrama conceptual que ilustra bloques de candidatos para la predicción del vector de movimiento de modo de fusión para una división Nx2N de una unidad de codificación.
La FIG. 3B es un diagrama conceptual que ilustra bloques de candidatos para la predicción del vector de movimiento de modo de fusión para una división 2NxN de una unidad de codificación.
La FIG. 4A es un diagrama conceptual que ilustra bloques de candidatos para la predicción del vector de movimiento de modo de fusión para una división NxN de una unidad de codificación.
La FIG. 4B es un diagrama conceptual que ilustra otro ejemplo de bloques de candidatos para la predicción del vector de movimiento de modo de fusión para una división NxN de una unidad de codificación.
La FIG. 5 es un diagrama de bloques que ilustra un sistema de codificación de vídeo de ejemplo.
La FIG. 6 es un diagrama de bloques que ilustra un codificador de vídeo de ejemplo.
La FIG. 7 es un diagrama de bloques que ilustra un descodificador de vídeo de ejemplo.
La FIG. 8 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de vídeo de acuerdo con las técnicas de la presente divulgación.
La FIG. 9 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de vídeo de acuerdo con las técnicas de la presente divulgación.
DESCRIPCIÓN DETALLADA
[0011] En general, la presente divulgación describe técnicas para codificar datos de vídeo. La presente divulgación describe técnicas para determinar un conjunto de candidatos de fusión en un proceso de predicción
del vector de movimiento de modo de fusión.
[0012] Los dispositivos de vídeo digital implementan técnicas de compresión de vídeo para codificar y descodificar información de vídeo digital más eficazmente. La compresión de vídeo puede aplicar técnicas de predicción espacial (intratrama) y/o de predicción temporal (intertramas) para reducir o eliminar la redundancia inherente en las secuencias de vídeo.
[0013] Existe un nuevo estándar de codificación de vídeo, a saber la Codificación de Vídeo de Alta Eficiencia
(HEVC) que se está desarrollando por el Equipo de Colaboración Conjunta sobre Codificación de Vídeo (JCT-VC)
del Grupo de Expertos sobre Codificación de Vídeo (VCEG) de ITU-T y el Grupo de Expertos sobre Imágenes en Movimiento (MPEG) de ISO/IEC. Un borrador reciente del estándar de HEVC, denominado "HEVC Working Draft
6" o "WD6", se describe en el documento JCTVC-H1003, Bross et al., "High efficiency video coding (HEVC) text specification draft 6", Equipo de Colaboración Conjunta en Codificación de Vídeo (JCT-VC) de ITU-T SG16 WP3
e ISO/IEC JTC1/SC29/WG11, octava conferencia: San José, California, EE. UU., febrero de 2012, que se puede descargar de http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San %20Jose/wg11/JCTVC-H1003-v22.zip a
partir del 1 de junio de 2012 que es anterior a la fecha de presentación de la presente solicitud, pero es posterior
a las fechas de presentación de todas las solicitudes prioritarias excepto la más reciente.
[0014] Para la codificación de vídeo de acuerdo con el estándar de Codificación de vídeo de alta eficacia (HEVC) actualmente en fase de elaboración por el Equipo de colaboración conjunto sobre Codificación de Video (JCT-VC),
una trama de vídeo se puede dividir en unidades de codificación. Una unidad de codificación (CU) se refiere en general a una región de imagen que sirve de unidad básica a la que se aplican diversas herramientas de codificación para la compresión de vídeo. Una CU tiene normalmente una componente de luminancia, que se
puede denotar como Y, y dos componentes de crominancia, que se pueden denotar como U y V. Dependiendo del
formato de muestreo de vídeo, el tamaño de las componentes U y V, en términos del número de muestras, puede ser el mismo o diferente al tamaño de la componente Y. Una CU es típicamente cuadrada, y se puede considerar similar a un denominado macrobloque, por ejemplo, bajo otros estándares de codificación de vídeo, tales como ITU-T H.264.
[0015] Para lograr una mejor eficacia de codificación, una unidad de codificación puede tener tamaños variables dependiendo del contenido de vídeo. Además, una unidad de codificación se puede dividir en bloques más pequeños para la predicción o la transformada. En particular, cada unidad de codificación se puede dividir además en unidades de predicción (PU) y en unidades de transformada (TU). Las unidades de predicción se pueden considerar similares a las denominadas particiones bajo otros estándares de codificación de vídeo, tales como H.264. Las unidades de transformada (TU) se refieren a bloques de datos residuales a los que se aplica una transformada para producir coeficientes de transformada.
[0016] La codificación de acuerdo con algunos de los aspectos propuestos actualmente del estándar HEVC en proceso de elaboración se describirá en esta solicitud con fines ilustrativos. Sin embargo, las técnicas descritas en la presente divulgación pueden ser útiles para otros procesos de codificación de vídeo, tales como los que se definen de acuerdo con la H.264 u otros procesos de codificación de vídeo estándar o patentados.
[0017] Los esfuerzos de estandarización de la HEVC se basan en un modelo de un dispositivo de codificación de vídeo denominado Modelo de Prueba de HEVC (HM). El HM asume varias capacidades de los dispositivos de codificación de vídeo respecto a los dispositivos de acuerdo con, por ejemplo, el estándar ITU-T H.264/AVC. Por ejemplo, mientras que el estándar H.264 proporciona nueve modos de codificación de intrapredicción, e1 HM proporciona hasta treinta y cuatro modos de codificación de intrapredicción.
[0018] De acuerdo con el HM, una CU puede incluir una o más unidades de predicción (PU) y/o una o más unidades de transformada (TU). Los datos de sintaxis dentro de un flujo de bits pueden definir una unidad de codificación más grande (LCU), que es la CU más grande en términos del número de píxeles. En general, una CU tiene un propósito similar a un macrobloque de H.264, excepto en que una CU no tiene distinción de tamaño. Por tanto, una Cu se puede dividir en sub-CU. En general, las referencias en la presente divulgación a una CU se pueden referir a una unidad de codificación más grande de una imagen o a una sub-CU de una LCU. Una LCU se puede dividir en sub-CU y cada sub-CU se puede dividir además en sub-CU. Los datos de sintaxis para un flujo de bits pueden definir un número máximo de veces que se puede separar una LCU, denominado profundidad de CU. En consecuencia, un flujo de bits también puede definir una unidad de codificación más pequeña (SCU). La presente divulgación también usa el término "bloque" o "parte" para referirse a cualquiera de una CU, una PU o una TU. En general, "parte" se puede referir a cualquier subconjunto de una trama de vídeo.
[0019] Una LCU se puede asociar con una estructura de datos de árbol cuaternario. En general, una estructura de datos de árbol cuaternario incluye un nodo por CU, donde un nodo raíz corresponde a la LCU. Si una CU se separa en cuatro sub-CU, el nodo correspondiente a la CU incluye cuatro nodos hoja, de los que cada uno corresponde a una de las sub-CU. Cada nodo de la estructura de datos de árbol cuaternario puede proporcionar datos de sintaxis para la CU correspondiente. Por ejemplo, un nodo en el árbol cuaternario puede incluir un indicador de separación, que indica si la CU correspondiente al nodo se separa en sub-CU. Los elementos de sintaxis para una CU se pueden definir de forma recursiva y pueden depender de si la CU se separa en sub-CU. Si una CU no se separa adicionalmente, se denomina CU hoja.
[0020] Además, las TU de las CU hoja también se pueden asociar a respectivas estructuras de datos de árbol cuaternario. Es decir, una CU hoja puede incluir un árbol cuaternario que indica cómo se divide la CU hoja en las TU. La presente divulgación se refiere al árbol cuaternario que indica cómo se divide una LCU como un árbol cuaternario de CU y el árbol cuaternario indica cómo se divide una CU hoja en TU como un árbol cuaternario de TU. El nodo raíz de un árbol cuaternario de TU corresponde en general a una CU hoja, mientras que el nodo raíz de un árbol cuaternario de CU corresponde en general a una LCU. Las TU del árbol cuaternario de TU que no se dividen se denominan TU hoja.
[0021] Una CU hoja puede incluir una o más unidades de predicción (PU). En general, una PU representa la totalidad o una parte de la CU correspondiente, y puede incluir datos para recuperar una muestra de referencia para la PU. Por ejemplo, cuando la PU se codifica como intermodo, la PU puede incluir datos que definan un vector de movimiento para la PU. Los datos que definen el vector de movimiento pueden describir, por ejemplo, una componente horizontal del vector de movimiento, una componente vertical del vector de movimiento, una resolución para el vector de movimiento (por ejemplo, una precisión de un cuarto de píxel o una precisión de un octavo de píxel), una trama de referencia a la que apunta el vector de movimiento y/o una lista de referencia (por ejemplo, lista 0 o lista 1) para el vector de movimiento. Los datos de la CU hoja que definan la(s) PU también pueden describir, por ejemplo, una división de la CU en una o más PU. Los modos de división pueden diferir dependiendo de si la CU no se codifica de forma predictiva, se codifica en modo de intrapredicción o se codifica en modo de interpredicción. Para la intracodificación, una PU se puede tratar de la misma forma que una unidad de transformada de hoja descrita a continuación.
[0022] Para codificar un bloque (por ejemplo, una unidad de predicción (PU) de datos de vídeo), en primer lugar se deriva un predictor para el bloque. El predictor se puede derivar a través de la intrapredicción (I) (es decir, predicción espacial) o de la interpredicción (P o B) (es decir, predicción temporal). Por lo tanto, algunas unidades de predicción se pueden intracodificar (I) usando predicción espacial con respecto a los bloques de referencia vecinos en la misma trama, u otras unidades de predicción se pueden intercodificar (P o B) con respecto a los bloques de referencia en otras tramas.
[0023] Tras la identificación de un predictor, se calcula la diferencia entre el bloque de datos de vídeo original y su predictor. Esta diferencia también se denomina residuo de predicción y se refiere a las diferencias de píxeles entre los píxeles del bloque que se va a codificar y las muestras de referencia correspondientes (que pueden ser píxeles con precisión de enteros o píxeles con precisión fraccionaria interpolados) del bloque de referencia, es decir, predictor. Para conseguir una mejor compresión, el residuo de predicción (es decir, la matriz de valores de diferencia de píxeles), en general, se transforma, por ejemplo, usando una transformada de coseno discreta (DCT), una transformada entera, una transformada de Karhunen-Loeve (KL) u otra transformada.
[0024] La codificación de una PU usando interpredicción implica calcular un vector de movimiento entre un bloque actual y un bloque en una trama de referencia. Los vectores de movimiento se calculan a través de un proceso denominado estimación de movimiento (o búsqueda de movimiento). Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una unidad de predicción en una trama actual con respecto a una muestra de referencia de una trama de referencia. Una muestra de referencia puede ser un bloque del que se descubra que coincide estrechamente con la parte de la CU que incluye la PU que se está codificando, en términos de diferencia de píxeles, lo que se puede determinar mediante la suma de una diferencia absoluta (SAD), una suma de diferencias al cuadrado (SSD) u otras métricas de diferencia. La muestra de referencia se puede producir en cualquier lugar dentro de una trama de referencia o de un fragmento de referencia. En algunos ejemplos, la muestra de referencia se puede interpolar, en su totalidad o en parte, y producirse en una posición de píxel fraccionaria. Tras encontrar una parte de la trama de referencia que mejor se adapta a la parte actual, el codificador determina el vector de movimiento actual para la parte actual como la diferencia en la localización desde la parte actual hasta la parte adaptable en la trama de referencia (por ejemplo, desde el centro de la parte actual hasta el centro de la parte adaptable).
[0025] En algunos ejemplos, un codificador puede señalizar el vector de movimiento para cada parte en el flujo de bits de vídeo codificado. El vector de movimiento señalizado se usa por el descodificador para realizar una compensación de movimiento para descodificar los datos de vídeo. Sin embargo, la señalización del vector de movimiento original puede dar como resultado directamente una codificación menos eficiente, ya que se necesita típicamente una gran cantidad de bits para transportar la información.
[0026] En algunos casos, en lugar de señalizar directamente el vector de movimiento original, el codificador puede predecir un vector de movimiento para cada PU. En la presente divulgación, el término "bloque" se puede usar genéricamente para referirse a una CU, PU o TU. Al realizar un proceso de predicción del vector de movimiento, el codificador puede seleccionar un conjunto de vectores de movimiento candidatos determinados para bloques espacialmente vecinos en la misma trama que la PU actual o un vector de movimiento candidato determinado para una PU colocalizada en una trama de referencia. El codificador puede realizar la predicción del vector de movimiento para seleccionar un vector de movimiento candidato particular y, si es necesario, señalizar un elemento de sintaxis que indica un candidato del vector de movimiento seleccionado para reducir la tasa de bits en la señalización. Los vectores de movimiento candidatos de los bloques vecinos espacialmente se pueden denominar candidatos de MVP espaciales, mientras que el vector de movimiento candidato del bloque colocalizado en otra trama de referencia se puede denominar candidato de MVP temporal.
[0027] Las técnicas de la presente divulgación se dirigen al modo de "fusión" de la predicción del vector de movimiento. En el modo de fusión, un codificador de vídeo 20 ordena a un descodificador, a través de señalización de flujo de bits de sintaxis de predicción, copiar un vector de movimiento, un índice de referencia (identificando una trama de referencia, en una lista de imágenes de referencia dada, hacia la cual apunta el vector de movimiento) y la dirección de predicción de movimiento (que identifica la lista de imágenes de referencia (Lista 0 o Lista 1), es decir, en términos de si la trama de referencia precede o sigue temporalmente a la trama actual) de un vector de movimiento candidato seleccionado para una parte actual de la trama. Esto se lleva a cabo señalizando en el flujo de bits un índice de un conjunto de vectores de movimiento candidatos que identifica el vector de movimiento candidato seleccionado (es decir, el candidato de MVP espacial particular o candidato de MVP temporal). El conjunto de vectores de movimiento candidatos se puede derivar a través de configuraciones predeterminadas o inferirse a partir de determinados parámetros de codificación. Por tanto, para el modo de fusión, la sintaxis de predicción puede incluir un indicador que identifica el modo (en este caso, el modo de "fusión") y un índice que identifica el vector de movimiento candidato seleccionado. En algunos casos, el vector de movimiento estará en una PU causal en referencia a la PU actual. Es decir, el vector de movimiento candidato ya se habrá descodificado por el descodificador. Así pues, el descodificador ya ha recibido y/o determinado el vector de movimiento, el índice de referencia y la dirección de predicción de movimiento para la PU causal. Así pues, el descodificador puede recuperar simplemente el vector de movimiento, el índice de referencia y la dirección de predicción de movimiento asociados con la PU causal de la memoria y copiar estos valores para la PU actual. Para descodificar un bloque
en modo de fusión, el descodificador obtiene el bloque predictivo usando la predicción del vector de movimiento, y añade los datos residuales al bloque predictivo para reconstruir el bloque codificado.
[0028] Una vez que se realiza la estimación de movimiento para determinar un vector de movimiento para una parte actual, el codificador compara la parte adaptable en la trama de referencia con la parte actual. Esta comparación implica típicamente restar la parte (que comúnmente se denomina "muestra de referencia") en la trama de referencia de la parte actual y da como resultado los denominados datos residuales, como se mencionó anteriormente. Los datos residuales indican valores de diferencia de píxeles entre la parte actual y la muestra de referencia. El codificador transforma luego estos datos residuales desde el dominio espacial en un dominio de transformada, tal como el dominio de frecuencia. Normalmente, el codificador aplica una transformada de coseno discreta (DCT) a los datos residuales para conseguir esta transformada. El codificador realiza esta transformada para facilitar la compresión de los datos residuales porque los coeficientes de transformada resultantes representan diferentes frecuencias, en las que la mayor parte de la energía normalmente se concentra en unos pocos coeficientes de baja frecuencia.
[0029] Típicamente, los coeficientes de transformada resultantes se agrupan de una manera que permite la codificación de longitud de ejecución, especialmente si los coeficientes de transformada se cuantifican primero (se redondean). El codificador realiza esta codificación de longitud de ejecución de los coeficientes de transformación cuantificados y, a continuación, realiza una codificación estadística sin pérdidas (o denominada "de entropía") para comprimir adicionalmente los coeficientes de transformada cuantificados codificados por longitud de ejecución.
[0030] Después de realizar la codificación por entropía sin pérdidas, el codificador genera un flujo de bits que incluye los datos de vídeo codificados. Este flujo de bits también incluye varios elementos de sintaxis de predicción en determinados casos que especifican si, por ejemplo, se realizó la predicción del vector de movimiento, el modo de vector de movimiento y un índice de predictor de vector de movimiento (MVP) (es decir, el índice de la parte candidata con el vector de movimiento seleccionado). El índice de MVP también se puede denominar como su nombre de variable de elemento de sintaxis "mvp_idx".
[0031] La FIG. 1 muestra un conjunto de vectores de movimiento candidato 90 propuesto actualmente en el estándar HEVC para su uso en modo de fusión. El modo de fusión usa seis candidatos de fusión de los siguientes bloques espaciales y temporales: el bloque inferior izquierdo (BL) 91, el bloque izquierdo (L) 92, el bloque superior derecho (RA) 93, el bloque superior (A) 94, el bloque superior izquierdo (LA) 95, y el bloque temporal (T) 96. Los vectores de movimiento candidatos asociados con estos bloques se usan para determinar un predictor del vector de movimiento en modo de fusión.
[0032] El bloque temporal 96 puede estar dentro de un bloque colocalizado en una trama diferente a la PU actual (por ejemplo, T2) o adyacente a un bloque colocalizado en una trama diferente a la PU actual 108 (por ejemplo, T1). Las localizaciones de los bloques de candidatos espaciales (es decir, BL, L, LA, A y RA) representados en la FIG. 1 no son posiciones absolutas, sino que son posiciones relativas a la PU actual 98 en base a las siguientes definiciones generales. Cabe señalar que los bloques de candidatos no necesitan ser el bloque más cercano posible que cumpla las siguientes definiciones, sino que pueden ser cualquier PU que cumpla las definiciones. El bloque de candidatos LA 95 se localiza sobre una línea superior que define la PU actual y a la izquierda de una línea izquierda que define la PU actual. El bloque de candidatos L 92 se localiza a la izquierda de una línea izquierda que define la PU actual, pero también sobre una línea inferior que define la PU actual y por debajo de una línea superior que define la PU actual. El bloque de candidatos BL 91 se localiza por debajo de una línea inferior que define la PU actual y a la izquierda de una línea izquierda que define la PU actual. El bloque de candidatos A 94 se localiza por encima de una línea superior que define la PU actual, pero también a la derecha de una línea izquierda que define la PU actual y a la izquierda de una línea derecha que define la PU actual. El bloque de candidatos RA 93 se sitúa a la derecha de una línea derecha que define la Pu actual y por encima de una línea superior que define la PU actual.
[0033] Los candidatos de fusión se generan por PU. Es decir, cada PU tiene su propio conjunto de candidatos de fusión. Esto incluye las PU que se dividen a partir de una CU más grande. El ejemplo de la FIG. 1 es para una PU dividida 2Nx2N (por ejemplo, una PU cuadrada). La FIG. 2 muestra más ejemplos de unidades de predicción con diferentes tipos de división. Como se muestra en la FIG. 2, una división 2Nx2N es una división de forma cuadrada. Esencialmente, es una PU de una CU no dividida. Una división 2NxN se hace dividiendo una CU cuadrada en dos PU orientadas horizontalmente, donde la PU 0 está en la parte superior de la PU 1. Una división Nx2N se hace dividiendo una CU cuadrada en dos PU orientadas verticalmente, donde la PU 0 está a la izquierda de la PU 1. Una división NxN se hace dividiendo una CU cuadrada en cuatro PU del mismo tamaño. En una división NxN, la PU 0 está en la parte superior izquierda de la CU, la PU 1 está en la parte superior derecha de la CU, la PU 2 está en la parte inferior izquierda de la CU y la PU 3 está en la parte inferior derecha de la CU.
[0034] La FIG. 2 muestra tipos adicionales de divisiones "no cuadradas". Una división 2NxnD es un tipo de división no cuadrada orientada horizontalmente, donde la PU inferior (PU 1) es de un tamaño más pequeño (es decir, un cuarto del tamaño de la CU) que la PU superior (PU 0). Una división 2NxnU es un tipo de división no cuadrada orientada horizontalmente, donde la PU inferior (PU 1) es de mayor tamaño (es decir, tres cuartas partes
del tamaño de la CU) que la PU superior (PU 0). Una división nLx2N es un tipo de división no cuadrada orientada verticalmente, donde la PU izquierda (PU 0) es de un tamaño más pequeño (es decir, un cuarto del tamaño de la CU) que la PU derecha (PU 1). Una división nRx2N es un tipo de división no cuadrada orientada verticalmente, donde la PU izquierda (PU 0) es de un tamaño mayor (es decir, tres cuartos del tamaño de la CU) que la PU derecha (PU 1). Estos ejemplos de divisiones a veces se denominan divisiones de movimiento asimétrico (AMP).
[0035] Las CU se dividen de acuerdo con uno de los tipos de división para proporcionar una interpredicción más precisa (predicción temporal). La información de movimiento se señaliza por separado para cada división. Con una división más fina (por ejemplo, una división 2NxN es más fina que una división 2Nx2N), se puede derivar potencialmente una mejor calidad de predictor para cada división. Por otro lado, dado que la información de movimiento se señaliza por separado para cada división, la sobrecarga de señalización de una CU con una división más fina también es relativamente mayor. En la práctica, determinar un tipo de división para una CU actual se basa a menudo en la optimización de la distorsión de la proporción. El tipo de división seleccionado es un compromiso entre la precisión de la predicción y la sobrecarga de señalización. Las propuestas actuales para el estándar HEVC implementan técnicas para evitar el uso de candidatos de fusión redundantes para PU de la misma CU. Un candidato de fusión redundante es un candidato de fusión que tiene la misma información de movimiento que otra PU en la misma CU. Para un tipo de división particular, cada uno de los candidatos de fusión para la PU 1 (o las PU 1,2 y 3 para una división NxN) se comparan con la información de movimiento de la PU 0 (o las PU 0, 1 y 2 para una división NxN) para evitar que toda la CU use la misma información de movimiento. Si cada PU en una CU usara la misma información de movimiento, el resultado sería un duplicado del tipo de división 2Nx2N (es decir, sin divisiones). Así pues, se anularía la ventaja de dividir una CU para una interpredicción más precisa.
[0036] Para evitar el uso de candidatos de fusión redundantes, una propuesta para HEVC propone comparar la información de movimiento para cada candidato de fusión en un conjunto de candidatos de fusión con la información de movimiento de otras PU de la misma CU. Cualquier candidato de fusión con la misma información de movimiento que una PU codificada previamente se elimina del conjunto de candidatos de fusión para evitar que toda la CU use la misma información de movimiento.
[0037] De acuerdo con esta técnica, el proceso para generar un conjunto de candidatos de fusión para una PU es el siguiente:
1. Comprobar la información de movimiento para el siguiente bloque de candidatos
2. Comparar la información de movimiento de los candidatos con la información de movimiento de las PU codificadas previamente en la misma CU
3. Si la información de movimiento de los candidatos para el bloque de candidatos es la misma que la información de movimiento para una PU codificada previamente, ir a la etapa 1; de otro modo, ir a la etapa 4
4. Añadir el bloque de candidatos al conjunto de candidatos de fusión
5. Si todos los bloques de candidatos se han comprobado, finalizar; de otro modo, ir a la etapa 1
[0038] En general, la restricción de fusionar candidatos con este proceso produce los siguientes resultados para los tipos de división 2NxN, Nx2N y NxN:
1) Casos 2NxN/Nx2N: si un candidato de fusión para la segunda PU (PU 1) tiene la misma información de movimiento que la de la primera PU (PU 0), ese candidato de fusión se establecerá como no disponible.
2) Caso NxN:
a. La PU 0 y la PU 1 tienen la misma información de movimiento. Si un candidato de fusión de la PU 3 tiene la misma información de movimiento que la PU 2, el candidato de fusión se establece como no disponible;
b. La PU 0 y la PU 2 tienen la misma información de movimiento. Si un candidato de fusión de la PU 3 tiene la misma información de movimiento que la PU 1, el candidato de fusión se establece como no disponible.
[0039] Aunque este proceso elimina los candidatos de fusión redundantes, este proceso requiere que todas las PU se hayan codificado/descodificado antes de desarrollar el conjunto de candidatos de fusión para las PU subsiguientes. Así pues, la capacidad de procesar múltiples PU de una CU en paralelo es limitada. El codificador/descodificador debe determinar la información de movimiento final de todas las PU previas en la misma CU antes de construir el conjunto de candidatos de fusión para una PU actual. Además, el funcionamiento de comparación para cada bloque de candidatos puede incrementar la complejidad de cálculo del codificador/descodificador.
[0040] En un ejemplo, la presente divulgación propone eliminar el funcionamiento de comprobación de comparación durante la generación de un conjunto de candidatos de fusión, lo que facilita la paralelización favorable a la generación de candidatos de fusión. La técnica divulgada elimina la necesidad de comparar información de movimiento entre bloques de candidatos y otras PU de una CU. Así pues, los conjuntos de candidatos de fusión para todas las PU de una CU se pueden generar en paralelo. El proceso divulgado también puede reducir la complejidad de cálculo de la codificación y la descodificación.
[0041] El proceso propuesto para cada PU es
1. Comprobar el siguiente bloque de candidatos
2. Añadir el bloque de candidatos al conjunto de candidatos
3. Si todos los bloques vecinos se han comprobado, terminar; de otro modo, ir a la etapa 1
[0042] Este proceso proporciona una solución unificada para todas las PU sin considerar el índice de la unidad de predicción (por ejemplo, PU 0, PU 1) y sin hacer una comparación de la información de movimiento del bloque de candidatos con la información de movimiento de las PU codificadas previamente. Las etapas de la comparación de la información de movimiento ilustradas anteriormente se pueden eliminar. Aunque se describen de forma iterativa, las etapas de este procedimiento se pueden realizar en paralelo. Por ejemplo, un primer hilo de un proceso paralelo puede incluir instrucciones para realizar una primera instancia de las etapas 1 y 2, y un segundo hilo, diferente del proceso paralelo, puede incluir instrucciones para realizar una segunda instancia de las etapas 1 y 2. También se pueden proporcionar hilos adicionales.
[0043] En base a la técnica propuesta, un candidato de fusión que está dentro de una PU previa se puede incluir en el conjunto de candidatos de fusión. Sin embargo, esto puede hacer que toda la CU utilice la misma información de movimiento. Así pues, una CU dividida puede terminar con los mismos vectores de movimiento codificados que una división 2Nx2N, y los beneficios de la división para la interpredicción pueden ser limitados. Además, la inclusión de dichos bloques de candidatos redundantes en el conjunto de candidatos de fusión puede provocar algunas caídas de rendimiento porque se usan bits adicionales para señalizar los candidatos de fusión redundantes. Así pues, la presente divulgación también propone eliminar los candidatos de fusión del conjunto de candidatos de fusión si el candidato de fusión se localiza dentro de otra PU de la misma CU.
[0044] La FIG. 3A es un diagrama conceptual que ilustra bloques de candidatos para el modo de fusión para una división Nx2N de una CU. Se debe tener en cuenta que las técnicas mostradas en la FIG. 3A son igualmente aplicables para los tipos de división asimétrica nLx2N o nRx2N. El conjunto de candidatos de fusión 100 muestra los candidatos de fusión para la PU 0 de una CU dividida Nx2N. Dado que ningún candidato de fusión en el conjunto de candidatos de fusión 100 se encuentra dentro de otra PU de la misma CU, todos los candidatos de fusión pueden permanecer en el conjunto de candidatos de fusión 100. El conjunto de candidatos de fusión 102 muestra los candidatos de fusión para la PU 1 de una CU dividida Nx2N. Como se puede ver para el conjunto de fusión 102 para PU 1, el candidato de fusión L es de la PU 0 de la misma CU. Así pues, el candidato de fusión L se puede eliminar/excluir del conjunto de candidatos de fusión 102. En este contexto, un candidato de fusión eliminado se puede considerar un candidato que se elimina de una lista predefinida de candidatos de fusión. Un candidato de fusión excluido puede ser un candidato de fusión que se excluye de una lista de candidatos de fusión a medida cuando se deriva la lista de candidatos a fusión, tanto si dicha lista está predefinida como si no. En general, un candidato de fusión eliminado/excluido es cualquier candidato de fusión que no se usa en una lista de candidatos de fusión final.
[0045] Cabe destacar que el candidato de fusión L no necesita estar localizado en la posición exacta en la PU 0 (por ejemplo, en el caso de que la PU 0 se divida más), pero se puede excluir si el candidato de fusión L se encuentra en cualquier parte de la PU 0. Se debe observar, también, que cada uno de los conjuntos de candidatos de fusión 100 y 102 también tienen el candidato de fusión temporal T, como se muestra en la FIG. 1.
[0046] La FIG. 3B es un diagrama conceptual que ilustra bloques de candidatos para el modo de fusión para una división 2NxN de una CU. Se debe tener en cuenta que las técnicas mostradas en la FIG. 3B son igualmente aplicables para los tipos de división asimétrica 2NxnU o 2NxnD. El conjunto de candidatos de fusión 104 muestra los candidatos de fusión para la PU 0 de una CU dividida 2NxN. Dado que ningún candidato de fusión en el conjunto de candidatos de fusión 104 se encuentra dentro de otra PU de la misma CU, todos los candidatos de fusión pueden permanecer en el conjunto de candidatos de fusión 104. El conjunto de candidatos de fusión 106 muestra los candidatos de fusión para la PU 1 de una CU dividida 2NxN. Como se puede ver para el conjunto de fusión 106 para la PU 1, el candidato de fusión A es de la PU 0 de la misma CU. Así pues, el candidato de fusión A se puede eliminar/excluir del conjunto de candidatos de fusión 106. Cabe destacar que el candidato de fusión L no necesita estar localizado en la posición exacta en la PU 0 como se muestra (por ejemplo, en el caso de que la PU 0 se divida más), pero se puede excluir si el candidato de fusión A se encuentra en cualquier parte de la PU 0. Se debe
observar, también, que cada uno de los conjuntos de candidatos de fusión 104 y 106 también tienen el candidato de fusión temporal T, como se muestra en la FIG. 1.
[0047] La FIG. 4A es un diagrama conceptual que ilustra bloques de candidatos para el modo de fusión para una división NxN de una CU. El conjunto de candidatos de fusión 108 muestra los candidatos de fusión para la PU 0 de una CU dividida NxN. Dado que ningún candidato de fusión en el conjunto de candidatos de fusión 108 se encuentra dentro de otra PU de la misma CU, todos los candidatos de fusión pueden permanecer en el conjunto de candidatos de fusión 108.
[0048] El conjunto de candidatos de fusión 110 muestra los candidatos de fusión para la PU 1 de una CU dividida NxN. Como se puede observar para el conjunto de fusión 110 para la PU 1, los candidatos de fusión L y BL son de la PU 0 y la PU 2, respectivamente, de la misma CU. Así pues, los candidatos de fusión L y BL se pueden eliminar/excluir del conjunto de candidatos de fusión 110. Cabe destacar que los candidatos de fusión L y BL no necesitan estar localizados en la posición exacta en la PU 0 y la PU 2 como se muestra (por ejemplo, en el caso de que la PU 0 o la PU 2 se dividan más), pero se pueden excluir si los candidatos de fusión L y/o Bl se localizan en cualquier parte de la PU 0 y/o la PU 2.
[0049] El conjunto de candidatos de fusión 112 muestra los candidatos de fusión para la PU 2 de una CU dividida NxN. Como se puede observar para el conjunto de fusión 112 para la PU 2, los candidatos de fusión A y RA son de la PU 0 y la PU 1, respectivamente, de la misma CU. Así pues, los candidatos de fusión A y RA se pueden eliminar/excluir del conjunto de candidatos de fusión 112. Cabe destacar que los candidatos de fusión A y RA no necesitan estar localizados en la posición exacta en la PU 0 y la PU 1 como se muestra (por ejemplo, en el caso de que la PU 0 o la PU 1 se dividan más), pero se pueden excluir si los candidatos de fusión A y/o Ra se localizan en cualquier parte de la PU 0 y/o la PU 1.
[0050] El conjunto de candidatos de fusión 114 muestra los candidatos de fusión para la PU 3 de una CU dividida NxN. Como se puede observar para el conjunto de fusión 114 para la PU 3, los candidatos de fusión LA, A y L son de la PU 0, la Pu 1 y la PU 2 respectivamente, de la misma Cu . Así pues, los candidatos de fusión LA, A y L se pueden eliminar/excluir del conjunto de candidatos de fusión 114. Cabe destacar que los candidatos de fusión LA, A y L no necesitan estar localizados en la posición exacta en la PU 0, la PU 1 y la PU 2 como se muestra (por ejemplo, en el caso de que la PU 0, la PU 1 o la PU 2 se dividan más), pero se pueden excluir si los candidatos de fusión LA, A y/o L se localizan en cualquier parte de la PU 0, la PU 1 y/o la PU 2.
[0051] Se debe observar que cada uno de los conjuntos de candidatos de fusión 108, 110, 112 y 114 también tienen el candidato de fusión temporal T, como se muestra en la FIG. 1.
[0052] Aunque los ejemplos descritos anteriormente consideran solo los tipos de división 2NxN, Nx2N y NxN, otros tipos de división (por ejemplo, AMP, división de movimiento geométrico (GMP), etc.) también se pueden beneficiar de las técnicas descritas. En general, las técnicas propuestas determinan un conjunto de candidatos de fusión sin comparar la información de movimiento de los candidatos de fusión con la información de movimiento de cualquier otra unidad de predicción. Además, los candidatos de fusión dentro del conjunto de candidatos de fusión para una unidad de predicción actual se pueden eliminar/excluir si están dentro de otra unidad de predicción de la misma unidad de codificación.
[0053] En otro ejemplo, para el modo de división NxN, todos los candidatos de fusión de cada unidad de predicción se usan independientemente de cualquier uso por otra unidad de predicción. La FIG. 4B es un diagrama conceptual que ilustra bloques de candidatos de ejemplo para el modo de fusión para una división NxN de una unidad de codificación donde no se eliminan/excluyen candidatos de fusión, independientemente de su posición en otra PU. Como se muestra en la FIG. 4B, todos los candidatos (incluyendo el candidato temporal T), se usan para cada una de las PU 116, 118, 120 y 122. Para otros modos de división, tales como 2NxN, Nx2N, y modos asimétricos tales como 2NxnD, 2NxnU, nLx2N y nRx2N, se aplica la exclusión de determinados candidatos para una PU actual que se localizan dentro de otra PU de la misma CU de acuerdo con el proceso descrito anteriormente.
[0054] En otro ejemplo de la divulgación, se genera un conjunto de candidatos de fusión que usa todos los candidatos de fusión potenciales en el conjunto mostrado en la FIG. 1 para la unidad de predicción 1 en los modos de división Nx2N y 2NxN, en el caso de que la unidad de predicción 0 en el modo de división particular use un candidato de fusión (es decir, el candidato realmente seleccionado en la predicción del vector de movimiento) que no sea duplicado de un candidato de fusión que se usaría en el modo de división 2Nx2N. En otro ejemplo, para el modo de división NxN, todos los candidatos de fusión se usan independientemente de cualquier uso por otra unidad de predicción.
[0055] Las reglas para generar un conjunto de candidatos de fusión de acuerdo con este ejemplo son las siguientes:
1. Modo de división Nx2N: El candidato de fusión izquierdo (L) de la PU 1 se usa si el índice de fusión (es decir, el candidato de fusión seleccionado realmente) usado para la PU 0 es RA, A o T; de otro modo, L no se usa (en contraste con el ejemplo previo de la divulgación, donde L nunca se usa para la PU 1)
2. Modo de división 2NxN: El candidato de fusión (A) anterior de la PU 1 se usa si el índice de fusión usado para la PU 0 es BL, L o T; de otro modo, A no se usa (en contraste con el ejemplo previo de la divulgación, donde A nunca se usa para la PU 1).
3. Modo de división NxN: Todos los candidatos de predicción de todas las PU se consideran válidos
[0056] En el ejemplo de Nx2N, usar el candidato de fusión L para la PU 1 no se convierte en un duplicado del modo de división 2Nx2N, porque las localizaciones de los candidatos de fusión RA, A o T para la PU 0 en el modo de división Nx2N no se usarían necesariamente para la división 2Nx2N. Asimismo, en el ejemplo 2NxN, usar el candidato de fusión A para la PU 1 no se vuelve duplicado del modo de división 2Nx2N, porque los candidatos de fusión BL, L o T para la PU 0 no se usarían necesariamente para la división 2Nx2N.
[0057] La FIG. 5 es un diagrama de bloques que ilustra un sistema de codificación y descodificación de vídeo de ejemplo 10 que se puede configurar para usar técnicas para la generación de vectores de movimiento candidatos en un modo de fusión de acuerdo con ejemplos de la presente divulgación. Como se muestra en la FIG. 5, el sistema 10 incluye un dispositivo de origen 12 que transmite vídeo codificado a un dispositivo de destino 14 por medio de un canal de comunicación 16. Los datos de vídeo codificados también se pueden almacenar en un medio de almacenamiento 34 o en un servidor de archivos 36, y se puede acceder a los mismos mediante el dispositivo de destino 14, según se desee. Cuando se almacene en un medio de almacenamiento o en un servidor de archivos, el codificador de vídeo 20 puede proporcionar datos de vídeo codificados a otro dispositivo, tal como una interfaz de red, un grabador, o dispositivo con capacidad de grabación, de disco compacto (CD), Blu-ray o discos de vídeo digital (DVD), u otros dispositivos, para almacenar los datos de vídeo codificados en el medio de almacenamiento. Asimismo, un dispositivo independiente del decodificador de vídeo 30, tal como una interfaz de red, un lector de CD o DVD, o similares, puede recuperar los datos de vídeo codificados desde un medio de almacenamiento y proporcionar los datos recuperados al decodificador de vídeo 30.
[0058] El dispositivo de origen 12 y el dispositivo de destino 14 pueden comprender cualquiera entre una amplia variedad de dispositivos, incluyendo dispositivos móviles, ordenadores de sobremesa, ordenadores plegables (es decir, portátiles), ordenadores de tableta, descodificadores, equipos manuales de telefonía tales como los denominados teléfonos inteligentes, televisores, cámaras, dispositivos de visualización, reproductores de medios digitales, consolas de videojuegos o similares. En muchos casos, dichos dispositivos pueden estar equipados para la comunicación inalámbrica. Por lo tanto, el canal de comunicación 16 puede comprender un canal inalámbrico, un canal cableado o una combinación de canales inalámbricos y cableados, adecuados para la transmisión de datos de vídeo codificados. De manera similar, puede accederse al servidor de ficheros 36 mediante el dispositivo de destino 14, a través de cualquier conexión de datos estándar, incluida una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión Wi-Fi), una conexión cableada (por ejemplo, DSL, módem de cable, etc.) o una combinación de ambas cosas que sea adecuada para acceder a datos de vídeo codificados almacenados en un servidor de archivos.
[0059] Las técnicas para generar vectores de movimiento candidatos en un modo de fusión, de acuerdo con los ejemplos de la presente divulgación, se pueden aplicar a la codificación de vídeo, para admitir cualquiera entre una diversidad de aplicaciones multimedia, tales como radiodifusiones de televisión por el aire (over-the-air), transmisiones de televisión por cable, transmisiones de televisión por satélite, transmisiones de vídeo en tiempo real, por ejemplo, por medio de Internet, codificación de vídeo digital para su almacenamiento en un medio de almacenamiento de datos, descodificación de vídeo digital almacenado en un medio de almacenamiento de datos, u otras aplicaciones. En algunos ejemplos, el sistema 10 se puede configurar para prestar soporte a la transmisión de vídeo unidireccional o bidireccional, para dar soporte a aplicaciones tales como la transmisión continua de vídeo, la reproducción de vídeo, la difusión de vídeo y/o la videotelefonía.
[0060] En el ejemplo de la figura 5, el dispositivo de origen 12 incluye un origen de vídeo 18, un codificador de vídeo 20, un modulador/demodulador 22 y un transmisor 24. En el dispositivo de origen 12, el origen de vídeo 18 puede incluir un origen tal como un dispositivo de captura de vídeo, tal como una videocámara, un archivo de vídeo que contenga vídeo previamente capturado, una interfaz de alimentación de vídeo para recibir vídeo desde un proveedor de contenido de vídeo y/o un sistema de gráficos de ordenador para generar datos de gráficos de ordenador como el vídeo de origen, o una combinación de dichos orígenes. Como ejemplo, si el origen de vídeo 18 es una videocámara, 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, las técnicas descritas en esta divulgación pueden ser aplicables a la codificación de vídeo en general y pueden aplicarse a aplicaciones inalámbricas y/o cableadas, o a aplicaciones en las que los datos de vídeo codificados se almacenen en un disco local.
[0061] El vídeo capturado, precapturado o generado por ordenador se puede codificar por el codificador de vídeo 20. La información de vídeo codificada puede ser modulada por el módem 22 de acuerdo a una norma de
comunicación, tal como un protocolo de comunicación inalámbrica, y transmitida al dispositivo de destino 14 mediante el transmisor 24. El módem 22 puede incluir diversos mezcladores, filtros, amplificadores u otros componentes diseñados para la modulación de señales. El transmisor 24 puede incluir circuitos diseñados para transmitir datos, incluyendo amplificadores, filtros y una o más antenas.
[0062] El vídeo capturado, precapturado, o generado por ordenador que es codificado mediante el codificador de vídeo 20 también puede almacenarse en un medio de almacenamiento 34 o en un servidor de ficheros 36 para un consumo posterior. Los medios de almacenamiento 34 pueden incluir discos Blu-ray, DVD, CD-ROM, memoria flash o cualquier otro medio de almacenamiento digital adecuado para almacenar vídeo codificado. Entonces se puede acceder al vídeo codificado almacenado en el medio de almacenamiento 34 mediante el dispositivo de destino 14, para su decodificación y reproducción.
[0063] El servidor de ficheros 36 puede ser cualquier tipo de servidor capaz de almacenar vídeo codificado y transmitir ese vídeo codificado al dispositivo de destino 14. Los servidores ejemplares de ficheros incluyen un servidor de la Red (por ejemplo, para una sede de la Red), un servidor del FTP, dispositivos de almacenamiento conectado a la red (NAS), una unidad de disco local o cualquier otro tipo de dispositivo capaz de almacenar datos de vídeo codificados y transmitirlos a un dispositivo de destino. La transmisión de datos de vídeo codificados desde el servidor de ficheros 36 puede ser una transmisión continua, una transmisión de descarga o una combinación de ambas. Puede accederse al servidor de ficheros 36 mediante el dispositivo de destino 14, a través de cualquier conexión de datos estándar, incluso una conexión a Internet. Esto puede incluir un canal inalámbrico (por ejemplo, una conexión WiFi), una conexión cableada (por ejemplo, DSL, módem de cable, Ethernet, USB, etc.), o una combinación de ambos que sea adecuada para acceder a datos de vídeo codificados, almacenados en un servidor de ficheros.
[0064] El dispositivo de destino 14, en el ejemplo de la figura 5, incluye un receptor 26, un módem 28, un decodificador de vídeo 30 y un dispositivo de visualización 32. El receptor 26 del dispositivo de destino 14 recibe información por el canal 16, y el módem 28 demodula la información para producir un flujo de bits demodulado para el decodificador de vídeo 30. La información comunicada por el canal 16 puede incluir una diversidad de información sintáctica generada por el codificador de vídeo 20 para su uso por el decodificador de vídeo 30 en la codificación de los datos de vídeo. Dicha sintaxis también puede incluirse con los datos de vídeo codificados, almacenados en los medios de almacenamiento 34 o en el servidor de ficheros 36. Cada uno entre el codificador de vídeo 20 y el decodificador de vídeo 30 puede formar parte de un respectivo codificador-decodificador (CÓDEC) que sea capaz de codificar o decodificar datos de vídeo.
[0065] El dispositivo de visualización 32 puede estar integrado con, o ser externo a, el dispositivo de destino 14. En algunos ejemplos, el dispositivo de destino 14 puede incluir un dispositivo de visualización integrado y también estar configurado para interactuar con un dispositivo de visualización externo. En otros ejemplos, el dispositivo de destino 14 puede ser un dispositivo de visualización. En general, el dispositivo de visualización 32 muestra los datos de vídeo descodificados a un usuario, y puede comprender cualquiera de una variedad de dispositivos de visualización, tales como una pantalla de cristal líquido (LCD), una pantalla de plasma, una pantalla de diodos orgánicos emisores de luz (OLED) u otro tipo de dispositivo de visualización.
[0066] En el ejemplo de la FIG. 5, el canal de comunicación 16 puede comprender cualquier medio de comunicación inalámbrico o cableado, tal como un espectro de radiofrecuencia (RF) o una o más líneas de transmisión físicas, o cualquier combinación de medios inalámbricos y cableados. El canal de comunicación 16 puede formar parte de una red basada en paquetes, tal como una red de área local, una red de área amplia o una red global tal como Internet. El canal de comunicación 16 representa en general a cualquier medio de comunicación adecuado, o un conjunto de diferentes medios de comunicación, para transmitir datos de vídeo desde el dispositivo de origen 12 al dispositivo de destino 14, incluyendo cualquier combinación adecuada de medios por cable o inalámbricos. El canal de comunicación 16 puede incluir encaminadores, 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.
[0067] El codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar de acuerdo a una norma de compresión de vídeo, tal como la norma de Codificación de Vídeo de Alta Eficacia (HEVC), actualmente en fase de desarrollo, y pueden ajustarse al Modelo de Prueba de HEVC (HM). De forma alternativa, el codificador de vídeo 20 y el decodificador de vídeo 30 pueden funcionar de acuerdo a otras normas patentadas o industriales, tales como la norma ITU-T H.264, de forma alternativa denominada MPEG-4, Parte 10, Codificación de Vídeo Avanzada (AVC), o ampliaciones de dichas normas. Sin embargo, las técnicas de la presente divulgación no se limitan a ningún estándar de codificación particular. Otros ejemplos incluyen MPEG-2 e ITU-T H.263.
[0068] Aunque no se muestra en la FIG. 5, en algunos aspectos, el codificador de vídeo 20 y el descodificador de vídeo 30 pueden estar integrados, cada uno de ellos, en un codificador y descodificador de audio, y pueden incluir unidades MUX-DEMUX adecuadas, u otro tipo de hardware y software, para gestionar la codificación tanto de audio como de vídeo en un flujo de datos común o en flujos de datos diferentes. Si procede, en algunos
ejemplos, las unidades MUX-DEMUX se pueden ajustar al protocolo de multiplexación ITU H.223 o a otros protocolos, tales como el protocolo de datagramas de usuario (UDP).
[0069] Tanto el codificador de vídeo 20 como el descodificador de vídeo 30 se pueden implementar como cualquiera de una variedad de circuitos codificadores adecuados, tales como uno o más microprocesadores, procesadores de señales digitales (DSP), circuitos integrados específicos de la aplicación (ASIC), matrices de puertas programables por campo (FPGA), lógica discreta, software, hardware, firmware o cualquier combinación de los mismos. Cuando las técnicas se implementan parcialmente en software, un dispositivo puede almacenar instrucciones para el software en un medio adecuado no transitorio legible por ordenador y ejecutar las instrucciones en hardware usando uno o más procesadores para realizar las técnicas de esta divulgación. Cada uno del codificador de vídeo 20 y el descodificador de vídeo 30 se pueden incluir en uno o más codificadores o descodificadores, cualquiera de los cuales se puede integrar como parte de un codificador/descodificador (CÓDEC) combinado en un dispositivo respectivo.
[0070] El codificador de vídeo 20 puede implementar cualquiera o todas las técnicas de la presente divulgación para generar vectores de movimiento candidatos en un modo de fusión en un proceso de codificación de vídeo. Asimismo, el descodificador de vídeo 30 puede implementar cualquiera o todas estas técnicas para generar vectores de movimiento candidatos en un modo de fusión en un proceso de descodificación de vídeo. Un codificador de vídeo, como se describe en esta divulgación, se puede referir a un codificador de vídeo o a un descodificador de vídeo. De forma similar, una unidad de codificación de vídeo se puede referir a un codificador de vídeo o a un descodificador de vídeo. Asimismo, la codificación de vídeo puede referirse a la codificación de vídeo o a la decodificación de vídeo.
[0071] En un ejemplo de la divulgación, el codificador de vídeo 20 del dispositivo de origen 12 se puede configurar para determinar un conjunto de candidatos de fusión para una unidad de predicción actual de una unidad de codificación actual, en el que el conjunto de candidatos de fusión se determina sin comparar la información de movimiento de un candidato de fusión en el conjunto de candidatos de fusión con la información de movimiento de cualquier otra unidad de predicción, y para realizar un proceso de predicción de vectores de movimiento de fusión para la unidad de predicción actual usando el conjunto de candidatos de fusión. El codificador de vídeo 20 se puede configurar además para eliminar candidatos de fusión del conjunto de candidatos de fusión que están dentro de otra unidad de predicción de la unidad de codificación actual.
[0072] En otro ejemplo de la divulgación, el descodificador de vídeo 30 del dispositivo de origen 12 se puede configurar para determinar un conjunto de candidatos de fusión para una unidad de predicción actual de una unidad de codificación actual, en el que el conjunto de candidatos de fusión se determina sin comparar la información de movimiento de un candidato de fusión en el conjunto de candidatos de fusión con la información de movimiento de cualquier otra unidad de predicción, y para realizar un proceso de predicción de vectores de movimiento de fusión para la unidad de predicción actual usando el conjunto de candidatos de fusión. El descodificador de vídeo 30 se puede configurar además para eliminar candidatos de fusión del conjunto de candidatos de fusión que están dentro de otra unidad de predicción de la unidad de codificación actual.
[0073] La FIG. 6 es un diagrama de bloques que ilustra un ejemplo de un codificador de vídeo 20 que puede usar técnicas para generar vectores de movimiento candidatos en un modo de fusión como se describe en la presente divulgación. El codificador de vídeo 20 se describirá en el contexto de la codificación HEVC con propósitos ilustrativos, pero sin limitación de la presente divulgación en cuanto a otros estándares o procedimientos de codificación.
[0074] El codificador de vídeo 20 puede realizar intracodificación e intercodificación de las CU dentro de tramas de vídeo. La intracodificación se basa en la predicción espacial para reducir o eliminar la redundancia espacial en datos de vídeo dentro de una trama de vídeo dada. La intercodificación se basa en la predicción temporal para reducir o eliminar la redundancia temporal entre una trama actual y tramas previamente codificadas de una secuencia de vídeo. La intramodalidad (modalidad I) puede referirse a cualquiera entre varias modalidades de compresión de vídeo de base espacial. Las intermodalidades tales como la predicción unidireccional (modalidad P) o la predicción bidireccional (modalidad B) pueden referirse a cualquiera entre varias modalidades de compresión de vídeo de base temporal.
[0075] Como se muestra en la FIG. 6, el codificador de vídeo 20 recibe un bloque de vídeo actual dentro de una trama de vídeo que se va a codificar. En el ejemplo de la FIG. 6, el codificador de vídeo 20 incluye una unidad de compensación de movimiento 44, una unidad de estimación de movimiento 42, una unidad de intrapredicción 46, un búfer de tramas de referencia 64, un sumador 50, un módulo de transformada 52, una unidad de cuantificación 54 y una unidad de codificación por entropía 56. El módulo de transformada 52 ilustrado en la FIG. 6 es la estructura o aparato que aplica la transformada real, o combinaciones de transformadas, a un bloque de datos residuales, y no ha de confundirse con un bloque de coeficientes de transformada, que también se puede denominar unidad de transformada (TU) de una CU. Para la reconstrucción de bloques de vídeo, el codificador de vídeo 20 incluye además una unidad de cuantificación inversa 58, un módulo de transformada inversa 60 y un sumador 62. También se puede incluir un filtro de eliminación de bloques (no mostrado en la FIG. 6) para filtrar los límites de bloque, para
eliminar distorsiones de efecto pixelado del vídeo reconstruido. Si se desea, el filtro de desbloqueo filtrará típicamente la salida del sumador 62.
[0076] Durante el proceso de codificación, el codificador de vídeo 20 recibe una trama o un fragmento de vídeo que se va a codificar. La trama o el fragmento se pueden dividir en múltiples bloques de vídeo, por ejemplo, unidades de codificación máximas (LCU). 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 vídeo recibido con respecto a uno o más bloques en una o más tramas de referencia, para proporcionar una compresión temporal. La unidad de intrapredicción 46 puede realizar una codificación intrapredictiva del bloque de vídeo recibido con respecto a uno o más bloques vecinos en la misma trama o fragmento que el bloque que se vaya a codificar, para proporcionar compresión espacial.
[0077] La unidad de selección de modo 40 puede seleccionar uno de los modos de codificación, intra o inter, por ejemplo, en base a los resultados (es decir, de distorsión) de error para cada modo, y proporciona el bloque intrapredicho o interpredicho resultante (por ejemplo, una unidad de predicción (PU)) al sumador 50 para generar datos de bloque residuales y al sumador 62 para reconstruir el bloque codificado para su uso en una trama de referencia. El sumador 62 combina el bloque predicho con los datos cuantificados inversamente y transformados inversamente, desde el módulo de transformada inversa 60 para que el bloque reconstruya el bloque codificado, como se describe con más detalle a continuación. Algunas tramas de vídeo se pueden designar como tramas I, donde todos los bloques en una trama I se codifican en un modo de intrapredicción. En algunos casos, la unidad de intrapredicción 46 puede realizar la codificación de intrapredicción de un bloque en una trama P o B, por ejemplo, cuando la búsqueda de movimiento realizada por la unidad de estimación de movimiento 42 no dé como resultado una predicción suficiente del bloque.
[0078] La unidad de estimación de movimiento 42 y la unidad de compensación de movimiento 44 pueden estar altamente integradas, pero se ilustran por separado con fines conceptuales. La estimación de movimiento (o búsqueda de movimiento) es el proceso de generación de vectores de movimiento, que estiman el movimiento para los bloques de vídeo. Un vector de movimiento, por ejemplo, puede indicar el desplazamiento de una unidad de predicción en una trama actual con respecto a una muestra de referencia de una trama de referencia. La unidad de estimación de movimiento 42 calcula un vector de movimiento para una unidad de predicción de una trama intercodificada comparando la unidad de predicción con las muestras de referencia de una trama de referencia almacenada en el búfer de tramas de referencia 64. Una muestra de referencia puede ser un bloque del que se descubra que coincide estrechamente con la parte de la CU que incluye la PU que se está codificando, en términos de diferencia de píxeles, lo que se puede determinar mediante la suma de una diferencia absoluta (SAD), una suma de diferencias al cuadrado (SSD) u otras métricas de diferencia. La muestra de referencia se puede producir en cualquier lugar dentro de una trama de referencia o de un fragmento de referencia.
[0079] La parte de la trama de referencia identificada por un vector de movimiento se puede denominar muestra de referencia. La unidad de compensación de movimiento 44 puede calcular un valor de predicción para una unidad de predicción de una CU actual, por ejemplo, recuperando la muestra de referencia identificada por un vector de movimiento para la PU. En algunas técnicas de codificación de vídeo, la unidad de estimación de movimiento 42 envía el vector de movimiento calculado, la trama de referencia y la dirección de predicción (por ejemplo, la dirección en términos de si la trama de referencia precede o sigue temporalmente a la trama actual) a la unidad de codificación de entropía 56 y la unidad de compensación de movimiento 44. Otras técnicas de codificación de vídeo usan un proceso de predicción del vector de movimiento para codificar el vector de movimiento. El proceso de predicción del vector de movimiento se puede elegir de entre una pluralidad de modos, incluyendo un modo de fusión.
[0080] En el modo de fusión, el codificador considera un conjunto de bloques de candidatos de fusión y selecciona un bloque que tenga el mismo vector de movimiento (o que coincida más estrechamente), la trama de referencia y la dirección de predicción que el bloque actual que se va a codificar. Esto se consigue, por ejemplo, comprobando cada bloque de candidatos por turno y eligiendo el que produce el mejor rendimiento de distorsión de la proporción una vez que su vector de movimiento, trama de referencia y dirección de predicción se copian en el bloque actual. A continuación, en lugar de señalizar esta información del vector de movimiento (es decir, el vector de movimiento, la trama de referencia y la dirección de predicción) en el flujo de bits de vídeo codificado, el codificador señaliza un número de índice para el candidato del vector de movimiento seleccionado. El número de índice identifica el vector de movimiento candidato seleccionado entre un conjunto de vectores de movimiento candidatos. Un descodificador puede copiar la información del vector de movimiento del candidato del vector de movimiento para usarla en un bloque actual.
[0081] En los ejemplos descritos anteriormente, señalizar la información del vector de movimiento en el flujo de bits codificado no requiere necesariamente la transmisión en tiempo real de dichos elementos desde el codificador a un descodificador, sino que, en cambio, significa que dicha información se codifica en el flujo de bits y es accesible para el descodificador de cualquier forma. Esto puede incluir transmisión en tiempo real (por ejemplo, en videoconferencia) así como almacenar el flujo de bits codificado en un medio legible por ordenador para uso futuro por un descodificador (por ejemplo, en transmisión, descarga, acceso a disco, acceso a tarjeta, DVD, Blu-ray, etc.).
[0082] De acuerdo con los ejemplos de la presente divulgación descritos anteriormente, para el modo de fusión, se puede generar un conjunto de candidatos de fusión sin comparar la información de movimiento de cualquier candidato de fusión con la información de movimiento de otras PU dentro de la misma CU que la PU actual. Además, la presente divulgación también propone eliminar los candidatos de fusión del conjunto de candidatos de fusión si el candidato de fusión se localiza dentro de otra PU de la misma CU. La generación de candidatos de fusión se puede gestionar por la unidad de compensación de movimiento 44, la unidad de compensación de movimiento 42 o por cualquier otra función fija o estructura de hardware programable del codificador de vídeo 20.
[0083] Como un ejemplo, para una división Nx2N de una CU, todos los candidatos de fusión (por ejemplo, los candidatos de fusión mostrados en la FIG. 1) se pueden usar para la PU 0. Para la PU 1, el candidato de fusión L se elimina/excluye de la lista de candidatos de fusión (véase la FIG. 3A) ya que está dentro de la PU 0. Como otro ejemplo, para una división 2NxN de una CU, todos los candidatos de fusión (por ejemplo, el candidato de fusión mostrado en la FIG. 1) se pueden usar para la PU 0. Para la PU 1, el candidato de fusión A se elimina de la lista de candidatos de fusión (véase la FIG. 3B) ya que está dentro de la PU 0.
[0084] Como otro ejemplo, para una división NxN de una CU, todos los candidatos de fusión (por ejemplo, los candidatos de fusión mostrados en la FIG. 1) se pueden usar para la PU 0. Para la PU 1, los candidatos de fusión L y BL se eliminan/excluyen de la lista de candidatos de fusión (véase la FIG. 4A) ya que están dentro de la PU 0 y la PU 2, respectivamente. Para la PU 2, los candidatos de fusión A y RA se eliminan/excluyen de la lista de candidatos de fusión (véase la FIG. 4A) ya que están dentro de la PU 0 y la PU 1, respectivamente. Para la PU 3, los candidatos de fusión LA, A y L se eliminan/excluyen de la lista de candidatos de fusión (véase la FIG. 4A) ya que están dentro de la PU 0, la PU 1 y la PU 2, respectivamente. Así pues, la PU 0 puede usar candidatos de fusión BL, L, LA, A, RA y T. La PU 1 puede usar los candidatos de fusión LA, A, RA y T. La PU 2 puede usar los candidatos de fusión BL, L, LA y T. La PU 3 puede usar los candidatos de fusión BL, RA y T.
[0085] Aún como otro ejemplo, para el modo de división NxN, todos los candidatos de fusión de cada unidad de predicción se usan independientemente de cualquier uso por otra unidad de predicción (véase la FIG. 4B). Para otros modos de división, tales como 2NxN, Nx2N, y modos asimétricos tales como 2NxnD, 2NxnU, nLx2N y nRx2N, se aplica la exclusión de determinados candidatos para una PU actual que se localizan dentro de otra PU de la misma CU de acuerdo con el proceso descrito anteriormente.
[0086] Volviendo a la FIG. 6, la unidad de intrapredicción 46 puede realizar la intrapredicción en el bloque recibido, 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. La unidad de intrapredicción 46 puede predecir el bloque recibido respecto a bloques vecinos, previamente codificados, por ejemplo, bloques superior, superior y a la derecha, superior y a la izquierda, o a la izquierda del bloque actual, suponiendo un orden de codificación de izquierda a derecha y de arriba a abajo para los bloques. El módulo de intrapredicción 46 se puede configurar con una variedad de diferentes modos de intrapredicción. Por ejemplo, la unidad de intrapredicción 46 se puede configurar con un determinado número de modos de predicción direccional, por ejemplo, treinta y cuatro modos de predicción direccional, en base al tamaño de la Cu que se está codificando.
[0087] El módulo de intrapredicción 46 puede seleccionar un modo de intrapredicción, por ejemplo, calculando valores de error de predicción para diversos modos de intrapredicción y seleccionando un modo que produzca el valor de error más bajo. Los modos de predicción direccional pueden incluir funciones para combinar valores de píxeles vecinos espacialmente y aplicar los valores combinados a una o más posiciones de píxel en una PU. Una vez que se han calculado los valores para todas las posiciones de píxel en la PU, la unidad de intrapredicción 46 puede calcular un valor de error para el modo de predicción en base a diferencias de píxel entre los valores calculados o predichos de la PU y el bloque original recibido que se va a codificar. La unidad de intrapredicción 46 puede seguir probando modos de intrapredicción hasta que se descubra un modo de intrapredicción que produzca un valor de error aceptable. La unidad de intrapredicción 46 puede enviar a continuación la PU al sumador 50.
[0088] El codificador de vídeo 20 forma un bloque residual, que puede incluir un bloque de luminancia y dos bloques de crominancia, restando los datos de predicción calculados por la unidad de compensación de movimiento 44, o la unidad de intrapredicción 46, al bloque de vídeo original que se está codificando. El sumador 50 representa el componente o los componentes que realizan esta operación de resta. El bloque residual puede corresponder a una matriz bidimensional de valores de diferencia de píxel, donde el número de valores en el bloque residual es el mismo que el número de píxeles en la PU correspondiente al bloque residual. Los valores en el bloque residual pueden corresponder a las diferencias, es decir, al error, entre los valores de los píxeles colocalizados en la PU y en el bloque original que se va a codificar. Esta operación se aplica tanto a los componentes de luminancia como a los de crominancia, por lo que las diferencias pueden ser diferencias de crominancia o luminancia dependiendo del tipo de bloque que se codifica.
[0089] El módulo de transformada 52 puede formar una o más unidades de transformada (TU) a partir del bloque residual. El módulo de transformada 52 selecciona una transformada de entre una pluralidad de transformadas. La transformada se puede seleccionar en base a una o más características de codificación, tales como el tamaño de
bloque, el modo de codificación o similares. El módulo de transformada 52 aplica entonces la transformada seleccionada a la TU, produciendo un bloque de vídeo que comprende una matriz bidimensional de coeficientes de transformada.
[0090] El módulo de transformada 52 puede enviar los coeficientes de transformada resultantes a la unidad de cuantificación 54. La unidad de cuantificación 54 puede cuantificar entonces los coeficientes de transformada. La unidad de codificación de entropía 56 puede realizar entonces un recorrido de los coeficientes de transformada cuantificados en la matriz de acuerdo con un modo de recorrido. La presente divulgación describe la unidad de codificación de entropía 56 realizando el recorrido. Sin embargo, se debería entender que, en otros ejemplos, otras unidades de procesamiento, tales como la unidad de cuantificación 54, podrían realizar el recorrido.
[0091] Una vez que los coeficientes de transformada se recorren en la matriz unidimensional, la unidad de codificación por entropía 56 puede aplicar una codificación de entropía tal como la codificación de longitud variable adaptativa al contexto (CAVLC), la codificación aritmética binaria adaptativa al contexto (CABAC), una codificación aritmética binaria adaptativa al contexto basada en sintaxis (SBAC) u otra metodología de codificación de entropía a los coeficientes. La codificación de entropía también se puede aplicar a elementos de sintaxis, tales como los elementos de sintaxis usados en el modo de fusión.
[0092] Para realizar la CAVLC, el codificador de vídeo 56 puede seleccionar un código de longitud variable para un símbolo que se va a transmitir. Las palabras clave en la VLC se pueden construir de modo que los códigos relativamente más cortos correspondan a símbolos más probables, mientras que los códigos más largos correspondan a símbolos menos probables. De esta manera, el uso de la VLC puede conseguir un ahorro en bits con respecto, por ejemplo, al uso de palabras de código de igual longitud para cada símbolo que se va a transmitir.
[0093] Para realizar la CABAC, la unidad de codificación de entropía 56 puede seleccionar un modelo de contexto para aplicar a determinado contexto, para codificar los símbolos que se vayan a transmitir. En el caso de los coeficientes de transformada, el contexto se puede referir, por ejemplo, a si los valores vecinos son distintos de cero o no. La unidad de codificación de entropía 56 también puede realizar la codificación de entropía de elementos de sintaxis, tales como la señal representativa de la transformada seleccionada. De acuerdo con las técnicas de la presente divulgación, la unidad de codificación de entropía 56 puede seleccionar el modelo de contexto usado para codificar estos elementos de sintaxis en base, por ejemplo, a una dirección de intrapredicción para los modos de intrapredicción, a una posición de recorrido del coeficiente correspondiente a los elementos de sintaxis, al tipo de bloque y/o al tipo de transformada, entre otros factores usados para la selección del modelo de contexto.
[0094] Tras la codificación de entropía por la unidad de codificación de entropía 56, el vídeo codificado resultante se puede transmitir a otro dispositivo, tal como el descodificador de vídeo 30, o archivarse para su posterior transmisión o recuperación.
[0095] En algunos casos, la unidad de codificación de entropía 56 u otra unidad del codificador de vídeo 20 se puede configurar para realizar otras funciones de codificación, además de la codificación de entropía. Por ejemplo, la unidad de codificación de entropía 56 se puede configurar para determinar los valores del patrón de bloques codificados (CBP) para las CU y las PU. Asimismo, en algunos casos, la unidad de codificación de entropía 56 puede realizar una codificación de longitud de ejecución de los coeficientes.
[0096] La unidad de cuantificación inversa 58 y la unidad de transformada inversa 60 aplican la cuantificación inversa y la transformada inversa, respectivamente, para reconstruir el bloque residual en el dominio de píxel, por ejemplo, para su uso posterior para reconstruir 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 del búfer de tramas de referencia 64, que también se puede denominar búfer de imágenes descodificadas. La unidad de compensación de movimiento 44 también puede aplicar uno o más filtros de interpolación al bloque de referencia 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 con compensación de movimiento, producido por la unidad de compensación de movimiento 44 para producir un bloque de vídeo reconstruido para su almacenamiento en el búfer de tramas de referencia 64. El bloque de vídeo reconstruido se puede usar por la unidad de estimación de movimiento 42 y por la unidad de compensación de movimiento 44 como un bloque de referencia para intercodificar un bloque en otra trama de vídeo codificada posteriormente.
[0097] La FIG. 7 es un diagrama de bloques que ilustra un ejemplo de un descodificador de vídeo 30, que descodifica una secuencia de vídeo codificado. En el ejemplo de la FIG. 7, el descodificador de vídeo 30 incluye una unidad de descodificación de entropía 70, una unidad de compensación de movimiento 72, una unidad de intrapredicción 74, una unidad de cuantificación inversa 76, un módulo de transformada inversa 78, un búfer de imágenes de referencia 82 y un sumador 80. En algunos ejemplos, el descodificador de vídeo 30 puede realizar una pasada de descodificación, en general recíproca a la pasada de codificación descrita con respecto al codificador de vídeo 20 (véase la FIG. 6).
[0098] La unidad de descodificación de entropía 70 realiza un proceso de descodificación por entropía en el flujo de bits codificado para recuperar una matriz unidimensional de coeficientes de transformada. El proceso de descodificación de entropía usado depende de la codificación por entropía usada por el codificador de vídeo 20 (por ejemplo, la CABAC, la CAVLC, etc.). El proceso de codificación de entropía usado por el codificador se puede señalizar en el flujo de bits codificado o puede ser un proceso predeterminado.
[0099] En algunos ejemplos, la unidad de descodificación de entropía 70 (o la unidad de cuantificación inversa 76) pueden recorrer los valores recibidos usando un recorrido que refleje el modo de recorrido usado por la unidad de codificación de entropía 56 (o la unidad de cuantificación 54) del codificador de vídeo 20. Aunque el recorrido de coeficientes se puede realizar de forma alternativa en la unidad de cuantificación inversa 76, el recorrido se describirá, con fines ilustrativos, realizado por la unidad de descodificación de entropía 70. Además, aunque se muestran como unidades funcionales separadas para facilitar la ilustración, la estructura y la funcionalidad de la unidad de descodificación de entropía 70, la unidad de cuantificación inversa 76 y otras unidades del descodificador de vídeo 30 pueden estar altamente integradas entre sí.
[0100] La unidad de cuantificación inversa 76 cuantifica inversamente, es decir, descuantifica, los coeficientes de transformada cuantificados proporcionados en el flujo de bits y descodificados por la unidad de descodificación de entropía 70. El proceso de cuantificación inversa puede incluir un proceso convencional, por ejemplo, similar a los procesos propuestos para la HEVC o definidos por el estándar de descodificación H.264. El proceso de cuantificación inversa también puede incluir el uso de un parámetro de cuantificación, QP, calculado por un codificador de vídeo 20 para la CU, para determinar un grado de cuantificación y, asimismo, el grado de cuantificación inversa que se debería aplicar. La unidad de cuantificación inversa 76 puede cuantificar inversamente los coeficientes de transformada, antes o después de que los coeficientes se conviertan, desde una matriz unidimensional, en una matriz bidimensional.
[0101] El módulo de transformada inversa 78 aplica una transformada inversa a los coeficientes de transformada cuantificados inversamente. En algunos ejemplos, el módulo de transformada inversa 78 puede determinar una transformada inversa en base a la señalización desde el codificador de vídeo 20, o infiriendo la transformada a partir de una o más características de codificación tales como el tamaño de bloque, el modo de codificación o similares. En algunos ejemplos, el módulo de transformada inversa 78 puede determinar una transformada que se va a aplicar al bloque actual en base a una transformada señalizada en el nodo raíz de un árbol cuaternario para una LCU que incluya el bloque actual. De forma alternativa, la transformada se puede señalizar en la raíz de un árbol cuaternario de TU para una CU de nodo hoja en el árbol cuaternario de LCU. En algunos ejemplos, el módulo de transformada inversa 78 puede aplicar una transformada inversa en cascada, en la que el módulo de transformada inversa 78 aplique dos o más transformadas inversas a los coeficientes de transformada del bloque actual que se está descodificando.
[0102] La unidad de intrapredicción 74 puede generar datos de predicción para un bloque actual de una trama actual en base a un modo de intrapredicción señalizado y datos de bloques previamente descodificados de la trama actual.
[0103] De acuerdo con ejemplos de la presente divulgación, el descodificador de vídeo 30 puede recibir, desde el flujo de bits codificado, una sintaxis de predicción que indica un índice de un bloque de candidatos de fusión seleccionado de un conjunto de bloques de candidatos de fusión para su uso en un proceso de predicción del vector de movimiento. El descodificador de vídeo se configura además para recuperar un vector de movimiento, una trama de referencia y una dirección de predicción asociada con el bloque de candidatos de fusión identificado por el índice recibido, y para realizar la descodificación de interpredicción para el bloque actual usando el vector de movimiento recuperado, la trama de referencia y la dirección de predicción.
[0104] De acuerdo con los ejemplos de la presente divulgación descritos anteriormente, para el modo de fusión, se puede generar un conjunto de candidatos de fusión por el descodificador de vídeo 30 sin comparar la información de movimiento de cualquier candidato de fusión con la información de movimiento de otras p U dentro de la misma CU que la PU actual. Además, la presente divulgación también propone eliminar los candidatos de fusión del conjunto de candidatos de fusión si el candidato de fusión se localiza dentro de otra PU de la misma CU. La generación de candidatos de fusión se puede gestionar por la unidad de compensación de movimiento 72 o por cualquier otra función fija o estructura de hardware programable del descodificador de vídeo 30. Una vez que el descodificador de vídeo 30 ha determinado el conjunto de candidatos de fusión final, puede recuperar la información de movimiento del candidato de fusión indicado por el índice recibido.
[0105] Como un ejemplo, para una división Nx2N de una CU, todos los candidatos de fusión (por ejemplo, los candidatos de fusión mostrados en la FIG. 1) se pueden usar para la PU 0. Para la PU 1, el candidato de fusión L se elimina/excluye de la lista de candidatos de fusión (véase la FIG. 3A) ya que está dentro de la PU 0. Como otro ejemplo, para una división 2NxN de una CU, todos los candidatos de fusión (por ejemplo, el candidato de fusión mostrado en la FIG. 1) se pueden usar para la PU 0. Para la PU 1, el candidato de fusión A se elimina/excluye de la lista de candidatos de fusión (véase la FIG. 3B) ya que está dentro de la PU 0.
[0106] Como otro ejemplo, para una división NxN de una CU, todos los candidatos de fusión (por ejemplo, los candidatos de fusión mostrados en la FIG. 1) se pueden usar para la PU 0. Para la PU 1, los candidatos de fusión L y BL se eliminan/excluyen de la lista de candidatos de fusión (véase la FIG. 4A) ya que están dentro de la PU 0 y la PU 2, respectivamente. Para la PU 2, los candidatos de fusión A y RA se eliminan/excluyen de la lista de candidatos de fusión (véase la FIG. 4A) ya que están dentro de la PU 0 y la PU 1, respectivamente. Para la PU 3, los candidatos de fusión LA, A y L se eliminan/excluyen de la lista de candidatos de fusión (véase la FIG. 4A) ya que están dentro de la PU 0, la PU 1 y la PU 2, respectivamente.
[0107] En aún otro ejemplo, para el modo de división NxN, todos los candidatos de fusión de cada unidad de predicción se usan independientemente de cualquier uso por otra unidad de predicción (véase la FIG. 4B). Para otros modos de división, tales como 2NxN, Nx2N, y modos asimétricos tales como 2NxnD, 2NxnU, nLx2N y nRx2N, se aplica la exclusión de determinados candidatos para una PU actual que se localizan dentro de una PU de la misma CU de acuerdo con el proceso descrito anteriormente.
[0108] Volviendo a la FIG. 7, la unidad de compensación de movimiento 72 puede producir los bloques con compensación de movimiento, realizando posiblemente una interpolación en base a filtros de interpolación. Los identificadores para filtros de interpolación que se van a usar para la estimación de movimiento con una precisión de subpíxel se pueden incluir en los elementos de sintaxis. La unidad de compensación de movimiento 72 puede usar filtros de interpolación como los usados por el codificador de vídeo 20 durante la codificación del bloque de vídeo para calcular valores interpolados para píxeles de subentero de un bloque de referencia. La unidad de compensación de movimiento 72 puede determinar los filtros de interpolación usados por el codificador de vídeo 20 de acuerdo con la información de sintaxis recibida y usar los filtros de interpolación para producir bloques predictivos.
[0109] Adicionalmente, la unidad de compensación de movimiento 72 y la unidad de intrapredicción 74, en un ejemplo de la HEVC, pueden usar parte de la información de sintaxis (por ejemplo, proporcionada por un árbol cuaternario) para determinar tamaños de las LCU usadas para codificar trama(s) de la secuencia de vídeo codificado. La unidad de compensación de movimiento 72 y la unidad de intrapredicción 74 también pueden usar la información de sintaxis para determinar la información de separación que describa cómo se separa cada CU de una trama de la secuencia de vídeo codificado (y, del mismo modo, cómo se separan las sub-CU). La información de sintaxis también puede incluir modos que indican cómo se codifica cada Cu (por ejemplo, intrapredicción o interpredicción, y para la intrapredicción un modo de codificación de intrapredicción), una o más tramas de referencia (y/o listas de referencia que contengan identificadores para las tramas de referencia) para cada PU intercodificada, y otra información para descodificar la secuencia de vídeo codificado.
[0110] El sumador 80 combina los bloques residuales con los bloques de predicción correspondientes generados por la unidad de compensación de movimiento 72 o por la unidad de intrapredicción 74 para formar bloques descodificados. Los bloques descodificados, en efecto, reconstruyen los bloques codificados originalmente, sujetos a pérdidas debido a la cuantificación u otros aspectos de la codificación. Si se desea, también se puede aplicar un filtro de eliminación de bloques para filtrar los bloques descodificados para eliminar distorsiones de efecto pixelado. Los bloques de vídeo descodificado se almacenan entonces en el búfer de tramas de referencia 82, que proporciona bloques de referencia para la compensación de movimiento subsiguiente y también produce vídeo descodificado para su presentación en un dispositivo de visualización (tal como el dispositivo de visualización 32 de la FIG. 5).
[0111] La FIG. 8 es un diagrama de flujo que ilustra un procedimiento de ejemplo de codificación de vídeo de acuerdo con las técnicas de la presente divulgación. El procedimiento de la FIG. 8 se puede realizar por el codificador de vídeo 20 de la FIG. 6. El codificador de vídeo 20 se puede configurar para determinar un conjunto de candidatos de fusión para una unidad de predicción actual de una unidad de codificación actual, en el que el conjunto de candidatos de fusión se determina sin comparar la información de movimiento de un candidato de fusión en el conjunto de candidatos de fusión con la información de movimiento de otra unidad de predicción (200), y para eliminar candidatos de fusión del conjunto de candidatos de fusión que están dentro de otra unidad de predicción de la unidad de codificación actual (202). El conjunto de candidatos de fusión puede incluir un candidato de fusión superior izquierdo, un candidato de fusión superior, un candidato de fusión superior derecho, un candidato de fusión izquierdo, un candidato de fusión inferior izquierdo y un candidato de fusión temporal.
[0112] En el caso de que la unidad de codificación actual tenga un tipo de división 2NxN, incluyendo una unidad de predicción 0 situada sobre una unidad de predicción 1, el codificador de vídeo 20 puede eliminar el candidato de fusión sobre el conjunto de candidatos de fusión para la unidad de predicción 1. En el caso de que la unidad de codificación actual tenga un tipo de división Nx2N, incluyendo una unidad de predicción 0 situada a la izquierda de una unidad de predicción 1, el codificador de vídeo 20 puede eliminar el candidato de fusión izquierdo del conjunto de candidatos de fusión para la unidad de predicción 1.
[0113] En el caso de que la unidad de codificación actual tenga un tipo de división NxN, incluyendo una unidad de predicción 0 situada en una parte superior izquierda de la unidad de codificación actual, una unidad de predicción 1 situada en una parte superior derecha de la unidad de codificación actual, una unidad de predicción
2 situada en una parte inferior izquierda de la unidad de codificación actual, y una unidad de predicción 3 situada en una parte inferior derecha de la unidad de codificación actual, el codificador de vídeo 20 puede eliminar el candidato de fusión izquierdo y el candidato de fusión inferior izquierdo del conjunto de candidatos de fusión para la unidad de predicción 1. En este caso, el codificador de vídeo 20 puede eliminar además el candidato de fusión superior y el candidato de fusión superior derecho del conjunto de candidatos de fusión para la unidad de predicción 2. El codificador de vídeo 20, en este caso, todavía puede eliminar el candidato de fusión superior, el candidato de fusión izquierdo y el candidato de fusión superior izquierdo del conjunto de candidatos de fusión para la unidad de predicción 3.
[0114] En otros ejemplos, excluir candidatos de fusión comprende excluir candidatos de fusión del conjunto de candidatos de fusión que están dentro de otra unidad de predicción para la unidad de codificación actual para todos los modos de división distintos de un modo de división NxN. En este caso, no se eliminan/excluyen candidatos de fusión de las unidades de predicción de la unidad de codificación que tiene el modo de división NxN.
[0115] El codificador de vídeo 20 se puede configurar además para realizar un proceso de predicción del vector de movimiento de fusión para la unidad de predicción actual usando el conjunto de candidatos de fusión para determinar un candidato de fusión seleccionado para la unidad de predicción actual (204), y señalizar un elemento de sintaxis que indica el candidato de fusión seleccionado en un flujo de bits de vídeo codificado (206).
[0116] La FIG. 9 es un diagrama de flujo que ilustra un procedimiento de ejemplo de descodificación de vídeo de acuerdo con las técnicas de la presente divulgación. Los procedimientos de la FIG. 9 se pueden realizar por el descodificador de vídeo 30 de la FIG. 7. El descodificador de vídeo 30 se puede configurar para recibir un elemento de sintaxis que indica un candidato de fusión seleccionado para una unidad de predicción actual (220), y determinar un conjunto de candidatos de fusión para la unidad de predicción actual de una unidad de codificación actual, en el que el conjunto de candidatos de fusión se determina sin comparar la información de movimiento de un candidato de fusión en el conjunto de candidatos de fusión con la información de movimiento de cualquier otra unidad de predicción (222). El descodificador de vídeo 30 se puede configurar además para eliminar candidatos de fusión del conjunto de candidatos de fusión que están dentro de otra unidad de predicción de la unidad de codificación actual (224). El conjunto de candidatos de fusión puede incluir un candidato de fusión superior izquierdo, un candidato de fusión superior, un candidato de fusión superior derecho, un candidato de fusión izquierdo, un candidato de fusión inferior izquierdo y un candidato de fusión temporal.
[0117] En el caso de que la unidad de codificación actual tenga un tipo de división 2NxN, incluyendo una unidad de predicción 0 situada sobre una unidad de predicción 1, el descodificador de vídeo 30 puede eliminar el candidato de fusión sobre el conjunto de candidatos de fusión para la unidad de predicción 1. En el caso de que la unidad de codificación actual tenga un tipo de división Nx2N que incluya una unidad de predicción 0 colocada a la izquierda de una unidad de predicción 1, el descodificador de vídeo 30 puede eliminar el candidato de fusión izquierdo del conjunto de candidatos de fusión para la unidad de predicción 1.
[0118] En el caso de que la unidad de codificación actual tenga un tipo de división NxN, incluyendo una unidad de predicción 0 situada en una parte superior izquierda de la unidad de codificación actual, una unidad de predicción 1 situada en una parte superior derecha de la unidad de codificación actual, una unidad de predicción 2 situada en una parte inferior izquierda de la unidad de codificación actual, y una unidad de predicción 3 situada en una parte inferior derecha de la unidad de codificación actual, el descodificador de vídeo 30 puede eliminar el candidato de fusión izquierdo y el candidato de fusión inferior izquierdo del conjunto de candidatos de fusión para la unidad de predicción 1. En este caso, el descodificador de vídeo 30 puede eliminar además el candidato de fusión superior y el candidato de fusión superior derecho del conjunto de candidatos de fusión para la unidad de predicción 2. El descodificador de vídeo 30, en este caso, todavía puede eliminar el candidato de fusión superior, el candidato de fusión izquierdo y el candidato de fusión superior izquierdo del conjunto de candidatos de fusión para la unidad de predicción 3.
[0119] En otros ejemplos, excluir candidatos de fusión comprende excluir candidatos de fusión del conjunto de candidatos de fusión que están dentro de otra unidad de predicción para la unidad de codificación actual para todos los modos de división distintos de un modo de división NxN. En este caso, no se eliminan/excluyen candidatos de fusión de las unidades de predicción de la unidad de codificación que tiene el modo de división NxN.
[0120] El descodificador de vídeo 30 se puede configurar además para realizar un proceso de predicción del vector de movimiento de fusión para la unidad de predicción actual usando el conjunto de candidatos de fusión y el elemento de sintaxis recibido para determinar un vector de movimiento para la unidad de predicción actual (226) y descodificar la unidad de predicción actual usando el vector de movimiento determinado (228).
[0121] En uno o más ejemplos, las funciones descritas se pueden implementar en hardware, software, firmware o en cualquier combinación de los mismos. Si se implementan en software, las funciones se pueden almacenar en o transmitir a través de un medio legible por ordenador como una o más instrucciones o código, y ejecutarse por una unidad de procesamiento basada en hardware. Los medios legibles por ordenador pueden incluir medios de almacenamiento legibles por ordenador que correspondan a un medio tangible, tales como medios de
almacenamiento de datos, o medios de comunicación que incluyan cualquier medio que facilite la transferencia de un programa informático de un lugar a otro, por ejemplo, de acuerdo con un protocolo de comunicación. De esta manera, los medios legibles por ordenador pueden corresponder, en general, a (1) medios de almacenamiento tangibles legibles por ordenador que sean no transitorios o a (2) un medio de comunicación tal como una señal o una onda portadora. Los medios de almacenamiento de datos pueden ser cualquier medio disponible al que se pueda acceder desde uno o más ordenadores o uno o más procesadores para recuperar instrucciones, código y/o estructuras de datos para la implementación de las técnicas descritas en esta divulgación. Un producto de programa informático puede incluir un medio legible por ordenador.
[0122] A modo de ejemplo, y no de limitación, dichos medios de almacenamiento legibles por ordenador pueden comprender RAM, ROM, EEPROM, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, memoria flash o cualquier otro medio que se pueda usar para almacenar el código de programa deseado en forma de instrucciones o estructuras de datos y al que se pueda acceder mediante un ordenador. Además, cualquier conexión recibe apropiadamente la denominación de medio legible por ordenador. Por ejemplo, si las instrucciones se transmiten desde un sitio web, un servidor u otra fuente remota usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas se incluyen en la definición de medio. Sin embargo, se debe entender que los medios de almacenamiento legibles por ordenador y los medios de almacenamiento de datos no incluyen conexiones, ondas portadoras, señales ni otros medios transitorios, sino que, en cambio, se refieren a medios de almacenamiento tangibles no transitorios. El término disco, como se usa en el presente documento, incluye disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disco flexible y disco Blu-ray, donde unos discos reproducen normalmente los datos magnéticamente, mientras que otros discos reproducen datos ópticamente con láseres. Las combinaciones de lo anterior también se deben incluir dentro del alcance de los medios legibles por ordenador.
[0123] Las instrucciones se pueden ejecutar por uno o más procesadores, tales como uno o más procesadores de señales digitales (DSP), microprocesadores de propósito general, circuitos integrados específicos de la aplicación (ASIC), matrices lógicas programables por campo (FPGA) u otros circuitos lógicos integrados o discretos equivalentes. En consecuencia, el término "procesador", como se usa en el presente documento, se puede referir a cualquiera de las estructuras anteriores o a cualquier otra estructura adecuada para la implementación de las técnicas descritas en el presente documento. Además, en algunos aspectos, la funcionalidad descrita en el presente documento se puede proporcionar dentro de módulos de hardware y/o de software dedicados configurados para la codificación y la descodificación, o incorporarse en un códec combinado. Además, las técnicas se podrían implementar por completo en uno o más circuitos o elementos lógicos.
[0124] Las técnicas de la presente divulgación se pueden implementar en una amplia variedad de dispositivos o aparatos, incluyendo un teléfono inalámbrico, un circuito integrado (IC) o un conjunto de IC (por ejemplo, un conjunto de chips). En la presente divulgación se describen diversos componentes, módulos o unidades para destacar aspectos funcionales de dispositivos configurados para realizar las técnicas divulgadas, pero no se requiere necesariamente su realización mediante diferentes unidades de hardware. En su lugar, como se describe anteriormente, diversas unidades se pueden combinar en una unidad de hardware de códec o proporcionar por un grupo de unidades de hardware interoperativas, incluyendo uno o más procesadores como se describe anteriormente, junto con software y/o firmware adecuados.
[0125] Se han descrito diversos ejemplos.
Claims (10)
1. Un procedimiento de descodificación de datos de vídeo que comprende:
determinar (200) un conjunto de candidatos de fusión para una unidad de predicción actual de una unidad de codificación actual, en el que el conjunto de candidatos de fusión incluye candidatos de fusión espacial y un candidato de fusión temporal, en el que los candidatos de fusión espacial son un candidato de fusión superior izquierdo,
un candidato de fusión superior, un candidato de fusión superior derecho, un candidato de fusión izquierdo y un candidato de fusión inferior izquierdo en el que la localización de los candidatos de fusión espacial se especifica con respecto a la unidad de predicción actual;
eliminar (202) del conjunto de candidatos de fusión para la unidad de predicción actual todos los candidatos de fusión que están dentro de otra unidad de predicción de la unidad de codificación actual, cuando la unidad de codificación actual tiene un tipo de división 2NxN, 2NxnU o 2NxnD que incluye una unidad de predicción 0 situada sobre una unidad de predicción 1, eliminar el candidato de fusión superior del conjunto de candidatos de fusión para la unidad de predicción 1, y cuando la unidad de codificación actual tiene un tipo de división Nx2N, nLx2N o nRx2N que incluye una unidad de predicción 0 situada a la izquierda de una unidad de predicción 1, eliminar el candidato de fusión izquierdo del conjunto de candidatos de fusión para la unidad de predicción 1; y
realizar (204) un proceso de predicción del vector de movimiento de fusión para la unidad de predicción actual usando el conjunto de candidatos de fusión.
2. Un procedimiento de codificación de datos de vídeo que comprende:
determinar (200) un conjunto de candidatos de fusión para una unidad de predicción rectangular actual de una unidad de codificación actual, en el que el conjunto de candidatos de fusión incluye candidatos de fusión espacial y un candidato de fusión temporal, en el que los candidatos de fusión espacial son un candidato de fusión superior izquierdo, un candidato de fusión superior, un candidato de fusión superior derecho, un candidato de fusión izquierdo y un candidato de fusión inferior izquierdo en el que la localización de los candidatos de fusión espacial se especifica con respecto a la unidad de predicción actual;
eliminar (202) del conjunto de candidatos de fusión para la unidad de predicción actual todos los candidatos de fusión que están dentro de otra unidad de predicción de la unidad de codificación actual:
cuando la unidad de codificación actual tiene un tipo de división 2NxN, 2NxnU o 2NxnD que incluye una unidad de predicción 0 situada sobre una unidad de predicción 1, eliminar el candidato de fusión superior del conjunto de candidatos de fusión para la unidad de predicción 1, y cuando la unidad de codificación actual tiene un tipo de división Nx2N, nLx2N o nRx2N que incluye una unidad de predicción 0 situada a la izquierda de una unidad de predicción 1, eliminar el candidato de fusión izquierdo del conjunto de candidatos de fusión para la unidad de predicción 1; y
realizar (204) un proceso de predicción del vector de movimiento de fusión para la unidad de predicción actual usando el conjunto de candidatos de fusión.
3. El procedimiento de la reivindicación 1, en el que el procedimiento comprende además:
recibir (220) un elemento de sintaxis que indica un candidato de fusión seleccionado para la unidad de predicción actual;
realizar (224) el proceso de predicción del vector de movimiento de fusión para la unidad de predicción actual usando el conjunto de candidatos de fusión y el elemento de sintaxis recibido para determinar un vector de movimiento para la unidad de predicción actual; y
descodificar (228) la unidad de predicción actual usando el vector de movimiento determinado.
4. El procedimiento de la reivindicación 2, en el que el procedimiento comprende además:
realizar (204) el proceso de predicción del vector de movimiento para la unidad de predicción actual usando el conjunto de candidatos de fusión para determinar un candidato de fusión seleccionado para la unidad de predicción actual; y
señalizar (206) un elemento de sintaxis que indica el candidato de fusión seleccionado en un flujo de bits de vídeo codificado.
5. Un aparato (20; 30) configurado para descodificar datos de vídeo que comprende:
medios para determinar un conjunto de candidatos de fusión para una unidad de predicción actual de una unidad de codificación actual, en el que el conjunto de candidatos de fusión incluye candidatos de fusión espacial y un candidato de fusión temporal, en el que los candidatos de fusión espacial son un candidato de fusión superior izquierdo, un candidato de fusión superior, un candidato de fusión superior derecho, un candidato de fusión izquierdo y un candidato de fusión inferior izquierdo, en el que la localización de los candidatos de fusión espacial se especifica con respecto a la unidad de predicción actual;
medios para eliminar del conjunto de candidatos de fusión los candidatos de fusión que están dentro de otra unidad de predicción de la unidad de codificación actual en base a las localizaciones espaciales de los candidatos de fusión y la localización de la unidad de predicción actual dentro de la unidad de codificación y sin comparar la información de movimiento de un candidato de fusión en el conjunto de candidatos de fusión con la información de movimiento de cualquier otra unidad de predicción, en el que cuando la unidad de codificación actual tiene un tipo de división 2NxN, 2NxnU o 2NxnD que incluye una unidad de predicción 0 situada sobre una unidad de predicción 1, los medios para eliminar candidatos de fusión del conjunto de candidatos de fusión se configuran para eliminar el candidato de fusión superior del conjunto de candidatos de fusión para la unidad de predicción 1, y cuando la unidad de codificación actual tiene un tipo de división Nx2N, nLx2N o nRx2N que incluye una unidad de predicción 0 situada a la izquierda de una unidad de predicción 1, los medios para eliminar candidatos de fusión del conjunto de candidatos de fusión se configuran para eliminar el candidato de fusión izquierdo del conjunto de candidatos de fusión para la unidad de predicción 1; y
medios para realizar un proceso de predicción del vector de movimiento de fusión para la unidad de predicción actual usando el conjunto de candidatos de fusión.
6. Un aparato (20; 30) configurado para codificar datos de vídeo que comprende:
medios para determinar un conjunto de candidatos de fusión para una unidad de predicción actual de una unidad de codificación actual, en el que el conjunto de candidatos de fusión incluye candidatos de fusión espacial y un candidato de fusión temporal, en el que los candidatos de fusión espacial son un candidato de fusión superior izquierdo, un candidato de fusión superior, un candidato de fusión superior derecho, un candidato de fusión izquierdo y un candidato de fusión inferior izquierdo, en el que la localización de los candidatos de fusión espacial se especifica con respecto a la unidad de predicción actual;
medios para eliminar del conjunto de candidatos de fusión los candidatos de fusión que están dentro de otra unidad de predicción de la unidad de codificación actual en base a las localizaciones espaciales de los candidatos de fusión y la localización de la unidad de predicción actual dentro de la unidad de codificación y sin comparar la información de movimiento de un candidato de fusión en el conjunto de candidatos de fusión con la información de movimiento de cualquier otra unidad de predicción, en el que cuando la unidad de codificación actual tiene un tipo de división 2NxN, 2NxnU o 2NxnD que incluye una unidad de predicción 0 situada sobre una unidad de predicción 1, los medios para eliminar candidatos de fusión del conjunto de candidatos de fusión se configuran para eliminar el candidato de fusión superior del conjunto de candidatos de fusión para la unidad de predicción 1, y cuando la unidad de codificación actual tiene un tipo de división Nx2N, nLx2N o nRx2N que incluye una unidad de predicción 0 situada a la izquierda de una unidad de predicción 1, los medios para eliminar candidatos de fusión del conjunto de candidatos de fusión se configuran para eliminar el candidato de fusión izquierdo del conjunto de candidatos de fusión para la unidad de predicción 1; y
medios para realizar un proceso de predicción del vector de movimiento de fusión para la unidad de predicción actual usando el conjunto de candidatos de fusión.
7. El aparato de la reivindicación 5, en el que el aparato comprende además:
medios para recibir un elemento de sintaxis que indica un candidato de fusión seleccionado para la unidad de predicción actual;
medios para realizar el proceso de predicción del vector de movimiento de fusión para la unidad de predicción actual usando el conjunto de candidatos de fusión y el elemento de sintaxis recibido para determinar un vector de movimiento para la unidad de predicción actual; y
medios para descodificar la unidad de predicción actual usando el vector de movimiento determinado.
8. El aparato de la reivindicación 6, en el que el aparato comprende además:
medios para realizar el proceso de predicción del vector de movimiento para la unidad de predicción actual usando el conjunto de candidatos de fusión para determinar un candidato de fusión seleccionado para la unidad de predicción actual; y
medios para señalizar un elemento de sintaxis que indica el candidato de fusión seleccionado en un flujo de bits de vídeo codificado.
9. El aparato de la reivindicación 5 o la reivindicación 6, en el que el aparato es parte de un dispositivo móvil.
10. Un medio de almacenamiento legible por ordenador que tiene almacenadas instrucciones en el mismo que, cuando se ejecutan, hacen que uno o más procesadores configurados para codificar datos de vídeo lleven a cabo el procedimiento de cualquiera de las reivindicaciones 1 a 4.
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161499112P | 2011-06-20 | 2011-06-20 | |
US201161543059P | 2011-10-04 | 2011-10-04 | |
US201161543043P | 2011-10-04 | 2011-10-04 | |
US201161556761P | 2011-11-07 | 2011-11-07 | |
US201161562387P | 2011-11-21 | 2011-11-21 | |
US201161562953P | 2011-11-22 | 2011-11-22 | |
US13/526,261 US9313494B2 (en) | 2011-06-20 | 2012-06-18 | Parallelization friendly merge candidates for video coding |
PCT/US2012/043155 WO2012177644A1 (en) | 2011-06-20 | 2012-06-19 | Parallelization friendly merge candidates for video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2856051T3 true ES2856051T3 (es) | 2021-09-27 |
Family
ID=46489468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES12733553T Active ES2856051T3 (es) | 2011-06-20 | 2012-06-19 | Candidatos de fusión favorables a la paralelización para codificación de vídeo |
Country Status (16)
Country | Link |
---|---|
US (1) | US9313494B2 (es) |
EP (1) | EP2721821B1 (es) |
JP (1) | JP5797840B2 (es) |
KR (1) | KR101536540B1 (es) |
CN (1) | CN103609118B (es) |
AU (1) | AU2012273109B2 (es) |
BR (1) | BR112013032141B1 (es) |
CA (1) | CA2839687C (es) |
DK (1) | DK2721821T3 (es) |
ES (1) | ES2856051T3 (es) |
HU (1) | HUE051825T2 (es) |
IL (1) | IL229717A (es) |
MX (1) | MX2013014710A (es) |
MY (1) | MY165809A (es) |
RU (1) | RU2582062C2 (es) |
WO (1) | WO2012177644A1 (es) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011146451A1 (en) * | 2010-05-20 | 2011-11-24 | Thomson Licensing | Methods and apparatus for adaptive motion vector candidate ordering for video encoding and decoding |
CN103283237B (zh) * | 2010-12-22 | 2017-03-22 | Lg电子株式会社 | 帧内预测方法和使用该方法的设备 |
WO2012096146A1 (ja) * | 2011-01-13 | 2012-07-19 | 日本電気株式会社 | 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法及びプログラム |
EP3139611A1 (en) * | 2011-03-14 | 2017-03-08 | HFI Innovation Inc. | Method and apparatus for deriving temporal motion vector prediction |
CN103621090B (zh) * | 2011-06-24 | 2017-09-15 | 寰发股份有限公司 | 移除运动向量预测子中冗余的方法与装置 |
JP6272759B2 (ja) | 2011-09-22 | 2018-01-31 | エルジー エレクトロニクス インコーポレイティド | 映像情報通知方法及び装置、並びにこれを利用した復号方法及び装置 |
CN107105267B (zh) * | 2011-09-23 | 2020-09-04 | 株式会社Kt | 解码视频信号的方法 |
EP4283995A3 (en) | 2011-10-05 | 2024-02-21 | Sun Patent Trust | Decoding method and decoding apparatus |
JP2013118627A (ja) * | 2011-10-31 | 2013-06-13 | Jvc Kenwood Corp | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム |
US9571833B2 (en) | 2011-11-04 | 2017-02-14 | Nokia Technologies Oy | Method for coding and an apparatus |
KR20130050407A (ko) * | 2011-11-07 | 2013-05-16 | 오수미 | 인터 모드에서의 움직임 정보 생성 방법 |
KR20130050149A (ko) * | 2011-11-07 | 2013-05-15 | 오수미 | 인터 모드에서의 예측 블록 생성 방법 |
WO2013070001A1 (ko) * | 2011-11-08 | 2013-05-16 | 한국전자통신연구원 | 후보 리스트 공유 방법 및 이러한 방법을 사용하는 장치 |
KR102072124B1 (ko) * | 2011-11-24 | 2020-02-04 | 에스케이텔레콤 주식회사 | 세밀한 예측 단위를 사용하는 효과적인 부호화/복호화 방법 및 장치 |
SI3654651T1 (sl) * | 2011-12-16 | 2021-08-31 | JVC Kenwood Corporation | Naprava za kodiranje dinamičnih slik, postopek za kodiranje dinamičnih slik, program za kodiranje dinamičnih slik, naprava za dekodiranje dinamičnih slik, postopek za dekodiranje dinamičnih slik in program za dekodiranje dinamičnih slik |
JP5835208B2 (ja) * | 2011-12-28 | 2015-12-24 | 株式会社Jvcケンウッド | 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、並びに、送信装置、送信方法、及び送信プログラム |
US20130235926A1 (en) * | 2012-03-07 | 2013-09-12 | Broadcom Corporation | Memory efficient video parameter processing |
KR102186605B1 (ko) * | 2012-09-28 | 2020-12-03 | 삼성전자주식회사 | 다시점 영상 부호화/복호화 장치 및 방법 |
US9699450B2 (en) | 2012-10-04 | 2017-07-04 | Qualcomm Incorporated | Inter-view predicted motion vector for 3D video |
CN102883163B (zh) | 2012-10-08 | 2014-05-28 | 华为技术有限公司 | 用于运动矢量预测的运动矢量列表建立的方法、装置 |
KR102179383B1 (ko) * | 2013-08-09 | 2020-11-16 | 삼성전자주식회사 | 병합 모드 결정 방법 및 장치 |
WO2015135175A1 (en) * | 2014-03-13 | 2015-09-17 | Mediatek Singapore Pte. Ltd. | Simplified depth based block partitioning method |
US10123036B2 (en) * | 2014-06-27 | 2018-11-06 | Microsoft Technology Licensing, Llc | Motion vector selection for video encoding |
US20170339403A1 (en) * | 2014-11-04 | 2017-11-23 | Samsung Electronics Co., Ltd. | Method and device for encoding/decoding video using intra prediction |
WO2016178485A1 (ko) * | 2015-05-05 | 2016-11-10 | 엘지전자 주식회사 | 영상 코딩 시스템에서 코딩 유닛 처리 방법 및 장치 |
US20170332103A1 (en) * | 2016-05-13 | 2017-11-16 | Intel Corporation | Interleaving luma and chroma coefficients to reduce the intra prediction loop dependency in video encoders and decoders |
US10291928B2 (en) | 2017-01-10 | 2019-05-14 | Blackberry Limited | Methods and devices for inter-prediction using motion vectors for video coding |
CN108347602B (zh) * | 2017-01-22 | 2021-07-30 | 上海澜至半导体有限公司 | 用于无损压缩视频数据的方法和装置 |
US10523934B2 (en) * | 2017-05-31 | 2019-12-31 | Mediatek Inc. | Split based motion vector operation reduction |
KR20190044533A (ko) | 2017-10-20 | 2019-04-30 | 주식회사 케이티 | 비디오 신호 처리 방법 및 장치 |
KR20190046704A (ko) * | 2017-10-26 | 2019-05-07 | 한국전자통신연구원 | 비대칭 서브 블록 기반 영상 부호화/복호화 방법 및 장치 |
US10623746B2 (en) * | 2017-12-07 | 2020-04-14 | Tencent America LLC | Method and apparatus for video coding |
CN118042151A (zh) * | 2018-01-25 | 2024-05-14 | 三星电子株式会社 | 使用基于子块的运动补偿进行视频信号处理的方法和装置 |
WO2019164031A1 (ko) | 2018-02-22 | 2019-08-29 | 엘지전자 주식회사 | 영상 코딩 시스템에서 블록 분할 구조에 따른 영상 디코딩 방법 및 장치 |
KR20240055149A (ko) | 2018-05-10 | 2024-04-26 | 엘지전자 주식회사 | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
US11997311B2 (en) * | 2018-09-17 | 2024-05-28 | Hfi Innovation Inc. | Methods and apparatuses of combining multiple predictors for block prediction in video coding systems |
CA3129872A1 (en) | 2018-12-28 | 2020-07-02 | Jvckenwood Corporation | Dynamic image decoding device, dynamic image decoding method, dynamic image decoding program, dynamic image encoding device, dynamic image encoding method, and dynamic image encoding program |
KR20240000647A (ko) * | 2018-12-28 | 2024-01-02 | 고도 가이샤 아이피 브릿지 1 | 동화상 부호화 장치, 동화상 부호화 방법, 동화상 부호화 프로그램, 동화상 복호 장치, 동화상 복호 방법, 동화상 복호 프로그램, 기록 매체, 전송 방법 및 기록 방법 |
BR112021014667A2 (pt) * | 2019-01-28 | 2021-09-28 | Op Solutions, Llc | Interprevisão em particionamento exponencial |
CN113647102A (zh) * | 2019-04-09 | 2021-11-12 | 北京达佳互联信息技术有限公司 | 用于在视频编解码中用信号发送合并模式的方法和装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7940844B2 (en) | 2002-06-18 | 2011-05-10 | Qualcomm Incorporated | Video encoding and decoding techniques |
US20060120455A1 (en) | 2004-12-08 | 2006-06-08 | Park Seong M | Apparatus for motion estimation of video data |
KR101104828B1 (ko) | 2004-12-09 | 2012-01-16 | 삼성전자주식회사 | 움직임 벡터 연산 장치 및 그 방법 |
JP2007043651A (ja) | 2005-07-05 | 2007-02-15 | Ntt Docomo Inc | 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム |
JP4763549B2 (ja) | 2006-08-18 | 2011-08-31 | 富士通セミコンダクター株式会社 | フレーム間予測処理装置、画像符号化装置、及び画像復号化装置 |
US8213509B2 (en) | 2006-10-06 | 2012-07-03 | Calos Fund Limited Liability Company | Video coding on parallel processing systems |
KR101475365B1 (ko) * | 2007-04-09 | 2014-12-23 | 가부시키가이샤 엔.티.티.도코모 | 화상 예측 부호화 장치, 화상 예측 부호화 방법, 화상 예측 부호화 프로그램, 화상 예측 복호 장치, 화상 예측 복호 방법 및 화상 예측 복호 프로그램 |
US8908765B2 (en) | 2007-11-15 | 2014-12-09 | General Instrument Corporation | Method and apparatus for performing motion estimation |
KR101456498B1 (ko) | 2009-08-14 | 2014-10-31 | 삼성전자주식회사 | 계층적 부호화 단위의 스캔 순서를 고려한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치 |
TWI566586B (zh) | 2009-10-20 | 2017-01-11 | 湯姆生特許公司 | 一序列形象的現時區塊之寫碼方法和重建方法 |
KR101504887B1 (ko) * | 2009-10-23 | 2015-03-24 | 삼성전자 주식회사 | 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치 |
KR101768207B1 (ko) | 2010-01-19 | 2017-08-16 | 삼성전자주식회사 | 축소된 예측 움직임 벡터의 후보들에 기초해 움직임 벡터를 부호화, 복호화하는 방법 및 장치 |
RS57809B1 (sr) * | 2010-07-09 | 2018-12-31 | Samsung Electronics Co Ltd | Metod za dekodiranje video zapisa korišćenjem objedinjavanja blokova |
US9124898B2 (en) | 2010-07-12 | 2015-09-01 | Mediatek Inc. | Method and apparatus of temporal motion vector prediction |
KR101861714B1 (ko) | 2010-09-02 | 2018-05-28 | 엘지전자 주식회사 | 영상 부호화 및 복호화 방법과 이를 이용한 장치 |
CN107360427B (zh) * | 2010-10-08 | 2020-09-01 | Ge视频压缩有限责任公司 | 编码器和编码方法与解码器和解码方法 |
PL3962088T3 (pl) | 2010-11-04 | 2023-11-27 | Ge Video Compression, Llc | Kodowanie obrazu wspomagające scalanie bloków i tryb przeskoku |
US9137544B2 (en) * | 2010-11-29 | 2015-09-15 | Mediatek Inc. | Method and apparatus for derivation of mv/mvp candidate for inter/skip/merge modes |
US9532066B2 (en) * | 2011-01-21 | 2016-12-27 | Qualcomm Incorporated | Motion vector prediction |
EP2698999B1 (en) * | 2011-04-12 | 2017-01-04 | Sun Patent Trust | Motion-video encoding method, motion-video encoding apparatus, motion-video decoding method, motion-video decoding apparatus, and motion-video encoding/decoding apparatus |
-
2012
- 2012-06-18 US US13/526,261 patent/US9313494B2/en active Active
- 2012-06-19 RU RU2014101512/08A patent/RU2582062C2/ru active
- 2012-06-19 HU HUE12733553A patent/HUE051825T2/hu unknown
- 2012-06-19 MY MYPI2013004316A patent/MY165809A/en unknown
- 2012-06-19 CN CN201280030464.6A patent/CN103609118B/zh active Active
- 2012-06-19 JP JP2014517094A patent/JP5797840B2/ja active Active
- 2012-06-19 KR KR1020147001394A patent/KR101536540B1/ko active IP Right Grant
- 2012-06-19 DK DK12733553.7T patent/DK2721821T3/da active
- 2012-06-19 ES ES12733553T patent/ES2856051T3/es active Active
- 2012-06-19 MX MX2013014710A patent/MX2013014710A/es active IP Right Grant
- 2012-06-19 WO PCT/US2012/043155 patent/WO2012177644A1/en active Application Filing
- 2012-06-19 BR BR112013032141-5A patent/BR112013032141B1/pt active IP Right Grant
- 2012-06-19 EP EP12733553.7A patent/EP2721821B1/en active Active
- 2012-06-19 AU AU2012273109A patent/AU2012273109B2/en active Active
- 2012-06-19 CA CA2839687A patent/CA2839687C/en active Active
-
2013
- 2013-11-28 IL IL229717A patent/IL229717A/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20140017019A (ko) | 2014-02-10 |
CA2839687C (en) | 2017-03-07 |
RU2582062C2 (ru) | 2016-04-20 |
US20130077691A1 (en) | 2013-03-28 |
KR101536540B1 (ko) | 2015-07-13 |
CA2839687A1 (en) | 2012-12-27 |
BR112013032141A2 (pt) | 2016-12-13 |
IL229717A (en) | 2017-05-29 |
MY165809A (en) | 2018-04-27 |
US9313494B2 (en) | 2016-04-12 |
BR112013032141B1 (pt) | 2022-05-24 |
HUE051825T2 (hu) | 2021-03-29 |
JP5797840B2 (ja) | 2015-10-21 |
MX2013014710A (es) | 2014-02-27 |
WO2012177644A1 (en) | 2012-12-27 |
CN103609118B (zh) | 2016-12-07 |
RU2014101512A (ru) | 2015-07-27 |
CN103609118A (zh) | 2014-02-26 |
AU2012273109B2 (en) | 2015-10-22 |
AU2012273109A1 (en) | 2014-01-09 |
EP2721821B1 (en) | 2020-11-25 |
EP2721821A1 (en) | 2014-04-23 |
IL229717A0 (en) | 2014-01-30 |
DK2721821T3 (da) | 2021-02-15 |
JP2014517658A (ja) | 2014-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2856051T3 (es) | Candidatos de fusión favorables a la paralelización para codificación de vídeo | |
US9699472B2 (en) | Restriction of prediction units in B slices to uni-directional inter prediction | |
ES2908241T3 (es) | Selección de candidatos de modo de fusión unificado y modo de predicción de vector de movimiento adaptable | |
ES2952256T3 (es) | Modelado de contexto eficiente de memoria | |
JP5922245B2 (ja) | クロマ成分のための適応ループフィルタ処理 | |
US9426463B2 (en) | Restriction of prediction units in B slices to uni-directional inter prediction | |
EP3005698B1 (en) | Residual differential pulse code modulation (dpcm) extensions and harmonization with transform skip, rotation, and scans | |
KR101547745B1 (ko) | 모션 벡터 예측 | |
US9736489B2 (en) | Motion vector determination for video coding | |
ES2864623T3 (es) | Codificación de parámetros de cuantificación (QP) en codificación de video | |
ES2912367T3 (es) | Jerarquía de bloques de vídeo de predicción de movimiento | |
ES2677100T3 (es) | Filtrado de bucle alrededor de los límites de segmento o de límites de mosaico en la codificación de video | |
CN115176472A (zh) | 用于合并估计区域的基于历史的运动向量预测约束 |