ES2954981T3 - Aparato para codificar un fotograma en movimiento - Google Patents

Aparato para codificar un fotograma en movimiento Download PDF

Info

Publication number
ES2954981T3
ES2954981T3 ES21202139T ES21202139T ES2954981T3 ES 2954981 T3 ES2954981 T3 ES 2954981T3 ES 21202139 T ES21202139 T ES 21202139T ES 21202139 T ES21202139 T ES 21202139T ES 2954981 T3 ES2954981 T3 ES 2954981T3
Authority
ES
Spain
Prior art keywords
block
unit
motion vector
candidate
prediction 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
Application number
ES21202139T
Other languages
English (en)
Inventor
Soo Mi Oh
Moonock Yang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
M&K Holdings Inc
Original Assignee
M&K Holdings Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=45839101&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2954981(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by M&K Holdings Inc filed Critical M&K Holdings Inc
Application granted granted Critical
Publication of ES2954981T3 publication Critical patent/ES2954981T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Error Detection And Correction (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Abstract

Se proporciona un aparato para codificar una imagen que determina un tamaño de paso de cuantificación de un bloque de codificación anterior según el orden de exploración como predictor del tamaño de paso de cuantificación del bloque de codificación actual cuando un tamaño de paso de cuantificación de un bloque de codificación izquierdo de un bloque de codificación actual y un tamaño de paso de cuantificación de un bloque de codificación anterior del bloque de codificación actual no está disponible, divide los coeficientes de transformación cuantificados de un bloque de transformación cuantificado en una pluralidad de subbloques cuando un tamaño del bloque de transformación es mayor que 4x4, y escanea la pluralidad de subbloques según un patrón de exploración determinado por un modo de intra predicción de un bloque actual. Por lo tanto, es posible reducir la cantidad de bits de codificación necesarios para codificar información de movimiento y el tamaño del paso de cuantificación del bloque de predicción actual. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Aparato para codificar un fotograma en movimiento
[Campo técnico]
La presente invención se refiere a un método de codificación de inter predicción, y más particularmente, a un método de codificación de inter predicción para codificar un vector de movimiento de una unidad de predicción actual usando uno de los vectores de movimiento de una unidad de predicción adyacente a la unidad de predicción actual y un vector de movimiento ubicado en una posición predeterminada de un fotograma de referencia (reference picture) codificado previamente.
[Técnica anterior]
La presente invención se refiere a un aparato y un método para codificar y decodificar prediciendo un vector de movimiento de una unidad de predicción actual.
En los métodos de compresión de imágenes tal como el grupo de expertos de imágenes en movimiento (MPEG)-1, MPEG-2, MPEG-4 y la codificación de video avanzada (AVC)H.264/MPEG-4, un fotograma (picture) se divide en macrobloques para codificar una imagen. Y, los respectivos macrobloques se codifican usando la inter predicción o la intra predicción. Entonces, se selecciona un modo de codificación óptimo en función del tamaño de los datos de un macrobloque a codificar y de la distorsión de un macrobloque original, y se codifica el macrobloque.
En la inter predicción, se usa una estimación de movimiento para eliminar la redundancia temporal entre fotogramas consecutivos. La codificación de estimación de movimiento es un método que codifica una imagen estimando y compensando un movimiento del fotograma actual en la unidad de bloque usando uno o más fotogramas de referencia. En la codificación de estimación de movimiento, se busca el bloque más similar al bloque actual dentro de un intervalo de búsqueda predeterminado para un fotograma de referencia usando una función de estimación predeterminada. Si se busca el bloque más similar, solo se transmite el residuo entre el bloque actual y el bloque más similar del fotograma de referencia para aumentar la relación de compresión de datos.
En este momento, para decodificar el bloque actual codificado con estimación de movimiento, la información para el vector de movimiento indica una diferencia de posición entre el bloque actual y el bloque más similar del fotograma de referencia. Por lo tanto, es necesario insertar información codificada para el vector de movimiento en un flujo de bits cuando se codifica el bloque actual. En este proceso, si la información del vector de movimiento se codifica y se inserta tal cual, la relación de compresión de los datos de una imagen disminuye debido a que se aumenta la sobrecarga. Por lo tanto, en la codificación de inter predicción, un vector de movimiento del bloque actual se predice usando bloques adyacentes al bloque actual, solo se codifica y transmite un valor de diferencia entre el predictor de vector de movimiento generado y el vector de movimiento original, y se comprime la información del vector de movimiento también.
En H.264, el predictor de vector de movimiento, que es un predictor de un vector de movimiento del bloque actual, se determina como una mediana de mvA, mvB y mvC. Como los bloques vecinos tienden a ser similares entre sí, el vector de movimiento del bloque actual se determina como una mediana de los vectores de movimiento de los bloques vecinos.
Pero, si uno o más vectores de movimiento de los bloques vecinos son diferentes del movimiento del bloque actual, la mediana de los vectores de movimiento de los bloques vecinos puede no ser un predictor eficiente del vector de movimiento para el bloque actual. También, se requiere un método para seleccionar un candidato para predecir un vector de movimiento y para codificar o decodificar el vector de movimiento más eficazmente en comparación con el método de predicción de movimiento conocido cuando el movimiento de la imagen es escaso o constante.
Muhammed Cohan et al, "CU-level OP prediction", reunión 5.JCT-VC, JVTVC-E391, 11-03-2011 se refiere al uso del QP de la CU vecinas superiores izquierdas como el predictor para la codificación del QP de la CU actual. Si la vecina de la izquierda no está disponible entonces se usa la QP de la CU más cercana a la izquierda como el predictor.
[Divulgación]
[Problema técnico]
El objeto de la presente invención es mejorar la eficiencia de codificación para la codificación de predicción.
[Solución técnica]
Este objeto se consigue por la materia de la reivindicación independiente. Una realización preferida se define por la reivindicación dependiente.
[Descripción de los dibujos]
La figura 1 es un diagrama de bloques de un aparato para codificar un fotograma en movimiento de acuerdo con la presente invención.
La figura 2 es un diagrama de bloques de un aparato para decodificar un fotograma en movimiento de acuerdo con la presente divulgación.
La figura 3 es un diagrama de flujo que ilustra un procedimiento para generar un bloque reconstruido de una codificación de unidad de predicción en modo de salto de acuerdo con la presente divulgación.
La figura 4 es un diagrama conceptual que muestra las posiciones de los candidatos a salto espacial de acuerdo con la presente divulgación.
La figura 5 es un diagrama conceptual que muestra las posiciones de las unidades de predicción usadas para obtener un candidato a salto temporal de acuerdo con la presente divulgación.
La figura 6 es un diagrama conceptual que ilustra las posiciones de los bloques en un fotograma candidato a salto temporal correspondiente a una unidad de predicción actual de acuerdo con la presente divulgación.
La figura 7 es un diagrama de flujo que ilustra un procedimiento para generar un bloque reconstruido para la predicción de vector de movimiento de la unidad de predicción codificado de acuerdo con la presente divulgación.
La figura 8 es un diagrama conceptual que muestra las posiciones de las unidades de predicción adyacentes a la unidad de predicción actual usadas para generar candidatos de vectores de movimiento espacial de acuerdo con la presente divulgación.
Modo para la invención
En lo sucesivo en el presente documento, se describirán en detalle diversas realizaciones de la presente invención haciendo referencia a los dibujos adjuntos. No obstante, la presente invención no se limita a las realizaciones a modo de ejemplo que se divulgan a continuación, pero puede implementarse en diversos tipos. Por lo tanto, son posibles muchas otras modificaciones y variaciones de la presente invención, y debe entenderse que dentro del alcance del concepto divulgado, la presente invención puede practicarse de manera distinta a como se ha descrito específicamente.
Para codificar una imagen, se divide un fotograma en una pluralidad de fracciones, y cada fracción (slice) se divide en una pluralidad de unidades de codificación más grandes (Largest Coding Units, LCU). La posición de cada LCU se designa mediante un indicador de dirección. La LCU puede ser una unidad de codificación en sí misma o puede estar dividida en una pluralidad de unidades de codificación más pequeñas. La LCU contiene información que indica la estructura de las unidades de codificación en la LCU. Para indicar la estructura de las unidades de codificación en la LCU se usan una o más banderas de división.
Cada unidad de codificación consiste en una o más unidades de predicción (Prediction Units, PU). La unidad de predicción es una unidad básica para la intra predicción o la inter predicción.
Una unidad de transformación (Transform Units, TU) es un bloque básico para la codificación por transformación. En intra predicción, la unidad de predicción puede contener una o más unidades de transformación. En inter predicción, una unidad de transformación puede comprender una o más unidades de predicción. El tamaño máximo de la unidad de predicción se define en un conjunto de parámetros de secuencia (Sequence Parameter Set, SPS), y la unidad de transformación puede dividirse en una forma de árbol cuádruple. El tamaño máximo de la unidad de predicción en la intra predicción puede ser diferente al de la unidad de predicción en la inter predicción. Los tamaños máximos de la unidad de predicción en la intra predicción y la inter predicción se transmiten a un aparato de decodificación a través del SPS.
La figura 1 es un diagrama de bloques de un aparato para codificar un fotograma en movimiento de acuerdo con la presente invención.
Haciendo referencia a la figura 1, un aparato para codificar un fotograma en movimiento 100 de acuerdo con la presente invención incluye una unidad de división de fotogramas 110, una unidad de transformación 120, una unidad de cuantificación 130, una unidad de escaneo 131, una unidad de codificación de entropía 140, una unidad de intra predicción 150, una unidad de inter predicción 160, una unidad de cuantificación inversa 135, una unidad de transformación inversa 125, una unidad de posprocesamiento 170, una unidad de almacenamiento de fotogramas 180, un restador 190 y un sumador 195.
La unidad de división de fotogramas 110 analiza una señal de vídeo de entrada para dividir cada LCU de un fotograma en una o más unidades de codificación, cada una de las cuales tiene un tamaño predeterminado, determina el modo de predicción de cada unidad de codificación y determina el tamaño de la unidad de predicción por cada unidad de codificación. La unidad de división de fotogramas 110 envía la unidad de predicción a codificar a la unidad de intra predicción 150 o a la unidad de inter predicción 160 de acuerdo con el modo de predicción. También, la unidad de división de fotogramas 110 envía la unidad de predicción a codificar al restador 190.
La unidad de transformación 120 transforma un bloque residual que es una señal residual entre un bloque original de una unidad de predicción de entrada y un bloque de predicción generado por la unidad de intra predicción 150 o la unidad de inter predicción 160. El bloque residual puede estar compuesto por una unidad de codificación. El bloque residual compuesto por una unidad de codificación puede dividirse en unidades de transformación óptimas y transformarse. Una matriz de transformación puede determinarse de manera adaptativa de acuerdo con un modo de predicción (intra o inter) y un modo de intra predicción. La unidad de transformación puede transformarse por matrices de transformación unidimensionales (1D) horizontales y verticales. En inter predicción, se aplica una matriz de transformación predeterminada.
En intra predicción, existe una gran posibilidad de que el bloque residual tenga una directividad vertical cuando el modo de intra predicción es horizontal. De este modo, se aplica una matriz entera basada en la transformada discreta del coseno (Discrete Cosine Transform, DCT) a la dirección vertical, y una matriz entera basada en la transformada discreta del seno (Discrete Sine Transform, DST) o en la transformada de Karhunen Loeve (Karhunen Loeve Transform, KLT) a la dirección horizontal. Cuando el modo de intra predicción es vertical, se aplica una matriz entera basada en DST o KLT a la dirección vertical, y se aplica una matriz entera basada en DCT a la dirección horizontal. Cuando el modo de intra predicción es DC, la matriz entera basada en DCT puede aplicarse a ambas direcciones. El método mencionado anteriormente puede aplicarse cuando un tamaño de la unidad de transformación es igual o menor que un tamaño predeterminado. El tamaño predeterminado puede ser 4x4 u 8x8. Por lo tanto, cuando el tamaño de la unidad de transformación es mayor que el tamaño predeterminado, la matriz entera basada en DCT o una matriz entera basada en DCT bidimensional se aplica a ambas direcciones. Es decir, en intra predicción, la matriz de transformación puede determinarse de manera adaptativa de acuerdo con el tamaño de la unidad de transformación y el modo de intra predicción.
La unidad de cuantificación 130 determina un tamaño de paso de cuantificación para cuantificar los coeficientes de transformación del bloque residual transformado por la matriz de transformación. El tamaño de paso de cuantificación se determina en una unidad de codificación que tiene un tamaño igual o mayor que un tamaño predeterminado. Para la unidad de codificación que tiene un tamaño menor que el tamaño predeterminado, el tamaño de paso de cuantificación se determina en el tamaño predeterminado. Usando el tamaño de paso de cuantificación determinado y una matriz de cuantificación determinada de acuerdo con un modo de predicción, se cuantifican los coeficientes de transformación del bloque de transformación. La unidad de cuantificación 130 puede determinar un tamaño de paso de cuantificación de la unidad de codificación vecina como un predictor de tamaño de paso de cuantificación de la unidad de codificación actual. Por ejemplo, la unidad de cuantificación 130 puede determinar un tamaño de paso de cuantificación de una unidad de codificación izquierda de la unidad de codificación actual como un predictor de tamaño de paso de cuantificación. Si la unidad de codificación izquierda no está disponible, se determina el tamaño de paso de cuantificación de la unidad de codificación previa en el orden de escaneo como el predictor de tamaño de paso de cuantificación de la unidad de codificación actual. Como alternativa, un primer tamaño de paso de cuantificación disponible se determina como el predictor de tamaño de paso de cuantificación escaneando en el orden de una unidad de codificación izquierda, unidad de codificación superior y una unidad de codificación previa.
El bloque de transformación cuantificado se proporciona a la unidad de cuantificación inversa 135 y a la unidad de escaneo 131.
La unidad de escaneo 131 escanea los coeficientes de transformación cuantificados del bloque de transformación cuantificado, convierte de este modo los coeficientes de transformación cuantificados en coeficientes de transformación cuantificados 1D. Se determina un esquema de escaneo para los coeficientes de acuerdo con el modo de predicción y el modo de intra predicción. El esquema de escaneo de los coeficientes también puede determinarse de acuerdo con el tamaño de la unidad de transformación.
La unidad de escaneo 131 determina si debe o no dividir el bloque de transformación cuantificado en una pluralidad de subconjuntos de acuerdo con el tamaño de la unidad de transformación actual. Si el tamaño de la unidad de transformación es mayor que un primer tamaño de referencia, el bloque de transformación cuantificado se divide en la pluralidad de subconjuntos. El primer tamaño de referencia es preferentemente 4x4 u 8x8.
La unidad de escaneo 131 determina un patrón de escaneo a aplicar al bloque de coeficientes cuantificados. En inter predicción, puede usarse un patrón de escaneo predeterminado (por ejemplo, escaneo en zigzag). En intra predicción, el patrón de escaneo puede seleccionarse basándose en el modo de intra predicción y el tamaño de la unidad de transformación. En el modo de intra predicción no direccional, se usa el patrón de escaneo predeterminado. El modo de intra predicción no direccional puede ser un modo DC o un modo plano.
En el modo de intra predicción direccional, el patrón de escaneo puede variar de acuerdo con el modo de intra predicción y el tamaño de la unidad de transformación. En el modo de intra predicción direccional, el patrón de escaneo predeterminado puede usarse si el tamaño de la unidad de transformación es igual o mayor que un tamaño predeterminado, y un patrón de escaneo puede seleccionarse de manera adaptable basándose en el modo de intra predicción direccional si el tamaño de la unidad de transformación es menor que el tamaño predeterminado. El tamaño predeterminado puede ser 16x16.
Si el tamaño de la unidad de transformación es menor que el tamaño predeterminado, puede usarse uno de los tres patrones de escaneo. Los tres patrones de escaneo son un primer patrón de escaneo (igual que el escaneo predeterminado), un segundo patrón de escaneo (un patrón de escaneo horizontal) y un tercer patrón de escaneo (un patrón de escaneo vertical). Para el modo de intra predicción vertical, se aplica el segundo patrón de escaneo debido a que es muy probable que los coeficientes existan en la dirección horizontal. Para un número predeterminado de modos de intra predicción direccional adyacentes al modo de intra predicción vertical en los lados izquierdo y derecho, se aplica el segundo patrón de escaneo. Para el modo de intra predicción horizontal, se aplica el tercer patrón de escaneo. Para el número predeterminado de modos de intra predicción direccional adyacentes al modo de intra predicción horizontal en los lados superior e inferior, se aplica el tercer patrón de escaneo. El número predeterminado es preferentemente 3 o 4 para cada dirección.
Los coeficientes cuantificados se escanean en sentido inverso. Cuando los coeficientes cuantificados se dividen en una pluralidad de subconjuntos, se aplica el mismo patrón de escaneo a los coeficientes cuantificados de cada subconjunto. La pluralidad de subconjuntos consiste en un subconjunto principal y uno o más subconjuntos restantes. El subconjunto principal está ubicado en el lado superior izquierdo e incluye los coeficientes de c C. El uno o más subconjuntos restantes cubren una región distinta del subconjunto principal.
Se aplica el escaneo en zigzag para escanear la pluralidad de subconjuntos. La pluralidad de subconjuntos se escanea preferentemente comenzando por el subconjunto principal hacia los subconjuntos restantes en una dirección hacia delante o puede escanearse en un sentido inverso. Un patrón de escaneo para escanear la pluralidad de subconjuntos se establece igual que el patrón de escaneo para escanear los coeficientes cuantificados de cada subconjunto. En este caso, el patrón de escaneo para escanear la pluralidad de subconjuntos se determina de acuerdo con el modo de intra predicción. Mientras tanto, un codificador transmite información capaz de indicar una posición del último coeficiente cuantificado distinto de cero de la unidad de transformación a un decodificador. El codificador también transmite información capaz de indicar una posición del último coeficiente cuantificado distinto de cero de cada subconjunto al decodificador.
La unidad de cuantificación inversa 135 cuantifica inversamente los coeficientes cuantificados. La unidad de transformación inversa 125 restaura el bloque residual del dominio espacial a partir de los coeficientes de transformación cuantificados inversamente. El sumador genera un bloque reconstruido sumando el bloque residual reconstruido por la unidad de transformación inversa 125 y el bloque de predicción de la unidad de intra predicción 150 o la unidad de inter predicción 160.
La unidad de posprocesamiento 170 realiza un proceso de filtrado de desbloqueo para eliminar el artefacto de bloqueo generado en un fotograma reconstruido, un proceso de aplicación de desplazamiento adaptativo para complementar una diferencia entre el fotograma reconstruido y la imagen original por píxel, y un proceso de filtrado en bucle adaptativo para complementar una diferencia entre el fotograma reconstruido y la imagen original en una unidad de codificación.
El proceso de filtrado de desbloqueo puede aplicarse a un límite entre unidades de predicción y a un límite entre unidades de transformación que tengan un tamaño predeterminado o más. El tamaño predeterminado puede ser 8x8. El proceso de filtrado de desbloqueo incluye una etapa para determinar un límite a filtrar, una etapa para determinar la intensidad de filtrado de límites a aplicar a los mismos, una etapa para determinar si se aplica o no un filtro de desbloqueo, y una etapa para seleccionar un filtro a aplicar al límite cuando se determine aplicar el filtro de desbloqueo.
Si se aplica o no el filtro de desbloqueo se determina de acuerdo con i) si la intensidad de filtrado de límites es o no mayor que 0 y ii) si un valor que indica la diferencia entre los píxeles de los límites del bloque P y del bloque Q que se localizan en un límite a filtrar es o no menor que un primer valor de referencia determinado de acuerdo con un parámetro de cuantificación.
Pueden existir dos o más filtros. Cuando un valor absoluto de una diferencia entre dos píxeles adyacentes al límite de bloque es igual o mayor que un segundo valor de referencia, se selecciona un filtro débil. El segundo valor de referencia viene determinado por el parámetro de cuantificación y la intensidad de filtrado de límites.
El proceso de filtrado en bucle adaptativo puede realizarse sobre la base de un valor obtenido comparando una imagen original y una imagen reconstruida a la que se aplica el proceso de filtrado de desbloqueo o el proceso de aplicación de desplazamiento adaptativo. Un filtro en bucle adaptativo (Adaptive Loop Filter, ALF) se detecta a través de un valor de actividad laplaciano sobre la base de un bloque 4x4. El ALF determinado puede aplicarse a todos los píxeles incluidos en un bloque de 4x4 o en un bloque de 8x8. La aplicación o no de un ALF puede determinarse antes de la unidad de codificación. El tamaño y los coeficientes de un filtro en bucle pueden variar de acuerdo con cada unidad de codificación. Una cabecera de fracción puede incluir información que indique si se aplica o no el ALF a cada unidad de codificación, información de coeficiente de filtro e información de forma de filtro, etc. En el caso de los componentes de crominancia, la aplicación o no del ALF puede determinarse en la unidad de fotogramas. A diferencia de la luminancia, el filtro en bucle puede tener una forma rectangular.
El proceso de filtrado en bucle adaptativo se realiza sobre la base de la secuencia o fotograma. La información de parámetro de filtro de ALF se incluye en una cabecera de fotograma o en una cabecera de fracción. Si la información de parámetro de filtro de ALF se incluye en la cabecera de fotograma, la cabecera de fracción no contiene la información de parámetro de filtro de ALF. Pero, si la información de parámetro de filtro de ALF no está incluida en la cabecera de fotograma, la cabecera de fracción contiene la información de parámetro de filtro de ALF. La información de parámetro de filtro de ALF incluye información que indica una longitud horizontal y/o una longitud vertical del filtro para los componentes de luminancia y un número de filtros. Si el número de filtro es 2 o más, la información de parámetro de filtro de ALF puede contener información que indique si los filtros se codifican usando o no la predicción. La información de parámetro de filtro de ALF incluye los coeficientes de filtro predichos cuando los filtros se codifican usando la predicción. Al contrario, la información de parámetro de filtro de ALF incluye los coeficientes de filtro no predichos cuando los filtros se codifican sin usar la predicción.
Los componentes de crominancia también pueden filtrarse de manera adaptativa. La información de parámetro de filtro de ALF puede incluir información sobre si se filtra o no cada componente de crominancia. Para reducir la cantidad de bits, puede codificarse conjuntamente la información que indica si el componente Cr está filtrado y la información que indica si el componente Cb está filtrado. Es preferible una codificación de entropía que asigne la menor información para el caso de que no se filtre ninguno de los componentes Cr y Cb debido a que la probabilidad de que no se filtre ninguno de los componentes Cr y Cb es alta. Para el caso de que se filtre al menos uno de los componentes Cr y Cb, la información de parámetro de filtro de ALF incluye información que indica una longitud horizontal y/o una longitud vertical de los coeficientes de filtro para los componentes de crominancia e información del filtro.
También, el proceso de ALF puede estar activado o desactivado por unidad de codificación igual o mayor que un tamaño predeterminado. De este modo, cada cabecera de fracción contiene información que indica si el proceso de ALF se aplica o no por unidad de codificación en la fracción.
La unidad de almacenamiento de fotogramas 180 recibe los datos de imagen posprocesada de la unidad de posprocesamiento 170, y almacena la imagen restaurada en la unidad de fotogramas. Un fotograma puede ser una imagen en una trama o en un campo. La unidad de almacenamiento de fotogramas 180 tiene una memoria intermedia (no mostrada) capaz de almacenar una pluralidad de fotogramas.
La unidad de inter predicción 160 realiza una estimación de movimiento usando uno o más fotogramas de referencia almacenados en la unidad de almacenamiento de fotogramas 180, y determina un índice de fotograma de referencia que indica el fotograma de referencia y un vector de movimiento. De acuerdo con el índice de fotograma de referencia y el vector de movimiento, la unidad de inter predicción 160 extrae un bloque de predicción que corresponde a una unidad de predicción a codificar de un fotograma de referencia seleccionado entre una pluralidad de fotogramas de referencia almacenados en la unidad de almacenamiento de fotogramas 150 y emite el bloque de predicción extraído.
La unidad de intra predicción 150 realiza una intra predicción usando valores de píxeles reconstruidos dentro de un fotograma que contiene la unidad de predicción actual. La unidad de intra predicción 150 recibe la unidad de predicción actual para codificarse predictivamente, selecciona uno de un número predeterminado de modos de intra predicción, y realiza la intra predicción. El número predeterminado de modos de intra predicción puede depender del tamaño de la unidad de predicción actual. La unidad de intra predicción filtra de manera adaptativa los píxeles de referencia para generar el bloque de intra predicción. Cuando algunos de los píxeles de referencia no están disponibles, es posible generar los píxeles de referencia en las posiciones no disponibles usando uno o más píxeles de referencia disponibles.
La unidad de codificación de entropía 140 codifica con entropía los coeficientes cuantificados que se han cuantificado por la unidad de cuantificación 130, la información de intra predicción recibida de la unidad de intra predicción 150, la información de movimiento recibida de la unidad de inter predicción 160, y así sucesivamente.
Mientras tanto, el aparato para codificar un fotograma en movimiento 100 de acuerdo con la presente invención codifica predictivamente el vector de movimiento. El procedimiento de codificación del vector de movimiento se realiza por la unidad de inter predicción 160 y la unidad de codificación de entropía 140. El procedimiento de codificación del vector de movimiento en el aparato para codificar un fotograma en movimiento 100 es el siguiente.
Se obtiene un vector de movimiento de la unidad de predicción actual.
Los vectores de movimiento disponibles de las unidades de predicción vecinas existentes en posiciones predeterminadas se determinan como candidatos a vectores de movimiento espacial. Si el vector de movimiento de la unidad de predicción vecina no existe o la unidad de predicción vecina no está incluida en una fracción diferente, el vector de movimiento se determina como no disponible.
A continuación, el vector de movimiento espacial puede escalarse de manera adaptativa. Si la unidad de predicción actual y la unidad de predicción vecina tienen el mismo fotograma de referencia, el candidato a vector de movimiento no se escala. Pero, si la unidad de predicción actual y la unidad de predicción vecina tienen diferentes fotogramas de referencia o las distancias temporales del fotograma de referencia no son las mismas, el candidato a vector de movimiento puede escalarse usando las distancias temporales. El vector de movimiento puede no escalarse para una imagen fija (por ejemplo, imagen de fondo). En este caso, puede transmitirse una indicación de bandera si el vector de movimiento está escalado o no a un decodificador. El número de escalas del candidato a vector de movimiento espacial puede limitarse a un número predeterminado.
Se selecciona un predictor de vector de movimiento de la unidad de predicción actual entre los candidatos a vector de movimiento espacial y el candidato a vector de movimiento temporal.
Se obtiene y codifica la diferencia de vector de movimiento (Motion Vector Difference, MVD) entre el vector de movimiento de la unidad de predicción actual y el predictor de vector de movimiento de la unidad de predicción actual. Y se codifica la información que indica el predictor de vector de movimiento.
El candidato a vector de movimiento temporal es un vector de movimiento de una unidad de predicción que se ubica en o cerca de una posición en un fotograma de referencia, que está previamente codificado, correspondiente a la posición de la unidad de predicción actual. Cuando existe una pluralidad de vectores de movimiento de la unidad de predicción que se ubica en o cerca de la posición en el fotograma de referencia correspondiente a la posición de la unidad de predicción actual, se selecciona un vector de movimiento como vector de movimiento temporal de acuerdo con un método predeterminado. Por ejemplo, si está disponible el vector de movimiento del bloque ubicado en una primera posición correspondiente a la unidad de predicción actual en el fotograma, el vector de movimiento se determina como el candidato a vector de movimiento temporal. Pero, si el vector de movimiento del bloque ubicado en la primera posición no está disponible, el vector de movimiento de un bloque ubicado en una segunda posición se determina como el candidato a vector de movimiento temporal.
En la fracción (slice) B (predicción bidireccional), el único fotograma de referencia que contiene el candidato a vector de movimiento temporal procede de la lista de fotogramas de referencia 0 o 1. Por lo tanto, la información de la lista que indica la lista de fotogramas de referencia se transmite a un decodificador, y el decodificador determina el fotograma de referencia usando la información de la lista.
La información que indica si se usa o no el candidato a vector de movimiento temporal puede incluirse en el flujo de bits (bit stream). Por lo tanto, el procedimiento de decodificación del vector de movimiento puede variar de acuerdo con la información.
Los candidatos a vector de movimiento espacial incluyen un candidato a vector de movimiento izquierdo y un candidato a vector de movimiento superior. El candidato a vector de movimiento izquierdo de la unidad de predicción actual es un vector de movimiento de una unidad de predicción vecina a la izquierda de la unidad de predicción actual o un vector de movimiento de una unidad de predicción vecina inferior-izquierda de la unidad de predicción actual. El candidato a vector de movimiento izquierdo es el primer vector de movimiento disponible encontrado al recuperar los vectores de movimiento de la unidad de predicción izquierda y de la unidad de predicción inferior-izquierda en un orden predeterminado. El candidato a vector de movimiento superior de la unidad de predicción actual es un primer vector de movimiento disponible encontrado al recuperar los vectores de movimiento de una unidad de predicción vecina a la superior de la unidad de predicción actual, una unidad de predicción vecina a la superior-derecha de la unidad de predicción actual y una unidad de predicción vecina a la superior-izquierda de la unidad de predicción actual en un orden predeterminado.
Si los candidatos a vector de movimiento tienen los mismos valores, se elimina el candidato a vector de movimiento que tiene un orden grande.
Si el candidato a vector de movimiento es uno, el candidato a vector de movimiento se determina como predictor de vector de movimiento y el indicador de predictor que indica el predictor de vector de movimiento no se codifica.
La figura 2 es un diagrama de bloques de un aparato para decodificar un fotograma en movimiento de acuerdo con la presente divulgación.
Haciendo referencia a la figura 2, el aparato para decodificar un fotograma en movimiento 200 de acuerdo con la presente invención incluye una unidad de decodificación de entropía 210, una unidad de escaneo inverso 215, una unidad de cuantificación inversa 220, una unidad de transformación inversa 225, un sumador 270, una unidad de posprocesamiento 250, una unidad de almacenamiento de fotogramas 260, una unidad de intra predicción 230, una unidad de inter predicción 240 y un conmutador de intra/inter conversión 280.
La unidad de decodificación de entropía 210 extrae un índice de modo de intra predicción, una información de movimiento, una secuencia de coeficientes cuantificados, etc., a partir de un flujo de bits recibido y transmitido desde un aparato para codificar un fotograma en movimiento. La unidad de decodificación de entropía 210 transmite la información de movimiento a la unidad de inter predicción 240, la información del modo de intra predicción a la unidad de intra predicción 230 y a la unidad de cuantificación inversa 220, y la secuencia de coeficientes cuantificados a la unidad de cuantificación inversa 220 y a la unidad de transformación inversa 225.
La unidad de escaneo inverso 215 convierte la secuencia de coeficientes cuantificados en una unidad de transformación cuantificada bidimensional (2D). Se selecciona uno de una pluralidad de patrones de escaneo inverso para la conversión. El patrón de escaneo inverso para escanear inversamente los coeficientes cuantificados puede seleccionarse basándose en el modo de intra predicción. Si el tamaño de una unidad de transformación actual es mayor que un tamaño de referencia predeterminado, la secuencia de coeficientes cuantificados se escanea inversamente en la unidad de subconjunto que tiene el tamaño predeterminado para generar la unidad de transformación cuantificada. Si el tamaño de la unidad de transformación actual es igual al tamaño de referencia predeterminado, la secuencia de coeficientes cuantificados se escanea inversamente en la unidad de la unidad de transformación para generar la unidad de transformación cuantificada. Si los coeficientes cuantificados se escanean inversamente en la unidad de subconjunto, se aplica el mismo patrón de escaneo inverso a los coeficientes cuantificados en cada subconjunto. La pluralidad de subconjuntos consiste en un subconjunto principal y uno o más subconjuntos restantes. El subconjunto principal se coloca en el lado superior izquierdo e incluye los coeficientes de CC, y el o los subconjuntos restantes cubren regiones distintas del subconjunto principal.
Un patrón de escaneo inverso a aplicar a los subconjuntos es un escaneo en zigzag hacia atrás. Los subconjuntos pueden escanearse inversamente comenzando por el subconjunto principal hacia los subconjuntos restantes en un sentido hacia delante o pueden escanearse inversamente en el sentido hacia atrás. Un patrón de escaneo para escanear inversamente los subconjuntos puede establecerse igual que un patrón de escaneo inverso para escanear inversamente los coeficientes cuantificados. La unidad de escaneo inverso 215 realiza el procedimiento de escaneo inverso usando la información que indica una posición del último coeficiente cuantificado distinto de cero de la unidad de transformación actual.
En el modo de intra predicción direccional, el patrón de escaneo inverso para cada subconjunto puede variar de acuerdo con el modo de intra predicción y el tamaño de la unidad de transformación. Es decir, el patrón de escaneo predeterminado puede aplicarse a una unidad de transformación que tenga un tamaño igual o mayor que un tamaño predeterminado, y un patrón de escaneo inverso puede seleccionarse de manera adaptativa basándose en el modo de intra predicción direccional para la unidad de transformación que tenga un tamaño menor que el tamaño predeterminado. El tamaño predeterminado puede ser 16x16. Si el tamaño de la unidad de transformación es menor que el tamaño predeterminado, puede usarse uno de los tres patrones de escaneo. Los tres patrones de escaneo son un primer patrón de escaneo (igual que el escaneo predeterminado), un segundo patrón de escaneo (una escaneo horizontal) y un tercer patrón de escaneo (una escaneo vertical). Para el modo de intra predicción vertical y un número predeterminado de modos de intra predicción direccional adyacentes al modo de intra predicción vertical en ambos lados, se aplica el segundo patrón de escaneo. De manera similar, para el modo de intra predicción horizontal y el número predeterminado de modos de intra predicción direccional adyacentes al modo de intra predicción horizontal en ambos lados, se aplica el tercer patrón de escaneo. El número predeterminado es preferentemente 3 o 4 para cada dirección.
La unidad de cuantificación inversa 220 restaura un tamaño de paso de cuantificación para cuantificar inversamente los coeficientes cuantificados inversamente en 2D (es decir, la unidad de transformación cuantificada 2D). El tamaño de paso de cuantificación se determina en una unidad de codificación que tiene un tamaño igual o mayor que un tamaño predeterminado. Si el tamaño de las unidades de codificación es menor que el tamaño predeterminado, el tamaño de paso de cuantificación se determina para el tamaño predeterminado. La unidad de cuantificación inversa 220 puede usar un tamaño de paso de cuantificación de una unidad de codificación vecina para una unidad de codificación actual como predictor de tamaño de paso de cuantificación de la unidad de codificación actual. Por ejemplo, la unidad de cuantificación inversa 220 puede determinar un tamaño de paso de cuantificación de una unidad de codificación izquierda de la unidad de codificación actual como el predictor de tamaño de paso de cuantificación de la unidad de codificación actual. Si la unidad de codificación izquierda no está disponible, el tamaño de paso de cuantificación de una unidad de codificación previa en el orden de escaneo se determina como el predictor de tamaño de paso de cuantificación de la unidad de codificación actual. Como alternativa, un tamaño de paso de cuantificación disponible se determina como el predictor del tamaño de paso de cuantificación de la unidad de codificación actual cuando se escanea en el orden de la unidad de codificación izquierda, una unidad de codificación superior y la unidad de codificación previa.
Cuando se determina el predictor de tamaño de paso de cuantificación, el tamaño de paso de cuantificación se obtiene sumando el predictor de tamaño de paso de cuantificación y el tamaño de paso de cuantificación residual recibido. Entonces, la unidad de transformación cuantificada se cuantifica inversamente usando una matriz de cuantificación inversa determinada de acuerdo con el tamaño de paso de cuantificación y un modo de predicción.
La unidad de transformación inversa 225 transforma inversamente el bloque cuantificado inverso (es decir, una unidad de transformación) para restaurar un bloque residual. La matriz de transformación inversa a aplicar a la unidad de transformación se determina de manera adaptativa de acuerdo con el modo de predicción (intra o inter) y el modo de intra predicción. Se aplica una matriz de transformación inversa de la matriz de transformación, que se aplica a la unidad de transformación 120 de la figura 1.
El sumador 270 suma el bloque residual restaurado reconstruido por la unidad de transformación inversa 225 y un bloque de predicción generado por la unidad de intra predicción 230 o la unidad de inter predicción 240 para restaurar un bloque de imagen.
La unidad de posprocesamiento 250 realiza un proceso de filtro de desbloqueo al bloque de imagen restaurado generado por el sumador 270. Por esto, pueden disminuirse los artefactos de bloqueo resultantes de la pérdida de imagen de acuerdo con un proceso de cuantificación.
La unidad de almacenamiento de fotogramas 260 es una memoria de tramas que almacena una imagen local reconstruida filtrada desbloqueando mediante la unidad de posprocesamiento 250.
La unidad de intra predicción 230 restaura un modo de intra predicción del bloque actual basándose en el índice de modo de intra predicción recibido, y genera un bloque de predicción de acuerdo con el modo de intra predicción restaurado.
La unidad de inter predicción 240 restaura un vector de movimiento de la unidad de predicción actual basándose en la información de movimiento recibida, y genera un bloque de predicción de la unidad actual basándose en el vector de movimiento de un fotograma almacenado en la unidad de almacenamiento de fotogramas 260. Si se aplica la compensación de movimiento de precisión decimal, se genera el bloque de predicción usando un filtro de interpolación seleccionado.
La unidad de inter predicción 240 decodifica el vector de movimiento de la siguiente manera (proceso de decodificación AMVP).
La diferencia de vector de movimiento (Motion Vector Difference, MVD) se genera restaurando una diferencia entre los vectores de movimiento codificados.
Los vectores de movimiento disponibles de las unidades de predicción vecinas para la unidad de predicción actual y que existen en posiciones predeterminadas se determinan como candidatos a vector de movimiento espacial. Y los candidatos a vector de movimiento espacial se escalan de manera adaptativa. Si la unidad de predicción actual y la unidad de predicción vecina tienen el mismo fotograma de referencia, no se escalan los candidatos a vector de movimiento espacial. Pero, si la unidad de predicción actual y la unidad de predicción vecina tienen fotogramas de referencia diferentes, pueden escalarse los candidatos a vector de movimiento espacial usando las distancias temporales de los fotogramas de referencia.
Un predictor de vector de movimiento de la unidad de predicción actual se selecciona entre los candidatos a vector de movimiento espacial y un candidato a vector de movimiento temporal usando la información de movimiento que indica el predictor de vector de movimiento. Entonces, la diferencia de vector de movimiento y el predictor de vector de movimiento seleccionado se suman para generar un vector de movimiento de la unidad de predicción actual.
El candidato a vector de movimiento temporal es un vector de movimiento de una unidad de predicción que se ubica en o cerca de una posición correspondiente a la unidad de predicción actual en un fotograma de referencia específico codificado previamente. Cuando existe una pluralidad de vectores de movimiento de la unidad de predicción que se ubica en o cerca de la posición correspondiente a la posición de la unidad de predicción actual en el fotograma de referencia específico, se selecciona un vector de movimiento como candidato a vector de movimiento temporal de acuerdo con un método predeterminado. Por ejemplo, si está disponible el vector de movimiento del bloque ubicado en una primera posición correspondiente a la unidad de predicción actual en el fotograma específico, el vector de movimiento se determina como el candidato a vector de movimiento temporal. Pero, si el vector de movimiento del bloque ubicado en la primera posición no está disponible, el vector de movimiento de un bloque ubicado en una segunda posición se determina como el candidato a vector de movimiento temporal.
En la fracción B, el fotograma de referencia específico que contiene el candidato a vector de movimiento temporal se obtiene a partir de la lista de fotogramas de referencia 0 o 1. Por lo tanto, la unidad de descodificación determina el fotograma de referencia específico usando la información de la lista.
La información que indica si se usa o no el vector de movimiento temporal puede incluirse en el flujo de bits. Por lo tanto, el procedimiento de decodificación del vector de movimiento puede variar de acuerdo con la información.
Los candidatos a vector de movimiento espacial incluyen un candidato a vector de movimiento izquierdo y un candidato a vector de movimiento superior. El candidato a vector de movimiento izquierdo de la unidad de predicción actual es un vector de movimiento de una unidad de predicción vecina a la izquierda de la unidad de predicción actual o un vector de movimiento de una unidad de predicción vecina a la parte inferior-izquierda de la unidad de predicción actual. El candidato a vector de movimiento izquierdo es el primer vector de movimiento disponible encontrado al recuperar los vectores de movimiento de la unidad de predicción izquierda y de la unidad de predicción inferior-izquierda en un orden predeterminado. El candidato a vector de movimiento superior de la unidad de predicción actual es un primer vector de movimiento disponible encontrado al recuperar los vectores de movimiento de una unidad de predicción superior, una unidad de predicción superior-derecha y una unidad de predicción superior-izquierda de la unidad de predicción actual en un orden predeterminado.
Si los candidatos a vector de movimiento tienen los mismos vectores de movimiento, se elimina el candidato a vector de movimiento que tiene un orden grande.
Si el candidato a vector de movimiento es uno, el candidato a vector de movimiento se determina como predictor de vector de movimiento, y la información que indica el predictor de vector de movimiento no se codifica.
El conmutador de intra/inter conversión 280 proporciona el bloque de predicción generado por la unidad de intra predicción 230 o la unidad de inter predicción 240 al sumador 270 basándose en el modo de predicción.
Se describe un método de decodificación de inter predicción de acuerdo con la presente divulgación. El método comprende un procedimiento para decodificar la información de movimiento de la unidad de predicción actual, un procedimiento para generar un bloque de predicción de la unidad de predicción actual, un procedimiento para generar un bloque residual y un procedimiento para generar un bloque reconstruido usando el bloque de predicción y el bloque residual. La información de movimiento incluye un vector de movimiento y un índice de fotograma de referencia.
La figura 3 es un diagrama de flujo que ilustra un procedimiento para generar un bloque reconstruido de una unidad de predicción codificada en modo de salto de acuerdo con la presente divulgación.
Cuando la bandera_salto (skip_flag) de la unidad de codificación recibida es 1, se realiza el procedimiento.
En primer lugar, los candidatos a salto espacial se obtienen a partir de las unidades de predicción vecinas en la etapa S210.
Como se muestra en la figura 4, la información de movimiento de una unidad de predicción izquierda de la unidad de predicción actual (bloque A), la información de movimiento de una unidad de predicción superior de la unidad de predicción actual (bloque B), la información de movimiento de una unidad de predicción superior-derecha de la unidad de predicción actual (bloque C) y la información de movimiento de una unidad de predicción inferior-izquierda de la unidad de predicción actual (bloque D) pueden ser los candidatos a salto espacial. La información de movimiento de una unidad de predicción superior-izquierda de la unidad de predicción actual (bloque E) puede ser un candidato a salto espacial en un caso específico. Por ejemplo, si uno o más bloques entre los bloques A, B, C y D no están disponibles, la información del bloque E puede ser el candidato a salto espacial. La información de movimiento incluye el índice de fotograma de referencia y el vector de movimiento.
Como alternativa, la información de movimiento de una unidad de predicción izquierda (bloque A), la información de movimiento de una unidad de predicción superior (bloque B) y la información de movimiento de una unidad de predicción de esquina (C o D o E) pueden ser el candidato a salto espacial. La unidad de predicción de esquina puede ser la primera unidad de predicción disponible encontrada al recuperar los bloques C, D y E en un orden predeterminado (por ejemplo, en el orden del bloque C, bloque D y bloque E, en el orden del bloque E, bloque D y bloque C).
La disponibilidad se comprueba en cada unidad de predicción vecina. Si la unidad de predicción no existe o el modo de predicción de la unidad de predicción es el modo intra, la unidad de predicción se determina como no disponible.
Cuando hay una pluralidad de unidades de predicción vecinas a la izquierda de la unidad de predicción actual, la primera unidad de predicción disponible encontrada al comprobar la disponibilidad de la pluralidad de unidades de predicción izquierdas en un orden predeterminado (por ejemplo, de arriba a abajo o de abajo a arriba) puede determinarse como la unidad de predicción izquierda. Como alternativa, una unidad de predicción ubicada en una posición predeterminada (por ejemplo, la unidad de predicción más superior izquierda o la unidad de predicción más inferior izquierda) puede determinarse como la unidad de predicción izquierda. De manera similar, cuando hay una pluralidad de unidades de predicción vecinas a la superior de la unidad de predicción actual, la primera unidad de predicción disponible encontrada al comprobar la disponibilidad de la pluralidad de unidades de predicción superiores en un orden predeterminado (por ejemplo, de izquierda a derecha o de derecha a izquierda) puede determinarse como la unidad de predicción superior. Como alternativa, una unidad de predicción ubicada en una posición predeterminada (por ejemplo, la unidad de predicción más a la izquierda superior o la unidad de predicción más a la derecha superior) puede determinarse como la unidad de predicción superior.
El candidato a salto temporal se obtiene en la etapa S220. La etapa S220 incluye una etapa para obtener un índice de fotograma de referencia para un candidato a salto temporal y una etapa para obtener un vector de movimiento del candidato a salto temporal.
Se obtiene el índice de fotograma de referencia para el candidato a salto temporal. El índice de fotograma de referencia para el candidato a salto temporal puede fijarse en 0. Como alternativa, el índice de fotograma de referencia para el candidato a salto temporal puede obtenerse usando índices de fotograma de referencia de unidades de predicción espacialmente vecinas a la unidad de predicción actual.
La figura 5 es un diagrama conceptual que muestra las posiciones de las unidades de predicción vecinas a la unidad de predicción actual usadas para obtener un índice de fotograma de referencia para el candidato a salto temporal. El índice de fotograma de referencia para el candidato a salto temporal es uno de los índices de fotograma de referencia de las unidades de predicción vecinas.
Los índices de fotograma de referencia de una unidad de predicción izquierda (bloque A), una unidad de predicción superior (bloque B), una unidad de predicción superior-derecha (bloque C), una unidad de predicción inferior-izquierda (bloque D) y una unidad de predicción superior-izquierda (bloque E) pueden usarse para obtener el índice de fotograma de referencia para el candidato a salto temporal.
Cuando hay una pluralidad de unidades de predicción superiores, puede determinarse un índice de fotograma de referencia de la primera unidad de predicción disponible encontrada al recuperar la pluralidad de unidades de predicción superiores de izquierda a derecha (o de derecha a izquierda) como el índice de fotograma de referencia de la unidad de predicción superior. De manera similar, cuando hay una pluralidad de unidades de predicción izquierdas, puede determinarse un índice de fotograma de referencia de la primera unidad de predicción disponible encontrada al recuperar la pluralidad de unidades de predicción izquierdas de arriba a abajo como el índice de fotograma de referencia de la unidad de predicción izquierda.
Un índice de fotograma de referencia de la primera unidad de predicción disponible encontrada al recuperar los bloques en el orden de la unidad de predicción superior-derecha (bloque C), la unidad de predicción inferior-izquierda (bloque D) y la unidad de predicción superior-izquierda (bloque E) se determina como un índice de fotograma de referencia de una unidad de predicción de esquina.
Cuando se determinan el índice de fotograma de referencia de la unidad de predicción izquierda (índice de fotograma de referencia izquierdo), el índice de fotograma de referencia de la unidad de predicción superior (índice de fotograma de referencia superior) y el índice de fotograma de referencia de la unidad de predicción de esquina (índice de fotograma de referencia de esquina) de la unidad de predicción actual, se obtiene el índice de fotograma de referencia para el candidato a salto temporal a partir de los mismos. Aquí, el único fuera de los bloques C, D y E se usa para obtener el índice de fotograma de referencia para el candidato a salto temporal. Pero, los bloques C y D (4 candidatos) o todos los bloques C, D y E (5 candidatos) pueden usarse para obtener el índice de fotograma de referencia para el candidato a salto temporal. En lo sucesivo en el presente documento, el caso en el que se usan 3 índices de fotograma de referencia, es decir, el índice de fotograma de referencia izquierdo, el índice de fotograma de referencia superior y el índice de fotograma de referencia de esquina, se describirá como una realización a modo de ejemplo.
El índice de fotograma de referencia de mayor frecuencia fuera de los índices de fotograma de referencia disponibles se determina como el índice de fotograma de referencia para el candidato a salto temporal. Cuando hay una pluralidad de índices de fotograma de referencia que tienen la mayor frecuencia, el índice de fotograma de referencia más bajo se determina como índice de fotograma de referencia para el candidato a salto temporal.
A continuación, se describe la etapa para obtener el vector de movimiento para el candidato a salto temporal.
En primer lugar, se determina un fotograma (un fotograma candidato a salto temporal) al que pertenece el bloque de candidato a salto temporal. Puede determinarse un fotograma de referencia de índice 0 como fotograma candidato a salto temporal. El primer fotograma de una lista 0 se determina como el fotograma candidato a salto temporal cuando el tipo de fracción es P. Cuando el tipo de fracción es B, se selecciona una lista de fotogramas de referencia usando una bandera dentro de una cabecera de fracción que indica la lista de fotogramas de referencia a la que pertenece el candidato a salto temporal, y se determina un fotograma cuyo índice de fotograma de referencia es 0 de la lista de fotogramas de referencia seleccionada como el fotograma candidato a salto temporal. Por ejemplo, cuando la bandera es 1, el fotograma candidato a salto temporal se selecciona de la lista 0. Y cuando la bandera es 0, el fotograma candidato a salto temporal se selecciona de la lista 1.
Como alternativa, un fotograma de referencia indicado por un índice de fotograma de referencia para el fotograma candidato a salto temporal se determina como el fotograma candidato a salto temporal a la que pertenece el bloque candidato a salto temporal. Por ejemplo, el fotograma de referencia indicado por el índice de fotograma de referencia para el fotograma candidato a salto temporal de la lista 0 se determina como el fotograma candidato a salto temporal cuando el tipo de fracción es P. Cuando el tipo de fracción es B, el fotograma de candidato a salto temporal se determina usando la bandera de la cabecera de fracción que indica la lista a la que pertenece el candidato a salto temporal.
A continuación, se obtiene un bloque candidato a salto temporal en el fotograma candidato a salto temporal. Uno de una pluralidad de bloques del fotograma candidato a salto temporal correspondiente a la unidad de predicción actual se selecciona como bloque candidato a salto temporal. Se asigna una prioridad a cada uno de la pluralidad de bloques. Un primer bloque disponible determinado basándose en las prioridades se selecciona como el bloque candidato a salto temporal.
La figura 6 es un diagrama conceptual que ilustra los bloques del fotograma candidato a salto temporal correspondiente a una unidad de predicción actual.
Se prefiere que una posición del candidato a salto temporal sea diferente de las posiciones de los candidatos a salto espacial.
De este modo, un bloque de esquina inferior-izquierdo (bloque BR0) o un bloque inferior-izquierdo (bloque BR1) puede ser el primer bloque candidato a salto. El bloque de esquina inferior-izquierdo (bloque BR0) es adyacente a un bloque incluido en el fotograma candidato a salto temporal y corresponde a la unidad de predicción actual. El bloque inferiorizquierdo (bloque BR1) se ubica dentro de un bloque que está incluido en el fotograma candidato a salto temporal y corresponde a la unidad de predicción actual. Un bloque (bloque C) que incluye un píxel superior-izquierdo o un píxel inferior-derecho de una posición central de un bloque que está incluido en el fotograma candidato a salto temporal y que corresponde a la unidad de predicción actual puede ser el segundo bloque candidato a salto.
Si el primer bloque candidato a salto está disponible, el primer bloque candidato a salto se determina como el bloque candidato a salto temporal. Si el primer bloque candidato a salto no está disponible y el segundo bloque candidato a salto está disponible, el segundo bloque candidato a salto se determina como el bloque candidato a salto temporal.
Como alternativa, los bloques pueden escanearse en el orden de BR0, BR1 y C. También, existe una pluralidad de bloques candidatos a salto temporal disponibles, un bloque correspondiente más grande o un valor medio de los bloques candidatos a salto temporal disponibles puede determinarse como el bloque candidato a salto temporal.
Cuando se determina el bloque candidato a salto temporal, un vector de movimiento del bloque candidato a salto temporal se establece como vector de movimiento candidato a salto temporal.
A continuación, en la etapa S230 se construye una lista de candidatos a salto.
La lista de candidatos a salto se construye usando los candidatos a salto espacial disponibles y los candidatos a salto temporal disponibles. La lista de candidatos a salto puede construirse en un orden predeterminado. El orden predeterminado puede ser en el orden de un candidato a salto izquierdo espacial (candidato A), un candidato a salto superior espacial (candidato B), un candidato a salto temporal, un candidato a salto superior espacial-derecho (candidato C) y un candidato a salto espacial inferior-izquierdo (candidato D) o en el orden de un candidato a salto temporal, un candidato a salto izquierdo espacial (candidato A), un candidato a salto superior espacial (candidato B), un candidato a salto superior-derecho espacial (candidato C) y un candidato a salto inferior-izquierdo espacial (candidato D).
Cuando uno o más de los candidatos A, B, C, D no están disponibles, el candidato a salto superior espacial-izquierda (candidato E) se añade a la lista de candidatos a salto. En este caso, el candidato a salto superior-izquierdo espacial (candidato E) se añade a una posición del candidato no disponible. Es decir, la disponibilidad de cada candidato a salto espacial se comprueba en el orden de prioridad de cada candidato a salto espacial, y el candidato a salto superiorizquierdo espacial (candidato E) se añade a la posición del candidato no disponible en la lista de candidatos a salto. La prioridad se asigna en el orden del candidato A, candidato B, el candidato C y el candidato D o el candidato A, candidato D, el candidato B y el candidato C.
Si una pluralidad de candidatos a salto tienen el mismo vector de movimiento y el mismo índice de fotograma de referencia al construir la lista de candidatos a salto, el candidato con menor prioridad se elimina de la lista de candidatos a salto.
A continuación, el vector de movimiento y el índice de fotograma de referencia de la unidad de predicción actual se obtienen en la etapa S240.
Cuando hay un índice de salto en la unidad de predicción recibida, el vector de movimiento y el índice de fotograma de referencia de la unidad de predicción candidata a salto correspondiente al índice de salto se determinan como el vector de movimiento y el índice de fotograma de referencia de la unidad de predicción actual.
Cuando no existe el índice de salto en la unidad de predicción recibida y existe un candidato a salto, el vector de movimiento y el índice de fotograma de referencia del candidato a salto se determinan como el vector de movimiento y el índice de referencia de la unidad de predicción actual.
Cuando no existe el índice de salto en la unidad de predicción recibida y no existe el candidato a salto, el vector de movimiento y el índice de referencia de la unidad de predicción actual se ponen a 0.
Cuando el candidato a salto indica el candidato a salto temporal, el vector de movimiento del candidato a salto se determina como el vector de movimiento de la unidad de predicción actual. Y 0 o el índice de fotograma de referencia para el candidato a salto temporal puede determinarse como el índice de fotograma de referencia de la unidad de predicción actual.
El índice de salto puede haberse codificado usando una tabla de codificación de longitud variable (VLC) determinada por el número de los candidatos a salto disponibles. Si el índice de salto se ha codificado usando una tabla de VLC determinada por el número de los candidatos de salto disponibles, entre la etapa 230 y la etapa 240 puede insertarse una etapa de decodificación del índice de salto mediante una tabla de VLC correspondiente al número de candidatos a salto disponibles. En la etapa S240, la información de movimiento de la unidad de predicción actual se determina usando el índice de salto decodificado. Como alternativa, el número de candidatos a salto puede ser fijo. Si el número de candidatos a salto es fijo, la lista de candidatos a salto puede construirse generando candidatos a salto correspondientes a uno o más candidatos a salto no disponibles usando los candidatos a salto disponibles.
Si se obtienen el vector de movimiento y el índice de fotograma de referencia de la unidad de predicción actual, se genera un bloque de predicción usando el vector de movimiento dentro de un fotograma indicado por el índice de fotograma de referencia en la etapa S250. El bloque de predicción es un bloque reconstruido.
Mientras tanto, cuando el bandera_salto (skip_flag) en la unidad de codificación es 0 y la bandera_fusión (merge_flag) en la unidad de predicción recibida es 1, un procedimiento para generar un bloque reconstruido es casi igual al procedimiento para generar un bloque reconstruido del modo de salto. Específicamente, el procedimiento para generar un bloque de predicción es el mismo que el procedimiento para generar un bloque de predicción del modo de salto. En el modo de salto, el bloque de predicción generado es el bloque de reconstrucción debido a que el bloque residual es 0. No obstante, el bloque residual no es cero en el modo de fusión, se añade una etapa para restaurar un bloque residual y una etapa para generar un bloque reconstruido añadiendo el bloque de predicción y el bloque residual.
Los candidatos a fusión espacial y temporal disponibles se obtienen a partir de las unidades de predicción vecinas. Los procedimientos para obtener los candidatos a fusión espacial y el candidato a fusión temporal son los mismos que los candidatos a salto espacial y el candidato a salto temporal, respectivamente.
A continuación, se construye una lista de candidatos a fusión disponibles. Los candidatos a fusión espacial disponibles y los candidatos a fusión temporal disponibles están dispuestos en un orden predeterminado. El orden predeterminado es el de un candidato a fusión izquierdo espacial (candidato A), un candidato a fusión superior espacial (candidato B), un candidato a fusión temporal, un candidato a fusión superior-derecho espacial (candidato C) y un candidato a fusión inferior-izquierdo espacial (candidato D) o en el orden de un candidato a fusión temporal, un candidato a fusión izquierdo espacial (candidato A), un candidato a fusión superior espacial (candidato B), un candidato a fusión superiorderecho espacial (candidato C) y un candidato a fusión inferior-izquierdo espacial (candidato D).
Cuando uno o más de los candidatos a fusión A, B, C, D no están disponibles, se añade el candidato a fusión superiorizquierdo espacial (candidato E). En este caso, el candidato a fusión superior-izquierdo espacial (candidato E) se añade a la posición del candidato no disponible en la lista de candidatos a fusión. Es decir, la disponibilidad de cada candidato a fusión espacial se comprueba en el orden de prioridad de cada candidato a fusión espacial, y el candidato a fusión superior-izquierdo espacial (candidato E) se añade a la posición del candidato no disponible en la lista de candidatos a fusión. La prioridad se asigna en el orden A, B, C y D o A, D, B y C.
También, el orden predeterminado puede cambiarse o uno o más candidatos a fusión se excluyen de los candidatos a fusión de acuerdo con un modo de predicción de la unidad de predicción. Por ejemplo, si la unidad de predicción es 2NxN, puede excluirse el candidato a fusión inferior-izquierdo espacial (candidato D). Si la unidad de predicción es Nx2N, se cambian los órdenes del candidato a fusión inferior-izquierdo espacial (candidato D) y del candidato a fusión superior-derecho espacial (candidato C) o se excluye el candidato a fusión superior-derecho espacial (candidato C) debido a que la correlación entre el candidato a fusión inferior-izquierdo espacial (candidato D) y la unidad de predicción actual es mayor que la del candidato a fusión superior-derecho espacial (candidato C) y la unidad de predicción actual.
A continuación, se obtienen el vector de movimiento y el índice de fotograma de referencia de la unidad de predicción actual. Cuando hay un índice de fusión en la unidad de predicción recibida, el vector de movimiento y el índice de fotograma de referencia del candidato a fusión indicado por el índice de fusión en la lista de candidatos a fusión se determinan como el vector de movimiento y el índice de referencia de la unidad de predicción actual.
Cuando no existe el índice de fusión en la unidad de predicción recibida y existe un candidato a fusión, el vector de movimiento y el índice de fotograma de referencia del candidato a fusión se determinan como el vector de movimiento y el índice de referencia de la unidad de predicción actual.
Cuando no hay un índice de fusión en la unidad de predicción recibida y no existe al menos un candidato a salto, el vector de movimiento y el índice de referencia de la unidad de predicción actual se ponen a 0.
Cuando el candidato a fusión indica el candidato a fusión temporal, el vector de movimiento del candidato a fusión temporal se determina como el vector de movimiento de la unidad de predicción actual. Y 0 o el índice de fotograma de referencia para el candidato a fusión temporal puede determinarse como el índice de fotograma de referencia de la unidad de predicción actual.
El índice de fusión puede haberse codificado usando una tabla de VLC determinada por el número de los candidatos a fusión disponibles. Si el índice de fusión se ha codificado usando una tabla de VLC determinada por el número de los candidatos a fusión disponibles, puede insertarse una etapa para contar el número de candidatos a salto disponibles y decodificar el índice de salto usando una tabla de v Lc correspondiente al número.
Si se obtienen el vector de movimiento y el índice de fotograma de referencia de la unidad de predicción actual, se genera un bloque de predicción usando un vector de movimiento en un fotograma indicado por el índice de fotograma de referencia.
También, se restaura un bloque residual en la unidad de las unidades de transformación. El bloque residual se restaura a través de decodificación de entropía, escaneo inverso, cuantificación inversa y transformación inversa. El procedimiento se realiza por la unidad de decodificación de entropía 210, la unidad de escaneo inverso 215, la unidad de cuantificación inversa 220 y la unidad de transformación inversa 225 del aparato de decodificación de la figura 2.
Finalmente, se genera un bloque reconstruido usando el bloque de predicción y el bloque residual. El bloque reconstruido puede generarse en la unidad de la unidad de codificación. Por lo tanto, después el bloque de predicción y el bloque residual se generan en las unidades de codificación respectivamente, y el bloque reconstruido puede generarse usando el bloque de predicción en la unidad de codificación y el bloque residual en la unidad de codificación.
La figura 7 es un diagrama de flujo que ilustra un procedimiento para generar un bloque reconstruido de una unidad de predicción codificada de vectores de movimiento de acuerdo con la presente invención. Cuando la bandera_salto (skip_flag) en una unidad de codificación es 0 y el la bandera_fusión (merge_flag) en una unidad de predicción recibida es 0, se aplica el presente procedimiento.
En primer lugar, se obtienen un índice de fotograma de referencia y una diferencia de vector de movimiento de una unidad de predicción actual a partir de una sintaxis de unidad de predicción del flujo de bits recibido en la etapa S310.
Si el tipo de fracción es B, se comprueba la información de inter predicción. Si la información de inter predicción indica una predicción unidireccional usando la lista de fotogramas de referencia combinada (Pred_LC), se selecciona un fotograma de referencia entre los fotogramas de referencia de la lista de fotogramas de referencia combinada (lista_c) usando el índice de fotograma de referencia, y se restaura la diferencia de vector de movimiento. Si la información de inter predicción indica una predicción unidireccional usando una lista de fotogramas de referencia 0, se selecciona un fotograma de referencia usando el índice de fotograma de referencia de la lista de fotogramas de referencia 0, y se restaura la diferencia de vector de movimiento. Si la información de inter predicción indica una predicción bidireccional, cada fotograma de referencia se selecciona usando cada índice de fotograma de referencia de las listas de fotogramas de referencia 0 y 1, y se restaura cada diferencia de vector de movimiento para cada fotograma de referencia.
A continuación, se obtienen los candidatos a vector de movimiento espacial en la etapa S320. La figura 8 es un diagrama conceptual que muestra las posiciones de las unidades de predicción vecinas a una unidad de predicción actual y usadas para generar candidatos a vectores de movimiento de acuerdo con la presente invención.
Un candidato a vector de movimiento izquierdo espacial puede ser una de las unidades de predicción izquierda (bloques A y D) de la unidad de predicción actual. Un candidato a vector de movimiento superior espacial puede ser una de las unidades de predicción superiores (bloques B, C y E) de la unidad de predicción actual.
El procedimiento para obtener un candidato a vector de movimiento izquierdo espacial es el siguiente.
Se comprueba si existe una unidad de predicción que cumpla las primeras condiciones recuperando los bloques izquierdos de la unidad de predicción actual en el orden de los bloques A y D o en el orden de los bloques D y A. Las primeras condiciones son 1) existe una unidad de predicción, 2) la unidad de predicción es una unidad codificada de inter predicción, 3) la unidad de predicción tiene el mismo fotograma de referencia que el de la unidad de predicción actual y 4) la unidad de predicción tiene la misma lista de fotogramas de referencia que la de la unidad de predicción actual. Si hay una unidad de predicción que cumpla las primeras condiciones, el candidato a vector de movimiento izquierdo espacial se determina como el vector de movimiento de la unidad de predicción. Si no hay una unidad de predicción que cumpla las primeras condiciones, se comprueba si existe una unidad de predicción que cumpla las segundas condiciones. Las segundas condiciones son 1) que exista una unidad de predicción, 2) la unidad de predicción es una unidad codificada de inter predicción, 3) la unidad de predicción tiene el mismo fotograma de referencia que el de la unidad de predicción actual y 4) la unidad de predicción tiene una lista de fotogramas de referencia diferente a la de la unidad de predicción actual. Si hay una unidad de predicción que cumpla las segundas condiciones, el candidato a vector de movimiento izquierdo espacial se determina como el vector de movimiento de la unidad de predicción.
Si no hay una unidad de predicción que cumpla las segundas condiciones, se comprueba si existe una unidad de predicción que cumpla las terceras condiciones. Las terceras condiciones son 1) que exista una unidad de predicción, 2) la unidad de predicción es una unidad codificada de inter predicción, 3) la unidad de predicción tiene la misma lista de fotogramas de referencia que la de la unidad de predicción actual y 4) la unidad de predicción tiene un fotograma de referencia diferente al de la unidad de predicción actual. Si hay una unidad de predicción que cumpla las terceras condiciones, el candidato a vector de movimiento izquierdo espacial se determina como el vector de movimiento de la unidad de predicción.
Si no hay una unidad de predicción que cumpla las terceras condiciones, se comprueba si existe una unidad de predicción que cumpla las cuartas condiciones. Las cuarta condiciones son 1) que exista una unidad de predicción, 2) la unidad de predicción es una unidad codificada de inter predicción, 3) la unidad de predicción tiene una lista de fotogramas de referencia diferente a la de la unidad de predicción actual y 4) la unidad de predicción tiene un fotograma de referencia diferente al de la unidad de predicción actual. Si hay una unidad de predicción que cumpla las cuartas condiciones, el candidato a vector de movimiento izquierdo espacial se determina como el vector de movimiento de la unidad de predicción.
El vector de movimiento de la unidad de predicción que cumpla las primeras condiciones o las segundas se usa tal cual. Pero, el vector de movimiento de la unidad de predicción que cumpla las terceras condiciones o las cuartas condiciones se escala y se usa como candidato a vector de movimiento.
Si no hay una unidad de predicción que cumpla alguna de las condiciones presentadas anteriormente, el candidato a vector de movimiento izquierdo espacial se establece como no disponible.
A continuación, el procedimiento para obtener un candidato a vector de movimiento superior espacial es el siguiente.
Se comprueba si existe una unidad de predicción que cumpla las primeras condiciones recuperando los bloques superiores en el orden de los bloques B, C y E o en el orden de los bloques C, B y E. Si hay una unidad de predicción que cumpla las primeras condiciones, el candidato a vector de movimiento superior espacial se determina como el vector de movimiento de la unidad de predicción.
Si no hay una unidad de predicción que cumpla las primeras condiciones, se comprueba si existe una unidad de predicción que cumpla las segundas condiciones. Si hay una unidad de predicción que cumpla las segundas condiciones, el candidato a vector de movimiento superior espacial se determina como el vector de movimiento de la unidad de predicción.
Si no hay una unidad de predicción que cumpla las segundas condiciones, se comprueba si existe una unidad de predicción que cumpla las terceras condiciones. Si hay una unidad de predicción que cumpla las terceras condiciones, el candidato a vector de movimiento superior espacial se determina como el vector de movimiento de la unidad de predicción.
Si no hay una unidad de predicción que cumpla las terceras condiciones, se comprueba si existe una unidad de predicción que cumpla las cuartas condiciones. Si hay una unidad de predicción que cumpla las cuartas condiciones, el candidato a vector de movimiento superior espacial se determina como el vector de movimiento de la unidad de predicción.
El vector de movimiento de la unidad de predicción que cumpla las primeras condiciones o las segundas condiciones se usa como candidato a vector de movimiento en la misma. Pero, el vector de movimiento de la unidad de predicción que cumpla las terceras condiciones o las cuartas condiciones se escala y se usa como candidato a vector de movimiento.
Si no hay una unidad de predicción que cumpla alguna de las condiciones, el candidato a vector de movimiento superior espacial se establece como no disponible.
Las condiciones primera a cuarta para determinar el candidato a vector de movimiento izquierdo espacial son las mismas que para determinar el candidato a vector de movimiento superior espacial.
En la etapa S330 se obtiene un candidato a vector de movimiento temporal. En primer lugar, se obtiene un fotograma (un fotograma candidato a salto temporal) al que pertenece un bloque candidato a vector de movimiento temporal. Puede determinarse un fotograma de referencia de índice 0 como fotograma candidato a vector de movimiento temporal. Por ejemplo, un primer fotograma de la lista de fotogramas de referencia 0 se determina como fotograma candidato a vector de movimiento temporal cuando el tipo de fracción es P. Cuando el tipo de fracción es B, el fotograma candidato a vector de movimiento temporal se determina usando una bandera de una cabecera de fracción que indica una lista a la que pertenece el candidato a vector de movimiento temporal. Por ejemplo, si la bandera es 1, el fotograma candidato a vector de movimiento temporal se determina a partir de la lista 0, y si la bandera es 0, el fotograma candidato a vector de movimiento temporal se determina a partir de la lista 1. Como alternativa, un fotograma correspondiente a un índice de fotograma de referencia de la unidad de predicción actual obtenida a partir de una unidad de predicción recibida se determina como fotograma candidato a vector de movimiento temporal.
A continuación, se obtiene un bloque candidato a vector de movimiento temporal en el fotograma candidato a vector de movimiento temporal. El bloque candidato a vector de movimiento temporal es el mismo que el bloque candidato a salto temporal. Si se obtiene el bloque candidato a vector de movimiento temporal, el vector de movimiento del bloque candidato a vector de movimiento temporal se determina como candidato a vector de movimiento temporal.
A continuación, se construye una lista de candidatos a vectores de movimiento en la etapa S340. La lista de candidatos a vectores de movimiento se construye usando los candidatos a vectores de movimiento espacial y temporal disponibles. La lista de candidatos a vectores de movimiento puede construirse en un orden predeterminado. El orden predeterminado es el orden de un candidato a vector de movimiento izquierdo espacial, un candidato a vector de movimiento superior espacial y un candidato a vector de movimiento temporal o el orden de un candidato a vector de movimiento temporal, un candidato a vector de movimiento izquierdo espacial y un candidato a vector de movimiento superior espacial.
El orden predeterminado puede cambiarse de acuerdo con un modo de predicción de la unidad de predicción o uno o más candidatos a vector de movimiento se excluyen de los candidatos a vector de movimiento. Por ejemplo, si la unidad de predicción actual se divide en dos unidades de predicción 2NxN, el candidato a vector de movimiento superior espacial puede excluirse para una unidad de predicción inferior 2NxN. Si la unidad de predicción actual se divide en dos unidades de predicción Nx2N, los órdenes del candidato a vector de movimiento superior espacial y del candidato a vector de movimiento izquierdo espacial se cambian o el candidato a vector de movimiento izquierdo espacial puede excluirse para una unidad de predicción Nx2N derecha.
Como alternativa, cuando una unidad de codificación se divide en dos unidades de predicción 2NxN, puede fusionarse el bloque de predicción 2NxN superior. Si no puede fusionarse el bloque de predicción 2NxN superior, el bloque D puede eliminarse o los bloques A y D se escanean en este orden al determinar el candidato a vector de movimiento izquierdo espacial. Cuando una unidad de codificación se divide en dos unidades de predicción Nx2N, puede fusionarse la unidad de predicción Nx2N izquierda. Si no puede fusionarse el bloque de predicción Nx2N izquierdo, el bloque C puede eliminarse o los bloques B, C y E se escanean en este orden al determinar el candidato a vector de movimiento superior espacial.
A continuación, cuando se construye la lista de candidatos a vector de movimiento y una pluralidad de candidatos tienen el mismo vector de movimiento, el candidato que tiene menor prioridad se elimina en la lista de candidatos a vector de movimiento.
A continuación, se obtiene un predictor de vector de movimiento de la unidad de predicción actual en la etapa S350.
Cuando hay un índice de vector de movimiento en la unidad de predicción actual, el candidato a vector de movimiento de un índice correspondiente en la lista de candidatos a vector de movimiento se determina como el predictor de vector de movimiento de la unidad de predicción actual. Cuando no hay un índice de vector de movimiento en la unidad de predicción actual y existe un candidato a vector de movimiento, el candidato a vector de movimiento se determina como el predictor de vector de movimiento de la unidad de predicción actual. Cuando no están disponibles todos los candidatos a vector de movimiento, el predictor de vector de movimiento de la unidad de predicción actual se pone a 0.
Mientras tanto, antes de la construcción de la lista de candidatos a vectores de movimiento, puede leerse el índice de vector de movimiento. En este caso, después de recuperar los candidatos a vector de movimiento disponibles mediante el número indicado por el índice de vector de movimiento en un orden predeterminado, el candidato a vector de movimiento correspondiente al índice de vector de movimiento puede determinarse como el vector de movimiento de la unidad de predicción actual. El índice de vector de movimiento puede codificarse en una longitud fija o en una longitud variable.
Si se obtiene el predictor de vector de movimiento de la unidad de predicción actual, un vector de movimiento de la unidad de predicción actual se reconstruye sumando la diferencia de vector de movimiento y el predictor de vector de movimiento en la etapa S360.
A continuación, se genera un bloque de predicción usando el índice de fotograma de referencia recibido de la unidad de predicción actual y el vector de movimiento restaurado de la unidad de predicción actual en la etapa S370.
También, se restaura un bloque residual en la unidad de las unidades de transformación en la etapa S380. El bloque residual se restaura a través de decodificación de entropía, escaneo inverso, cuantificación inversa y transformación inversa. El procedimiento se realiza por la unidad de decodificación de entropía 210, la unidad de escaneo inverso 215, la unidad de cuantificación inversa 220 y la unidad de transformación inversa 225 del aparato de decodificación de la figura 2.
Finalmente, se genera un bloque reconstruido usando el bloque de predicción y el bloque residual en la etapa S390. El bloque reconstruido puede generarse en la unidad de la unidad de codificación. Por lo tanto, después el bloque de predicción y el bloque residual se generan en la unidad de codificación, y el bloque reconstruido se genera usando el bloque de predicción en la unidad de la unidad de codificación y el bloque residual en la unidad de la unidad de codificación.
Aunque la invención se ha mostrado y descrito haciendo referencia a ciertas realizaciones a modo de ejemplo de la misma, se entenderá por los expertos en la materia que diversos cambios en la forma y los detalles pueden realizarse sin alejarse del alcance de la invención, según se define por las reivindicaciones adjuntas.

Claims (2)

REIVINDICACIONES
1. Un aparato para codificar un fotograma en movimiento, que comprende:
una unidad de división de fotogramas (110) configurada para determinar un tamaño y un modo de predicción de cada bloque de codificación;
una unidad de inter predicción (160) configurada para determinar un fotograma de referencia y un vector de movimiento de un bloque actual realizando una estimación de movimiento y extraer un bloque de predicción correspondiente al bloque actual del fotograma de referencia cuando el bloque actual se codifica utilizando inter predicción;
una unidad de intra predicción (150) configurada para determinar un modo de intra predicción de un bloque actual y generar el bloque de predicción correspondiente al bloque actual de acuerdo con el modo de intra predicción cuando el bloque actual se codifica usando intra predicción;
una unidad de transformación (120) configurada para transformar un bloque residual obtenido calculando la diferencia entre el bloque actual y el bloque de predicción para generar un bloque de transformación;
una unidad de cuantificación (130) configurada para determinar un tamaño de paso de cuantificación de un bloque de codificación actual y cuantificar el bloque de transformación usando el tamaño de paso de cuantificación para generar un bloque de transformación cuantificado;
una unidad de escaneo (131) configurada para escanear coeficientes de transformación cuantificados del bloque de transformación cuantificado para generar coeficientes de transformación cuantificados unidimensionales (1D); y
una unidad de codificación de entropía (140) configurada para codificar entropía de los coeficientes de transformación cuantificados 1D,
en donde el tamaño de paso de cuantificación se codifica usando un predictor de tamaño de paso de cuantificación y el predictor de tamaño de paso de cuantificación se genera usando un tamaño de paso de cuantificación de un bloque de codificación izquierdo del bloque de codificación actual y un tamaño de paso de cuantificación de un bloque de codificación anterior del bloque de codificación actual,
en donde, cuando el tamaño de paso de cuantificación del bloque de codificación izquierdo del bloque de codificación actual y el tamaño de paso de cuantificación del bloque de codificación anterior del bloque de codificación actual no están disponibles, se selecciona un tamaño de paso de cuantificación del bloque de codificación previo en orden de escaneo como el predictor de tamaño de paso de cuantificación del bloque de codificación actual,
en donde, cuando un tamaño del bloque de transformación es mayor que 4x4, los coeficientes de transformación cuantificados del bloque de transformación cuantificado se dividen en una pluralidad de subconjuntos,
en donde, cuando el bloque actual se codifica usando intra predicción, la pluralidad de subconjuntos se escanea de acuerdo con un patrón de escaneo determinado por el modo de intra predicción del bloque actual y los coeficientes de transformación cuantificados de cada subconjunto se escanean de acuerdo con un patrón de escaneo determinado por el modo de intra predicción del bloque actual,
en donde, cuando el bloque actual se codifica usando inter predicción, la pluralidad de subconjuntos y los coeficientes de transformación cuantificados de cada subconjunto se escanean de acuerdo con un patrón de escaneo predeterminado,
en donde el patrón de escaneo para escanear la pluralidad de subconjuntos es el mismo que el patrón de escaneo para escanear los coeficientes de transformación cuantificados de cada subconjunto.
2. El aparato de la reivindicación 1, en donde los coeficientes de transformación cuantificados de cada subconjunto y la pluralidad de subconjuntos se escanean en una dirección inversa.
ES21202139T 2010-08-17 2011-08-12 Aparato para codificar un fotograma en movimiento Active ES2954981T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20100079530 2010-08-17
KR1020110064306A KR20120016991A (ko) 2010-08-17 2011-06-30 인터 프리딕션 방법

Publications (1)

Publication Number Publication Date
ES2954981T3 true ES2954981T3 (es) 2023-11-27

Family

ID=45839101

Family Applications (6)

Application Number Title Priority Date Filing Date
ES21202133T Active ES2952358T3 (es) 2010-08-17 2011-08-12 Aparato para decodificar un fotograma en movimiento
ES16188174T Active ES2939615T3 (es) 2010-08-17 2011-08-12 Método de codificación de inter predicción
ES21202139T Active ES2954981T3 (es) 2010-08-17 2011-08-12 Aparato para codificar un fotograma en movimiento
ES21202138T Active ES2952359T3 (es) 2010-08-17 2011-08-12 Aparato para decodificar un fotograma en movimiento
ES21202132T Active ES2952357T3 (es) 2010-08-17 2011-08-12 Aparato para codificar una imagen
ES21202134T Active ES2954979T3 (es) 2010-08-17 2011-08-12 Aparato para codificar un fotograma en movimiento

Family Applications Before (2)

Application Number Title Priority Date Filing Date
ES21202133T Active ES2952358T3 (es) 2010-08-17 2011-08-12 Aparato para decodificar un fotograma en movimiento
ES16188174T Active ES2939615T3 (es) 2010-08-17 2011-08-12 Método de codificación de inter predicción

Family Applications After (3)

Application Number Title Priority Date Filing Date
ES21202138T Active ES2952359T3 (es) 2010-08-17 2011-08-12 Aparato para decodificar un fotograma en movimiento
ES21202132T Active ES2952357T3 (es) 2010-08-17 2011-08-12 Aparato para codificar una imagen
ES21202134T Active ES2954979T3 (es) 2010-08-17 2011-08-12 Aparato para codificar un fotograma en movimiento

Country Status (16)

Country Link
US (13) US9544611B2 (es)
EP (7) EP3145188B1 (es)
JP (11) JP6025726B2 (es)
KR (10) KR20120016991A (es)
CN (9) CN104602022B (es)
DK (2) DK3958564T3 (es)
ES (6) ES2952358T3 (es)
FI (1) FI3145188T3 (es)
HR (2) HRP20230005T1 (es)
HU (2) HUE063254T2 (es)
LT (1) LT3145188T (es)
PL (6) PL3145188T3 (es)
PT (6) PT3145188T (es)
RS (2) RS63977B1 (es)
SI (1) SI3145188T1 (es)
WO (1) WO2012023763A2 (es)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102037328B1 (ko) * 2007-10-16 2019-10-28 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
CA2857849C (en) * 2010-04-23 2020-02-11 Soo Mi Oh Apparatus and method for encoding a moving picture
US10104391B2 (en) 2010-10-01 2018-10-16 Dolby International Ab System for nested entropy encoding
US20120082228A1 (en) 2010-10-01 2012-04-05 Yeping Su Nested entropy encoding
EP2654301A4 (en) * 2010-12-14 2016-02-17 M&K Holdings Inc METHOD FOR INTER-PREDICTIVE DECODING OF ENCODED FILMS
EP2938082B1 (en) * 2011-01-07 2017-03-22 Ntt Docomo, Inc. Predictive encoding method, predictive encoding device, and predictive encoding program of motion vector, and predictive decoding method, predictive decoding device, and predictive decoding program of motion vector
US9635382B2 (en) * 2011-01-07 2017-04-25 Texas Instruments Incorporated Method, system and computer program product for determining a motion vector
KR102232113B1 (ko) * 2011-03-21 2021-03-25 엘지전자 주식회사 움직임 벡터 예측자 선택 방법 및 이를 이용하는 장치
CN105376577A (zh) * 2011-08-29 2016-03-02 苗太平洋控股有限公司 用于解码合并模式下的运动信息的装置
MX365013B (es) * 2011-08-29 2019-05-20 Ibex Pt Holdings Co Ltd Metodo para generar un bloque de prediccion en modo de prediccion de vector de movimiento avanzada (amvp).
KR102512333B1 (ko) 2011-10-18 2023-03-22 엘지전자 주식회사 인트라 예측 방법 및 그 장치
KR102072124B1 (ko) * 2011-11-24 2020-02-04 에스케이텔레콤 주식회사 세밀한 예측 단위를 사용하는 효과적인 부호화/복호화 방법 및 장치
CN104255031B (zh) * 2012-02-29 2017-12-22 Lg 电子株式会社 层间预测方法和使用层间预测方法的装置
US20130343459A1 (en) * 2012-06-22 2013-12-26 Nokia Corporation Method and apparatus for video coding
CN102883163B (zh) 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
BR112015008460A2 (pt) * 2012-11-06 2017-07-04 Nec Corp método de codificação de vídeo, dispositivo de codificação de vídeo, e programa de codificação de vídeo
KR20150099797A (ko) * 2013-01-07 2015-09-01 미디어텍 인크. 3차원 비디오 코딩에서의 직접 모드 및 스킵 모드에 대한 공간 모션 벡터 예측 유도 방법 및 장치
CN103338372A (zh) * 2013-06-15 2013-10-02 浙江大学 一种视频处理方法及装置
CN105379276A (zh) 2013-07-15 2016-03-02 株式会社Kt 可伸缩视频信号编码/解码方法和装置
CN105379277B (zh) 2013-07-15 2019-12-17 株式会社Kt 用于编码/解码可伸缩视频信号的方法和装置
GB2534591A (en) * 2015-01-29 2016-08-03 Nokia Technologies Oy Video encoding and decoding
CN115134609A (zh) 2015-06-11 2022-09-30 杜比实验室特许公司 使用自适应去块滤波编码和解码图像的方法及其装置
CN114697679A (zh) * 2015-09-11 2022-07-01 株式会社Kt 图像解码方法、图像编码方法和包括比特流的设备
CN108353168B (zh) * 2015-11-20 2023-04-21 韩国电子通信研究院 对图像进行编/解码的方法和编/解码图像的装置
US11563938B2 (en) 2016-02-15 2023-01-24 Qualcomm Incorporated Geometric transforms for filters for video coding
MX2019003553A (es) 2016-09-30 2019-08-12 Huawei Tech Co Ltd Metodo de codificacion de video, metodo de decodificacion de video y terminal.
US10506230B2 (en) 2017-01-04 2019-12-10 Qualcomm Incorporated Modified adaptive loop filter temporal prediction for temporal scalability support
CN110546956B (zh) 2017-06-30 2021-12-28 华为技术有限公司 一种帧间预测的方法及装置
EP3451664A1 (en) * 2017-09-01 2019-03-06 Thomson Licensing Motion compensation at a finer precision than motion vector differential
WO2019183906A1 (zh) 2018-03-29 2019-10-03 华为技术有限公司 帧间预测的方法和装置
WO2019192170A1 (zh) * 2018-04-02 2019-10-10 深圳市大疆创新科技有限公司 视频图像处理方法与装置
CN117061738A (zh) 2018-04-02 2023-11-14 深圳市大疆创新科技有限公司 用于图像处理的方法和图像处理装置
CN110662059B (zh) 2018-06-29 2021-04-20 北京字节跳动网络技术有限公司 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置
WO2020003270A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Number of motion candidates in a look up table to be checked according to mode
CN115134599A (zh) * 2018-06-29 2022-09-30 抖音视界有限公司 更新查找表(lut)的条件
CN114845108A (zh) 2018-06-29 2022-08-02 抖音视界(北京)有限公司 查找表的更新:fifo、约束的fifo
KR102646649B1 (ko) 2018-06-29 2024-03-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
TWI820211B (zh) 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 取決於總數減去k的開始檢查hmvp候選的條件
WO2020086317A1 (en) * 2018-10-23 2020-04-30 Tencent America Llc. Method and apparatus for video coding
EP3847814A4 (en) * 2018-11-06 2021-07-14 Beijing Bytedance Network Technology Co. Ltd. POSITION DEPENDENT STORAGE, MOVEMENT INFORMATION
CN111385575A (zh) 2018-12-29 2020-07-07 华为技术有限公司 帧间预测方法、装置以及相应的编码器和解码器
US11032574B2 (en) 2018-12-31 2021-06-08 Tencent America LLC Method and apparatus for video coding
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147772A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Motion candidates derivation
CN118075478A (zh) 2019-03-21 2024-05-24 Sk电信有限公司 编解码视频数据的当前块的方法及提供视频数据的方法
CN111866515B (zh) * 2019-04-30 2022-03-04 杭州海康威视数字技术股份有限公司 一种矢量差解码方法、装置及电子设备
JP7522135B2 (ja) 2019-05-11 2024-07-24 北京字節跳動網絡技術有限公司 複数のイントラ符号化方法の相互作用
MX2021015524A (es) 2019-06-14 2022-02-03 Lg Electronics Inc Metodo y dispositivo de codificacion de imagenes usando diferencias de vectores de movimiento.
JP7437426B2 (ja) 2019-09-24 2024-02-22 オッポ広東移動通信有限公司 インター予測方法および装置、機器、記憶媒体
MX2022006967A (es) * 2019-12-12 2022-09-19 Lg Electronics Inc Codificacion de video o imagen empleando filtro de bucle adaptivo.
CN113766227B (zh) * 2020-06-06 2023-07-11 华为技术有限公司 用于图像编码和解码的量化和反量化方法及装置
WO2024071680A1 (ko) * 2022-09-29 2024-04-04 현대자동차주식회사 분리 불가능한 1차 변환 기반 비디오 코딩을 위한 방법 및 장치

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04256298A (ja) * 1991-02-08 1992-09-10 Toshiba Corp 動画像符号化装置
US5317397A (en) * 1991-05-31 1994-05-31 Kabushiki Kaisha Toshiba Predictive coding using spatial-temporal filtering and plural motion vectors
US6005627A (en) * 1991-05-31 1999-12-21 Kabushiki Kaisha Toshiba Video coding apparatus
JP2531106B2 (ja) * 1993-08-17 1996-09-04 日本電気株式会社 動画像符号化制御方式
US5745183A (en) * 1995-08-25 1998-04-28 Thomson Consumer Electronics, Inc. Image motion estimation system which derives candidate block from interpolated motion vectors
US5832125A (en) * 1995-12-07 1998-11-03 Intel Corporation Bit rate control using short-term and long-term performance characterization
CN1183769C (zh) * 1996-05-28 2005-01-05 松下电器产业株式会社 图像预测编码/解码装置和方法以及记录媒体
CN1140130C (zh) * 1997-02-08 2004-02-25 松下电器产业株式会社 静画和动画编码的量化矩阵
US6195389B1 (en) * 1998-04-16 2001-02-27 Scientific-Atlanta, Inc. Motion estimation system and methods
CN1248509C (zh) * 2001-02-13 2006-03-29 皇家菲利浦电子有限公司 运动信息编码和解码方法
KR100642043B1 (ko) * 2001-09-14 2006-11-03 가부시키가이샤 엔티티 도코모 부호화 방법, 복호 방법, 부호화 장치, 복호 장치, 화상 처리 시스템, 및 저장 매체
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
WO2003053066A1 (en) * 2001-12-17 2003-06-26 Microsoft Corporation Skip macroblock coding
KR100454501B1 (ko) * 2001-12-26 2004-10-28 브이케이 주식회사 영상신호를 부호화 또는 복호화하기 위한 예측 장치 및 방법
JP4015934B2 (ja) 2002-04-18 2007-11-28 株式会社東芝 動画像符号化方法及び装置
US6690307B2 (en) * 2002-01-22 2004-02-10 Nokia Corporation Adaptive variable length coding of digital video
US7386048B2 (en) * 2002-05-28 2008-06-10 Sharp Laboratories Of America, Inc. Methods and systems for image intra-prediction mode organization
US7289672B2 (en) * 2002-05-28 2007-10-30 Sharp Laboratories Of America, Inc. Methods and systems for image intra-prediction mode estimation
US7236524B2 (en) * 2002-05-28 2007-06-26 Sharp Laboratories Of America, Inc. Methods and systems for image intra-prediction mode communication
KR100506864B1 (ko) * 2002-10-04 2005-08-05 엘지전자 주식회사 모션벡터 결정방법
KR100534207B1 (ko) * 2002-12-09 2005-12-08 삼성전자주식회사 비디오 부호화기의 움직임 추정기 및 그 방법
EP1582060A4 (en) * 2003-01-10 2009-09-23 Thomson Licensing SCHEDULE DECISION FOR INTERFRAME ENCODING
KR100750110B1 (ko) * 2003-04-22 2007-08-17 삼성전자주식회사 4×4인트라 휘도 예측 모드 결정방법 및 장치
CN1194544C (zh) * 2003-04-25 2005-03-23 北京工业大学 基于时空域相关性运动矢量预测的视频编码方法
CN1263309C (zh) * 2003-06-27 2006-07-05 中国科学院计算技术研究所 用于视频编码的运动矢量预测方法
US7738554B2 (en) * 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US7567617B2 (en) * 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7369707B2 (en) * 2003-10-28 2008-05-06 Matsushita Electric Industrial Co., Ltd. Intra-picture prediction coding method
KR100596706B1 (ko) * 2003-12-01 2006-07-04 삼성전자주식회사 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치
EP1592248B1 (en) * 2004-04-30 2006-09-20 Matsushita Electric Industrial Co., Ltd. Motion vector estimation employing adaptive temporal prediction
TWI266539B (en) * 2005-01-13 2006-11-11 Via Tech Inc Decoding device with multi-buffers
US7830960B2 (en) * 2005-01-13 2010-11-09 Qualcomm Incorporated Mode selection techniques for intra-prediction video encoding
WO2006078125A1 (en) * 2005-01-21 2006-07-27 Samsung Electronics Co., Ltd. Video coding method and apparatus for efficiently predicting unsynchronized frame
CN1658673A (zh) * 2005-03-23 2005-08-24 南京大学 视频压缩编解码方法
US20070098069A1 (en) * 2005-04-27 2007-05-03 Stephen Gordon Inverse scan, coefficient, inverse quantization and inverse transform system and method
US8761259B2 (en) * 2005-09-22 2014-06-24 Qualcomm Incorporated Multi-dimensional neighboring block prediction for video encoding
KR100727990B1 (ko) * 2005-10-01 2007-06-13 삼성전자주식회사 영상의 인트라 예측 부호화 방법 및 그 방법을 사용하는부호화 장치
US20100232505A1 (en) * 2006-02-17 2010-09-16 Thomson Licensing Process for Coding Images Using Intra Prediction Mode
JP4820191B2 (ja) * 2006-03-15 2011-11-24 富士通株式会社 動画像符号化装置及びプログラム
KR101311402B1 (ko) * 2006-03-23 2013-09-25 삼성전자주식회사 영상의 부호화 방법 및 장치, 복호화 방법 및 장치
US8165202B1 (en) * 2006-03-31 2012-04-24 Texas Instruments Incorporated Video compression rate
US7995649B2 (en) * 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US7974340B2 (en) * 2006-04-07 2011-07-05 Microsoft Corporation Adaptive B-picture quantization control
CN101072356B (zh) * 2006-05-12 2011-02-09 中国科学院计算技术研究所 一种运动矢量预测方法
WO2008053746A1 (fr) 2006-10-30 2008-05-08 Nippon Telegraph And Telephone Corporation Procédé de génération d'informations de référence prédictives, procédé de codage et de décodage d'image dynamiques, leur dispositif, leur programme et support de stockage contenant le programme
US8243797B2 (en) * 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US20100215101A1 (en) * 2007-04-09 2010-08-26 Yong Joon Jeon Method and an apparatus for processing a video signal
US8160150B2 (en) * 2007-04-10 2012-04-17 Texas Instruments Incorporated Method and system for rate distortion optimization
CN101321283B (zh) * 2007-06-10 2010-04-07 华为技术有限公司 兼容不同大小块变换的编解码方法及编解码器
US8345968B2 (en) * 2007-06-28 2013-01-01 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method and image decoding method
US8265144B2 (en) * 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
CN101340578A (zh) * 2007-07-03 2009-01-07 株式会社日立制作所 运动矢量估计装置、编码器及摄像机
TW200910971A (en) * 2007-08-22 2009-03-01 Univ Nat Cheng Kung Direction detection algorithms for H.264 intra prediction
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
KR102037328B1 (ko) * 2007-10-16 2019-10-28 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
CN101198064A (zh) * 2007-12-10 2008-06-11 武汉大学 一种分辨率分层技术中的运动矢量预测方法
JP2009212900A (ja) 2008-03-05 2009-09-17 Nec Electronics Corp 画像復号化装置及び画像復号化方法
KR20090097013A (ko) * 2008-03-10 2009-09-15 삼성전자주식회사 영상 부호화장치 및 영상 복호화장치
KR101431545B1 (ko) * 2008-03-17 2014-08-20 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
EP2266318B1 (en) * 2008-03-19 2020-04-22 Nokia Technologies Oy Combined motion vector and reference index prediction for video coding
US20090274211A1 (en) * 2008-04-30 2009-11-05 Omnivision Technologies, Inc. Apparatus and method for high quality intra mode prediction in a video coder
US8897359B2 (en) * 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
WO2010021700A1 (en) * 2008-08-19 2010-02-25 Thomson Licensing A propagation map
US8634457B2 (en) * 2008-09-26 2014-01-21 Qualcomm Incorporated Determining availability of video data units
US8660176B2 (en) * 2008-09-26 2014-02-25 Qualcomm Incorporated Resolving geometric relationships among video data units
US8805106B2 (en) * 2008-09-26 2014-08-12 Futurewei Technologies, Inc. System and method for compressing and decompressing images and video
US8724697B2 (en) * 2008-09-26 2014-05-13 Qualcomm Incorporated Locating motion vectors for video data units
CN101686393B (zh) * 2008-09-28 2012-10-17 华为技术有限公司 应用于模板匹配的快速运动搜索方法及装置
US20100104022A1 (en) * 2008-10-24 2010-04-29 Chanchal Chatterjee Method and apparatus for video processing using macroblock mode refinement
US20100166073A1 (en) * 2008-12-31 2010-07-01 Advanced Micro Devices, Inc. Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors
CN101854540B (zh) * 2009-04-01 2014-07-02 辉达公司 用于应用h.264视频编码标准的帧内预测方法及装置
US20100296579A1 (en) * 2009-05-22 2010-11-25 Qualcomm Incorporated Adaptive picture type decision for video coding
US8477845B2 (en) * 2009-10-16 2013-07-02 Futurewei Technologies, Inc. Predictive adaptive scan ordering for video coding
US20110274162A1 (en) * 2010-05-04 2011-11-10 Minhua Zhou Coding Unit Quantization Parameters in Video Coding
US9036692B2 (en) * 2010-01-18 2015-05-19 Mediatek Inc. Motion prediction method
US9100649B2 (en) * 2010-02-10 2015-08-04 Lg Electronics Inc. Method and apparatus for processing a video signal
US20110194613A1 (en) * 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
US8588303B2 (en) * 2010-03-31 2013-11-19 Futurewei Technologies, Inc. Multiple predictor sets for intra-frame coding
US20110268180A1 (en) * 2010-04-29 2011-11-03 Naveen Srinivasamurthy Method and System for Low Complexity Adaptive Quantization
KR102233820B1 (ko) * 2010-05-26 2021-03-29 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
US9124898B2 (en) * 2010-07-12 2015-09-01 Mediatek Inc. Method and apparatus of temporal motion vector prediction
US8930562B2 (en) * 2010-07-20 2015-01-06 Qualcomm Incorporated Arranging sub-track fragments for streaming video data
ES2682102T3 (es) * 2010-12-21 2018-09-18 Ntt Docomo, Inc. Codificación y descodificación de intra-predicción en un modo plano
MX365013B (es) * 2011-08-29 2019-05-20 Ibex Pt Holdings Co Ltd Metodo para generar un bloque de prediccion en modo de prediccion de vector de movimiento avanzada (amvp).
US20130251028A1 (en) * 2012-03-22 2013-09-26 The Hong Kong University Of Science And Technology Video encoding and decoding with channel prediction and error correction capability
US9538172B2 (en) * 2012-04-11 2017-01-03 Qualcomm Incorporated Grouping bypass coded syntax elements in video coding
JP6553925B2 (ja) * 2015-04-09 2019-07-31 東洋スチレン株式会社 スチレン系樹脂組成物及び成形体
JP6569278B2 (ja) * 2015-04-09 2019-09-04 東洋インキScホールディングス株式会社 顔料組成物およびその製造方法、並びにインクジェットインキ

Also Published As

Publication number Publication date
KR20140057396A (ko) 2014-05-12
PT3958559T (pt) 2023-06-30
CN107087197B (zh) 2020-01-17
EP3145188A3 (en) 2017-08-16
FI3145188T3 (fi) 2023-03-20
CN107087198B (zh) 2020-01-17
US10979731B2 (en) 2021-04-13
US20170085902A1 (en) 2017-03-23
US10602181B2 (en) 2020-03-24
HRP20230005T1 (hr) 2023-02-17
US9807414B2 (en) 2017-10-31
US10015516B2 (en) 2018-07-03
KR20180015686A (ko) 2018-02-13
PL3958560T3 (pl) 2023-10-02
HRP20230575T1 (hr) 2023-09-01
EP3958562A1 (en) 2022-02-23
JP2017034706A (ja) 2017-02-09
CN106878747A (zh) 2017-06-20
PL3958559T3 (pl) 2023-11-06
US20170085899A1 (en) 2017-03-23
US20200195957A1 (en) 2020-06-18
CN104602023B (zh) 2018-01-23
JP2017005764A (ja) 2017-01-05
ES2952359T3 (es) 2023-10-31
EP3958560B1 (en) 2023-06-07
DK3145188T3 (da) 2023-03-20
CN104602021B (zh) 2016-09-21
JP6242978B2 (ja) 2017-12-06
JP2017041902A (ja) 2017-02-23
CN106878747B (zh) 2019-08-30
HUE061766T2 (hu) 2023-08-28
KR20130051444A (ko) 2013-05-20
SI3145188T1 (sl) 2023-02-28
US10237572B2 (en) 2019-03-19
US20170085903A1 (en) 2017-03-23
CN106878746A (zh) 2017-06-20
PT3958563T (pt) 2023-07-04
JP2017034705A (ja) 2017-02-09
EP3958563A1 (en) 2022-02-23
PT3958560T (pt) 2023-07-03
US10931966B2 (en) 2021-02-23
EP3958559B1 (en) 2023-06-07
CN107087197A (zh) 2017-08-22
LT3145188T (lt) 2023-01-25
CN106878748B (zh) 2019-12-06
US20170085900A1 (en) 2017-03-23
KR20190049919A (ko) 2019-05-09
JP6242984B2 (ja) 2017-12-06
EP3958564B1 (en) 2023-06-07
US20170085910A1 (en) 2017-03-23
CN104602022B (zh) 2016-06-01
CN104602021A (zh) 2015-05-06
US9794585B2 (en) 2017-10-17
PT3958562T (pt) 2023-06-30
ES2939615T3 (es) 2023-04-25
RS64413B1 (sr) 2023-09-29
EP3145188B1 (en) 2022-12-21
KR101430048B1 (ko) 2014-08-18
ES2954979T3 (es) 2023-11-27
EP3145188A2 (en) 2017-03-22
JP2017041901A (ja) 2017-02-23
WO2012023763A2 (ko) 2012-02-23
PT3958564T (pt) 2023-06-22
DK3958564T3 (da) 2023-08-14
US20170085909A1 (en) 2017-03-23
ES2952358T3 (es) 2023-10-31
KR20130099244A (ko) 2013-09-05
EP2608543A4 (en) 2014-08-06
JP6242979B2 (ja) 2017-12-06
JP6242980B2 (ja) 2017-12-06
JP6242983B2 (ja) 2017-12-06
CN106878746B (zh) 2020-03-27
CN103190151A (zh) 2013-07-03
US10116958B2 (en) 2018-10-30
EP3958563B1 (en) 2023-06-07
ES2952357T3 (es) 2023-10-31
HUE063254T2 (hu) 2024-01-28
PT3145188T (pt) 2023-01-23
KR20140057397A (ko) 2014-05-12
JP2017034707A (ja) 2017-02-09
KR101430049B1 (ko) 2014-08-14
JP6025726B2 (ja) 2016-11-16
EP3958562B1 (en) 2023-06-07
RS63977B1 (sr) 2023-03-31
JP2017005763A (ja) 2017-01-05
CN103190151B (zh) 2017-02-15
US20170085901A1 (en) 2017-03-23
EP3958559A1 (en) 2022-02-23
JP6242982B2 (ja) 2017-12-06
US9955180B2 (en) 2018-04-24
US20170085898A1 (en) 2017-03-23
JP2017041900A (ja) 2017-02-23
US20200195958A1 (en) 2020-06-18
CN104602023A (zh) 2015-05-06
US20170085908A1 (en) 2017-03-23
PL3958564T3 (pl) 2023-10-02
KR20120016991A (ko) 2012-02-27
US20190158872A1 (en) 2019-05-23
CN104602022A (zh) 2015-05-06
CN106878748A (zh) 2017-06-20
EP3958560A1 (en) 2022-02-23
PL3958562T3 (pl) 2023-10-09
US20130022122A1 (en) 2013-01-24
JP2017041899A (ja) 2017-02-23
US9544611B2 (en) 2017-01-10
JP2017041898A (ja) 2017-02-23
EP2608543A2 (en) 2013-06-26
JP2013537772A (ja) 2013-10-03
US9794586B2 (en) 2017-10-17
EP3958564A1 (en) 2022-02-23
WO2012023763A3 (ko) 2012-05-10
JP6321749B2 (ja) 2018-05-09
KR20180018591A (ko) 2018-02-21
KR20140057675A (ko) 2014-05-13
PL3958563T3 (pl) 2023-10-09
PL3145188T3 (pl) 2023-04-17
US9877039B2 (en) 2018-01-23
KR20130099243A (ko) 2013-09-05
JP6242981B2 (ja) 2017-12-06
CN107087198A (zh) 2017-08-22
JP6321750B2 (ja) 2018-05-09
US9894380B2 (en) 2018-02-13
JP6242985B2 (ja) 2017-12-06

Similar Documents

Publication Publication Date Title
ES2954981T3 (es) Aparato para codificar un fotograma en movimiento
US10798401B2 (en) Method for generating prediction block in AMVP mode
ES2696898T3 (es) Procedimiento para codificar un modo de intrapredicción