ES2718575T3 - Aparato de codificación de vídeo, método de codificación de vídeo y medio de almacenamiento - Google Patents

Aparato de codificación de vídeo, método de codificación de vídeo y medio de almacenamiento Download PDF

Info

Publication number
ES2718575T3
ES2718575T3 ES16198144T ES16198144T ES2718575T3 ES 2718575 T3 ES2718575 T3 ES 2718575T3 ES 16198144 T ES16198144 T ES 16198144T ES 16198144 T ES16198144 T ES 16198144T ES 2718575 T3 ES2718575 T3 ES 2718575T3
Authority
ES
Spain
Prior art keywords
vector
vector predictor
motion vector
unit
predictor candidate
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
ES16198144T
Other languages
English (en)
Inventor
Satoshi Shimada
Akira Nakagawa
Kimihiko Kazui
Junpei Koyama
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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=46384134&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2718575(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of ES2718575T3 publication Critical patent/ES2718575T3/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • 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
    • 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/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting 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/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence

Landscapes

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

Description

DESCRIPCIÓN
Aparato de codificación de vídeo, método de codificación de vídeo y medio de almacenamiento
Campo
Las realizaciones comentadas en el presente documento se refieren a un aparato de decodificación de vídeo, a un aparato de codificación de vídeo, a un método de decodificación de vídeo, a un método de codificación de vídeo y a un medio de almacenamiento.
Antecedentes
En técnicas de codificación de vídeo recientes, se divide una imagen en bloques, se predicen píxeles en los bloques y se codifican diferencias predichas para lograr una alta razón de compresión. Un modo de predicción en el que se predicen píxeles a partir de píxeles vecinos en el espacio en una imagen que va a codificarse se denomina modo de intra-predicción. Mientras tanto, un modo de predicción en el que se predicen píxeles a partir de una imagen de referencia anteriormente codificada usando una técnica de compensación de movimiento se denomina modo de inter-predicción.
En el modo de inter-predicción de un aparato de codificación de vídeo, una región de referencia usada para predecir píxeles se representa mediante datos de coordenadas bidimensionales denominados vector de movimiento que incluye una componente horizontal y una componente vertical, y se codifican datos de vector de movimiento y datos de píxel de diferencia entre píxeles originales y píxeles predichos. Para reducir la cantidad de código, se genera un predictor de vector basándose en un vector de movimiento de un bloque que es adyacente a un bloque objetivo que va a codificarse (puede denominarse bloque objetivo de codificación), y se codifica un vector diferencia entre un vector de movimiento del bloque objetivo y el predictor de vector. Asignando una cantidad menor de código a un vector diferencia menor, es posible reducir la cantidad de código para el vector de movimiento y mejorar la eficiencia de codificación.
Mientras tanto, en un aparato de decodificación de vídeo, se determina para cada bloque un predictor de vector que es el mismo que el predictor de vector generado en el aparato de codificación de vídeo, y se restaura el vector de movimiento añadiendo el vector diferencia codificado y el predictor de vector. Por este motivo, el aparato de codificación de vídeo y el aparato de decodificación de vídeo incluyen unidades de predicción de vector que tienen sustancialmente la misma configuración.
En el aparato de decodificación de vídeo, se codifican bloques, generalmente, desde la parte superior izquierda hasta la inferior derecha en el orden de la técnica de exploración por filas o la técnica de exploración z. Por tanto, sólo un vector de movimiento de un bloque que está a la izquierda o por encima de un bloque objetivo que va a decodificarse en el aparato de decodificación de vídeo, es decir, un vector de movimiento que se decodifica antes que el bloque objetivo, puede usarse para la predicción por las unidades de predicción de vector de movimiento del aparato de codificación de vídeo y el aparato de decodificación de vídeo.
Mientras tanto, en MPEG (grupo de expertos de imágenes en movimiento)-4 AVC/H.264 (a continuación en el presente documento puede denominarse simplemente H.264), puede determinarse un predictor de vector usando un vector de movimiento de una imagen de referencia anteriormente codificada/decodificada en lugar de un vector de movimiento de una imagen objetivo que va a procesarse (véase, por ejemplo, ISO/IEC 14496-10 (MPEG-4 Part 10)/ ITU-T Rec. H.264).
Además, se da a conocer un método de determinación de un predictor de vector en “WD3: Working Draft 3 of High-Efficiency Video Coding” JCTVC-E603, JCT-VC 5a reunión, marzo de 2011. La codificación de vídeo de alta eficiencia (HEVC) es una tecnología de codificación de vídeo cuya normalización está comentándose de manera conjunta por ISO/IEC e ITU-T. Se ha propuesto el software HEVC Test Model (HM) (versión 3.0) como software de referencia.
A continuación se describe el resumen de HEVC. En HEVC, se proporcionan listas de imágenes de referencia L0 y L1 que indican imágenes de referencia. Para cada bloque, regiones de hasta dos imágenes de referencia, es decir, vectores de movimiento correspondientes a las listas de imágenes de referencia L0 y L1, pueden usarse para inter­ predicción.
Las listas de imágenes de referencia L0 y L1 corresponden, generalmente, a direcciones de tiempo de visualización. La lista de imágenes de referencia L0 indica imágenes anteriores con respecto a una imagen objetivo que va a procesarse, y la lista de imágenes de referencia L1 indica imágenes futuras. Cada entrada de las listas de imágenes de referencia L0 y L1 incluye una ubicación de almacenamiento de datos de píxel y un recuento de orden de imagen (POC) de la imagen correspondiente.
Los POC se representan por números enteros, e indican el orden en el que se visualizan las imágenes y el tiempo de visualización relativo de las imágenes. Suponiendo que una imagen con un POC “0” se visualiza en el tiempo de visualización “0”, el tiempo de visualización de una imagen dada puede obtenerse multiplicando el POC de la imagen por una constante. Por ejemplo, cuando “fr” indica el ciclo de visualización (Hz) de tramas y “p” indica el POC de una imagen, el tiempo de visualización de la imagen puede representarse mediante la siguiente fórmula (1).
Tiempo de visualización = p x (fr/2) ... fórmula (1)
Por consiguiente, puede decirse que el POC indica el tiempo de visualización de una imagen en unidades de una constante.
Cuando una lista de imágenes de referencia incluye dos o más entradas, imágenes de referencia a las que hacen referencia vectores de movimiento se especifican mediante números de índice (índices de referencia) en la lista de imágenes de referencia. Cuando una lista de imágenes de referencia sólo incluye una entrada (o una imagen), el índice de referencia de un vector de movimiento correspondiente a la lista de imágenes de referencia se establece automáticamente a “0”. En este caso, no hay necesidad de especificar explícitamente el índice de referencia.
Un vector de movimiento de un bloque incluye un identificador de lista L0/L1, un índice de referencia y datos de vector (Vx, Vy). Una imagen de referencia se identifica por el identificador de lista L0/L1 y el índice de referencia, y una región en la imagen de referencia se identifica por los datos de vector (Vx, Vy). Vx y Vy en los datos de vector indican, respectivamente, diferencias entre las coordenadas de una región de referencia en los ejes horizontal y vertical y las coordenadas de un bloque objetivo (o bloque actual) que va a procesarse. Por ejemplo, Vx y Vy pueden representarse en unidades de cuartos de píxel. El identificador de lista L0/L1 y el índice de referencia pueden denominarse de manera colectiva identificador de imagen de referencia, y (0, 0) puede denominarse vector 0.
A continuación se describe un método de determinación de un predictor de vector en HEVC. Se determina un predictor de vector para cada imagen de referencia identificada por el identificador de lista L0/L1 y el índice de referencia. En la determinación de datos de vector mvp de un predictor de vector para un vector de movimiento que hace referencia a una imagen de referencia identificada por un identificador de lista LX y un índice de referencia refidx, se calculan hasta tres conjuntos de datos de vector como candidatos de predictor de vector.
Los bloques que son adyacentes en el espacio y en el tiempo a un bloque objetivo se clasifican en tres grupos: bloques a la izquierda del bloque objetivo (grupo izquierdo), bloques por encima del bloque objetivo (grupo superior), y bloques adyacentes en el tiempo al bloque objetivo (grupo adyacente en el tiempo). De cada uno de los tres grupos, se selecciona hasta un candidato de predictor de vector.
Los candidatos de predictor de vector seleccionados se indican en el orden de prioridad de los grupos: el grupo adyacente en el tiempo, el grupo izquierdo y el grupo superior. Esta lista se coloca en una matriz mvp_cand. Si no está presente ningún candidato de predictor de vector en ninguno de los grupos, se añade un vector 0 a la matriz mvp_cand.
Se usa un índice de candidato de predictor mvp_idx para identificar a uno de los candidatos de predictor de vector en la lista que va a usarse como predictor de vector. Es decir, los datos de vector de un candidato de predictor de vector ubicados en la posición “mvp_idx”-ésima en la matriz mvp_cand se usan como datos de vector mvp del predictor de vector.
Cuando mv indica un vector de movimiento de un bloque objetivo de codificación que hace referencia a una imagen de referencia identificada por el identificador de lista LX y el índice de referencia refidx, el aparato de codificación de vídeo busca en la matriz mvp_cand para encontrar un candidato de predictor de vector más próximo al vector de movimiento mv, y establece el índice del candidato de predictor de vector encontrado como índice de candidato de predictor mvp_idx. Además, el aparato de codificación de vídeo calcula un vector diferencia mvd usando la siguiente fórmula (2) y codifica refidx, mvd y mvp_idex como información de vector de movimiento para la lista LX.
mvd = mv - mvp ... fórmula (2)
El aparato de decodificación de vídeo decodifica refidx, mvd y mvp_idex, determina mvp_cand basándose en refidx, y usa el candidato de predictor de vector ubicado en la posición “mvp_idx”-ésima en mvp_cand como predictor de vector mvp. El aparato de decodificación de vídeo restaura el vector de movimiento mv del bloque objetivo basándose en la siguiente fórmula (3).
mv = mvd mvp ... fórmula (3)
A continuación, se describen bloques adyacentes en el espacio a un bloque objetivo. La figura 1 es un dibujo que ilustra bloques adyacentes en el espacio a un bloque objetivo. Con referencia a la figura 1, se describen procedimientos a modo de ejemplo de seleccionar candidatos de predictor de vector a partir de bloques a la izquierda del bloque objetivo y bloques por encima del bloque objetivo.
En primer lugar, se describe un procedimiento a modo de ejemplo de seleccionar un candidato de predictor de vector a partir de los bloques a la izquierda del bloque objetivo. Se busca en los bloques I y H a la izquierda del bloque objetivo en este orden hasta que se encuentra un vector de movimiento 1 con el identificador de lista LX y el índice de referencia refidx. Si se encuentra el vector de movimiento 1 con el identificador de lista LX y el índice de referencia refidx, se selecciona el vector de movimiento 1.
Si no se encuentra el vector de movimiento 1, se busca un vector de movimiento 2, que hace referencia a una imagen de referencia que está en una lista de imágenes de referencia LY y es la misma que la imagen de referencia indicada por el índice de referencia refidx de la lista de imágenes de referencia LX. Si se encuentra el vector de movimiento 2, se selecciona el vector de movimiento 2.
Si no se encuentra el vector de movimiento 2, se busca un vector de movimiento 3 para inter-predicción. Si se encuentra el vector de movimiento 3, se selecciona el vector de movimiento 3. Si el vector de movimiento seleccionado en este procedimiento no hace referencia a una imagen de referencia que es la misma que la imagen de referencia indicada por el índice de referencia refidx de la lista de imágenes de referencia LX, se realiza un procedimiento de ajuste a escala descrito más adelante.
A continuación, se describe un procedimiento a modo de ejemplo de seleccionar un candidato de predictor de vector a partir de los bloques por encima del bloque objetivo. Se busca en los bloques E, D y A por encima del bloque objetivo en este orden hasta que se encuentra un vector de movimiento 1 con el identificador de lista LX y el índice de referencia refidx. Si se encuentra el vector de movimiento 1 con el identificador de lista LX y el índice de referencia refidx, se selecciona el vector de movimiento 1.
Si no se encuentra el vector de movimiento 1, se busca un vector de movimiento 2, que hace referencia a una imagen de referencia que está en una lista de imágenes de referencia LY y es la misma que la imagen de referencia indicada por el índice de referencia refidx de la lista de imágenes de referencia LX. Si se encuentra el vector de movimiento 2, se selecciona el vector de movimiento 2.
Si no se encuentra el vector de movimiento 2, se busca un vector de movimiento 3 para inter-predicción. Si se encuentra el vector de movimiento 3, se selecciona el vector de movimiento 3. Si el vector de movimiento seleccionado en este procedimiento no hace referencia a una imagen de referencia que es la misma que la imagen de referencia indicada por el índice de referencia refidx de la lista de imágenes de referencia LX, se realiza un procedimiento de ajuste a escala descrito más adelante.
A continuación, se describen bloques adyacentes en el tiempo a un bloque objetivo. La figura 2 es un dibujo usado para describir un procedimiento de seleccionar un candidato de predictor de vector a partir de bloques adyacentes en el tiempo a un bloque objetivo.
En primer lugar, se selecciona una imagen 20 de referencia adyacente en el tiempo, que incluye un bloque adyacente en el tiempo y se denomina imagen coubicada (ColPic). La ColPic 20 es una imagen de referencia con índice de referencia “0” en la lista de imágenes de referencia L0 o L1. Normalmente, una ColPic es una imagen de referencia con índice de referencia “0” en la lista de imágenes de referencia L1.
Un mvCol 22, que es un vector de movimiento de un bloque (ColBlock) 21 ubicado en la ColPic 20 en la misma posición que un bloque 11 objetivo, se ajusta a escala mediante un método de ajuste a escala descrito a continuación para generar un candidato de predictor de vector.
A continuación se describe un método a modo de ejemplo de ajustar a escala un vector de movimiento. En este caso, se supone que un vector de movimiento de entrada se representa por mvc=(mvcx, mvcy), un vector de salida (candidato de predictor de vector) se representa por mvc'=(mvcx', mvcy'), y mvc es mvCol.
Además, ColRefPic 23 indica una imagen a la que hace referencia mvc, ColPicPoc indica el POC de la ColPic 20 que incluye mvc, ColRefPoc indica el POC de la ColRefPic 23, CurrPoc indica el POC de una imagen 10 objetivo actual, y CurrRefPoc indica el POC de una imagen 25 identificada por RefPicList_LX y RefIdx.
Cuando el vector de movimiento que va a ajustarse a escala es un vector de movimiento de un bloque adyacente en el espacio, ColPicPoc es igual a CurrPoc. Cuando el vector de movimiento que va a ajustarse a escala es un vector de movimiento de un bloque adyacente en el tiempo, ColPicPoc es igual al POC de ColPic.
Tal como se indica mediante las siguientes fórmulas (4) y (5), mvc se ajusta a escala basándose en la razón entre intervalos de tiempo de imágenes.
mvcx' = mvcx x (CurrPoc-CurrRefPoc) / (ColPicPoc-ColRefPoc) ... fórmula (4) mvcy' = mvcy x (CurrPoc-CurrRefPoc) / (ColPicPoc-ColRefPoc) ... fórmula (5)
Sin embargo, dado que la división requiere una gran cantidad de cálculo, puede realizarse una aproximación de mvc', por ejemplo, mediante multiplicación y desplazamiento usando las siguientes fórmulas.
DiffPocD = ColPicPoc-ColRefPoc ... fórmula (6)
DiffPocB = CurrPoc-CurrRefPoc ... fórmula (7)
TDB = Clip3 (-128, 127, DiffPocB) ... fórmula (8)
TDD = Clip3 (-128, 127, DiffPocC) ... fórmula (9)
iX = (0x4000 abs(TDD/2)) / TDD ... fórmula (10)
Escala = Clip3 (-1024, 1023, (TDBxiX+32)>>6) ... fórmula (11) abs (): una función que devuelve un valor absoluto
Clip3(x, y, z): una función que devuelve una mediana de x, y y z
>>: desplazamiento aritmético a la derecha
La “Escala” obtenida mediante la fórmula (11) se usa como un factor de ajuste a escala. En este ejemplo, Escala=256 indica un coeficiente de “1”, es decir, mv no se ajusta a escala. El factor de ajuste a escala tiene una precisión de 8 bits tras la coma decimal. Por consiguiente, cuando se multiplica por el factor de ajuste a escala, la precisión tras la coma decimal de un vector de movimiento se aumenta en 8 bits.
Basándose en el factor de ajuste a escala, Escala, se realiza una operación de ajuste a escala usando las siguientes fórmulas.
mvcx' = (Escala x mvcx 128)>>8 ... fórmula (12)
mvcy' = (Escala x mvcy 128)>>8 ... fórmula (13)
En las fórmulas (12) y (13), N bits tras la coma decimal se redondean al número entero más próximo añadiendo 2N-1 a un valor multiplicado por el factor de ajuste a escala y desplazando el resultado de adición a la derecha N bits. Se da a conocer un procedimiento de ajuste a escala similar en ISO/IEC 14496-10 (MPEG-4 Part 10)/ ITU-T Rec. H.264. El vector obtenido mvc' se usa como un candidato de predictor de vector.
“Text of ISO/I EC 14496-10 FCD Advanced Video Coding”, 61. MPEG MEETING; 22-07-2002 - 26-07-2002; KLAGENFURT; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), n.° N4920, 11 de agosto de 2002 (11-08-2002), XP030012343, ISSN: 0000-0365, se refiere a la normalización de la codificación de imágenes en movimiento y audio. Se proporcionan definiciones de una norma internacional, tal como una lista de índices de referencia, y se comentan técnicas comunes de obtener en modo directo parámetros de movimiento y vector de movimiento.
JVT: “B Picture Design Output Document”, 4. JVT MEETING; 61. MPEG MEETING; 22-07-2002 - 26-07-2002; KLAGEN FURT, AT; (JOINT VIDEO TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16), n.° JVT-D155, 26 de julio de 2002 (26-07-2002), XP030005418, ISSN: 0000-0439, se refiere a modificaciones sugeridas de la descripción de imágenes B dentro de la norma JVT según las decisiones del 4° JVT en Klagenfurt, Austria. Las cuestiones comentadas incluyen la predicción de vector de movimiento, predicción bipredictiva adaptativa y modo directo y se describen en detalle.
LI S ET AL: “Direct Mode Coding for Bipredictive Slices in the H.264 Standard”, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, EE.UU., vol. 15, n.° 1, 1 de enero de 2005 (01-01-2005), páginas 119-126, XP011124673, ISSN: 1051-8215, DOI: 10.1109/TCSVT. 2004.837021 se refiere a codificación en modo directo para trama bipredictivas en la norma de codificación de vídeo H.264 (MPEG-4 AVC). Se comentan un modo espacial y dos modos de codificación espaciotemporales, o bien a nivel de MB o bien de imagen/trama, para modos directos dentro de la norma H.264.
Sumario
Un objetivo en un aspecto de la realización es proporcionar un aparato de decodificación de vídeo, un aparato de codificación de vídeo, un método de decodificación de vídeo, un método de codificación de vídeo y un medio de almacenamiento que almacene código de programa que hagan posible mejorar la exactitud de un predictor de vector.
Según un aspecto de la invención, se proporciona un aparato de decodificación de vídeo que incluye una unidad de almacenamiento de lista de imágenes de referencia configurada para almacenar información de imagen de imágenes; una unidad de almacenamiento de información de vector de movimiento configurada para almacenar información de vector de movimiento que incluye vectores de movimiento de bloques que son adyacentes en el espacio y en el tiempo a un bloque objetivo que va a decodificarse e identificadores de imagen de referencia que indican imágenes a las que hacen referencia los vectores de movimiento; y una unidad de generación de predictor de vector configurada para ajustar a escala un candidato de predictor de vector para un vector de movimiento del bloque objetivo basándose en la información de imagen y la información de vector de movimiento y para corregir el candidato de predictor de vector ajustado a escala hacia 0 en una cantidad predeterminada.
Breve descripción de los dibujos
La figura 1 es un dibujo que ilustra bloques adyacentes en el espacio a un bloque objetivo;
la figura 2 es un dibujo usado para describir un procedimiento de seleccionar un candidato de predictor de vector a partir de un bloque adyacente en el tiempo a un bloque objetivo;
la figura 3 es un dibujo que ilustra una relación entre mvp' y mvCol;
la figura 4 es un gráfico que ilustra una distribución de probabilidades de aparición de mv cuando mvp' es positivo; la figura 5 es un gráfico que ilustra una distribución de probabilidades de aparición de mv cuando mvp' es negativo; la figura 6 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de un aparato de decodificación de vídeo según una primera realización;
la figura 7 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de una unidad de generación de predictor de vector según la primera realización;
la figura 8 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de una unidad de operación de ajuste a escala según la primera realización;
la figura 9 es un diagrama de bloques que ilustra configuraciones a modo de ejemplo (1) de componentes de una unidad de operación de ajuste a escala;
la figura 10 es un diagrama de bloques que ilustra configuraciones a modo de ejemplo (2) de componentes de una unidad de operación de ajuste a escala;
la figura 11 es un dibujo usado para describir operaciones de una unidad de operación de ajuste a escala;
la figura 12 es un diagrama de bloques que ilustra configuraciones a modo de ejemplo (3) de componentes de una unidad de operación de ajuste a escala;
la figura 13 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo realizado por un aparato de decodificación de vídeo de la primera realización;
la figura 14 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo (1) realizado por una unidad de generación de predictor de vector de la primera realización;
la figura 15 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo (2) realizado por una unidad de generación de predictor de vector de la primera realización;
la figura 16 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de una unidad de generación de predictor de vector según una segunda realización;
la figura 17 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo realizado por una unidad de generación de predictor de vector de la segunda realización;
la figura 18 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de una unidad de generación de predictor de vector según una tercera realización;
la figura 19 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo (1) realizado por una unidad de generación de predictor de vector de la tercera realización;
la figura 20 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo (2) realizado por una unidad de generación de predictor de vector de la tercera realización;
la figura 21 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de una unidad de generación de predictor de vector según una cuarta realización;
la figura 22 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo (1) realizado por una unidad de generación de predictor de vector de la cuarta realización;
la figura 23 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo (2) realizado por una unidad de generación de predictor de vector de la cuarta realización;
la figura 24 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de un aparato de codificación de vídeo según una quinta realización;
la figura 25 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo realizado por un aparato de codificación de vídeo de la quinta realización; y
la figura 26 es un dibujo que ilustra una configuración a modo de ejemplo de un aparato de procesamiento de imágenes.
Descripción de realizaciones
En HEVC y H.264, el movimiento entre tramas se representa por vectores de movimiento de bloques respectivos. Generalmente, cuando se genera un predictor de vector a partir de un bloque adyacente en el tiempo, se ajusta a escala el vector de movimiento del bloque adyacente en el tiempo. En este caso, una diferencia T1 entre el tiempo de visualización de una imagen objetivo y el tiempo de visualización de una imagen a la que hace referencia el vector de movimiento de un bloque objetivo es diferente de una diferencia T2 entre el tiempo de visualización de una imagen que incluye un bloque adyacente en el tiempo y el tiempo de visualización de una imagen a la que hace referencia el vector de movimiento del bloque adyacente en el tiempo.
Por tanto, el vector de movimiento del bloque adyacente en el tiempo se ajusta a escala mediante la razón entre la diferencia T1 y la diferencia T2 (T1/T2) de modo que la cantidad de movimiento por unidad de tiempo se vuelve constante. Sin embargo, con un método tal como se indica por las fórmulas (12) y (13) en el que el vector de movimiento se ajusta a escala usando un factor de ajuste a escala que tiene una determinada precisión tras la coma decimal y un predictor de vector se representa por números enteros más próximos al vector de movimiento ajustado a escala, es difícil mejorar la exactitud del predictor de vector.
Un aspecto de esta divulgación hace posible mejorar la exactitud de un predictor de vector.
Los inventores estudiaron la exactitud de predictores de vectores. La figura 3 es un dibujo que ilustra una relación entre mvp' y mvCol. En la figura 3, mvCol 22 indica un vector de movimiento de un bloque (ColBlock 21) que es adyacente en el tiempo a un bloque 11 objetivo que va a procesarse, y mv indica un vector de movimiento del bloque 11 objetivo.
También en la figura 3, mvp' indica un vector de movimiento (candidato de predictor de vector) obtenido ajustando a escala el mvCol 22 por la razón (T1/T2) descrita anteriormente con precisión infinita de números reales. Es decir, mvp' se representa mediante la siguiente fórmula (14).
mvp' = mvCol x (T1/T2) ... fórmula (14)
Cuando se selecciona un candidato de predictor de vector que es igual a mv como predictor de vector, el vector diferencia pasa a ser “0” y, como resultado, se mejora la eficiencia de codificación. Por tanto, es importante hacer que mvp' pase a ser igual o próximo a mv con el fin de mejorar la eficiencia de codificación. Los inventores estudiaron diferencias entre mvp' y mv.
La figura 4 es un gráfico que ilustra una distribución de probabilidades de aparición de mv cuando mvp' es positivo. La distribución de probabilidades de la figura 4 se basa en las componentes horizontales de vectores. La figura 5 es un gráfico que ilustra una distribución de probabilidades de aparición de mv cuando mvp' es negativo. La distribución de probabilidades de la figura 5 también se basa en las componentes horizontales de vectores.
Cuando se compara mvp' obtenido ajustando a escala el mvCol 22 con mv, tal como se ilustra en las figuras 4 y 5, la frecuencia de aparición de mv es la más alta en un punto ligeramente más cerca que mvp' del vector 0. Por este motivo, en las realizaciones descritas a continuación, un candidato de predictor de vector ajustado a escala mediante un factor de ajuste a escala se corrige hacia el vector 0.
A continuación se describen realizaciones preferidas de la presente invención con referencia a los dibujos adjuntos.
«PRIMERA REALIZACIÓN»
<CONFIGURACIÓN>
La figura 6 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de un aparato 100 de decodificación de vídeo según una primera realización. Tal como se ilustra en la figura 6, el aparato 100 de decodificación de vídeo puede incluir una unidad 101 de decodificación por entropía, una unidad 102 de almacenamiento de lista de imágenes de referencia, una unidad 103 de almacenamiento de información de vector de movimiento, una unidad 104 de generación de predictor de vector, una unidad 105 de restauración de vector de movimiento, una unidad 106 de generación de píxel predicho, una unidad 107 de cuantificación inversa, una unidad 108 de transformación ortogonal inversa, una unidad 109 de generación de píxel decodificado y una unidad 110 de almacenamiento de imagen decodificada.
La unidad 101 de decodificación por entropía realiza decodificación por entropía en un flujo comprimido, y de ese modo decodifica índices de referencia, vectores diferencia e índices de candidato de predictor para L0 y L1 de un bloque objetivo y un coeficiente de transformación ortogonal.
La unidad 102 de almacenamiento de lista de imágenes de referencia almacena información de imagen que incluye POC de imágenes incluyendo imágenes de referencia a las que puede hacer referencia un bloque objetivo, y también almacena ubicaciones de almacenamiento de datos de imagen.
La unidad 103 de almacenamiento de información de vector de movimiento almacena información de vector de movimiento que incluye vectores de movimiento de bloques que son adyacentes en el tiempo y en el espacio a un bloque objetivo e identificadores de imagen de referencia que indican imágenes a las que hacen referencia los vectores de movimiento. La información de vector de movimiento se genera por la unidad 105 de restauración de vector de movimiento.
La unidad 104 de generación de predictor de vector obtiene los índices de referencia (identificadores de imagen de referencia) de L0 y L1 a partir de la unidad 101 de decodificación por entropía, y genera listas de candidatos de predictor de vector para un vector de movimiento del bloque objetivo. Más adelante se describen detalles de la unidad 104 de generación de predictor de vector.
La unidad 105 de restauración de vector de movimiento obtiene los índices de candidato de predictor y los vectores diferencia para L0 y L1 a partir de la unidad 101 de decodificación por entropía, y añade candidatos de predictor de vector indicados por los índices de candidato de predictor a los vectores diferencia correspondientes para restaurar vectores de movimiento.
La unidad 106 de generación de píxel predicho genera una señal de píxel predicho usando los vectores de movimiento restaurados y una imagen decodificada almacenada en la unidad 110 de almacenamiento de imagen decodificada.
La unidad 107 de cuantificación inversa realiza la cuantificación inversa en el coeficiente de transformación ortogonal obtenido a partir de la unidad 101 de decodificación por entropía. La unidad 108 de transformación ortogonal inversa genera una señal de error de predicción realizando la transformación ortogonal inversa en una señal sometida a cuantificación inversa emitida a partir de la unidad 107 de cuantificación inversa. La señal de error de predicción se emite a la unidad 109 de generación de píxel decodificado.
La unidad 109 de generación de píxel decodificado añade la señal de píxel predicho y la señal de error de predicción para generar píxeles decodificados.
La unidad 110 de almacenamiento de imagen decodificada almacena una imagen decodificada que incluye los píxeles decodificados generados por la unidad 109 de generación de píxel decodificado. La imagen decodificada almacenada en la unidad 110 de almacenamiento de imagen decodificada se emite a una unidad de visualización.
A continuación, se describe en más detalle la unidad 104 de generación de predictor de vector. La figura 7 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de la unidad 104 de generación de predictor de vector según la primera realización. Tal como se ilustra en la figura 7, la unidad 104 de generación de predictor de vector puede incluir una unidad 201 de cálculo de factor de ajuste a escala, una unidad 202 de obtención de información de vector y una unidad 203 de operación de ajuste a escala.
La unidad 104 de generación de predictor de vector recibe un identificador de imagen de referencia de un bloque objetivo e información de POC de una imagen objetivo. En este caso, LX indica un identificador de lista de referencia y refidx indica un índice de referencia incluido en el identificador de imagen de referencia del bloque objetivo.
La unidad 103 de almacenamiento de información de vector de movimiento almacena información de vector de movimiento para bloques anteriormente procesados. La información de vector de movimiento de un vector de movimiento incluye un identificador de una imagen a la que pertenece un bloque que incluye el vector de movimiento, un identificador (identificador de imagen de referencia) de una imagen a la que hace referencia el vector de movimiento, y valores de componentes horizontal y vertical del vector de movimiento.
La unidad 202 de obtención de información de vector obtiene información de vector de movimiento de un bloque que es adyacente a un bloque objetivo a partir de la unidad 103 de almacenamiento de información de vector de movimiento. La información de vector de movimiento incluye un vector de movimiento, un identificador de una imagen a la que pertenece el bloque que incluye el vector de movimiento y un identificador de imagen de referencia de una imagen de referencia a la que hace referencia el vector de movimiento.
La unidad 202 de obtención de información de vector obtiene de manera secuencial información de vector de movimiento de bloques que son adyacentes en el espacio y en el tiempo a un bloque objetivo. Tal como se describió anteriormente, en primer lugar se busca un vector de movimiento de un bloque a la izquierda del bloque objetivo. La unidad 202 de obtención de información de vector busca un vector de movimiento 1 con el identificador de lista LX y el índice de referencia refidx, y selecciona el vector de movimiento 1 si se encuentra.
Si no se encuentra el vector de movimiento 1, la unidad 202 de obtención de información de vector busca un vector de movimiento 2 que hace referencia a una imagen de referencia que está en una lista de imágenes de referencia LY y es la misma que la imagen de referencia indicada por el índice de referencia refidx de la lista de imágenes de referencia LX. Si se encuentra el vector de movimiento 2, la unidad 202 de obtención de información de vector selecciona el vector de movimiento 2.
Si no se encuentra el vector de movimiento 2, la unidad 202 de obtención de información de vector busca un vector de movimiento 3 para inter-predicción. Si se encuentra el vector de movimiento 3, la unidad 202 de obtención de información de vector selecciona el vector de movimiento 3. Si el vector de movimiento seleccionado en este procedimiento no hace referencia a una imagen de referencia que es la misma que la imagen de referencia indicada por el índice de referencia refidx de la lista de imágenes de referencia LX, se realiza un procedimiento de ajuste a escala. La unidad 202 de obtención de información de vector emite información de vector de movimiento obtenida de un vector de movimiento seleccionado a la unidad 201 de cálculo de factor de ajuste a escala.
La unidad 201 de cálculo de factor de ajuste a escala recibe la información de vector de movimiento a partir de la unidad 202 de obtención de información de vector, obtiene los POC de imágenes relacionadas a partir de la unidad 102 de almacenamiento de lista de imágenes de referencia, y calcula un factor de ajuste a escala.
En este caso, CurrPoc indica el POC de una imagen objetivo. La unidad 201 de cálculo de factor de ajuste a escala obtiene, a partir de la unidad 102 de almacenamiento de lista de imágenes de referencia, el POC (CurrRefPoc) de una imagen a la que hace referencia el bloque objetivo, el POC (ColPicPoc) de una imagen a la que pertenece un vector de movimiento que va a ajustarse a escala, y el POC (ColRefPoc) de una imagen a la que hace referencia el vector de movimiento.
La unidad 201 de cálculo de factor de ajuste a escala calcula un factor de ajuste a escala usando las siguientes fórmulas.
DiffPocD = ColPicPoc-ColRefPoc ... fórmula (6)
DiffPocB = CurrPoc-CurrRefPoc ... fórmula (7)
TDB = Clip3 (-128, 127, DiffPocB) ... fórmula (8)
TDD = Clip3 (-128, 127, DiffPocD) ... fórmula (9)
iX = (0x4000 abs(TDD/2)) / TDD ... fórmula (10)
Escala = Clip3 (-1024, 1023, (TDBxiX+32)>>6) ... fórmula (11)
abs (x): una función que devuelve un valor absoluto de x
Clip3 (x, y, z): una función que devuelve a median de x, y y z
>>: desplazamiento aritmético a la derecha
El factor de ajuste a escala calculado, Escala, tiene una precisión de 8 bits tras la coma decimal. La unidad 201 de cálculo de factor de ajuste a escala emite el factor de ajuste a escala calculado, Escala, a la unidad 203 de operación de ajuste a escala.
La unidad 203 de operación de ajuste a escala ajusta a escala el vector de movimiento basándose en la información de vector de movimiento recibida a partir de la unidad 202 de obtención de información de vector y el factor de ajuste a escala recibido a partir de la unidad 201 de cálculo de factor de ajuste a escala.
La figura 8 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de la unidad 203 de operación de ajuste a escala de la primera realización. La unidad 203 de operación de ajuste a escala recibe un factor de ajuste a escala a partir de la unidad 201 de cálculo de factor de ajuste a escala y un vector de movimiento (mvcx, mvcy) que va a ajustarse a escala a partir de la unidad 202 de obtención de información de vector. El vector de movimiento (mvcx, mvcy) que va a ajustarse a escala puede denominarse candidato de predictor de vector previo al ajuste a escala. La unidad 203 de operación de ajuste a escala emite un vector de movimiento ajustado a escala (mvcx', mvcy'). El vector de movimiento ajustado a escala (mvcx', mvcy') puede denominarse candidato de predictor de vector ajustado a escala.
Tal como se ilustra en la figura 8, la unidad 203 de operación de ajuste a escala puede incluir una unidad 301 de ajuste a escala, una unidad 302 de corrección y una unidad 303 de ajuste. La unidad 301 de ajuste a escala multiplica el candidato de predictor de vector previamente ajustado a escala por un factor de ajuste a escala con una precisión predeterminada tras la coma decimal para obtener un candidato de predictor de vector ajustado a escala. Por consiguiente, la precisión tras la coma decimal del candidato de predictor de vector ajustado a escala se aumenta hasta la precisión tras la coma decimal del factor de ajuste a escala.
La unidad 302 de corrección corrige (o ajusta) el candidato de predictor de vector ajustado a escala hacia 0 (o el vector 0) en una cantidad predeterminada. La unidad 303 de ajuste redondea el candidato de predictor de vector ajustado a escala y corregido a los números enteros más próximos. A continuación se describen operaciones detalladas de la unidad 301 de ajuste a escala, la unidad 302 de corrección y la unidad 303 de ajuste.
La unidad 301 de ajuste a escala multiplica el vector de movimiento (mvcx, mvcy) por el factor de ajuste a escala, Escala. Cuando el factor de ajuste a escala tiene una precisión de N bits tras la coma decimal, la precisión tras la coma decimal del vector de movimiento multiplicado (o ajustado a escala) se aumenta hasta N bits.
La unidad 302 de corrección resta una cantidad predeterminada “a” de los valores absolutos del vector de movimiento ajustado a escala para corregir el vector de movimiento ajustado a escala hacia 0. La unidad 303 de ajuste añade 2N-1 a los valores (o componentes) del vector de movimiento corregido y desplaza los resultados de adición a la derecha N bits para redondear los valores hasta los números enteros más próximos. Después, la unidad 303 de ajuste multiplica los valores redondeados por un signo del vector de movimiento ajustado a escala.
La operación de ajuste a escala anterior realizada por la unidad 203 de operación de ajuste a escala se representa mediante las siguientes fórmulas (15) y (16).
mvcx' = sign(Escala x mvcx) x {(abs(Escala x mvcx) - a 2N-1) >> N} ... fórmula (15) mvcy' = sign(Escala x mvcy) x {(abs(Escala x mvcy) - a 2N-1) >> N} ... fórmula (16) abs (): una función que devuelve un valor absoluto
sign(): una función que devuelve un signo (1 o -1)
En las fórmulas (15) y (16), se obtienen valores absolutos del vector de movimiento ajustado a escala (Escala x mvcx, Escala x mvcy) antes de restar la cantidad predeterminada “a”. Esto es para corregir los valores del vector de movimiento ajustado a escala hacia 0 independientemente de si los valores son positivos o negativos. Con las fórmulas (15) y (16), el vector de movimiento ajustado a escala se corrige hacia el vector 0 en la cantidad predeterminada “a”. Corregir los vectores de movimiento ajustados a escala hacia 0 en la cantidad predeterminada “a” hace posible realizar un promedio de candidatos de predictor de vector emitidos por la unidad 203 de operación de ajuste a escala cerca de 0.
Cuando N=8, las fórmulas (15) y (16) pueden volver a escribirse para dar las siguientes fórmulas (17) y (18).
mvcx' = sign(Escala x mvcx) x {(abs(Escala x mvcx) - a 128) >> N} ... fórmula (17) mvcy' = sign(Escala x mvcy) x {(abs(Escala x mvcy) - a 128) >> N} ... fórmula (18) Mediante experimentos, los inventores encontraron que la eficiencia de codificación mejora cuando la cantidad predeterminada “a” está dentro de un intervalo de 1áaá2N-2. Por tanto, cuando, por ejemplo, N=8, la cantidad predeterminada “a” está preferiblemente dentro de un intervalo de 1áaá64.
La cantidad predeterminada “a” puede establecerse a un valor fijado seleccionado del intervalo de 1 á a á 2N-2. Alternativamente, puede determinarse de manera dinámica un valor óptimo para la cantidad predeterminada “a” dependiendo de una escena o del factor de ajuste a escala. Más adelante se describe un método a modo de ejemplo de cambiar de manera dinámica el valor de la cantidad predeterminada “a” dependiendo del factor de ajuste a escala.
La figura 9 es un diagrama de bloques que ilustra configuraciones a modo de ejemplo (1) de componentes de la unidad 203 de operación de ajuste a escala. A continuación, se describen cálculos realizados por los componentes de la unidad 203 de operación de ajuste a escala usando mvcx en un vector de movimiento (mvcx, mvcy). También pueden realizarse cálculos similares para mvcy. En el ejemplo de la figura 9, la unidad 301 de ajuste a escala calcula (Escala x mvcx) en la fórmula (15).
La unidad 302 de corrección obtiene el valor absoluto abs(Escala x mvcx) de (Escala x mvcx), y resta la cantidad predeterminada “a” del valor absoluto. La unidad 302 de corrección también calcula sign(Escala x mvcx) para obtener el signo de (Escala x mvcx).
La unidad 303 de ajuste añade 2 ' a “abs(Escala x mvcx)-a”, y desplaza “abs(Escala x mvcx)-a+2N-1” N bits. A continuación, la unidad 303 de ajuste multiplica el valor desplazado por el signo de (Escala x mvcx) para obtener mvcx'. De una manera similar, se obtiene mvcy'. Después, la unidad 303 de ajuste emite el vector de movimiento ajustado a escala (mvcx', mvcy') como candidato de predictor de vector.
La figura 10 es un diagrama de bloques que ilustra configuraciones a modo de ejemplo (2) de componentes de la unidad 203 de operación de ajuste a escala. En el ejemplo de la figura 10, una unidad 304 de corrección añade “2N‘1-a” a abs(Escala x mvcx).
Una unidad 305 de ajuste desplaza “abs(Escala x mvcx)+(a+2N-1)” emitido a partir de la unidad 304 de corrección N bits, y multiplica el valor desplazado por el signo de (Escala x mvcx). Las operaciones de la unidad 301 de ajuste a escala de la figura 10 son sustancialmente las mismas que las de la unidad 301 de ajuste a escala de la figura 9. La figura 11 es un dibujo usado para describir un procedimiento a modo de ejemplo realizado por la unidad 203 de operación de ajuste a escala. En el ejemplo de la figura 11, se supone que un flujo de entrada es un vídeo comprimido de un objeto estacionario. Aunque un objeto en el vídeo sea estacionario, existe un caso en el que se selecciona un pequeño vector de movimiento que no es 0 debido a ruidos en las imágenes.
Se supone un caso en el que un vector de movimiento adyacente en el tiempo no es 0 aunque un flujo de entrada es completamente estacionario y se espera un vector 0. En este ejemplo, se supone que un vector de movimiento adyacente en el tiempo (mvcx, mvcy) es (2, 0) (es decir, movimiento de 2/4 píxeles y 0 píxeles) y el vector de movimiento adyacente en el tiempo (mvcx, mvcy) se ajusta a escala a un cuarto mediante un factor de ajuste a escala, Escala = 64. En este caso, dado que mvcx/4=0,5, se selecciona o bien mvcx'=0 o bien mvcx'=1 para un candidato de predictor de vector que va a emitirse.
Cuando se usa el método de operación de ajuste a escala de las fórmulas (12) y (13), se selecciona mvcx'=1 (candidato de predictor de vector 2 en la figura 11). Mientras tanto, en la unidad 203 de operación de ajuste a escala de la presente realización que usa las fórmulas (15) y (16), la unidad 301 de ajuste a escala emite 2(mvcx) x 64(Escala)=128. La unidad 302 de corrección calcula 128-a+128=256-a. Cuando “a” está dentro del intervalo anteriormente descrito, la unidad 303 de ajuste desplaza “256-a” 8 bits y emite mvcx'=0 (candidato de predictor de vector 1 en la figura 11).
Por tanto, la unidad 203 de operación de ajuste a escala de la presente realización puede obtener (mvcx', mvcy') = (0, 0), es decir, un candidato de predictor de vector estacionario que se espera.
En este caso, cuando N0 que indica el número de veces que mv se representa por (0, 0) es mayor que N1 que indica el número de veces que mv se representa por (1, 0) (N0 > N1), indica que, en comparación con la técnica relacionada, la presente realización hace posible aumentar el número de veces que el predictor de vector se representa por el vector 0. Esto a su vez hace posible reducir la cantidad de código de vectores diferencia y mejorar la eficiencia de codificación.
También puede usarse otro método de operación de ajuste a escala tal como se describe a continuación. La figura 12 es un diagrama de bloques que ilustra configuraciones a modo de ejemplo (3) de componentes de la unidad 203 de operación de ajuste a escala. En el ejemplo de la figura 12, la cantidad predeterminada “a” se calcula basándose en la magnitud del factor de ajuste a escala. En este caso, “2N"1-a” se denomina desfase.
En la figura 12, una unidad 306 de corrección incluye una unidad 361 de cálculo de desfase. La unidad 361 de cálculo de desfase obtiene el factor de ajuste a escala a partir de la unidad 301 de ajuste a escala, calcula la cantidad predeterminada “a” basándose en la magnitud del factor de ajuste a escala, y calcula el desfase (2N-1-a). Por ejemplo, la unidad 361 de cálculo de desfase calcula la cantidad predeterminada “a” usando la siguiente fórmula (19).
a = MIN(2n-2, abs(Escala) >> 3) ... fórmula (19)
MIN (x, y): una función que devuelve el más pequeño de x e y
Con la fórmula (19), cuando el valor absoluto del factor de ajuste a escala, Escala, se vuelve grande, la cantidad predeterminada “a” también se vuelve grande y el valor ajustado a escala se corrige hacia el vector 0 en un mayor grado. Dicho de otro modo, la fórmula (19) indica que la cantidad predeterminada “a” aumenta hasta 2N-2 a medida que aumenta el factor de ajuste a escala.
Tal como se describió anteriormente, corregir un candidato de predictor de vector ajustado a escala hacia el vector 0 hace posible mejorar la exactitud de un predictor de vector.
<OPERACIONES>
A continuación, se describen operaciones a modo de ejemplo del aparato 100 de decodificación de vídeo de la primera realización. La figura 13 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo realizado por el aparato 100 de decodificación de vídeo de la primera realización. En el procedimiento de la figura 13, se decodifica un bloque, que es una unidad de procesamiento.
En la etapa S101, la unidad 101 de decodificación por entropía realiza decodificación por entropía en los datos de flujo de entrada, y de ese modo decodifica un índice de referencia, un vector diferencia y un índice de candidato de predictor para l0 del bloque objetivo; un índice de referencia, un vector diferencia y un índice de candidato de predictor para L1 del bloque objetivo; y un coeficiente de transformación ortogonal.
En la etapa S102, la unidad 104 de generación de predictor de vector genera listas (listas de candidatos de predictor de vector) de candidatos de predictor de vector para L0 y L1 basándose en los índices de referencia decodificados de L0 y L1 e información de vector de movimiento.
En la etapa S103, la unidad 105 de restauración de vector de movimiento obtiene los índices de candidato de predictor y los vectores diferencia de L0 y L1 que se decodifican por la unidad 101 de decodificación por entropía. La unidad 105 de restauración de vector de movimiento identifica predictores de vectores para L0 y L1 a partir de las listas de candidatos de predictor de vector basándose en los índices de candidato de predictor. Después, la unidad 105 de restauración de vector de movimiento añade los predictores de vectores identificados y los vectores diferencia para restaurar vectores de movimiento de L0 y L1 (vectores de movimiento de L0 y L1).
En la etapa S104, la unidad 105 de restauración de vector de movimiento almacena información de vector de movimiento que incluye los índices de referencia para los vectores de movimiento restaurados de L0 y L1 en la unidad 103 de almacenamiento de información de vector de movimiento. La información almacenada se usa en el siguiente procedimiento de decodificación de bloque.
En la etapa S105, la unidad 106 de generación de píxel predicho obtiene el vector de movimiento de L0 y el vector de movimiento de L1, obtiene datos de píxel de regiones a las que hacen referencia los vectores de movimiento a partir de la unidad 110 de almacenamiento de imagen decodificada, y genera una señal de píxel predicho.
En la etapa S106, la unidad 107 de cuantificación inversa realiza la cuantificación inversa en el coeficiente de transformación ortogonal decodificado por la unidad 101 de decodificación por entropía.
En la etapa S107, la unidad 108 de transformación ortogonal inversa genera una señal de error de predicción realizando transformación ortogonal inversa en la señal sometida a cuantificación inversa.
Las etapas S102 a S104 y las etapas S106 y S107 no se realizan necesariamente en el orden descrito anteriormente, y pueden realizarse en paralelo.
En la etapa S108, la unidad 109 de generación de píxel decodificado añade la señal de píxel predicho y la señal de error de predicción para generar píxeles decodificados.
En la etapa S109, la unidad 110 de almacenamiento de imagen decodificada almacena una imagen decodificada que incluye los píxeles decodificados. El procedimiento de decodificación de un bloque se completa mediante las etapas anteriores, y las etapas se repiten para decodificar el siguiente bloque.
A continuación, se describen adicionalmente las operaciones de la unidad 104 de generación de predictor de vector. <CANDIDATOS DE PREDICTOR DE VECTOR DE BLOQUES ADYACENTES EN EL ESPACIO>
Se describe un procedimiento a modo de ejemplo de generar candidatos de predictor de vector de bloques adyacentes en el espacio al bloque objetivo. La figura 14 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo (1) realizado por la unidad 104 de generación de predictor de vector de la primera realización. En la etapa S201 de la figura 14, la unidad 202 de obtención de información de vector obtiene de manera secuencial información de vector de movimiento (de vectores de movimiento seleccionados) de bloques (bloques superior e izquierdo) que son adyacentes en el espacio al bloque objetivo. La información de vector de movimiento se obtiene de una manera tal como se describió anteriormente.
En la etapa S202, la unidad 202 de obtención de información de vector determina si se ha seleccionado un vector de movimiento deseado, que hace referencia a una imagen de referencia que es la misma que la imagen de referencia indicada por el índice de referencia refidx de la lista de imágenes de referencia LX. Si se ha seleccionado el vector de movimiento deseado (SÍ en la etapa S202), el procedimiento avanza a la etapa S205. Mientras tanto, si no se ha seleccionado el vector de movimiento deseado (NO en la etapa S202), el procedimiento avanza a la etapa S203. En la etapa S203, la unidad 201 de cálculo de factor de ajuste a escala calcula un factor de ajuste a escala usando las fórmulas (6) a (11) descritas anteriormente.
En la etapa S204, la unidad 203 de operación de ajuste a escala ajusta a escala un vector de movimiento (que se selecciona por la unidad 202 de obtención de información de vector y es diferente del vector de movimiento deseado) usando el factor de ajuste a escala calculado, corrige el vector de movimiento ajustado a escala hacia el vector 0 en una cantidad predeterminada, y realiza un desplazamiento de bits en el vector de movimiento corregido. En la etapa S205, la unidad 203 de operación de ajuste a escala emite el vector de movimiento ajustado a escala y corregido como candidato de predictor de vector. Mientras tanto, cuando se ha seleccionado el vector de movimiento deseado, la unidad 203 de operación de ajuste a escala emite el vector de movimiento deseado como candidato de predictor de vector sin realizar la operación de ajuste a escala.
<CANDIDATOS DE PREDICTOR DE VECTOR DE BLOQUES ADYACENTES EN EL TIEMPO>
A continuación, se describe un procedimiento a modo de ejemplo de generar candidatos de predictor de vector de bloques adyacentes en el tiempo al bloque objetivo. La figura 15 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo (2) realizado por la unidad 104 de generación de predictor de vector de la primera realización.
En la etapa S301 de la figura 15, la unidad 202 de obtención de información de vector obtiene información de vector de movimiento (de un vector de movimiento seleccionado) de un bloque (bloque adyacente en el tiempo) que es adyacente en el tiempo al bloque objetivo. La información de vector de movimiento se obtiene de una manera tal como se describió anteriormente.
En la etapa S302, la unidad 201 de cálculo de factor de ajuste a escala calcula un factor de ajuste a escala, Escala, usando las fórmulas (6) a (11) descritas anteriormente.
En la etapa S303, la unidad 201 de cálculo de factor de ajuste a escala determina si el factor de ajuste a escala calculado, Escala, es 1. Si el factor de ajuste a escala no es 1 (NO en la etapa S303), el procedimiento avanza a la etapa S304. Mientras tanto, si el factor de ajuste a escala es 1 (SÍ en la etapa S303), el procedimiento avanza a la etapa S305.
En la etapa S304, la unidad 304 de operación de ajuste a escala ajusta a escala el vector de movimiento seleccionado usando el factor de ajuste a escala calculado, corrige el vector de movimiento ajustado a escala hacia el vector 0 en una cantidad predeterminada, y realiza un desplazamiento de bits en el vector de movimiento corregido.
En la etapa S305, la unidad 203 de operación de ajuste a escala emite el vector de movimiento ajustado a escala y corregido como candidato de predictor de vector. Mientras tanto, cuando el factor de ajuste a escala es 1, la unidad 203 de operación de ajuste a escala emite el vector de movimiento seleccionado como candidato de predictor de vector sin realizar la operación de ajuste a escala.
Por tanto, según la primera realización, un candidato de predictor de vector se corrige hacia el vector 0. Este método o configuración hace posible mejorar la exactitud de predictores de vectores, reducir la cantidad de código de vectores diferencia, y de ese modo mejorar la eficiencia de codificación.
«SEGUNDA REALIZACIÓN»
A continuación, se describe un aparato de decodificación de vídeo según una segunda realización. En la segunda realización, se realizan diferentes operaciones de ajuste a escala dependiendo de si una imagen que incluye un vector de movimiento usado como un candidato de predictor de vector es adyacente en el espacio o adyacente en el tiempo al bloque objetivo.
<CONFIGURACIÓN>
Los componentes del aparato de decodificación de vídeo de la segunda realización, excluyendo una unidad 400 de generación de predictor de vector, son sustancialmente los mismos que los del aparato 100 de decodificación de vídeo de la primera realización. Por tanto, a continuación se describe principalmente la unidad 400 de generación de predictor de vector.
La figura 16 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de la unidad 400 de generación de predictor de vector según la segunda realización. En la configuración a modo de ejemplo de la figura 16, la unidad 400 de generación de predictor de vector puede incluir una unidad 201 de cálculo de factor de ajuste a escala, una unidad 202 de obtención de información de vector, una unidad 401 de determinación de bloque y unidades A402 y B403 de operación de ajuste a escala que se conmutan de manera adaptativa. Se asignan los mismos números de referencia que en la primera realización a los componentes correspondientes en la figura 16, y en este caso se omiten descripciones de esos componentes.
La unidad 401 de determinación de bloque determina si un bloque que incluye un vector de movimiento usado para generar un candidato de predictor de vector es adyacente en el espacio o adyacente en el tiempo al bloque objetivo. La unidad 401 de determinación de bloque selecciona la unidad A402 de operación de ajuste a escala cuando el bloque es adyacente en el tiempo al bloque objetivo y selecciona la unidad B403 de operación de ajuste a escala cuando el bloque es adyacente en el tiempo al bloque objetivo.
La unidad A402 de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (15) y (16) sustancialmente de la misma manera que la unidad 203 de operación de ajuste a escala de la primera realización, y de ese modo corrige un candidato de predictor de vector ajustado a escala.
Mientras tanto, la unidad B403 de operación de ajuste a escala realiza una operación de ajuste a escala en un candidato de predictor de vector usando las fórmulas (12) y (13). Por tanto, un vector de movimiento generado por una de las unidades A402 y B403 de operación de ajuste a escala se usa como candidato de predictor de vector. La configuración de la segunda realización se basa en una suposición de que la tendencia de la distribución de probabilidades de aparición de mv difiere dependiendo de si un bloque que incluye un vector de movimiento usado para generar un candidato de predictor de vector es adyacente en el espacio o adyacente en el tiempo al bloque objetivo. En este caso, la información que indica si un bloque es adyacente en el espacio o adyacente en el tiempo al bloque objetivo se denomina información de adyacencia.
Por ejemplo, cuando un bloque que incluye un vector de movimiento es adyacente en el tiempo al bloque objetivo, la probabilidad de que el vector de movimiento se ajuste a escala es alta. Por tanto, en este caso, es preferible corregir el vector de movimiento tal como se describe en la primera realización para mejorar la eficiencia de codificación. Mientras tanto, cuando un bloque que incluye un vector de movimiento es adyacente en el espacio al bloque objetivo, la probabilidad de que el vector de movimiento se ajuste a escala es baja. Por tanto, en este caso, ajustar a escala el vector de movimiento usando las fórmulas (12) y (13) puede no provocar un problema.
Aunque se usan varias unidades de operación de ajuste a escala en el ejemplo de la figura 16, la segunda realización también puede implementarse usando una unidad de operación de ajuste a escala. En este caso, la unidad 401 de determinación de bloque envía la información de adyacencia a la unidad de operación de ajuste a escala.
La unidad de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (15) y (16) si la información de adyacencia indica que el bloque es adyacente en el tiempo al bloque objetivo, y realiza una operación de ajuste a escala excluyendo la resta de la cantidad predeterminada “a” en las fórmulas (15) y (16) si la información de adyacencia indica que el bloque es adyacente en el espacio al bloque objetivo.
Por tanto, la segunda realización también puede implementarse usando una unidad de operación de ajuste a escala que determina si restar la cantidad predeterminada “a” de un vector de movimiento ajustado a escala basándose en el resultado de determinación de la unidad 401 de determinación de bloque.
<OPERACIONES>
A continuación se describen operaciones a modo de ejemplo del aparato de decodificación de vídeo de la segunda realización. El procedimiento de decodificación realizado por el aparato de decodificación de vídeo de la segunda realización es sustancialmente el mismo que el ilustrado en la figura 13, y por tanto sus descripciones se omiten en este caso.
La figura 17 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo realizado por la unidad 400 de generación de predictor de vector de la segunda realización.
En la etapa S401, la unidad 400 de generación de predictor de vector determina si un bloque que incluye un vector de movimiento usado para un candidato de predictor de vector es adyacente en el espacio o adyacente en el tiempo al bloque objetivo. Por ejemplo, puede determinarse si un bloque es adyacente en el espacio o adyacente en el tiempo al bloque objetivo basándose en el identificador de imagen de referencia. Si el bloque es adyacente en el tiempo al bloque objetivo (SÍ en la etapa S401), el procedimiento avanza a la etapa S402. Mientras tanto, si el bloque es adyacente en el espacio al bloque objetivo (NO en la etapa S401), el procedimiento avanza a la etapa S407.
Dado que las etapas S402 a S406 son sustancialmente las mismas que las etapas S301 a S305 de la figura 15, sus descripciones se omiten en este caso. La operación de ajuste a escala A en la etapa S405 se realiza por la unidad A402 de operación de ajuste a escala usando las fórmulas (15) y (16).
De manera similar, dado que las etapas S407 a S409 y S411 son sustancialmente las mismas que las etapas S201 a S203 y S205 de la figura 14, sus descripciones se omiten en este caso.
En la etapa S410, la unidad B403 de operación de ajuste a escala realiza una operación de ajuste a escala B usando las fórmulas (12) y (13).
Tal como se describió anteriormente, la segunda realización hace posible conmutar de manera adaptativa las operaciones de ajuste a escala basándose en la información de adyacencia de un bloque que incluye un vector de movimiento usado como candidato de predictor de vector, y de ese modo hace posible mejorar la exactitud de un predictor de vector.
«TERCERA REALIZACIÓN»
A continuación, se describe un aparato de decodificación de vídeo según una tercera realización. En la tercera realización, se realizan diferentes operaciones de ajuste a escala dependiendo de la magnitud de un vector de movimiento usado como candidato de predictor de vector.
<CONFIGURACIÓN>
Los componentes del aparato de decodificación de vídeo de la tercera realización, excluyendo una unidad 500 de generación de predictor de vector, son sustancialmente los mismos que los del aparato 100 de decodificación de vídeo de la primera realización. Por tanto, a continuación se describe principalmente la unidad 500 de generación de predictor de vector.
La figura 18 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de la unidad 500 de generación de predictor de vector según la tercera realización. En la configuración a modo de ejemplo de la figura 18, la unidad 500 de generación de predictor de vector puede incluir una unidad 201 de cálculo de factor de ajuste a escala, una unidad 202 de obtención de información de vector, una unidad 501 de determinación de vector de movimiento y unidades A502 y B503 de operación de ajuste a escala que se conmutan de manera adaptativa. Se asignan los mismos números de referencia que en la primera realización a los componentes correspondientes en la figura 18, y en este caso se omiten descripciones de esos componentes.
La unidad 501 de determinación de vector de movimiento conmuta las unidades A502 y B503 de operación de ajuste a escala basándose en la magnitud de un vector de movimiento de entrada antes de ajustar a escala (o un candidato de predictor de vector previo al ajuste a escala). Por ejemplo, la unidad 501 de determinación de vector de movimiento determina si la magnitud de un vector de movimiento de entrada es menor que o igual a un valor predeterminado (por ejemplo, 16).
La unidad 501 de determinación de vector de movimiento selecciona la unidad A502 de operación de ajuste a escala si la magnitud del vector de movimiento es menor que o igual al valor predeterminado, y selecciona la unidad B503 de operación de ajuste a escala si la magnitud del vector de movimiento es mayor que el valor predeterminado. La unidad A502 de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (15) y (16) sustancialmente de la misma manera que la unidad 203 de operación de ajuste a escala de la primera realización, y de ese modo corrige un candidato de predictor de vector ajustado a escala.
Mientras tanto, la unidad B503 de operación de ajuste a escala realiza una operación de ajuste a escala en un candidato de predictor de vector usando las fórmulas (12) y (13). Por tanto, un vector de movimiento generado por una de las unidades A502 y B503 de operación de ajuste a escala se usa como candidato de predictor de vector. La configuración de la tercera realización se basa en una suposición de que la tendencia de la distribución de probabilidades de aparición de mv difiere dependiendo de la magnitud de un vector de movimiento previo al ajuste a escala (o un candidato de predictor de vector previo al ajuste a escala). La influencia de un error de un predictor de vector aumenta a medida que el valor absoluto del vector de movimiento se vuelve más pequeño. Por este motivo, en la tercera realización, un vector de movimiento se corrige como en la primera realización cuando el valor absoluto del vector de movimiento es pequeño.
Aunque se usan varias unidades de operación de ajuste a escala en el ejemplo de la figura 18, la tercera realización también puede implementarse usando una unidad de operación de ajuste a escala. En este caso, la unidad 501 de determinación de vector de movimiento envía información que indica si la magnitud del vector de movimiento es menor que o igual al valor predeterminado a la unidad de operación de ajuste a escala.
La unidad de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (15) y (16) si la magnitud del vector de movimiento es menor que o igual al valor predeterminado, y realiza una operación de ajuste a escala excluyendo la resta de la cantidad predeterminada “a” en las fórmulas (15) y (16) si la magnitud del vector de movimiento es mayor que el valor predeterminado.
Por tanto, la tercera realización también puede implementarse usando una unidad de operación de ajuste a escala que determina si restar la cantidad predeterminada “a” de un vector de movimiento ajustado a escala basándose en el resultado de determinación de la unidad 501 de determinación de vector de movimiento.
<OPERACIONES>
A continuación se describen operaciones a modo de ejemplo del aparato de decodificación de vídeo de la tercera realización. El procedimiento de decodificación realizado por el aparato de decodificación de vídeo de la tercera realización es sustancialmente el mismo que el ilustrado en la figura 13, y por tanto sus descripciones se omiten en este caso. A continuación se describen procedimientos a modo de ejemplo realizados por la unidad 500 de generación de predictor de vector.
<CANDIDATOS DE PREDICTOR DE VECTOR DE BLOQUES ADYACENTES EN EL ESPACIO>
La figura 19 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo (1) realizado por la unidad 500 de generación de predictor de vector de la tercera realización. Las etapas S501 a S503 de la figura 19 son sustancialmente las mismas que las etapas S201 a S203 de la figura 14.
En la etapa S504, la unidad 501 de determinación de vector de movimiento determina si la magnitud de un vector de movimiento (candidato de predictor de vector) es menor que o igual al valor predeterminado. Si la magnitud del vector de movimiento es menor que o igual al valor predeterminado (SÍ en la etapa S504), el procedimiento avanza a la etapa S505. Mientras tanto, si la magnitud del vector de movimiento es mayor que el valor predeterminado (NO en la etapa S504), el procedimiento avanza a la etapa S506.
En la etapa S505, la unidad A502 de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (15) y (16) en la que un candidato de predictor de vector ajustado a escala se corrige en la cantidad predeterminada “a”.
En la etapa S506, la unidad B503 de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (12) y (13).
En la etapa S507, la unidad 500 de generación de predictor de vector emite el vector de movimiento calculado por la unidad A502 o B503 de operación de ajuste a escala como candidato de predictor de vector. Mientras tanto, cuando se ha seleccionado un vector de movimiento deseado, la unidad 500 de generación de predictor de vector emite el vector de movimiento deseado como candidato de predictor de vector sin realizar la operación de ajuste a escala. <CANDIDATOS DE PREDICTOR DE VECTOR DE BLOQUES ADYACENTES EN EL TIEMPO>
La figura 20 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo (2) realizado por la unidad 500 de generación de predictor de vector de la tercera realización.
Las etapas S601 a S603 de la figura 20 son sustancialmente las mismas que las etapas S301 a S303 de la figura 15.
En la etapa S604, la unidad 501 de determinación de vector de movimiento determina si la magnitud de un vector de movimiento (candidato de predictor de vector) es menor que o igual al valor predeterminado. Si la magnitud del vector de movimiento es menor que o igual al valor predeterminado (SÍ en la etapa S604), el procedimiento avanza a la etapa S605. Mientras tanto, si la magnitud del vector de movimiento es mayor que el valor predeterminado (NO en la etapa S604), el procedimiento avanza a la etapa S606.
En la etapa S605, la unidad A502 de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (15) y (16) en las que un candidato de predictor de vector ajustado a escala se corrige en la cantidad predeterminada “a”.
En la etapa S606, la unidad B503 de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (12) y (13).
En la etapa S607, la unidad 500 de generación de predictor de vector emite el vector de movimiento calculado por la unidad A502 o B503 de operación de ajuste a escala como candidato de predictor de vector. Mientras tanto, cuando el factor de ajuste a escala es 1, la unidad 500 de generación de predictor de vector emite el vector de movimiento como candidato de predictor de vector sin realizar la operación de ajuste a escala.
Tal como se describió anteriormente, la tercera realización hace posible conmutar de manera adaptativa las operaciones de ajuste a escala basándose en la magnitud de un vector de movimiento usado como candidato de predictor de vector, y de ese modo hace posible mejorar la exactitud de un predictor de vector.
«CUARTA REALIZACIÓN»
A continuación, se describe un aparato de decodificación de vídeo según una cuarta realización. En la cuarta realización, se realizan diferentes operaciones de ajuste a escala basándose en la diferencia entre el tiempo de visualización de una imagen que incluye un vector de movimiento previo al ajuste a escala (candidato de predictor de vector) y el tiempo de visualización de una imagen a la que hace referencia el vector de movimiento previo al ajuste a escala.
<CONFIGURACIÓN>
Los componentes del aparato de decodificación de vídeo de la cuarta realización, excluyendo una unidad 600 de generación de predictor de vector, son sustancialmente los mismos que los del aparato 100 de decodificación de vídeo de la primera realización. Por tanto, a continuación se describe principalmente la unidad 600 de generación de predictor de vector.
La figura 21 es un diagrama de bloques que ilustra una configuración a modo de ejemplo de la unidad 600 de generación de predictor de vector según la cuarta realización. En la configuración a modo de ejemplo de la figura 21, la unidad 600 de generación de predictor de vector incluye una unidad 201 de cálculo de factor de ajuste a escala, una unidad 202 de obtención de información de vector, una unidad 601 de determinación de diferencia de tiempo y unidades A602 y B603 de operación de ajuste a escala que se conmutan de manera adaptativa. Se asignan los mismos números de referencia que en la primera realización a los componentes correspondientes en la figura 21, y en este caso se omiten descripciones de esos componentes.
La unidad 601 de determinación de diferencia de tiempo conmuta las unidades A602 y B603 de operación de ajuste a escala basándose en la diferencia entre el tiempo de visualización de una imagen que incluye un vector de movimiento previo al ajuste a escala (candidato de predictor de vector) y el tiempo de visualización de una imagen a la que hace referencia el vector de movimiento previo al ajuste a escala.
Por ejemplo, la unidad 601 de determinación de diferencia de tiempo obtiene el identificador de imagen de referencia de un bloque objetivo y el POC de una imagen objetivo. Además, la unidad 601 de determinación de diferencia de tiempo obtiene el identificador de una imagen que incluye un vector de movimiento previo al ajuste a escala (candidato de predictor de vector) seleccionado por la unidad 202 de obtención de información de vector y una imagen a la que hace referencia el vector de movimiento previo al ajuste a escala.
La unidad 601 de determinación de diferencia de tiempo obtiene, a partir de la unidad 102 de almacenamiento de lista de imágenes de referencia, los POC de la imagen que incluyen el vector de movimiento previo al ajuste a escala (candidato de predictor de vector) y la imagen a la que hace referencia el vector de movimiento previo al ajuste a escala, y calcula la diferencia de tiempo entre los pOc . Después, la unidad 601 de determinación de diferencia de tiempo determina si la diferencia de tiempo entre los POC (o el intervalo entre las imágenes) es menor que o igual a un valor predeterminado (por ejemplo, 4).
La unidad 601 de determinación de diferencia de tiempo selecciona la unidad A602 de operación de ajuste a escala si la diferencia de tiempo es menor que o igual al valor predeterminado, y selecciona la unidad B603 de operación de ajuste a escala si la diferencia de tiempo es mayor que el valor predeterminado.
La unidad A602 de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (15) y (16) sustancialmente de la misma manera que la unidad 203 de operación de ajuste a escala de la primera realización, y de ese modo corrige un candidato de predictor de vector ajustado a escala.
Mientras tanto, la unidad B603 de operación de ajuste a escala realiza una operación de ajuste a escala en un candidato de predictor de vector usando las fórmulas (12) y (13). Por tanto, un vector de movimiento generado por una de las unidades A602 y B603 de operación de ajuste a escala se usa como candidato de predictor de vector. La configuración de la cuarta realización se basa en una suposición de que la tendencia de la distribución de probabilidades de aparición de mv difiere dependiendo de la diferencia entre el tiempo de visualización de una imagen que incluye un vector de movimiento previo al ajuste a escala (candidato de predictor de vector) y el tiempo de visualización de una imagen a la que hace referencia el vector de movimiento previo al ajuste a escala.
Aunque se usan varias unidades de operación de ajuste a escala en el ejemplo de la figura 21, la cuarta realización también puede implementarse usando una unidad de operación de ajuste a escala. En este caso, la unidad 601 de determinación de diferencia de tiempo envía información que indica si la diferencia de tiempo calculada es menor que o igual al valor predeterminado a la unidad de operación de ajuste a escala.
La unidad de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (15) y (16) si la diferencia de tiempo es menor que o igual al valor predeterminado, y realiza una operación de ajuste a escala excluyendo la resta de la cantidad predeterminada “a” en las fórmulas (15) y (16) si la diferencia de tiempo es mayor que el valor predeterminado.
Por tanto, la cuarta realización también puede implementarse usando una unidad de operación de ajuste a escala que determina si restar la cantidad predeterminada “a” de un vector de movimiento ajustado a escala basándose en el resultado de determinación de la unidad 601 de determinación de diferencia de tiempo.
<OPERACIONES>
A continuación se describen operaciones a modo de ejemplo del aparato de decodificación de vídeo de la cuarta realización. El procedimiento de decodificación realizado por el aparato de decodificación de vídeo de la cuarta realización es sustancialmente el mismo que el ilustrado en la figura 13, y por tanto sus descripciones se omiten en este caso. A continuación se describen procedimientos a modo de ejemplo realizados por la unidad 600 de generación de predictor de vector.
<CANDIDATOS DE PREDICTOR DE VECTOR DE BLOQUES ADYACENTES EN EL ESPACIO>
La figura 22 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo (1) realizado por la unidad 600 de generación de predictor de vector de la cuarta realización. Las etapas S701 a S703 de la figura 22 son sustancialmente las mismas que las etapas S201 a S203 de la figura 14.
En la etapa S704, la unidad 601 de determinación de diferencia de tiempo calcula la diferencia de tiempo entre el tiempo de visualización de una imagen que incluye un vector de movimiento previo al ajuste a escala (candidato de predictor de vector) y el tiempo de visualización de una imagen a la que hace referencia el vector de movimiento previo al ajuste a escala, y determina si la diferencia de tiempo es menor que o igual al valor predeterminado. Si la diferencia de tiempo es menor que o igual al valor predeterminado (SÍ en la etapa S704), el procedimiento avanza a la etapa S705. Mientras tanto, si la diferencia de tiempo es mayor que el valor predeterminado (NO en la etapa S704), el procedimiento avanza a la etapa S706.
En la etapa S705, la unidad A602 de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (15) y (16) en las que un candidato de predictor de vector ajustado a escala se corrige en la cantidad predeterminada “a”.
En la etapa S706, la unidad B603 de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (12) y (13).
En la etapa S707, la unidad 600 de generación de predictor de vector emite el vector de movimiento calculado por la unidad A602 o B603 de operación de ajuste a escala como candidato de predictor de vector. Mientras tanto, cuando se ha seleccionado un vector de movimiento deseado, la unidad 600 de generación de predictor de vector emite el vector de movimiento deseado como candidato de predictor de vector sin realizar la operación de ajuste a escala. <CANDIDATOS DE PREDICTOR DE VECTOR DE BLOQUES ADYACENTES EN EL TIEMPO>
La figura 23 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo (2) realizado por la unidad 600 de generación de predictor de vector de la cuarta realización.
Las etapas S801 a S803 de la figura 23 son sustancialmente las mismas que las etapas S301 a S303 de la figura 15.
En la etapa S804, la unidad 601 de determinación de diferencia de tiempo calcula la diferencia de tiempo entre el tiempo de visualización de una imagen que incluye un vector de movimiento previo al ajuste a escala (candidato de predictor de vector) y el tiempo de visualización de una imagen a la que hace referencia el vector de movimiento previo al ajuste a escala, y determina si la diferencia de tiempo es menor que o igual al valor predeterminado. Si la diferencia de tiempo es menor que o igual al valor predeterminado (SÍ en la etapa S804), el procedimiento avanza a la etapa S805. Mientras tanto, si la diferencia de tiempo es mayor que el valor predeterminado (NO en la etapa S804), el procedimiento avanza a la etapa S806.
En la etapa S805, la unidad A602 de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (15) y (16) en las que un candidato de predictor de vector ajustado a escala se corrige en la cantidad predeterminada “a”.
En la etapa S806, la unidad B603 de operación de ajuste a escala realiza una operación de ajuste a escala usando las fórmulas (12) y (13).
En la etapa S807, la unidad 600 de generación de predictor de vector emite el vector de movimiento calculado por la unidad A602 o B603 de operación de ajuste a escala como candidato de predictor de vector. Mientras tanto, cuando el factor de ajuste a escala es 1, la unidad 600 de generación de predictor de vector emite el vector de movimiento como candidato de predictor de vector sin realizar la operación de ajuste a escala.
Por tanto, la cuarta realización hace posible conmutar de manera adaptativa las operaciones de ajuste a escala basándose en la diferencia entre el tiempo de visualización de una imagen que incluye un vector de movimiento previo al ajuste a escala (candidato de predictor de vector) y el tiempo de visualización de una imagen a la que hace referencia el vector de movimiento previo al ajuste a escala, y de ese modo hace posible mejorar la exactitud de un predictor de vector.
«QUINTA REALIZACIÓN»
A continuación, se describe un aparato 700 de codificación de vídeo según una quinta realización. El aparato 700 de codificación de vídeo de la quinta realización puede incluir una unidad de generación de predictor de vector según una cualquiera de las realizaciones primera a cuarta.
<CONFIGURACIÓN>
La figura 24 es un diagrama de bloques que ilustra una configuración a modo de ejemplo del aparato 700 de codificación de vídeo según la quinta realización. Tal como se ilustra en la figura 24, el aparato 700 de codificación de vídeo puede incluir una unidad 701 de detección de vector de movimiento, una unidad 702 de almacenamiento de lista de imágenes de referencia, una unidad 703 de almacenamiento de imagen decodificada, una unidad 704 de almacenamiento de información de vector de movimiento, una unidad 705 de generación de predictor de vector y una unidad 706 de cálculo de vector diferencia.
El aparato 700 de codificación de vídeo también puede incluir una unidad 707 de generación de píxel predicho, una unidad 708 de generación de error de predicción, una unidad 709 de transformación ortogonal, una unidad 710 de cuantificación, una unidad 711 de cuantificación inversa, una unidad 712 de transformación ortogonal inversa, una unidad 713 de generación de píxel decodificado y una unidad 714 de codificación por entropía.
La unidad 701 de detección de vector de movimiento obtiene una imagen original, obtiene la ubicación de almacenamiento de una imagen de referencia a partir de la unidad 702 de almacenamiento de lista de imágenes de referencia, y obtiene datos de píxel de la imagen de referencia a partir de la unidad 703 de almacenamiento de imagen decodificada. La unidad 701 de detección de vector de movimiento detecta índices de referencia y vectores de movimiento de L0 y L1. Después, la unidad 701 de detección de vector de movimiento emite información de ubicación de región de imágenes de referencia a las que hacen referencia los vectores de movimiento detectados, a la unidad 707 de generación de píxel predicho.
La unidad 702 de almacenamiento de lista de imágenes de referencia almacena información de imagen que incluye ubicaciones de almacenamiento de imágenes de referencia y POC de imágenes de referencia a las que puede hacer referencia un bloque objetivo.
La unidad 703 de almacenamiento de imagen decodificada almacena imágenes que se han codificado anteriormente y decodificado localmente en el aparato 700 de codificación de vídeo como imágenes de referencia usadas para compensación de movimiento.
La unidad 704 de almacenamiento de información de vector de movimiento almacena información de vector de movimiento que incluye índices de referencia de L0 y L1 y vectores de movimiento detectados por la unidad 701 de detección de vector de movimiento. Por ejemplo, la unidad 704 de almacenamiento de vector de movimiento almacena información de vector de movimiento que incluye vectores de movimiento de bloques que son adyacentes en el tiempo y en el espacio a un bloque objetivo e identificadores de imagen de referencia que indican imágenes a las que hacen referencia los vectores de movimiento.
La unidad 705 de generación de predictor de vector genera listas de candidatos de predictor de vector para L0 y L1. Pueden generarse candidatos de predictor de vector tal como se describió en las realizaciones primera a cuarta.
La unidad 706 de cálculo de vector diferencia obtiene los vectores de movimiento de L0 y L1 a partir de la unidad 701 de detección de vector de movimiento, obtiene las listas de candidatos de predictor de vector de L0 y L1 a partir de la unidad 705 de generación de predictor de vector, y calcula vectores diferencia.
Por ejemplo, la unidad 706 de cálculo de vector diferencia selecciona predictores de vectores que son más próximos a los vectores de movimiento de L0 y L1 (vectores de movimiento de L0 y L1) a partir de las listas de candidatos de predictor de vector, y de ese modo determina predictores de vectores (predictores de vectores de L0 y L1) e índices de candidato de predictor para L0 y L1.
Después, la unidad 706 de cálculo de vector diferencia resta el predictor de vector de L0 del vector de movimiento de L0 para generar un vector diferencia de L0, y resta el predictor de vector de L1 del vector de movimiento de L1 para generar un vector diferencia de L1.
La unidad 707 de generación de píxel predicho obtiene píxeles de referencia a partir de la unidad 703 de almacenamiento de imagen decodificada basándose en la información de ubicación de región de imágenes de referencia introducida a partir de la unidad 701 de detección de vector de movimiento, y genera una señal de píxel predicho.
La unidad 708 de generación de error de predicción obtiene la imagen original y la señal de píxel predicho, y calcula una diferencia entre la imagen original y la señal de píxel predicho para generar una señal de error de predicción. La unidad 709 de transformación ortogonal realiza la transformación ortogonal tal como transformación de coseno discreta en la señal de error de predicción, y emite un coeficiente de transformación ortogonal a la unidad 710 de cuantificación. La unidad 710 de cuantificación cuantifica el coeficiente de transformación ortogonal.
La unidad 711 de cuantificación inversa realiza la cuantificación inversa en el coeficiente de transformación ortogonal cuantificado. La unidad 712 de transformación ortogonal inversa realiza la transformación ortogonal inversa en el coeficiente sometido a cuantificación inversa.
La unidad 713 de generación de píxel decodificado añade la señal de error de predicción y la señal de píxel predicho para generar píxeles decodificados. Una imagen decodificada que incluye los píxeles decodificados generados se almacena en la unidad 703 de almacenamiento de imagen decodificada.
La unidad 714 de codificación por entropía realiza codificación por entropía en los índices de referencia, los vectores diferencia y los índices de candidato de predictor de L0 y L1 y el coeficiente de transformación ortogonal cuantificado obtenidos a partir de la unidad 706 de cálculo de vector diferencia y la unidad 710 de cuantificación. Después, la unidad 714 de codificación por entropía emite los datos codificados por entropía como flujo.
<OPERACIONES>
A continuación, se describen operaciones a modo de ejemplo del aparato 700 de codificación de vídeo de la quinta realización. La figura 25 es un diagrama de flujo que ilustra un procedimiento a modo de ejemplo realizado por el aparato 700 de codificación de vídeo. En el procedimiento de la figura 25, se codifica un bloque, que es una unidad de procesamiento.
En la etapa S901, la unidad 701 de detección de vector de movimiento obtiene una imagen original y datos de píxel de una imagen de referencia, y detecta índices de referencia y vectores de movimiento de L0 y L1.
En la etapa S902, la unidad 705 de generación de predictor de vector genera listas de candidatos de predictor de vector para L0 y L1. En esta etapa, la unidad 705 de generación de predictor de vector corrige candidatos de predictor de vector ajustados a escala hacia el vector 0 en la cantidad predeterminada “a”.
En la etapa S903, la unidad 706 de cálculo de vector diferencia selecciona predictores de vectores que son más próximos a los vectores de movimiento de L0 y L1 (vectores de movimiento de L0 y L1) a partir de las listas de candidatos de predictor de vector, y de ese modo determina predictores de vectores (predictores de vectores de L0 y L1) e índices de candidato de predictor para L0 y L1.
Después, la unidad 706 de cálculo de vector diferencia resta el predictor de vector de L0 del vector de movimiento de L0 para generar un vector diferencia de L0, y resta el predictor de vector de L1 del vector de movimiento de L1 para generar un vector diferencia de L1.
En la etapa S904, la unidad 707 de generación de píxel predicho obtiene píxeles de referencia a partir de la unidad 703 de almacenamiento de imagen decodificada basándose en la información de ubicación de región de imágenes de referencia introducida a partir de la unidad 701 de detección de vector de noción, y genera una señal de píxel predicho.
En la etapa S905, la unidad 708 de generación de error de predicción recibe la imagen original y la señal de píxel predicho, y calcula una diferencia entre la imagen original y la señal de píxel predicho para generar una señal de error de predicción.
En la etapa S906, la unidad 709 de transformación ortogonal realiza la transformación ortogonal en la señal de error de predicción para generar un coeficiente de transformación ortogonal.
En la etapa S907, la unidad 710 de cuantificación cuantifica el coeficiente de transformación ortogonal.
En la etapa S908, la unidad 704 de almacenamiento de información de vector de movimiento almacena información de vector de movimiento que incluye los índices de referencia y los vectores de movimiento de L0 y L1 emitidos a partir de la unidad 701 de detección de vector de movimiento. La información almacenada se usa en el siguiente procedimiento de codificación de bloque.
Las etapas S902 y S903, las etapas S904 a S907 y la etapa S908 no se realizan necesariamente en el orden descrito anteriormente, y pueden realizarse en paralelo.
En la etapa S909, la unidad 711 de cuantificación inversa realiza la cuantificación inversa en el coeficiente de transformación ortogonal cuantificado para generar el coeficiente de transformación ortogonal. También en esta etapa, la unidad 712 de transformación ortogonal inversa genera la señal de error de predicción realizando la transformación ortogonal inversa en el coeficiente de transformación ortogonal.
En la etapa S910, la unidad 713 de generación de píxel decodificado añade la señal de error de predicción y la señal de píxel predicho para generar píxeles decodificados.
En la etapa S911, la unidad 703 de almacenamiento de imagen decodificada almacena una imagen decodificada que incluye los píxeles decodificados. La imagen decodificada se usa en el siguiente procedimiento de codificación de bloque.
En la etapa S912, la unidad 714 de codificación por entropía realiza codificación por entropía en los índices de referencia, los vectores diferencia, y los índices de candidato de predictor de L0 y L1 y el coeficiente de transformación ortogonal cuantificado, y emite los datos codificados por entropía como un flujo.
Por tanto, la quinta realización hace posible mejorar la exactitud de un predictor de vector y proporcionar un aparato de codificación de vídeo con eficiencia de codificación mejorada. Puede usarse una unidad de generación de predictor de vector según una cualquiera de las realizaciones primera a cuarta para la unidad 705 de generación de predictor de vector del aparato 700 de codificación de vídeo.
Mediante experimentos, los inventores encontraron que la eficiencia de codificación puede mejorarse en aproximadamente del 1% al 2% calculando candidatos de predictor de vector usando la unidad de generación de predictor de vectores de las realizaciones anteriores.
«EJEM PLO »
La figura 26 es un dibujo que ilustra una configuración a modo de ejemplo de un aparato 800 de procesamiento de imágenes. El aparato 800 de procesamiento de imágenes es una implementación a modo de ejemplo de un aparato de decodificación de vídeo o un aparato de codificación de vídeo de las realizaciones anteriores. Tal como se ilustra en la figura 26, el aparato 800 de procesamiento de imágenes puede incluir una unidad 801 de control, una memoria 802, una unidad 803 de almacenamiento secundaria, una unidad 804 de lectura, una interfaz (I/F) 806 de red, una unidad 807 de entrada y una unidad 808 de visualización. Estos componentes están conectados entre sí a través de un bus para permitir la transmisión y recepción de datos.
La unidad 801 de control es una unidad de procesamiento central (CPU) que controla otros componentes del aparato 800 de procesamiento de imágenes y realiza cálculos y procesamiento de datos. Por ejemplo, la unidad 801 de control ejecuta programas almacenados en la memoria 802 y la unidad 803 de almacenamiento secundaria, procesa datos recibidos a partir de la unidad 807 de entrada y la unidad 803 de almacenamiento secundaria, y emite los datos procesados a la unidad 808 de visualización y la unidad 803 de almacenamiento secundaria.
La memoria 802 puede implementarse, por ejemplo, mediante una memoria de sólo lectura (ROM) o una memoria de acceso aleatorio (RAM), y retiene o almacena temporalmente datos y programas tales como software básico (sistema operativo (OS)) y software de aplicación que va a ejecutarse por la unidad 801 de control.
La unidad 803 de almacenamiento secundaria puede implementarse mediante una unidad de disco duro (HDD), y almacena, por ejemplo, datos relacionados con software de aplicación.
La unidad 804 de lectura lee programas de un medio 805 de almacenamiento e instala los programas en la unidad 803 de almacenamiento secundaria.
El medio 805 de almacenamiento almacena programas. Los programas almacenados en el medio 805 de almacenamiento se instalan en el aparato 800 de procesamiento de imágenes a través de la unidad 804 de lectura. Los programas instalados pueden ejecutarse por el aparato 800 de procesamiento de imágenes.
La I/F 806 de red permite al aparato 800 de procesamiento de imágenes comunicarse con otros dispositivos conectados a través de una red, tal como una red de área local (LAN) o una red de área amplia (WAN), implementada por canales de comunicación de datos cableados y/o inalámbricos.
La unidad 807 de entrada puede incluir un teclado que incluye teclas de cursor, teclas numéricas y teclas de función, y un ratón o un panel táctil para seleccionar un elemento en una pantalla visualizada en la unidad 808 de visualización. Por tanto, la unidad 807 de entrada es una interfaz de usuario que permite al usuario introducir, por ejemplo, instrucciones y datos en la unidad 801 de control.
La unidad 808 de visualización incluye, por ejemplo, una pantalla de cristal líquido (LCD), y visualiza datos recibidos a partir de la unidad 801 de control. La unidad 808 de visualización puede proporcionase fuera del aparato 800 de procesamiento de imágenes. En este caso, el aparato 800 de procesamiento de imágenes puede incluir una unidad de control de visualización.
Los métodos (o procedimientos) de codificación y decodificación de vídeo descritos en las realizaciones anteriores pueden implementarse mediante programas que se ejecutan por un ordenador. Tales programas pueden descargarse desde un servidor e instalarse en un ordenador.
Alternativamente, pueden almacenarse programas para implementar los métodos (o procedimientos) de codificación y decodificación de vídeo descritos en las realizaciones anteriores en un medio de almacenamiento legible por ordenador no transitorio tal como el medio 805 de almacenamiento, y pueden leerse a partir del medio de almacenamiento en un ordenador o un dispositivo portátil.
Por ejemplo, medios de almacenamiento tales como una memoria de sólo lectura de disco compacto (CD-ROM), un disquete y un disco magnetoóptico que graban información de manera óptica, eléctrica o magnética, y memorias de semiconductor tales como una ROM y una memoria flash que graban información de manera eléctrica, pueden usarse como medio 805 de almacenamiento. Además, los métodos (o procedimientos) de codificación y decodificación de vídeo descritos en las realizaciones anteriores pueden implementarse mediante uno o más circuitos integrados.
Realizaciones adicionales son de la siguiente manera:
E1. Aparato para decodificación de vídeo o codificación de vídeo, que comprende:
una unidad de almacenamiento de lista de imágenes de referencia configurada para almacenar información de imagen de imágenes;
una unidad de almacenamiento de información de vector de movimiento configurada para almacenar información de vector de movimiento que incluye vectores de movimiento de bloques que son adyacentes en el espacio y en el tiempo a un bloque objetivo que va a decodificarse o codificarse e identificadores de imagen de referencia que indican imágenes a las que hacen referencia los vectores de movimiento; y
una unidad de generación de predictor de vector configurada para ajustar a escala un candidato de predictor de vector para un vector de movimiento del bloque objetivo basándose en la información de imagen y la información de vector de movimiento y para corregir el candidato de predictor de vector ajustado a escala hacia 0 en una cantidad predeterminada.
E2. Aparato según E1, en el que la unidad de generación de predictor de vector incluye una unidad de cálculo de factor de ajuste a escala configurada para calcular un factor de ajuste a escala basándose en la información de imagen y la información de vector de movimiento; y una unidad de operación de ajuste a escala configurada para ajustar a escala el candidato de predictor de vector en el factor de ajuste a escala y para corregir el candidato de predictor de vector ajustado a escala en la cantidad predeterminada.
E3. Aparato según E2, en el que
el factor de ajuste a escala tiene una precisión predeterminada tras una coma decimal; y
la unidad de operación de ajuste a escala incluye
una unidad de ajuste a escala configurada para multiplicar el candidato de predictor de vector por el factor de ajuste a escala para ajustar a escala el candidato de predictor de vector y aumentar una precisión tras la coma decimal del candidato de predictor de vector ajustado a escala hasta la precisión predeterminada tras la coma decimal,
una unidad de corrección configurada para corregir el candidato de predictor de vector ajustado a escala hacia 0 en la cantidad predeterminada, y
una unidad de ajuste configurada para redondear el candidato de predictor de vector ajustado a escala y corregido a los números enteros más próximos.
E4. Aparato según E3, en el que la unidad de corrección está configurada para calcular la cantidad predeterminada basándose en una magnitud del factor de ajuste a escala.
E5. Aparato según E3, en el que cuando la precisión predeterminada tras la coma decimal es de N bits, la unidad de ajuste está configurada para añadir 2N-1 al candidato de predictor de vector ajustado a escala y corregido y desplazar un resultado de la adición a la derecha N bits.
E6. Aparato según uno cualquiera de E1 a E5, en el que la unidad de generación de predictor de vector está configurada para corregir el candidato de predictor de vector ajustado a escala cuando el candidato de predictor de vector pertenece a un bloque que es adyacente en el tiempo al bloque objetivo.
E7. Aparato según uno cualquiera de E1 a E5, en el que la unidad de generación de predictor de vector está configurada para corregir el candidato de predictor de vector ajustado a escala cuando una magnitud del candidato de predictor de vector es menor que o igual a un valor predeterminado.
E8. Aparato según uno cualquiera de E1 a E5, en el que la unidad de generación de predictor de vector está configurada para corregir el candidato de predictor de vector ajustado a escala cuando un intervalo entre una imagen que incluye el candidato de predictor de vector y una imagen a la que hace referencia el candidato de predictor de vector es menor que o igual a un valor predeterminado.
E9. Aparato según E4, en el que cuando la precisión predeterminada tras la coma decimal es de N bits, la unidad de corrección está configurada para calcular la cantidad predeterminada que es mayor de o igual a 1 y menor de o igual a 2n-2
E10. Método para la decodificación de vídeo o codificación de vídeo, comprendiendo el método:
ajustar a escala un candidato de predictor de vector para un vector de movimiento de un bloque objetivo que va a decodificarse o codificarse, basándose en información de imagen de imágenes e información de vector de movimiento que incluye vectores de movimiento de bloques que son adyacentes en el espacio y en el tiempo al bloque objetivo e identificadores de imagen de referencia que indican imágenes a las que hacen referencia los vectores de movimiento; y
corregir el candidato de predictor de vector ajustado a escala hacia 0 en una cantidad predeterminada.
E11. Medio de almacenamiento legible por ordenador no transitorio que almacena un código de programa para hacer que un aparato realice el método según E10.

Claims (6)

  1. REIVINDICACIONES
    i. Aparato de codificación de vídeo, que comprende:
    una unidad de almacenamiento de lista de imágenes de referencia configurada para almacenar información de imagen de imágenes;
    una unidad de almacenamiento de información de vector de movimiento configurada para almacenar información de vector de movimiento que incluye vectores de movimiento de bloques que son adyacentes en el espacio o en el tiempo a un bloque objetivo que va a codificarse e identificadores de imagen de referencia que indican imágenes a las que hacen referencia los vectores de movimiento;
    una unidad de cálculo de factor de ajuste a escala configurada para calcular, basándose en la información de imagen y la información de vector de movimiento, un intervalo entre una imagen objetivo que incluye el bloque objetivo y una imagen de referencia objetivo a la que hace referencia un vector de movimiento del bloque objetivo y un intervalo entre una imagen que incluye un bloque adyacente, adyacente al bloque objetivo y una imagen de referencia adyacente a la que hace referencia un vector de movimiento del bloque adyacente, y para calcular un factor de ajuste a escala basándose en los intervalos calculados; y una unidad de operación de ajuste a escala configurada para ajustar a escala un candidato de predictor de vector para el vector de movimiento del bloque objetivo multiplicando el candidato de predictor de vector por el factor de ajuste a escala y para corregir el candidato de predictor de vector ajustado a escala restando un valor predeterminado de un valor absoluto del candidato de predictor de vector ajustado a escala, en el que
    el factor de ajuste a escala tiene N bits de precisión tras una coma decimal; y
    la unidad de °peración de ajuste a escalaNestá configurada para calcular el valor predeterminado que es mayor de o igual a 1 y menor de o igual a 2 .
  2. 2. Aparato de codificación de vídeo según la reivindicación 1, en el que la unidad de operación de ajuste a escala incluye
    una unidad de ajuste a escala configurada para multiplicar el candidato de predictor de vector por el factor de ajuste a escala para ajustar a escala el candidato de predictor de vector y aumentar una precisión tras la coma decimal del candidato de predictor de vector ajustado a escala hasta los N bits de precisión tras la coma decimal,
    una unidad de corrección configurada para corregir el candidato de predictor de vector ajustado a escala restando el valor predeterminado del valor absoluto del candidato de predictor de vector ajustado a escala, y
    una unidad de ajuste configurada para redondear el candidato de predictor de vector ajustado a escala y corregido a los números enteros más próximos.
  3. 3. Aparato de codificación de vídeo según la reivindicación 2, en el que cuando “a” indica el valor predeterminado, la unidad de corrección está configurada para calcular el valor predeterminado según la siguiente fórmula:
    a = MIN(2n-2, abs(Escala) >> 3),
    donde MIN (x, y) es una función que devuelve el más pequeño de x e y, y Escala indica el factor de ajuste a escala.
  4. 4. Aparato de codificación de vídeo según la reivindicación 2, en el que la unidad de ajuste está configurada para añadir 2N-1 al candidato de predictor de vector ajustado a escala y corregido y desplazar un resultado de la adición a la derecha N bits.
  5. 5. Aparato de codificación de vídeo según una cualquiera de las reivindicaciones 1 a 4, en el que la unidad de operación de ajuste a escala está configurada para corregir el candidato de predictor de vector ajustado a escala cuando el candidato de predictor de vector pertenece a un bloque que es adyacente en el tiempo al bloque objetivo.
  6. 6. Aparato de codificación de vídeo según una cualquiera de las reivindicaciones 1 a 4, en el que la unidad de operación de ajuste a escala está configurada para corregir el candidato de predictor de vector ajustado a escala cuando una magnitud del candidato de predictor de vector es menor que o igual a un valor predeterminado.
    Aparato de codificación de vídeo según una cualquiera de las reivindicaciones 1 a 4, en el que la unidad de operación de ajuste a escala está configurada para corregir el candidato de predictor de vector ajustado a escala cuando un intervalo entre una imagen que incluye el candidato de predictor de vector y una imagen a la que hace referencia el candidato de predictor de vector es menor que o igual a un valor predeterminado.
    Método para la codificación de vídeo, comprendiendo el método:
    basándose en información de imagen de imágenes e información de vector de movimiento que incluye vectores de movimiento de bloques que son adyacentes en el espacio o en el tiempo a un bloque objetivo que va a codificarse e identificadores de imagen de referencia que indican imágenes a las que hacen referencia los vectores de movimiento, calcular un intervalo entre una imagen objetivo que incluye el bloque objetivo y una imagen de referencia objetivo a la que hace referencia un vector de movimiento del bloque objetivo y un intervalo entre una imagen que incluye un bloque adyacente, adyacente al bloque objetivo y una imagen de referencia adyacente a la que hace referencia un vector de movimiento del bloque adyacente;
    calcular un factor de ajuste a escala basándose en los intervalos calculados;
    ajustar a escala un candidato de predictor de vector para el vector de movimiento del bloque objetivo multiplicando el candidato de predictor de vector por el factor de ajuste a escala; y
    corregir el candidato de predictor de vector ajustado a escala restando un valor predeterminado de un valor absoluto del candidato de predictor de vector ajustado a escala,
    en el que
    el factor de ajuste a escala tiene N bits de precisión tras una coma decimal; y
    el valor predeterminado es mayor de o igual a 1 y menor de o igual a 2N-2
    Medio de almacenamiento legible por ordenador no transitorio que almacena un código de programa para hacer que un aparato realice el método según la reivindicación 8.
ES16198144T 2011-06-15 2012-05-23 Aparato de codificación de vídeo, método de codificación de vídeo y medio de almacenamiento Active ES2718575T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011133383A JP5786478B2 (ja) 2011-06-15 2011-06-15 動画像復号装置、動画像復号方法、及び動画像復号プログラム

Publications (1)

Publication Number Publication Date
ES2718575T3 true ES2718575T3 (es) 2019-07-02

Family

ID=46384134

Family Applications (5)

Application Number Title Priority Date Filing Date
ES16198144T Active ES2718575T3 (es) 2011-06-15 2012-05-23 Aparato de codificación de vídeo, método de codificación de vídeo y medio de almacenamiento
ES16198140T Active ES2721498T3 (es) 2011-06-15 2012-05-23 Sistema de codificación/decodificación de vídeo
ES12169078T Active ES2718830T3 (es) 2011-06-15 2012-05-23 Aparato de decodificación de vídeo, método de decodificación de vídeo, y medio de almacenamiento
ES16198143T Active ES2721157T3 (es) 2011-06-15 2012-05-23 Método de decodificación de vídeo
ES16198141T Active ES2721499T3 (es) 2011-06-15 2012-05-23 Método de codificación de vídeo

Family Applications After (4)

Application Number Title Priority Date Filing Date
ES16198140T Active ES2721498T3 (es) 2011-06-15 2012-05-23 Sistema de codificación/decodificación de vídeo
ES12169078T Active ES2718830T3 (es) 2011-06-15 2012-05-23 Aparato de decodificación de vídeo, método de decodificación de vídeo, y medio de almacenamiento
ES16198143T Active ES2721157T3 (es) 2011-06-15 2012-05-23 Método de decodificación de vídeo
ES16198141T Active ES2721499T3 (es) 2011-06-15 2012-05-23 Método de codificación de vídeo

Country Status (11)

Country Link
US (5) US9247267B2 (es)
EP (5) EP3151555B1 (es)
JP (1) JP5786478B2 (es)
KR (4) KR101377789B1 (es)
CN (4) CN102833533B (es)
AU (2) AU2012203337B2 (es)
BR (5) BR122020015451B1 (es)
CA (5) CA2883125C (es)
ES (5) ES2718575T3 (es)
MX (1) MX2012007139A (es)
TW (5) TWI555387B (es)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611887B (zh) * 2011-01-21 2015-08-05 华为技术有限公司 非整像素位置运动矢量的坐标值取整方法和装置
US20130107962A1 (en) * 2011-10-26 2013-05-02 Intellectual Discovery Co., Ltd. Scalable video coding method and apparatus using inter prediction mode
WO2013067440A1 (en) * 2011-11-04 2013-05-10 General Instrument Corporation Motion vector scaling for non-uniform motion vector grid
CN110650336B (zh) * 2012-01-18 2022-11-29 韩国电子通信研究院 视频解码装置、视频编码装置和传输比特流的方法
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
JP6172155B2 (ja) 2012-09-28 2017-08-02 ソニー株式会社 画像処理装置および方法
US9883180B2 (en) * 2012-10-03 2018-01-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Bounded rate near-lossless and lossless image compression
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
US9503746B2 (en) 2012-10-08 2016-11-22 Google Inc. Determine reference motion vectors
JP5890794B2 (ja) * 2013-02-28 2016-03-22 株式会社東芝 画像処理装置
US10924746B2 (en) * 2014-01-29 2021-02-16 Mediatek Inc. Method and apparatus for adaptive motion vector precision
CN117221572A (zh) 2016-10-04 2023-12-12 英迪股份有限公司 视频解码方法、图像编码方法以及发送比特流的方法
KR102559063B1 (ko) 2017-02-24 2023-07-24 주식회사 케이티 비디오 신호 처리 방법 및 장치
US11272207B2 (en) * 2017-06-12 2022-03-08 Futurewei Technologies, Inc. Selection and signaling of motion vector (MV) precisions
US10911769B2 (en) * 2017-06-23 2021-02-02 Qualcomm Incorporated Motion-based priority for the construction of candidate lists in video coding
EP3780609A4 (en) 2018-04-02 2022-04-13 LG Electronics, Inc. METHOD OF IMAGE CODING BASED ON A MOTION VECTOR AND DEVICE THEREOF
CN117135346A (zh) 2018-04-02 2023-11-28 深圳市大疆创新科技有限公司 用于图像处理的方法和图像处理装置
EP3791587A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Resetting of look up table per slice/tile/lcu row
WO2020003284A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
EP3791585A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Partial/full pruning when adding a hmvp candidate to merge/amvp
KR20210025537A (ko) 2018-06-29 2021-03-09 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 하나 또는 다수의 룩업 테이블들을 사용하여 이전에 코딩된 모션 정보를 순서대로 저장하고 이를 사용하여 후속 블록들을 코딩하는 개념
TWI719523B (zh) 2018-06-29 2021-02-21 大陸商北京字節跳動網絡技術有限公司 哪個查找表需要更新或不更新
JP7328330B2 (ja) 2018-06-29 2023-08-16 北京字節跳動網絡技術有限公司 Lutにおける動き候補のチェック順序
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
SG11202012293RA (en) 2018-06-29 2021-01-28 Beijing Bytedance Network Technology Co Ltd Update of look up table: fifo, constrained fifo
CN110662053B (zh) 2018-06-29 2022-03-25 北京字节跳动网络技术有限公司 使用查找表的视频处理方法、装置和存储介质
CN110677669B (zh) 2018-07-02 2021-12-07 北京字节跳动网络技术有限公司 具有lic的lut
WO2020031057A1 (en) * 2018-08-04 2020-02-13 Beijing Bytedance Network Technology Co., Ltd. Mv precision in bio
CN115842912A (zh) 2018-08-04 2023-03-24 抖音视界有限公司 不同解码器侧运动矢量推导模式之间的交互
WO2020053800A1 (en) 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. How many hmvp candidates to be checked
CN111010569B (zh) 2018-10-06 2023-02-28 北京字节跳动网络技术有限公司 Bio中的时间梯度计算的改善
KR102648159B1 (ko) 2019-01-10 2024-03-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut 업데이트의 호출
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
CN112954329B (zh) * 2019-03-11 2022-08-26 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113615193A (zh) 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2725577B1 (fr) 1994-10-10 1996-11-29 Thomson Consumer Electronics Procede de codage ou de decodage de vecteurs mouvement et dispositif de codage ou de decodage mettant en oeuvre ledit procede
EP0922342B1 (en) 1996-09-02 2003-01-29 STMicroelectronics N.V. Improvements in, or relating to, multi-carrier transmission systems
US6404813B1 (en) 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
JP2001197501A (ja) 2000-01-07 2001-07-19 Fujitsu Ltd 動きベクトル探索器及び動きベクトル探索方法並びに動画像符号化装置
JP3611507B2 (ja) * 2000-05-30 2005-01-19 松下電器産業株式会社 動きベクトル検出装置
JP2004088722A (ja) * 2002-03-04 2004-03-18 Matsushita Electric Ind Co Ltd 動画像符号化方法および動画像復号化方法
EP3525465B1 (en) * 2002-04-19 2021-03-17 Panasonic Intellectual Property Corporation of America Picture decoding method and apparatus
EP3525466B1 (en) * 2002-04-19 2022-02-09 Panasonic Intellectual Property Corporation of America Motion vector determining method and apparatus
JP2004208258A (ja) * 2002-04-19 2004-07-22 Matsushita Electric Ind Co Ltd 動きベクトル計算方法
JP4130783B2 (ja) * 2002-04-23 2008-08-06 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US20040001547A1 (en) * 2002-06-26 2004-01-01 Debargha Mukherjee Scalable robust video compression
US6728315B2 (en) * 2002-07-24 2004-04-27 Apple Computer, Inc. Method and apparatus for variable accuracy inter-picture timing specification for digital video encoding with reduced requirements for division operations
US7760950B2 (en) * 2002-09-26 2010-07-20 Ntt Docomo, Inc. Low complexity and unified transforms for video coding
JP4373702B2 (ja) * 2003-05-07 2009-11-25 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム
KR100579542B1 (ko) * 2003-07-29 2006-05-15 삼성전자주식회사 블럭 간의 상관성을 고려한 움직임 추정 장치 및 방법
US7567617B2 (en) * 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
CN1213613C (zh) * 2003-09-12 2005-08-03 浙江大学 视频编解码中运动矢量的预测方法和装置
US7400681B2 (en) 2003-11-28 2008-07-15 Scientific-Atlanta, Inc. Low-complexity motion vector prediction for video codec with two lists of reference pictures
US7586924B2 (en) 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
US8913660B2 (en) 2005-04-14 2014-12-16 Fastvdo, Llc Device and method for fast block-matching motion estimation in video encoders
US7660354B2 (en) * 2005-05-11 2010-02-09 Fang Shi Temporal error concealment for bi-directionally predicted frames
CN101218829A (zh) * 2005-07-05 2008-07-09 株式会社Ntt都科摩 动态图像编码装置、动态图像编码方法、动态图像编码程序、动态图像解码装置、动态图像解码方法以及动态图像解码程序
CN101228795B (zh) * 2005-07-21 2011-09-07 汤姆森许可贸易公司 针对加权预测的可分级视频解码方法及设备
JP4389866B2 (ja) 2005-12-12 2009-12-24 セイコーエプソン株式会社 画像処理方法、画像処理装置、表示装置およびプログラム
WO2008140656A2 (en) 2007-04-03 2008-11-20 Gary Demos Flowfield motion compensation for video compression
EP2143278B1 (en) * 2007-04-25 2017-03-22 Thomson Licensing Inter-view prediction with downsampled reference pictures
BRPI0813122A2 (pt) * 2007-07-02 2015-08-04 Nippon Telegraph & Telephone Método de codificação e método de decodificação de vídeo escalonável, aparelhos e programas para os mesmos, e meio de armazenamento que armazena os programas
KR102231772B1 (ko) * 2007-10-16 2021-03-23 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
KR101442608B1 (ko) 2008-02-05 2014-09-25 삼성전자주식회사 영상을 효율적으로 부호화/복호화하는 방법 및 장치
CN101540902B (zh) * 2008-03-20 2011-02-02 华为技术有限公司 运动矢量的缩放方法和装置、编解码方法和系统
US8804831B2 (en) 2008-04-10 2014-08-12 Qualcomm Incorporated Offsets at sub-pixel resolution
JP5406465B2 (ja) * 2008-04-24 2014-02-05 株式会社Nttドコモ 画像予測符号化装置、画像予測符号化方法、画像予測符号化プログラム、画像予測復号装置、画像予測復号方法及び画像予測復号プログラム
CN101631241B (zh) 2008-07-14 2011-05-25 晨星软件研发(深圳)有限公司 影像处理方法及装置
US20110170605A1 (en) * 2008-09-24 2011-07-14 Kazushi Sato Image processing apparatus and image processing method
US20110170604A1 (en) * 2008-09-24 2011-07-14 Kazushi Sato Image processing device and method
WO2010035733A1 (ja) 2008-09-24 2010-04-01 ソニー株式会社 画像処理装置および方法
US8724707B2 (en) * 2009-05-07 2014-05-13 Qualcomm Incorporated Video decoding using temporally constrained spatial dependency
EP2257067A1 (en) * 2009-05-29 2010-12-01 Thomson Licensing Method for inserting watermark assistance data in a bitstream, method of watermarking said bitstream, device implementing the method of watermarking and bitstream comprising the watermark assistance data
US9161057B2 (en) 2009-07-09 2015-10-13 Qualcomm Incorporated Non-zero rounding and prediction mode selection techniques in video encoding
KR101671460B1 (ko) * 2009-09-10 2016-11-02 에스케이 텔레콤주식회사 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US9060176B2 (en) * 2009-10-01 2015-06-16 Ntt Docomo, Inc. Motion vector prediction in video coding
WO2011099428A1 (ja) * 2010-02-09 2011-08-18 日本電信電話株式会社 動きベクトル予測符号化方法、動きベクトル予測復号方法、動画像符号化装置、動画像復号装置およびそれらのプログラム

Also Published As

Publication number Publication date
AU2012203337B2 (en) 2014-10-09
EP3148191A1 (en) 2017-03-29
BR122020015442B1 (pt) 2021-12-14
CA2883251A1 (en) 2012-12-15
BR102012013152A2 (pt) 2013-06-25
AU2012203337A1 (en) 2013-01-10
KR101429409B1 (ko) 2014-08-14
TWI565306B (zh) 2017-01-01
CA2883244A1 (en) 2012-12-15
CN104539963A (zh) 2015-04-22
US20150189312A1 (en) 2015-07-02
CA2918034A1 (en) 2012-12-15
EP3151555B1 (en) 2019-03-20
EP3151557B1 (en) 2019-02-27
TW201541947A (zh) 2015-11-01
BR122020015445B1 (pt) 2021-12-14
KR101429408B1 (ko) 2014-08-14
CN104539963B (zh) 2017-09-29
KR20140029344A (ko) 2014-03-10
CA2778486C (en) 2017-09-19
US9491481B2 (en) 2016-11-08
EP3151555A1 (en) 2017-04-05
KR20140029343A (ko) 2014-03-10
CN104539951A (zh) 2015-04-22
CA2778486A1 (en) 2012-12-15
US20160014408A1 (en) 2016-01-14
MX2012007139A (es) 2012-12-17
EP3151557A1 (en) 2017-04-05
AU2014210570B2 (en) 2015-10-01
EP2536146A3 (en) 2016-05-11
KR20140029345A (ko) 2014-03-10
US9426488B2 (en) 2016-08-23
CA2883125C (en) 2018-01-23
TWI538488B (zh) 2016-06-11
CA2918034C (en) 2018-01-23
TW201543874A (zh) 2015-11-16
US9247267B2 (en) 2016-01-26
CA2883251C (en) 2017-11-28
EP2536146A2 (en) 2012-12-19
CN104539950A (zh) 2015-04-22
TWI555387B (zh) 2016-10-21
JP2013005168A (ja) 2013-01-07
ES2721499T3 (es) 2019-08-01
EP2536146B1 (en) 2019-02-20
US20150189313A1 (en) 2015-07-02
TW201541946A (zh) 2015-11-01
TWI556633B (zh) 2016-11-01
KR101429407B1 (ko) 2014-08-14
CN102833533A (zh) 2012-12-19
JP5786478B2 (ja) 2015-09-30
KR101377789B1 (ko) 2014-03-26
ES2721498T3 (es) 2019-08-01
CN104539951B (zh) 2017-09-29
CA2883125A1 (en) 2012-12-15
BR102012013152B1 (pt) 2021-12-14
TW201543875A (zh) 2015-11-16
EP3148191B1 (en) 2019-02-13
ES2718830T3 (es) 2019-07-04
US9973774B2 (en) 2018-05-15
EP3151556B1 (en) 2019-02-13
ES2721157T3 (es) 2019-07-29
KR20120138645A (ko) 2012-12-26
US20120320981A1 (en) 2012-12-20
TW201251470A (en) 2012-12-16
TWI523502B (zh) 2016-02-21
CN104539950B (zh) 2018-10-12
BR122020015453B1 (pt) 2021-12-14
US20150208085A1 (en) 2015-07-23
US9426489B2 (en) 2016-08-23
CN102833533B (zh) 2015-05-13
EP3151556A1 (en) 2017-04-05
CA2883244C (en) 2016-08-02
BR122020015451B1 (pt) 2021-12-14
AU2014210570A1 (en) 2014-08-28

Similar Documents

Publication Publication Date Title
ES2718575T3 (es) Aparato de codificación de vídeo, método de codificación de vídeo y medio de almacenamiento
JP2014135744A (ja) 動画像復号方法、動画像復号装置、及び動画像復号プログラム
AU2015272009B2 (en) Video decoding apparatus, video coding apparatus, video decoding method, video coding method, and storage medium
AU2014210568B2 (en) Video decoding apparatus, video coding apparatus, video decoding method, video coding method, and storage medium