ES2822248T3 - Método y aparato para predicción con compensación de movimiento - Google Patents

Método y aparato para predicción con compensación de movimiento Download PDF

Info

Publication number
ES2822248T3
ES2822248T3 ES12803489T ES12803489T ES2822248T3 ES 2822248 T3 ES2822248 T3 ES 2822248T3 ES 12803489 T ES12803489 T ES 12803489T ES 12803489 T ES12803489 T ES 12803489T ES 2822248 T3 ES2822248 T3 ES 2822248T3
Authority
ES
Spain
Prior art keywords
samples
bit depth
fractional
sample
prediction
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
ES12803489T
Other languages
English (en)
Inventor
Frank Jan Bossen
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Application granted granted Critical
Publication of ES2822248T3 publication Critical patent/ES2822248T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

Método de decodificación de vídeo para compensación de movimiento realizada con una predicción intertramas, comprendiendo el método etapas ejecutables mediante ordenador ejecutadas mediante un procesador de un decodificador de vídeo para implementar: recuperar muestras de referencia almacenadas en una primera profundidad de bits de una memoria de imágenes de referencia; aplicar una primera interpolación de muestras fraccionaria basándose en las muestras recuperadas en una primera dirección para generar un primer conjunto de muestras fraccionarias; y aplicar una segunda interpolación de muestras fraccionaria al primer conjunto de muestras fraccionarias en una segunda dirección para generar un segundo conjunto de muestras fraccionarias, en el que las muestras fraccionarias del primer conjunto de muestras fraccionarias se representan con una segunda profundidad de bits que es independiente de la primera profundidad de bits de las muestras de referencia, en el que las muestras fraccionarias del segundo conjunto de muestras fraccionarias se representan con la segunda profundidad de bits, en el que la segunda profundidad de bits se establece igual a un número de bits disponibles para representar las muestras fraccionarias, en el que la primera interpolación de muestras fraccionaria aplica una conversión de las muestras de referencia desde la primera profundidad de bits hasta la segunda profundidad de bits, en el que cada muestra de referencia se convierte basándose en un factor establecido igual a la segunda profundidad de bits menos la primera profundidad de bits de la muestra de referencia, en el que la primera interpolación de muestras fraccionaria comprende aumentar consecutivamente la profundidad de bits de las muestras convertidas desde la segunda profundidad de bits aplicando un filtro y truncando hasta la segunda profundidad de bits.

Description

DESCRIPCIÓN
Método y aparato para predicción con compensación de movimiento
Solicitudes relacionadas
El presente documento de patente reivindica el beneficio de la fecha de presentación según el 35 U.S.C §119(e) de la solicitud de patente estadounidense provisional con n.° de serie 6.501.122, presentada el 24 de junio de 2011.
Antecedentes de la invención
1. Campo de la invención
La presente invención se refiere a una compensación de movimiento para una predicción inter-tramas y en particular a una interpolación de muestras fraccionaria usada en la compensación de movimiento que logra baja complejidad y alta precisión.
2. Descripción de la técnica relacionada
El vídeo digital requiere una gran cantidad de datos para representar todas y cada una de las tramas de una secuencia de vídeo digital (por ejemplo, series de tramas) de manera no comprimida. Para la mayoría de aplicaciones, no es factible transmitir vídeo digital no comprimido a través de redes informáticas debido a las limitaciones de ancho de banda. Además, el vídeo digital no comprimido requiere una gran cantidad de espacio de almacenamiento. El vídeo digital normalmente se codifica de alguna manera para reducir los requisitos de almacenamiento y reducir los requisitos de ancho de banda.
Una técnica para codificar vídeo digital es la predicción inter-tramas, o inter-predicción. La inter-predicción aprovecha las redundancias temporales entre diferentes tramas. Las tramas de vídeo adyacentes temporalmente incluyen normalmente bloques de píxeles que permanecen sustancialmente idénticos. Durante el proceso de codificación, un vector de movimiento interrelaciona el movimiento de un bloque de píxeles en una trama con un bloque de píxeles similares en otra trama. Por consiguiente, no se requiere que el sistema codifique el bloque de píxeles dos veces, sino que más bien codifica el bloque de píxeles una vez y proporciona un vector de movimiento para predecir el otro bloque de píxeles.
Otra técnica para codificar vídeo digital es la predicción intra-tramas o intra-predicción. La intra-predicción codifica una trama o una parte de la misma sin referencia a píxeles en otras tramas. La intra-predicción aprovecha las redundancias espaciales entre bloques de píxeles dentro de una trama. Dado que bloques de píxeles adyacentes espacialmente tienen en general atributos similares, se mejora la eficacia del proceso de codificación haciendo referencia a la correlación espacial entre bloques adyacentes. Esta correlación puede aprovecharse mediante la predicción de un bloque objetivo basándose en modos de predicción usados en bloques adyacentes.
En la inter-predicción, se predice una imagen recibida, basándose en estimación y compensación de movimiento. Los objetos en movimiento en vídeo a menudo aparecen de trama en trama en los que la totalidad o parte de los mismos están reubicados en esas tramas posteriores. A pesar de esas reubicaciones, la correlación entre la secuencia de las tramas es alta y da lugar a redundancia. Esta redundancia temporal puede reducirse comparando y relacionando las muestras en la trama actual con la ubicación del mismo objeto en las tramas de referencia. Específicamente, durante la estimación de movimiento, se compara la trama actual o una partición de la misma con tramas de referencia que pueden ser temporalmente anteriores o posteriores a la trama actual. Se compara un patrón de píxeles dentro de un intervalo de búsqueda establecido en la trama de referencia respectiva con el patrón de píxeles mostrado en la trama actual hasta que se encuentra una trama de referencia que contiene un patrón de píxeles que coincide de la mejor manera con el patrón de píxeles en la trama actual que va a codificarse. Basándose en los resultados de la comparación, se estima un vector de desplazamiento inter-tramas o un vector de movimiento. Usando el vector de movimiento estimado, la compensación de movimiento ofrece una predicción de la trama actual.
Pueden aumentarse la precisión de vector de movimiento y la eficacia de codificación aplicando interpolación a los píxeles en la imagen de referencia, que se denominan muestras en posiciones de número entero, o simplemente muestras de número entero, para aumentar la resolución de la imagen de referencia. La interpolación es para generar muestras fraccionarias entre cada muestra de número entero, usando los valores de las muestras de número entero. Cuantas más muestras fraccionarias se generen entre las muestras de número entero, más alta se volverá la resolución de la imagen de referencia, y más exacta y precisamente podrá compensarse un desplazamiento de muestra fraccionaria. Por ejemplo, con el fin de compensar de manera exacta un movimiento de un objeto en movimiento que sea un desplazamiento de solamente medio píxel, se necesita al menos interpolación de medio píxel (pel). Pueden realizarse estimación y compensación de movimiento usando varios tamaños de bloque diferentes. Pueden determinarse vectores de movimiento individuales para particiones que tengan 4x4, 4x8, 8x4, 8x8, 8x16, 16x8 ó 16x16 píxeles. La provisión de particiones de compensación de movimiento pequeñas mejora la capacidad de gestionar detalles de movimiento finos.
La norma H.264/AVC toma un enfoque de 2 etapas y logra una compensación de movimiento de hasta una resolución de un cuarto de píxel. En la norma H.264/AVC, la primera etapa usa un filtro de 6 derivaciones para generar valores intermedios a una resolución de medio píxel a partir de los valores de muestras de número entero circundantes. En la segunda etapa, se calcula el promedio de los valores de muestras de número entero y los valores intermedios o se calcula el promedio de los valores intermedios entre sí para generar muestras fraccionarias en posiciones de un cuarto de píxel, o simplemente muestras de un cuarto de píxel. En segmentos B, puede calcularse además el promedio de dos muestras fraccionarias de predicciones a partir de dos predicciones. Obsérvese, sin embargo, múltiples operaciones de promedio, cuando se realizan en cascada, introducen errores de redondeo que afectan de manera adversa a la exactitud y a la eficacia de compensación de movimiento. Las propuestas D321 y E242 del Equipo de Colaboración Conjunta de Codificación de Vídeo (Joint Collaborative Team on Video Coding, JCT-VC) abordan el problema del error de redondeo asociado con el cálculo de promedio bidireccional. Estos documentos sugieren que se limite una operación de redondeo a tener lugar en la última etapa de cálculo de promedio bidireccional después de añadir dos predicciones.
El borrador E603 del JCT-VC divulga el uso de un filtro de 8 derivaciones para lograr la resolución de un cuarto de píxel. En el documento E603, algunas de las muestras de un cuarto de píxel se derivan aplicando un filtro de 8 derivaciones a las muestras de número entero más cercanas y truncando los resultados filtrados hasta una profundidad de bits predeterminada. El resto de las muestras de un cuarto de píxel se deriva mediante dos procesos. En el primer proceso, se derivan valores intermedios aplicando el filtro de 8 derivaciones a las muestras de número entero más cercanas en la dirección vertical. En el segundo proceso, se aplica el filtro de 8 derivaciones a los valores intermedios en la dirección horizontal y se truncan los resultados filtrados hasta una profundidad de bits predeterminada. Este enfoque de 2 procesos es ventajoso ya que no se requiere ningún orden fijo para el filtrado vertical y el filtrado horizontal en el segundo proceso, y por tanto no es necesaria ninguna señalización a un decodificador con respecto al orden del filtrado vertical y del filtrado horizontal en el segundo proceso. Sin embargo, la compensación de movimiento comentada en el documento E603 requiere la definición de operaciones de filtrado adicionales para generar los valores intermedios. La operación de filtrado aplicada a los valores intermedios es costosa y requiere una alta complejidad de computación, en particular para datos de vídeo con una alta profundidad de bits.
Además, en la compensación de movimiento comentada en el documento E603, no se truncan los valores intermedios para garantizar la exactitud de las muestras de un cuarto de píxel calculadas a partir de los mismos. Por tanto, la precisión en bits de los valores calculados no es constante durante la compensación de movimiento comentada en el documento E603. Al final del primer proceso expuesto anteriormente, se aumenta la precisión de los valores de muestra resultantes una cantidad determinada por la ganancia del filtro de 8 derivaciones. Aplicando el filtro de 8 derivaciones a los valores intermedios, se aumenta entonces de nuevo la precisión la misma cantidad que en el primer proceso antes del truncamiento para dar una precisión predeterminada. Por tanto, se necesita el doble de truncamiento de la resolución en el segundo proceso que en el primer proceso con el fin de devolver la resolución a la profundidad de bits original al final de la segunda etapa.
El documento EP 1353514 A2 describe diversas técnicas y herramientas para la estimación y compensación del movimiento para mejorar la precisión con la que se calcula el valor final en una posición submuestreada.
Sumario de la invención
Para solucionar los problemas de la técnica relacionada se proporcionan un método de decodificación de vídeo para la compensación de movimiento según la reivindicación 1 y un dispositivo de decodificación de vídeo según la reivindicación 5.
En la presente invención, el primer conjunto de muestras fraccionarias se representa con una precisión independiente de la precisión de representación de las muestras. Algunas realizaciones preferidas pueden incluir las características adicionales según una o más de las reivindicaciones dependientes.
Algunas realizaciones mencionadas en la descripción pueden ilustrar ejemplos de la invención o ilustrar ejemplos que son útiles para entender la invención pero que no forman parte de la invención.
Breve descripción de los dibujos
La figura 1 es un diagrama de bloques que muestra una arquitectura de hardware a modo de ejemplo en la cual puede implementarse la presente invención.
La figura 2 es un diagrama de bloques que muestra una vista general de un codificador de vídeo al cual puede aplicarse la presente invención.
La figura 3 es un diagrama de bloques que muestra una vista general de un decodificador de vídeo al cual puede aplicarse la presente invención.
La figura 4 es un diagrama de bloques que muestra los módulos funcionales de un codificador según una realización de la presente invención.
La figura 5 es un diagrama de flujo que muestra un proceso de codificación realizado por el codificador de vídeo según una realización de la presente invención.
La figura 6 es un diagrama de flujo que muestra los procesos de interpolación de muestras fraccionaria según una realización de la presente invención.
La figura 7 es una ilustración del filtrado para la interpolación de muestras fraccionaria.
La figura 8 es un diagrama de bloques que muestra los módulos funcionales de un decodificador según una realización de la presente invención.
La figura 9 es un diagrama de flujo que muestra un proceso de decodificación realizado por el decodificador de vídeo según una realización de la presente invención.
Descripción detallada de los dibujos y las realizaciones actualmente preferidas
La figura 1 muestra una arquitectura de hardware a modo de ejemplo de un ordenador 100 en el cual puede implementarse la presente invención. Obsérvese que la arquitectura de hardware mostrada en la figura 1 puede ser común tanto en un codificador de vídeo como en un decodificador de vídeo que implementan las realizaciones de la presente invención. El ordenador 100 incluye un procesador 101, una memoria 102, un dispositivo de almacenamiento 105 y uno o más dispositivos de entrada y/o salida (I/O) 106 (o periféricos) que están acoplados en comunicación mediante una interfaz local 107. La interfaz local 107 puede ser, por ejemplo, pero no se limita a, uno o más buses u otras conexiones por cable o inalámbricas, tal como se conoce en la técnica.
El procesador 101 es un dispositivo de hardware para ejecutar software, particularmente el que está almacenado en la memoria 102. El procesador 101 puede ser cualquier procesador fabricado a medida o disponible en el mercado, una unidad de procesamiento central (CPU), un procesador auxiliar de entre varios procesadores asociados con el ordenador 100, un microprocesador basado en semiconductor (en forma de un microchip o conjunto de chips), o en general cualquier dispositivo para ejecutar instrucciones de software.
La memoria 102 comprende un medio legible por ordenador, que puede incluir uno cualquiera o una combinación de elementos de memoria volátil (por ejemplo, memoria de acceso aleatorio (RAM, tal como DRAM, SRAM, SDRAM, etc.)) y elementos de memoria no volátil (por ejemplo, ROM, disco duro, cinta, CDROM, etc.). Además, la memoria 102 puede incorporar medios de almacenamiento electrónicos, magnéticos, ópticos y/o de otros tipos. Un medio legible por ordenador puede ser cualquier medio que pueda almacenar, comunicar, propagar o transportar el programa para su uso por o en relación con el sistema, aparato o dispositivo de ejecución de instrucciones. Obsérvese que la memoria 102 puede tener una arquitectura distribuida, en la que diversos componentes están situados alejados unos de otros, pero a la que puede acceder el procesador 101.
El software 103 en la memoria 102 puede incluir uno o más programas independientes, cada uno de los cuales contiene un listado ordenado de instrucciones ejecutables para implementar funciones lógicas del ordenador 100, tal como se describe a continuación. En el ejemplo de la figura 1, el software 103 en la memoria 102 define la funcionalidad de codificación de vídeo o de decodificación de vídeo del ordenador 100 según la presente invención. Además, aunque no se requiere, es posible que la memoria 102 contenga un sistema operativo (O/S) 104. El sistema operativo 104 controla esencialmente la ejecución de programas informáticos y proporciona planificación, control de entrada-salida, gestión de archivos y datos, gestión de memoria y control de comunicación y servicios relacionados.
El dispositivo de almacenamiento 105 del ordenador 100 puede ser uno de muchos tipos diferentes de dispositivo de almacenamiento, incluyendo un dispositivo de almacenamiento estacionario o dispositivo de almacenamiento portátil. Como ejemplo, el dispositivo de almacenamiento 105 puede ser una cinta magnética, un disco, una memoria flash, una memoria volátil o un dispositivo de almacenamiento diferente. Además, el dispositivo de almacenamiento 105 puede ser una tarjeta de memoria digital segura o cualquier otro dispositivo de almacenamiento extraíble 105.
Los dispositivos de I/O 106 pueden incluir dispositivos de entrada, por ejemplo, pero sin limitarse a, una pantalla táctil, un teclado, un ratón, un escáner, un micrófono u otro dispositivo de entrada. Además, los dispositivos de I/O 106 también pueden incluir dispositivos de salida, por ejemplo, pero sin limitarse a, una pantalla u otros dispositivos de salida. Los dispositivos de I/O 106 pueden incluir además dispositivos que se comuniquen tanto a través de entradas como a través de salidas, por ejemplo, pero sin limitarse a, un modulador/demodulador (por ejemplo, un módem; para acceder a otro dispositivo, sistema o red), un transceptor de radiofrecuencia (RF), inalámbrico u otro, una interfaz telefónica, un puente, un enrutador u otros dispositivos que funcionan como entrada y como salida.
Como bien conocen los expertos habituales en la técnica, la compresión de vídeo se logra extrayendo información redundante en una secuencia de vídeo. Existen muchas normas de codificación de vídeo diferentes, ejemplos de las cuales incluyen MPEG-1, MPEG-2, MPEG-4, H.261, H.263 y H.264/AVC. Obsérvese que no se pretende que la presente invención esté limitada en cuanto a la aplicación de cualquier norma de codificación de vídeo específica. Sin embargo, la siguiente descripción de la presente invención se proporciona usando el ejemplo de la norma H.264/AVC, que se incorpora mediante referencia en el presente documento. La norma H.264/AVC es la norma de codificación de vídeo más reciente y logra una mejora de rendimiento significativa con respecto a las normas de codificación anteriores tales como MPEG-1, MPEG-2, H.261 y H.263.
En la norma H.264/AVC, cada trama o imagen de un vídeo puede descomponerse en varios segmentos. Los segmentos se dividen entonces en bloques de 16x16 píxeles denominados macrobloques, que entonces pueden dividirse adicionalmente en bloques de 8x16, 16x8, 8x8, 4x8, 8x4, hasta de 4x4 píxeles. Existen cinco tipos de segmentos soportados por la norma H.264/AVC. En los segmentos I, todos los macrobloques se codifican usando intra-predicción. En los segmentos P, pueden codificarse macrobloques usando intra o inter-predicción. Los segmentos P permiten que se use solamente una señal de predicción con compensación de movimiento (MCP) por cada macrobloque. En los segmentos B, pueden codificarse macrobloques usando intra o inter-predicción. Pueden usarse dos señales de MCP por cada predicción. Los segmentos SP permiten que se conmuten segmentos P entre flujos de vídeo diferentes de manera eficaz. Un segmento SI es una coincidencia exacta para un segmento SP para acceso aleatorio o recuperación de errores, mientras se usa solamente intra-predicción.
La figura 2 muestra una vista general de un codificador de vídeo al cual puede aplicarse la presente invención. Los bloques mostrados en la figura representan módulos funcionales realizados por el procesador 101 que ejecuta el software 103 en la memoria 102. Se alimenta una imagen de trama de vídeo 200 a un codificador de vídeo 201. El codificador de vídeo trata la imagen 200 en unidades de macrobloques 200A. Cada macrobloque contiene varios píxeles de imagen 200. En cada macrobloque, se realiza una transformación en coeficientes de transformada seguida por una cuantificación en niveles de coeficiente de transformada. Además, se usa intra-predicción o inter-predicción, para no realizar las etapas de codificación directamente en los datos de píxel sino en las diferencias entre valores de píxel y sus predicciones, logrando por tanto valores pequeños que se comprimen con mayor facilidad.
Para cada segmento, el codificador 201 genera varios elementos de sintaxis, que forman una versión codificada de los macrobloques del segmento respectivo. Todos los elementos de datos residuales en los elementos de sintaxis, que están relacionados con la codificación de coeficientes de transformada, tales como los niveles de coeficiente de transformada o un mapa de significación que indica niveles de coeficiente de transformada omitidos, se denominan elementos de sintaxis de datos residuales. Aparte de estos elementos de sintaxis de datos residuales, los elementos de sintaxis generados por el codificador 201 contienen elementos de sintaxis de información de control que contienen información de control sobre cómo se ha codificado cada macrobloque y cómo debe decodificarse, respectivamente. Dicho de otro modo, los elementos de sintaxis pueden dividirse en dos categorías. La primera categoría, los elementos de sintaxis de información de control, contiene los elementos relacionados con un tipo de macrobloque, tipo de submacrobloque e información acerca de modos de predicción de tipo tanto espacial como temporal, así como información de control basada en segmentos y basada en macrobloques, por ejemplo. En la segunda categoría, se combinan todos los elementos de datos residuales, tales como un mapa de significación que indica las ubicaciones de todos los coeficientes significativos en el interior de un bloque de coeficientes de transformada cuantificados y los valores de los coeficientes significativos, que se indican en unidades de niveles correspondientes a las etapas de cuantificación, y pasan a ser elementos de sintaxis de datos residuales.
El codificador 201 comprende un codificador de entropía que codifica elementos de sintaxis y genera palabras de código aritméticas para cada segmento. Al generar las palabras de código aritméticas para un segmento, el codificador de entropía aprovecha dependencias estadísticas entre los valores de datos de elementos de sintaxis en el flujo de bits de señal de vídeo. El codificador 201 emite una señal de vídeo codificada para un segmento de imagen 200 a un decodificador de vídeo 301 mostrado en la figura 3.
La figura 3 muestra una vista general de un decodificador de vídeo al que puede aplicarse la presente invención. De manera similar, los bloques mostrados en la figura representan módulos funcionales realizados por el procesador 101 que ejecuta el software 103 en la memoria 102. El decodificador de vídeo 301 recibe la señal de vídeo codificada y en primer lugar decodifica por entropía la señal para dar de nuevo los elementos de sintaxis. El decodificador 301 usa los elementos de sintaxis con el fin de reconstruir, macrobloque a macrobloque y después segmento tras segmento, las muestras de imagen 300A de píxeles en la imagen 300.
La figura 4 muestra los módulos funcionales del codificador de vídeo 201, que se indica de manera general con el número de referencia 400 en la figura 4. Estos módulos funcionales se realizan por el procesador 101 que ejecuta el software 103 en la memoria 102. Una imagen de vídeo de entrada es una trama o un campo de una imagen de vídeo natural (no comprimida) definida por puntos de muestra que representan componentes de colores originales, tales como crominancia (“croma”) y luminancia (“luma”). Son posibles otros componentes tales como tono, saturación y valor. La imagen de vídeo de entrada se divide en macrobloques que representan cada uno un área de imagen cuadrada consistente en 16x16 píxeles del componente de luma del color de imagen. La imagen de vídeo de entrada también se divide en macrobloques que representan cada uno 8x8 píxeles de cada uno de los dos componentes de croma del color de imagen. En el funcionamiento de codificador general, pueden predecirse de manera temporal o espacial macrobloques introducidos usando inter o intra-predicción. Sin embargo, se supone, para el propósito de discusión, que los macrobloques 400 son o bien todos macrobloques de tipo de segmento P o bien todos macrobloques de tipo de segmento B, o bien una mezcla de ambos, y solamente se someten a inter-predicción.
El codificador de vídeo 400 mostrado en la figura 4 solamente transmite valores residuales o diferenciales entre una imagen actual y una predicción de la imagen actual. Un restador 410 obtiene estos valores residuales recibiendo un bloque de imagen actual que va a codificarse como señal de entrada IS y restando del mismo un bloque de imagen de predicción indicado por una señal de predicción PS. Tal como se ilustra en la figura 4, el codificador de vídeo 400 incluye una unidad de transformada/cuantificación 420 para emitir coeficientes de transformada cuantificados QC. La unidad de transformada/cuantificación 420 transforma el valor residual procedente del dominio espacial en el dominio de frecuencia y cuantifica el valor residual transformado. El codificador de vídeo 400 también incluye una unidad de codificación por entropía 490 para realizar codificación por entropía (codificación de longitud variable) de los coeficientes de transformada cuantificados QC y emitir el flujo de bits BS.
El codificador de vídeo 400 incluye además una unidad de cuantificación/transformada inversa 430 y un sumador 435. La unidad de cuantificación/transformada inversa 430 transforma los coeficientes de transformada cuantificados QC para dar de nuevo una señal residual RS, a la que el sumador 435 le suma la señal de predicción PS para emitir una imagen decodificada. Un filtro de desbloqueo 437 retira artefactos de bloque de la imagen decodificada y almacena la imagen decodificada limpia en una memoria de referencia 440.
El codificador de vídeo 400 incluye además una unidad de predicción/compensación de movimiento 460 y una unidad de estimación de movimiento 470. La unidad de predicción/compensación de movimiento 460 lee una imagen de referencia de la memoria de referencia 440 y aplica interpolación para generar muestras fraccionarias en las posiciones de un cuarto de píxel. La unidad de estimación de movimiento 470 también lee la imagen de referencia de la memoria de referencia 440 y estima un vector de movimiento MV para la imagen actual comparando la imagen actual y la imagen de referencia. Se emite el vector de movimiento MV a la unidad de predicción/compensación de movimiento 460 y a la unidad de codificación por entropía 490. El bloque puede dividirse en particiones que tengan 4x4, 4x8, 8x4, 8x8, 8x16, 16x8 o 16x16 píxeles. La unidad de estimación de movimiento 470 realiza la estimación de movimiento en las particiones respectivas en el bloque y emite vectores de movimiento MV para las particiones respectivas. La unidad de predicción/compensación de movimiento 460 desplaza las particiones respectivas en la imagen de referencia las cantidades y en las direcciones indicadas por los vectores de movimiento para derivar la imagen de predicción, que se proporciona como señal predictiva IS al restador 410 y al sumador 435.
La figura 5 es un diagrama de flujo que muestra un alto nivel de proceso de codificación realizado por el codificador de vídeo 400. En la etapa 502, la unidad de predicción/compensación de movimiento 460 genera un bloque de predicción. En la etapa 504, el restador 410 resta la imagen de predicción a la imagen actual para obtener un valor residual. En la etapa 506, la unidad de transformada/cuantificación 420 codifica el valor residual.
La figura 6 es un diagrama de flujo que muestra los procesos de compensación de movimiento realizados por la unidad de predicción/compensación de movimiento 460 para generar una señal de predicción según una realización de la presente invención. En la etapa 602, la unidad de predicción/compensación de movimiento 460 lee muestras de referencia de la memoria de referencia 440. La memoria de referencia 440 almacena múltiples imágenes de referencia. Tal como se comenta en la sección 8.4.2 y en sus subsecciones de la norma H.264/AVC, la ubicación de las muestras de referencia que van a recuperarse de una imagen de referencia almacenada en la memoria de referencia 440 puede determinarse con la posición de una zona que va a predecirse dentro de la imagen actual, de un vector de movimiento MV de la zona y de un índice de trama de referencia.
En la etapa 604, las muestras de referencia recuperadas se amplían a escala para aumentar la precisión de las muestras de referencia. El factor de ajuste a escala puede determinarse con la profundidad de bits de las muestras de referencia y con el número de bits disponibles para representar la muestra de referencia. El número de bits disponibles para representarla muestra de referencia puede determinarse de tal manera que, si 16 es el número de bits disponibles máximo para la representación de la muestra de referencia, el número de bits disponibles para representar la muestra puede limitarse a 14 para prevenir un flujo excesivo o insuficiente de datos, lo que puede ocurrir durante la compensación de movimiento. Si el número de bits disponibles para representar la muestra es de 14, el factor de ajuste a escala es de 6 para la muestra de referencia que tiene una anchura de 8 bits, y las muestras de referencia recuperadas se amplían a escala desplazando sus bits 6 bits hacia la izquierda. El factor de ajuste a escala debe ser de 4 para la muestra de referencia que tiene una anchura de 10 bits, y las muestras de referencia recuperadas se amplían a escala desplazando sus bits 4 bits hacia la izquierda. Más en general, el factor de ajuste a escala puede expresarse por “el número de bits disponibles para representar la muestra de referencia” menos “la profundidad de bits de la muestra de referencia”. El proceso de ampliación a escala realizado en la etapa 604 es ventajoso porque convierte muestras de referencia almacenadas en la memoria de referencia en una forma independiente de sus profundidades de bits y los procesos que siguen el proceso de ampliación a escala pasarán a ser independientes de las profundidades de bits originales de los datos de vídeo.
Opcionalmente, puede restarse una desviación al valor ampliado a escala de la muestra de referencia. Por ejemplo, si se usa una representación de 14 bits con signo para representar las muestras de referencia ampliadas a escala, el valor de la desviación que va a restarse puede ser de 8192 (=213), lo que lleva las muestras de referencia ampliadas a escala dentro del intervalo de -8192 a 8192. Sumar esta desviación resulta beneficioso para reducir el número de bits requeridos para representar una muestra. Puesto que el proceso de interpolación descrito a continuación funciona con valores de muestra con signo, por tanto se prefiere una representación con signo de todos los valores de muestra.
En el ejemplo anterior en el que se amplían a escala muestras hasta representaciones de 14 bits, si no se resta la desviación, tendría que usarse una representación con signo de 15 bits que es más costosa que una representación con signo de 14 bits obtenida a partir de la resta de la desviación. Obsérvese que las muestras de referencia pueden ampliarse a escala y desviarse cuando estén almacenadas en la memoria de referencia. Si las muestras de referencia se almacenan en la memoria de referencia después de su ampliación a escala y desviación, la etapa 604 no es necesaria.
Entonces se aumenta la resolución de las muestras de referencia ampliadas a escala usando interpolación de muestras fraccionaria para generar muestras fraccionarias en posiciones de un cuarto de píxel. La figura 7 es una ilustración del filtrado para la compensación de movimiento de muestras fraccionarias. En la figura 7, las letras mayúsculas Ay indican las muestras de referencia ampliadas a escala. Estas muestras se denominan muestras de número entero. Las otras muestras mostradas por las letras minúsculas, tales como ao,o, bo,o, co,o, do,o... y ro,o, son muestras fraccionarias en posiciones de un cuarto de píxel. En la etapa 6o6, se deriva la muestra de un cuarto de píxel ao,o, bo,o o co,o mediante las siguientes ecuaciones de interpolación:
a0,o = ( -A-3,0 4*A-2,o - 10*A-,.0 58*A0,0 17*A1>0 - 5*A2,0 A3>0 ) » 6
b0)0 = ( —A —3,0 + 4*A_2,o - 11 * A -1>0 40*AOjO 40*A,,o - 11 *A 2,0 4 *A 3,0 - A 4,0 ) » 6
co.o = ( A- 2,0 - 5*A-i,0 17*A0j0 58*Alj0 - 10*A2>0 4*A3,o - A4,o) » 6
La parte fraccionaria del componente horizontal del vector de movimiento determina qué muestra se deriva. Por ejemplo si la parte fraccionaria es %, se deriva ao,o.
Cada una de las operaciones de interpolación incluye aplicar un filtro FIR de 8 derivaciones a las muestras de número entero más cercanas y truncando el resultado filtrado para desviar la ganancia de filtro. Una suma de los coeficientes de cada filtro se establece igual a 64 (=26). Por tanto, la operación de truncamiento incluye dividir el resultado filtrado entre 64 o desplazar 6 hacia la derecha el resultado filtrado. Obsérvese que, en las operaciones de interpolación anteriores, los resultados truncados se redondean hacia menos infinito. Añadiendo una desviación a los resultados filtrados, los resultados truncados pueden redondearse hacia el número entero más cercano. Sin embargo, redondear hacia menos infinito es ventajoso porque no requiere sumar la desviación a los resultados filtrados. Opcionalmente, pueden proporcionarse diferentes tipos de filtros de los cuales se aplica selectivamente un filtro, dependiendo de un desplazamiento fraccionario especificado por el componente horizontal de un vector de movimiento. Esta etapa puede suprimirse en el caso en el que el desplazamiento fraccionario horizontal sea cero. Obsérvese también que existe una operación de desplazamiento de 6 bits hacia la derecha en la etapa 6o6 y una operación de desplazamiento de 6 bits hacia la izquierda en la etapa 6o4 en el ejemplo con entradas de 8 bits. Por tanto, las etapas 6o4 y 6o6 pueden combinarse de tal manera que se retiran las operaciones de desplazamiento hacia la izquierda y de desplazamiento hacia la derecha sin perturbar la salida.
En la etapa 6o8, la muestra fraccionaria do,o, ho,o,
Figure imgf000007_0001
po,o, fo,o, jo,o, qo,o, go,o, ko,o o ro,o siguientes ecuaciones de interpolación:
do,o = ( - A o - 3 4 * A 0 - 2 ~ 10 * A o - i 58*A o ,o 17 * A 0iI - 5 * A 0,2 A 0>3) » 6
ho.o = ( - A o - 3 4 * A 0 - 2 - 11 * A 0 40 * A o>0 40 * A 0,i - 11 * A 0,2 4 * A 0,3 - A 0,4 ) » 6
no,o = ( A o -2 - 5 * A 0,- i 17*A o ,o 58 * A 0, i - 10 * A 0,2 4 * A 0>3 - A 0,4 ) » 6
j
Figure imgf000008_0001
) » 6
qo.o = ( b0,-2 - 5 * b 0 - i 17 * b 0,o 58 * b 0,i - 10 *b 0j2 4 * b 0,3 ~ b0j4 ) » 6
go,o = ( -co ,-3 + 4 * c0-2 - 10 *c o,- i + 58 * c 0,o 17 * c 0,i - 5 * c0j2 + c0j3) » 6
k 0>o = ( -C o -3 4 * c o - 2 - 11 * c 0 - i 40 * c 0,0 40 * c 0,i - 11 * c 0,2 4 * c 0,3 - c 0,4 ) » 6
ro,o = ( c 0>-2 - 5 * c 0,- i 17 *c 0,o 58 * c 0,i - 10 * c 0,2 4 * c 0>3 - c0>4) » 6
Las partes fraccionarias de los componentes horizontal y vertical del vector de movimiento determinan qué muestra se deriva. Por ejemplo si la parte fraccionaria horizontal es % y la parte fraccionaria vertical es %, se deriva po,o.
Las operaciones de interpolación anteriores incluyen aplicar filtros FIR de 8 derivaciones de manera vertical con respecto a las muestras Ao,j, ao,i, bo,i y co,¡, donde i = -3..4, y truncar los resultados filtrados con un factor de 6. Obsérvese que, en la presente invención, se truncan todos los resultados filtrados y no se usa ningún resultado filtrado como valor intermedio sin truncar para calcular muestras fraccionarias a partir del mismo. Por tanto, en la presente invención, la precisión de los valores de muestras es constante a lo largo de la totalidad de la interpolación de muestras fraccionaria. Ni la etapa 6o6 ni la etapa 6o8 perturban la precisión en la representación de las muestras.
En la realización anterior de interpolación de muestras fraccionaria, los conjuntos de filtros usados en las operaciones de filtrado vertical y horizontal son todos filtros de 8 derivaciones. Obsérvese que pueden usarse filtros con diferentes números de derivaciones para la interpolación de movimiento fraccionaria. Por ejemplo, es deseable usar filtros con menos derivaciones para tamaños de bloque más pequeños. El uso de filtros con menos derivaciones reduce el número de muestras que van a recuperarse de la memoria de referencia, mediante lo cual puede reducirse el ancho de banda de memoria. El uso de filtros con menos derivaciones también reduce el número de multiplicaciones en las operaciones de filtrado y mejora la eficacia de compensación de movimiento. La norma H.264/AVC permite dividir un macrobloque o submacrobloque en una o más particiones con el propósito de compensación de movimiento. En la norma H.264/AVC, un macrobloque que tenga un tamaño de 16x16 puede dividirse en una o más particiones que tengan cada una un tamaño de 4x4, 4x8, 8x4, 8x8, 8x16 o 16x8. Por consiguiente, pueden prepararse y aplicarse selectivamente filtros con un número diferente de derivaciones según la anchura de una partición. Por ejemplo, puede aplicarse un filtro de 8 derivaciones a particiones que tengan una anchura igual a o mayor de 8, y puede aplicarse un filtro de 4 derivaciones a particiones que tengan una anchura menor de 8. En una realización, tal filtro de 4 derivaciones tiene los coeficientes [-4 36 36 -4]. El borrador E6o3 del JCT-VC ha introducido el concepto de una unidad de codificación (CU). Una CU que tenga un tamaño de NxN puede dividirse en una o más particiones que tengan un tamaño de NxN, NxN/2 o N/2xN. Pueden aplicarse selectivamente filtros con diferentes números de derivaciones tanto si la altura o anchura de una CU es N como si es N/2.
En la realización anterior de compensación de movimiento de muestra fraccionaria, la interpolación de muestras horizontal fraccionaria (etapa 6o6) precede a la interpolación de muestras vertical fraccionaria (etapa 6o8). Obsérvese que puede intercambiarse el orden siempre y cuando se acuerde con antelación el orden entre un codificador y un decodificador. En otra realización, puede indicarse el orden de un codificador a un decodificador. Cuando las muestras de referencia tengan una anchura de 8 bits, el resultado del cálculo será el mismo independientemente del orden de interpolación horizontal y vertical. Si es el caso, no se necesita ningún acuerdo previo entre un codificador y un decodificador acerca del orden.
En la compensación de movimiento comentada en el Borrador E6o3 del JCT-VC, pueden derivarse las mismas muestras fraccionarias tanto si se derivan los valores intermedios verticalmente y se aplican horizontalmente como si se derivan horizontalmente y se aplican verticalmente. Esto es beneficioso en el sentido de que no es necesario ningún acuerdo previo entre un codificador y un decodificador acerca de si los valores intermedios deben derivarse verticalmente y aplicarse horizontalmente o derivarse horizontalmente y aplicarse verticalmente. Sin embargo, los valores intermedios tienen mayor precisión que en la presente invención y el coste de aplicar un segundo filtro FIR a estos valores intermedios es mayor que el de la presente invención. En general, el coste aumenta en proporción a la precisión. Este coste puede ser significativamente más alto en el software en el que la precisión supera un tamaño de palabra habitual tal como 16 bits. En tal caso la precisión se extiende adicionalmente para coincidir con el siguiente tamaño de palabra habitual. Por ejemplo, los valores intermedios con 17 bits de precisión se extenderán hasta 32 bits. La precisión más alta de valores intermedios tal como se comenta en el borrador E603 del JCT-VC tiene un impacto en el coste significativo, sin proporcionar un beneficio significativo en cuanto a exactitud de la señal de predicción.
En la realización de la presente invención descrita anteriormente, es necesario fijar el orden de las interpolaciones horizontal y vertical entre un codificador y un decodificador. Sin embargo, fijar el orden de las interpolaciones horizontal y vertical no provocará ningún coste al codificador y al decodificador. Más bien, fijando el orden, la compensación de movimiento puede funcionar con una precisión inferior y, sin embargo, lo suficientemente alta, para reducir el coste de operaciones tales como multiplicaciones. Además, fijando el orden, la precisión de cálculo pasa a ser constante a lo largo de la totalidad de la interpolación de muestras fraccionaria. Por tanto, el cálculo de filtrado puede simplificarse dado que todas las multiplicaciones entre muestras y coeficientes pueden realizarse dentro de intervalos de bits fijos, por ejemplo, un intervalo de 16 bits con signo para muestras y un intervalo de 8 bits con signo para coeficientes de filtro. Puesto que todas las multiplicaciones se realizan dentro de intervalos de bits fijos, las operaciones de filtrado pueden implementarse eficazmente en paralelo en arquitecturas SIMD.
Volviendo a la figura 6, se aplica una transformación a las muestras derivadas en la etapa 610. Se describe un ejemplo de tal transformación como un proceso de predicción de muestra ponderada en la sección 8.4.2.3 y en sus subsecciones de la norma H.264/AVC. El proceso de predicción de muestra ponderada combina dos conjuntos de muestras mediante una interpolación lineal. La transformación puede mejorar la eficacia de codificación para escenas que contengan efectos de desvanecimiento. El valor de las muestras combinadas que resulta de la transformación puede recortarse para encajar dentro de un intervalo específico, por ejemplo un intervalo de 16 bits con signo. Obsérvese que puede suprimirse la etapa 610 cuando no se necesite ninguna transformación de este tipo.
Entonces se comprueba en la etapa 612 si es necesario generar otra predicción para compensar el movimiento. Por ejemplo, cuando vaya a realizarse un cálculo de promedio bidireccional, es necesario generar dos predicciones para calcular el promedio de las mismas. Si se determina que es necesaria otra predicción, el proceso regresa a la etapa 602. En la etapa 614, se calcula el promedio de dos predicciones para generar una predicción bidireccional. Si no se ordena un cálculo de promedio de manera bidireccional, se omite la etapa 614.
En la etapa 616, se reduce a escala una predicción generada y se recorta hasta un intervalo válido. La operación de reducción a escala realizada en la etapa 616 deshace la operación de ampliación a escala realizada en la etapa 604 y desplaza hacia la derecha la predicción generada el mismo número de bits que el usado para desplazar hacia la izquierda las muestras en la etapa 604. Es preferible sumar una desviación de redondeo antes de la operación de desplazamiento hacia la derecha para redondear el valor reducido a escala hacia el número entero más cercano. Si se resta la desviación de una muestra en la etapa 604, se suma la misma desviación a la predicción. El intervalo válido al que se recorta la predicción se define normalmente como {0...255}, cuando las muestras de referencia almacenadas tienen una anchura de 8 bits. En general, el intervalo válido puede definirse como {0...2M-1} para muestras de referencia que tengan una anchura de M bits.
En una implementación práctica de la presente invención, no es necesario realizar independientemente las etapas tal como se muestra en la figura 6, y algunas etapas pueden combinarse. Por ejemplo, pueden combinarse las operaciones de desplazamiento realizadas independientemente en las etapas de la figura 6. Un ejemplo es que pueden combinarse la operación de desplazamiento hacia la derecha incluida en el cálculo de promedio bidireccional realizado en la etapa 614 y la operación de desplazamiento hacia la derecha incluida en la reducción a escala realizada en la etapa 616. Además, pueden implementarse múltiples funciones o circuitos para circunstancias en las que pueden simplificarse los procesos, por ejemplo, en las que no hay ningún desplazamiento fraccionario y por tanto no se necesita filtrado FIR.
La figura 8 muestra los módulos funcionales del decodificador de vídeo 301, que se indica de manera general con el número de referencia 800 en la figura 8. Estos módulos funcionales se realizan por el procesador 101 que ejecuta el software 103 en la memoria 102. En la figura 8, una unidad de decodificación por entropía 810 obtiene un flujo de bits BS emitido por el aparato de codificación de imágenes en movimiento 400 y realiza el procesamiento de decodificación por entropía del flujo de bits. La unidad de decodificación por entropía 810 emite entonces los coeficientes de transformada cuantificados QC a la unidad de transformada inversa/cuantificación inversa 820. La unidad de decodificación por entropía 810 también emite el vector de movimiento MV a una unidad de predicción/compensación de movimiento 860. La unidad de transformada inversa/cuantificación inversa 820 realiza el procesamiento de decodificación de cuantificación inversa y transformada de DCT inversa en los coeficientes de transformada cuantificados QC. La unidad de transformada inversa/cuantificación inversa 820 emite entonces la señal residual RS.
Un sumador 830 suma la señal residual RS a la señal de predicción PS obtenida de la unidad de compensación de movimiento 860 y emite una imagen decodificada a un filtro de desbloqueo 840. El filtro de desbloqueo 840 elimina artefactos de bloque de la imagen decodificada y la almacena en una memoria de referencia 850. Se recupera la imagen decodificada de la memoria 850 y se emite como señal de salida OS.
La unidad de predicción/compensación de movimiento 860 recupera muestras en una imagen de referencia almacenada en la memoria de referencia 850 y realiza la interpolación de muestras fraccionaria tal como se muestra en la figura 7. Esta unidad de predicción/compensación de movimiento 860 genera una predicción basándose en el vector de movimiento MV y en la imagen de referencia en la que se ha realizado la interpolación de muestras fraccionaria. De esta manera, la unidad de predicción/compensación de movimiento 860 emite la señal de predicción PS al sumador 830.
La figura 9 es un diagrama de flujo que muestra un alto nivel de proceso de decodificación realizado por el decodificador de vídeo 800. En la etapa 902, la unidad de predicción/compensación de movimiento 860 genera un bloque de predicción. En la etapa 904, la unidad de transformada inversa/cuantificación inversa 820 decodifica los coeficientes de transformada cuantificados QC y emite la señal residual RS. En la etapa 906, el sumador 830 suma la señal residual RS a la señal de predicción PS.
Aunque muchas alteraciones y modificaciones de la presente invención resultarán, sin duda, evidentes para un experto habitual en la técnica tras la lectura de la descripción anterior, debe entenderse que no se pretende en modo alguno que ninguna realización particular mostrada y descrita a modo ilustrativo se considere limitativa. Por tanto, no se pretende que las referencias a detalles de diversas realizaciones limiten el alcance de las reivindicaciones, que mencionan en ellas mismas sólo aquellas características que se consideran esenciales para la invención.

Claims (8)

  1. REIVINDICACIONES
    i. Método de decodificación de vídeo para compensación de movimiento realizada con una predicción inter­ tramas, comprendiendo el método etapas ejecutables mediante ordenador ejecutadas mediante un procesador de un decodificador de vídeo para implementar:
    recuperar muestras de referencia almacenadas en una primera profundidad de bits de una memoria de imágenes de referencia;
    aplicar una primera interpolación de muestras fraccionaria basándose en las muestras recuperadas en una primera dirección para generar un primer conjunto de muestras fraccionarias; y
    aplicar una segunda interpolación de muestras fraccionaria al primer conjunto de muestras fraccionarias en una segunda dirección para generar un segundo conjunto de muestras fraccionarias,
    en el que las muestras fraccionarias del primer conjunto de muestras fraccionarias se representan con una segunda profundidad de bits que es independiente de la primera profundidad de bits de las muestras de referencia,
    en el que las muestras fraccionarias del segundo conjunto de muestras fraccionarias se representan con la segunda profundidad de bits,
    en el que la segunda profundidad de bits se establece igual a un número de bits disponibles para representar las muestras fraccionarias,
    en el que la primera interpolación de muestras fraccionaria aplica una conversión de las muestras de referencia desde la primera profundidad de bits hasta la segunda profundidad de bits,
    en el que cada muestra de referencia se convierte basándose en un factor establecido igual a la segunda profundidad de bits menos la primera profundidad de bits de la muestra de referencia,
    en el que la primera interpolación de muestras fraccionaria comprende aumentar consecutivamente la profundidad de bits de las muestras convertidas desde la segunda profundidad de bits aplicando un filtro y truncando hasta la segunda profundidad de bits.
  2. 2. Método según la reivindicación 1, en el que truncar cada uno de los resultados filtrados comprende redondear los resultados truncados hacia menos infinito.
  3. 3. Método según una cualquiera de las reivindicaciones 1 a 2, en el que la primera profundidad de bits de las muestras de referencia se establece en 8 o 10.
  4. 4. Método según una cualquiera de las reivindicaciones 1 a 3, en el que la segunda profundidad de bits se establece en 14.
  5. 5. Dispositivo de decodificación de vídeo para compensación de movimiento realizada con una predicción inter­ tramas, comprendiendo el dispositivo:
    una sección de recuperación (860) que recupera muestras de referencia almacenadas en una primera profundidad de bits de una memoria de imágenes de referencia (850);
    una primera sección de aplicación de interpolación de muestras fraccionaria (860) que aplica una primera interpolación de muestras fraccionaria basándose en las muestras recuperadas en una primera dirección para generar un primer conjunto de muestras fraccionarias; y
    una segunda sección de aplicación de interpolación de muestras fraccionaria (860) que aplica una segunda interpolación de muestras fraccionaria al primer conjunto de muestras fraccionarias en una segunda dirección para generar un segundo conjunto de muestras fraccionarias,
    en el que las muestras fraccionarias del primer conjunto de muestras fraccionarias se representan con una segunda profundidad de bits que es independiente de la primera profundidad de bits de las muestras de referencia,
    en el que las muestras fraccionarias del segundo conjunto de muestras fraccionarias se representan con la segunda profundidad de bits,
    en el que la segunda profundidad de bits se establece igual a un número de bits disponibles para representar las muestras fraccionarias,
    en el que la primera interpolación de muestras fraccionaria aplica una conversión de las muestras de referencia desde la primera profundidad de bits hasta la segunda profundidad de bits,
    en el que cada muestra de referencia se convierte basándose en un factor establecido igual a la segunda profundidad de bits menos la primera profundidad de bits de la muestra de referencia,
    en el que la primera interpolación de muestras fraccionaria comprende aumentar consecutivamente la profundidad de bits de las muestras convertidas desde la segunda profundidad de bits aplicando un filtro y truncando hasta la segunda profundidad de bits.
  6. 6. Dispositivo según la reivindicación 5, en el que truncar cada uno de los resultados filtrados comprende redondear los resultados truncados hacia menos infinito.
  7. 7. Dispositivo según una cualquiera de las reivindicaciones 5 a 6, en el que la primera profundidad de bits de las muestras de referencia se establece en 8 o 10.
  8. 8. Dispositivo según una cualquiera de las reivindicaciones 5 a 7, en el que la segunda profundidad de bits se establece en 14.
ES12803489T 2011-06-24 2012-06-22 Método y aparato para predicción con compensación de movimiento Active ES2822248T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161501112P 2011-06-24 2011-06-24
PCT/US2012/043674 WO2012177961A1 (en) 2011-06-24 2012-06-22 Method and apparatus for motion compensation prediction

Publications (1)

Publication Number Publication Date
ES2822248T3 true ES2822248T3 (es) 2021-04-29

Family

ID=47422960

Family Applications (6)

Application Number Title Priority Date Filing Date
ES18168744T Active ES2869948T3 (es) 2011-06-24 2012-06-22 Método y aparato para predicción con compensación de movimiento
ES18168716T Active ES2847955T3 (es) 2011-06-24 2012-06-22 Método y aparato para predicción con compensación de movimiento
ES12803489T Active ES2822248T3 (es) 2011-06-24 2012-06-22 Método y aparato para predicción con compensación de movimiento
ES21152044T Active ES2963964T3 (es) 2011-06-24 2012-06-22 Método para predicción con compensación de movimiento
ES20181965T Active ES2953082T3 (es) 2011-06-24 2012-06-22 Métodos para predicción con compensación de movimiento
ES15163455.7T Active ES2683857T3 (es) 2011-06-24 2012-06-22 Método y aparato para compensación de movimiento

Family Applications Before (2)

Application Number Title Priority Date Filing Date
ES18168744T Active ES2869948T3 (es) 2011-06-24 2012-06-22 Método y aparato para predicción con compensación de movimiento
ES18168716T Active ES2847955T3 (es) 2011-06-24 2012-06-22 Método y aparato para predicción con compensación de movimiento

Family Applications After (3)

Application Number Title Priority Date Filing Date
ES21152044T Active ES2963964T3 (es) 2011-06-24 2012-06-22 Método para predicción con compensación de movimiento
ES20181965T Active ES2953082T3 (es) 2011-06-24 2012-06-22 Métodos para predicción con compensación de movimiento
ES15163455.7T Active ES2683857T3 (es) 2011-06-24 2012-06-22 Método y aparato para compensación de movimiento

Country Status (17)

Country Link
US (4) US9860532B2 (es)
EP (6) EP3826307B1 (es)
JP (7) JP5625139B2 (es)
KR (5) KR101988409B1 (es)
CN (5) CN106162187B (es)
AU (6) AU2012272779B2 (es)
BR (1) BR112013032716B1 (es)
CA (5) CA2839704C (es)
DK (1) DK3826307T3 (es)
ES (6) ES2869948T3 (es)
FI (1) FI3826307T3 (es)
HU (4) HUE064092T2 (es)
MX (3) MX352293B (es)
PL (6) PL3367687T3 (es)
PT (6) PT3751856T (es)
RU (7) RU2559839C1 (es)
WO (1) WO2012177961A1 (es)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2869948T3 (es) 2011-06-24 2021-10-26 Ntt Docomo Inc Método y aparato para predicción con compensación de movimiento
HUE048724T2 (hu) * 2011-06-28 2020-08-28 Samsung Electronics Co Ltd Képinterpoláció aszimmetrikus interpolációszûrõt használva
WO2014162736A1 (en) 2013-04-05 2014-10-09 Sharp Kabushiki Kaisha Video compression with color bit depth scaling
CN104618680B (zh) * 2015-01-21 2017-09-05 北京瀚景锦河科技有限公司 一种视频分辨率的压缩方法
US10257524B2 (en) * 2015-07-01 2019-04-09 Mediatek Inc. Residual up-sampling apparatus for performing transform block up-sampling and residual down-sampling apparatus for performing transform block down-sampling
WO2019072368A1 (en) * 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. LIMITED MEMORY ACCESS WINDOW FOR MOTION VECTOR REFINEMENT
CN112422976B (zh) * 2019-08-23 2024-04-16 北京大学 一种视频编码标准中的亮度分量运动补偿方法及视频编码方法
CN114402610A (zh) * 2019-09-13 2022-04-26 北京字节跳动网络技术有限公司 视频编解码中的加权样点双向预测
JP2022548555A (ja) * 2019-09-24 2022-11-21 アリババ グループ ホウルディング リミテッド 映像符号化のための動き補償方法
KR20220066974A (ko) * 2019-09-30 2022-05-24 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩을 위한 인터 예측 장치 및 방법을 위한 보간 필터
US11523112B2 (en) * 2020-04-09 2022-12-06 Tencent America LLC Intra coding with L-type partitioning tree

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69835431T2 (de) * 1997-06-03 2007-06-06 Hitachi, Ltd. Bildkodier-und-dekodierverfahren und-vorrichtung
JPH1169345A (ja) * 1997-06-11 1999-03-09 Fujitsu Ltd フレーム間予測動画像符号化装置及び復号装置並びにフレーム間予測動画像符号化方法及び復号方法
KR100739281B1 (ko) * 2000-02-21 2007-07-12 주식회사 팬택앤큐리텔 움직임 추정 방법 및 장치
DE10022264A1 (de) 2000-05-08 2001-11-22 Micronas Munich Gmbh Videosignal-Decoder und Verfahren zur Beseitigung von Bildstörungen in einem Videobild
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US7305034B2 (en) * 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
JP4161676B2 (ja) 2002-10-18 2008-10-08 ソニー株式会社 信号処理装置、その方法およびそのプログラム
US20040076333A1 (en) * 2002-10-22 2004-04-22 Huipin Zhang Adaptive interpolation filter system for motion compensated predictive video coding
US8284835B2 (en) * 2004-04-21 2012-10-09 Panasonic Corporation Motion compensating apparatus
US8731054B2 (en) * 2004-05-04 2014-05-20 Qualcomm Incorporated Method and apparatus for weighted prediction in predictive frames
EP1617672A1 (en) 2004-07-13 2006-01-18 Matsushita Electric Industrial Co., Ltd. Motion estimator/compensator including a 16-bit 1/8 pel interpolation filter
KR20070084442A (ko) * 2004-10-21 2007-08-24 소니 일렉트로닉스 인코포레이티드 진보된 비디오 코덱 파일 포맷의 신뢰 범위 확장 지원
US8208564B2 (en) * 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
CN101326752B (zh) 2005-12-08 2013-02-13 皇家飞利浦电子股份有限公司 用于具有自适应保护间隔的单载波块传输的系统、设备和方法
KR100772390B1 (ko) * 2006-01-23 2007-11-01 삼성전자주식회사 방향 보간 방법 및 그 장치와, 그 보간 방법이 적용된부호화 및 복호화 방법과 그 장치 및 복호화 장치
US8705630B2 (en) * 2006-02-10 2014-04-22 Nvidia Corporation Adapting one type of encoder to another type of encoder
WO2007114368A1 (ja) 2006-03-30 2007-10-11 Kabushiki Kaisha Toshiba 画像符号化装置及び方法並びに画像復号化装置及び方法
US8774269B2 (en) * 2006-10-25 2014-07-08 Franuhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Quality scalable coding with mapping different ranges of bit depths
CN100551073C (zh) * 2006-12-05 2009-10-14 华为技术有限公司 编解码方法及装置、分像素插值处理方法及装置
US8509316B2 (en) * 2007-01-09 2013-08-13 Core Wireless Licensing, S.a.r.l. Adaptive interpolation filters for video coding
US9118927B2 (en) * 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
CN100568920C (zh) * 2007-07-24 2009-12-09 浙江大学 串行输入并行输出的视频图像亮度插值的方法和装置
US8819095B2 (en) * 2007-08-28 2014-08-26 Qualcomm Incorporated Fast computation of products by dyadic fractions with sign-symmetric rounding errors
CN100562114C (zh) * 2007-08-30 2009-11-18 上海交通大学 视频解码方法与解码装置
US8204333B2 (en) * 2007-10-15 2012-06-19 Intel Corporation Converting video and image signal bit depths
US8208560B2 (en) * 2007-10-15 2012-06-26 Intel Corporation Bit depth enhancement for scalable video coding
KR102139535B1 (ko) * 2007-10-16 2020-07-30 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US8953673B2 (en) * 2008-02-29 2015-02-10 Microsoft Corporation Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers
US8711948B2 (en) * 2008-03-21 2014-04-29 Microsoft Corporation Motion-compensated prediction of inter-layer residuals
US8831086B2 (en) * 2008-04-10 2014-09-09 Qualcomm Incorporated Prediction techniques for interpolation in video coding
CN102007768B (zh) * 2008-04-16 2013-05-29 弗朗霍夫应用科学研究促进协会 编码器、解码器、编码方法及解码方法
US9326004B2 (en) * 2008-06-03 2016-04-26 Broadcom Corporation Reduced memory mode video decode
JP5697301B2 (ja) * 2008-10-01 2015-04-08 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、及び動画像符号化・復号システム
WO2010123862A1 (en) * 2009-04-20 2010-10-28 Dolby Laboratories Licensing Corporation Adaptive interpolation filters for multi-layered video delivery
BRPI1012928A2 (pt) 2009-06-09 2018-01-30 Sony Corp aparelho e método de processamento de imagem.
JP2011061320A (ja) * 2009-09-07 2011-03-24 Sony Corp 動き補償装置、符号化装置、復号装置、これらにおける処理方法およびプログラム
CN101715125B (zh) * 2009-09-11 2011-09-28 中山大学 一种用于h.264视频编码的联合分数点运动估计和插值方法
WO2011086672A1 (ja) 2010-01-13 2011-07-21 株式会社 東芝 動画像符号化装置および復号装置
CN101778280B (zh) * 2010-01-14 2011-09-28 山东大学 一种基于avs运动补偿亮度插值运算的电路及方法
WO2011121716A1 (ja) 2010-03-30 2011-10-06 株式会社 東芝 動画像符号化方法、復号化方法、符号化装置および復号化装置
GB201007351D0 (en) * 2010-04-30 2010-06-16 Imagination Tech Ltd Varying temporal interpolation in a motion compensated frame interpolation system
WO2012005558A2 (ko) 2010-07-09 2012-01-12 삼성전자 주식회사 영상 보간 방법 및 장치
US9036706B2 (en) * 2011-06-22 2015-05-19 Google Inc. Fractional pixel interpolation filter for video compression
ES2869948T3 (es) * 2011-06-24 2021-10-26 Ntt Docomo Inc Método y aparato para predicción con compensación de movimiento

Also Published As

Publication number Publication date
EP3751856A1 (en) 2020-12-16
RU2721004C1 (ru) 2020-05-15
CN107105263B (zh) 2019-04-26
KR20170070262A (ko) 2017-06-21
JP2020145723A (ja) 2020-09-10
KR101662654B1 (ko) 2016-10-05
AU2018204505B2 (en) 2019-07-18
ES2869948T3 (es) 2021-10-26
JP2016015761A (ja) 2016-01-28
CA3083886A1 (en) 2012-12-27
US20190098320A1 (en) 2019-03-28
FI3826307T3 (fi) 2023-10-18
JP2017098984A (ja) 2017-06-01
HUE064092T2 (hu) 2024-02-28
PL3826307T3 (pl) 2024-01-29
JP5625139B2 (ja) 2014-11-12
WO2012177961A1 (en) 2012-12-27
JP2019071661A (ja) 2019-05-09
PL3367686T3 (pl) 2021-06-28
KR101747122B1 (ko) 2017-06-14
EP2724540A1 (en) 2014-04-30
PL3751856T3 (pl) 2023-10-09
EP3367686B1 (en) 2021-01-13
RU2739499C1 (ru) 2020-12-25
JP6467030B2 (ja) 2019-02-06
KR20160079931A (ko) 2016-07-06
PL2724540T3 (pl) 2021-04-19
CA2904551A1 (en) 2012-12-27
JP2014222941A (ja) 2014-11-27
JP2018082459A (ja) 2018-05-24
PT3826307T (pt) 2023-10-19
US10735746B2 (en) 2020-08-04
AU2016256712B2 (en) 2018-04-26
AU2019240711C1 (en) 2021-04-15
CA2997877C (en) 2020-08-04
EP3367686A1 (en) 2018-08-29
AU2012272779B2 (en) 2016-09-08
AU2018204505A1 (en) 2018-07-12
BR112013032716B1 (pt) 2020-11-03
EP2916549B1 (en) 2018-07-18
PL2916549T3 (pl) 2018-10-31
CA2997877A1 (en) 2012-12-27
ES2953082T3 (es) 2023-11-08
AU2018204503A1 (en) 2018-07-12
CN106162187A (zh) 2016-11-23
JP6101327B2 (ja) 2017-03-22
KR20160082268A (ko) 2016-07-08
US20190098319A1 (en) 2019-03-28
MX352293B (es) 2017-11-17
CN106878734B (zh) 2019-11-05
AU2019240711A1 (en) 2019-10-24
PT3367687T (pt) 2021-04-26
HUE053960T2 (hu) 2021-08-30
AU2018204503B2 (en) 2019-07-18
CN106878734A (zh) 2017-06-20
CN103650490B (zh) 2017-04-05
CN104967851A (zh) 2015-10-07
CA3158173A1 (en) 2012-12-27
US9860532B2 (en) 2018-01-02
BR112013032716A2 (pt) 2017-01-24
RU2014102188A (ru) 2015-07-27
KR101748810B1 (ko) 2017-06-19
AU2012272779A1 (en) 2013-11-28
CN104967851B (zh) 2018-06-29
ES2683857T3 (es) 2018-09-28
PL3367687T3 (pl) 2021-08-02
EP2724540A4 (en) 2014-11-05
CA3083886C (en) 2022-06-28
AU2020294315B2 (en) 2021-11-04
KR20140026557A (ko) 2014-03-05
RU2683591C1 (ru) 2019-03-29
JP6900547B2 (ja) 2021-07-07
KR101855975B1 (ko) 2018-05-09
EP3367687A1 (en) 2018-08-29
CA2839704C (en) 2018-05-01
JP6707678B2 (ja) 2020-06-10
PT3751856T (pt) 2023-08-17
MX337794B (es) 2016-03-18
CN106162187B (zh) 2019-06-25
EP2916549A1 (en) 2015-09-09
CA2839704A1 (en) 2012-12-27
EP3826307A1 (en) 2021-05-26
HUE062673T2 (hu) 2023-12-28
JP5865965B2 (ja) 2016-02-17
EP2724540B1 (en) 2020-09-16
ES2963964T3 (es) 2024-04-03
AU2016256712A1 (en) 2016-11-24
HUE053980T2 (hu) 2021-08-30
RU2016113727A (ru) 2017-10-16
US20140119442A1 (en) 2014-05-01
EP3826307B1 (en) 2023-10-04
RU2664389C1 (ru) 2018-08-17
DK3826307T3 (da) 2023-11-06
CN103650490A (zh) 2014-03-19
EP2724540B8 (en) 2020-11-04
CA2904551C (en) 2018-05-01
US10721481B2 (en) 2020-07-21
PT2916549T (pt) 2018-10-04
AU2019240711B2 (en) 2020-12-24
AU2012272779A8 (en) 2013-12-12
ES2847955T3 (es) 2021-08-04
US20180054622A1 (en) 2018-02-22
JP6271697B2 (ja) 2018-01-31
RU2559839C1 (ru) 2015-08-10
MX2013014726A (es) 2014-02-27
RU2584546C2 (ru) 2016-05-20
EP3367687B1 (en) 2021-04-07
PT2724540T (pt) 2020-10-19
EP3751856B1 (en) 2023-07-12
JP2014520488A (ja) 2014-08-21
AU2020294315A1 (en) 2021-02-18
RU2634703C2 (ru) 2017-11-03
CN107105263A (zh) 2017-08-29
KR101988409B1 (ko) 2019-06-12
KR20180049218A (ko) 2018-05-10
US10171816B2 (en) 2019-01-01
PT3367686T (pt) 2021-02-08
RU2015113433A (ru) 2015-09-10

Similar Documents

Publication Publication Date Title
ES2822248T3 (es) Método y aparato para predicción con compensación de movimiento
ES2748100T3 (es) Intra-predicción de baja complejidad para codificación de vídeo