BR122020015453B1 - Sistema de codificação/decodificação de vídeo e método realizado por um sistema de codificação/decodificação de vídeo - Google Patents

Sistema de codificação/decodificação de vídeo e método realizado por um sistema de codificação/decodificação de vídeo Download PDF

Info

Publication number
BR122020015453B1
BR122020015453B1 BR122020015453-5A BR122020015453A BR122020015453B1 BR 122020015453 B1 BR122020015453 B1 BR 122020015453B1 BR 122020015453 A BR122020015453 A BR 122020015453A BR 122020015453 B1 BR122020015453 B1 BR 122020015453B1
Authority
BR
Brazil
Prior art keywords
motion vector
vector
vector predictor
scale
predictor candidate
Prior art date
Application number
BR122020015453-5A
Other languages
English (en)
Inventor
Satoshi Shimada
Akira Nakagawa
Kimihiko Kazui
Junpei KOYAMA
Original Assignee
Fujitsu Limited
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=BR122020015453(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Fujitsu Limited filed Critical Fujitsu Limited
Publication of BR122020015453B1 publication Critical patent/BR122020015453B1/pt

Links

Images

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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

Abstract

a presente invenção refere-se a um aparelho de decodificação de vídeo que inclui uma unidade de armazenamento de lista de imagem de referência configurada para armazenar informações de imagem de imagens; uma unidade de armazenamento de informação de vetor de movimento configurada para armazenar informação de vetor de movimento incluindo vetores de movimento de blocos que são espacial e temporalmente adjacentes a um bloco de destino a ser decodificado e identificadores de imagem de referência indicando imagens a que os vetores de movimento referem-se, e uma unidade de geração de preditor de vetor configurada para escalar um candidato de preditor de vetor para um vetor de movimento do bloco de destino com base na informação de imagem e na informação de vetor de movimento e para corrigir o candidato de preditor de vetor escalado para 0 por uma quantidade predeterminada.

Description

[001] Divisão do pedido de patente BR102012013152-8 depositado em 31/05/2012.
CAMPO
[002] As modalidades aqui discutidas estão relacionadas com um aparelho de decodificação de vídeo, um aparelho de codificação de vídeo, um método de decodificação de vídeo, um método de codificação de vídeo, e um meio de armazenamento.
ANTECEDENTES
[003] Nas técnicas de vídeo recente de codificação, uma imagem é dividida em blocos, os pixels nos blocos são preditos, e diferenças preditas são codificadas para alcançar uma alta taxa de compressão. Um modo de predição onde os pixels são preditos a partir de pixels vizinhos da região em uma imagem a ser codificada é chamado de um modo de intrapredição. Enquanto isso, um modo de predição onde os pixels são preditos a partir de uma imagem de referência previamente codificada usando uma técnica de compensação de movimento é chamado um modo de interpredição.
[004] No modo de interpredição de um aparelho de codificação de vídeo, uma região de referência usada para predizer pixels é representada por dados bidimensionais de coordenadas chamados de um vetor de movimento, que inclui uma componente horizontal e um componente vertical, e dados de vetor de movimento e dados de diferença de pixel entre os pixels originais e pixels preditos são codificados. Para reduzir a quantidade de código, um preditor de vetor é gerado com base em um vetor de movimento de um bloco que é adjacente a um bloco de destino a ser codificado (pode ser referido como um bloco de destino de codificação), e um vetor de diferença entre um vetor de movimento do bloco de destino e o preditor de vetor é codificado. Ao atribuir uma quantidade menor de código para um vetor de diferença menor, é possível reduzir a quantidade de código para o vetor de movimento e melhorar a eficiência de codificação.
[005] Enquanto isso, em um aparelho de decodificação de vídeo, um preditor de vetor que é o mesmo que o preditor de vetor gerado no aparelho de codificação de vídeo é determinado para cada bloco, e o vetor de movimento é restaurado pela adição do vetor de diferença codificado e do preditor de vetor. Por esta razão, o aparelho de codificação de vídeo e o aparelho de decodificação de vídeo incluem unidades de preditor de vetor que têm substancialmente a mesma configuração.
[006] No aparelho de decodificação de vídeo, os blocos são decodificados, geralmente, a partir da esquerda superior para a direita inferior na ordem da técnica de varredura rastreada ou a técnica de varredura z. Por conseguinte, apenas um vetor de movimento de um bloco que está à esquerda ou acima de um bloco de destino a ser decodificado no aparelho de decodificação de vídeo, isto é, um vetor de movimento que é decodificado antes do bloco de destino, pode ser usado para a predição de unidades de preditor de vetor de movimento do aparelho de codificação de vídeo e o aparelho de decodificação de vídeo.
[007] Enquanto isso, em MPEG (Moving Picture Experts Group) 4 AVC/H.264 (a seguir pode ser simplesmente referido como H.264), um preditor de vetor pode ser determinado utilizando um vetor de movimento de uma imagem de referência previamente codificada / decodificada em vez de um vetor de movimento de uma imagem de destino a ser processada (ver, por exemplo, ISO/IEC 14496-10 (MPEG- 4 Parte 10) / ITU-T Rec. H.264).
[008] Além disso, um método de determinação de um preditor de vetor é divulgado em "WD3: Working Draft 3 of High-Efficiency Video Coding" JCTVC-E603, JCT-VC 5° Encontro, março de 2011. Codificação de Vídeo de Alta Eficiência (HEVC) é uma tecnologia de codificação de vídeo da padronização do que está sendo discutido conjuntamente pela ISO / IEC e ITU-T. O Software HEVC Test Model (HM) (versão 3.0) tem sido proposto como um software de referência.
[009] O esboço de HEVC é descrito abaixo. Em HEVC, listas de imagem de referência L0 e L1 listando imagens de referência são providas. Para cada bloco, as regiões de até duas imagens de referência, isto é, vetores de movimento correspondentes às listas de imagens de referência L0 e L1, podem ser usados para a interpredição.
[0010] As listas de imagem de referência L0 e L1 correspondem, em geral, as instruções de tempo de exibição. A lista de imagem de referência L0 lista imagens anteriores no que diz respeito a uma imagem de destino a ser processada, e a lista de imagens de referência L1 lista imagens futuras. Cada entrada das listas de imagem de referência L0 e L1 inclui um local de armazenamento de dados de pixel e uma contagem de ordem de imagem (POC) da imagem correspondente.
[0011] POCs são representadas por números inteiros, e indicam a ordem em que as imagens são exibidas e tempo de exibição com relação às imagens. Supondo que uma imagem com uma POC "0" é exibida no tempo de exibição "0", o tempo de exibição de uma imagem dada pode ser obtido pela multiplicação da POC da imagem por uma constante. Por exemplo, quando "fr" indica o ciclo de exibição (Hz) de quadros e "p" indica que a POC de uma imagem, o tempo de exibição da imagem pode ser representado pela fórmula (1) abaixo. tempo de exibição = p x (fr/2) ... fórmula (1)
[0012] Por conseguinte, pode-se dizer que a POC indica o tempo de exibição de uma imagem em unidades de uma constante.
[0013] Quando uma lista de imagem de referência inclui duas ou mais entradas, imagens de referência que se referem a vetores de movimento são especificadas por números de índice (índices de referência) na lista de imagem de referência. Quando uma lista de imagem de referência inclui apenas uma entrada (ou uma imagem), o índice de referência de um vetor de movimento correspondente à lista de imagem de referência é automaticamente ajustado em "0". Neste caso, não há necessidade de especificar explicitamente o índice de referência.
[0014] Um vetor de movimento de um bloco inclui um identificador de lista L0/L1, um índice de referência, e dados de vetor (Vx, Vy). Uma imagem de referência é identificada pelo identificador de lista L0/L1 e o índice de referência, e uma região na imagem de referência é identificada pelos dados de vetor (Vx, Vy). Vx e Vy nos dados de vetor indicam, respectivamente, as diferenças entre as coordenadas de uma região de referência nos eixos horizontal e vertical e nas coordenadas de um bloco de destino (ou bloco atual) a ser processadas. Por exemplo, Vx e Vy podem ser representados em unidades de um quarto de pixel. O identificador de lista L0/L1 e o índice de referência podem ser coletivamente chamados de um identificador de imagem de referência, e (0, 0) pode ser chamado de um vetor 0.
[0015] Um método de determinação de um preditor de vetor em HEVC é descrito abaixo. Um preditor de vetor é determinado para cada imagem de referência identificada pelo identificador de lista L0/L1 e o índice de referência. Na determinação de dados de vetor mvp de um preditor de vetor para um vetor de movimento se referindo a uma imagem de referência identificada por um identificador de lista LX e uma referência de índice refidx, até três conjuntos de dados vetoriais são calculados como candidatos de preditor de vetor.
[0016] Blocos que são espacial e temporalmente adjacentes a um bloco de destino são classificados em três grupos: blocos à esquerda do bloco de destino (grupo da esquerda), blocos acima do bloco de destino (grupo superior), e os blocos temporalmente adjacentes ao bloco de destino (grupo temporalmente adjacente). De cada um dos três grupos, até um candidato de preditor de vetor é selecionado.
[0017] Candidatos de preditor de vetor selecionados são listados na ordem de prioridade dos grupos: o grupo temporalmente adjacente, o grupo esquerda, e o grupo superior. Esta lista é colocada em uma matriz mvp_cand. Se nenhum candidato de preditor de vetor está presente em todos os grupos, um vetor 0 é adicionado à matriz mvp_cand.
[0018] Um índice de candidato de preditor mvp_idx é usado para identificar um dos candidatos de preditor de vetor na lista que deve ser utilizada como o preditor de vetor. Isto é, os dados de vetor de um candidato de preditor de vetor localizados na "mvp_idx"-ésima posição na matriz mvp_cand são utilizados como os dados de vetor MVP do preditor de vetor.
[0019] Quando mv indica um vetor de movimento de um bloco de destino de codificação que se refere a uma imagem de referência identificada pelo identificador de lista LX e o índice de referência refidx, as buscas de aparelhos de codificação de vídeo da matriz mvp_cand para encontrar um candidato de preditor de vetor mais próximo ao vetor de movimento mv, e define o índice do candidato de preditor de vetor encontrado como o índice de candidato de preditor mvp_idx. Além disso, o aparelho de codificação de vídeo calcula um vetor de diferença MVD usando a fórmula (2) abaixo e codifica refidx, MVD, e mvp_idex como informação de vetor de movimento para a lista LX. mvd = mv - mvp ... fórmula (2)
[0020] O aparelho de decodificação vídeo decodifica refidx, mvd, e mvp_idex, determina mvp_cand com base em refidx, e utiliza o candidato de preditor de vetor localizado na "mvp_idx"-ésima posição em mvp_cand como o preditor de vetor mvp. O aparelho de decodificação de vídeo restaura o vetor de movimento mv do bloco de destino com base na fórmula (3) abaixo. mv = mvd + mvp ... fórmula (3)
[0021] Em seguida, os blocos espacialmente adjacentes a um bloco de destino são descritos. A figura 1 é um desenho que ilustra blocos espacialmente adjacentes a um bloco de destino. Com referência à figura 1, os processos exemplares de selecionar candidatos de preditor de vetor a partir dos blocos à esquerda do bloco de destino e bloquear acima do bloco de destino são descritos.
[0022] Em primeiro lugar, um processo exemplar de seleção de um candidato de preditor de vetor a partir dos blocos à esquerda do bloco de destino é descrito. Blocos I e H à esquerda do bloco de destino são buscados nesta ordem, até que um vetor de movimento 1 com o identificador de lista LX e o índice de referência refidx seja encontrado. Se o vetor de movimento 1 com a identificador de lista LX e o índice de referência refidx for encontrado, o vetor de movimento 1 é selecionado.
[0023] Se o vetor de movimento 1 não for encontrado, um vetor de movimento 2, que se refere a uma imagem de referência que está em uma lista de imagem de referência LY e é a mesma que a imagem de referência indicada pelo índice de referência refidx das listas de imagem de referência LX, é buscado. Se o vetor de movimento 2 for encontrado, o vetor de movimento 2 é selecionado.
[0024] Se o vetor de movimento 2 não for encontrado, o vetor de movimento 3 para a interpredição é buscado. Se o vetor de movimento 3 é encontrado, o vetor de movimento 3 é selecionado. Se o vetor de movimento selecionado no presente processo não se refere a uma imagem de referência que é a mesma que a imagem de referência indicada pelo índice de referência refidx das listas de imagem de referência LX, um processo de escalonamento descrito mais tarde é realizado.
[0025] Em seguida, um processo exemplar de seleção de um candidato de preditor de vetor a partir dos blocos acima do bloco de destino é descrito. Blocos E, D, e A, acima do bloco de destino são buscados nesta ordem, até que um vetor de movimento 1 com o identificador de lista LX e o índice de referência refidx for encontrado. Se o vetor de movimento 1 com o identificador de lista LX e o índice de referência refidx for encontrado, o vetor de movimento 1 é selecionado.
[0026] Se o vetor de movimento 1 não for encontrado, um vetor de movimento 2, que se refere a uma imagem de referência que está em uma lista de imagem de referência LY que é a mesma que a imagem de referência indicada pelo índice de referência refidx das listas de imagem de referência LX, é buscado. Se o vetor de movimento 2 for encontrado, o vetor de movimento 2 é selecionado.
[0027] Se o vetor de movimento 2 não for encontrado, a vetor de movimento 3 para a interpredição é buscado. Se o vetor de movimento 3 é encontrado, o vetor de movimento 3 é selecionado. Se o vetor de movimento selecionado no presente processo não se refere a uma imagem de referência que é a mesma que a imagem de referência indicada pelo índice de referência refidx das listas de imagem de referência LX, um processo de escalonamento descrito mais tarde é realizado.
[0028] Em seguida, os blocos temporalmente adjacentes a um bloco de destino são descritos. A figura 2 é um desenho usado para descrever um processo de seleção de um candidato de preditor de vetor a partir de blocos temporalmente adjacentes a um bloco de destino.
[0029] Em primeiro lugar, uma imagem de referência temporalmente adjacente 20, que inclui um bloco temporalmente adjacente e é chamado de um quadro colocalizado (ColPic), é selecionado. O ColPic 20 é um quadro de referência com índice de referência "0" na lista de imagem de referência L0 ou L1. Normalmente, um ColPic é uma imagem de referência com índice de referência "0" na lista de imagem de referência L1.
[0030] Um mvCol 22, que é um vetor de movimento de um bloco (bloco Col) 21 localizado no ColPic 20 na mesma posição que um bloco de destino 11, é escalado por um método de escalonamento descrito abaixo para gerar um candidato de preditor de vetor.
[0031] Um método exemplar de escalar um vetor de movimento é descrito abaixo. Aqui, é assumido que um vetor de movimento de entrada é representado por mvc = (mvcx, mvcy), um vetor de saída (candidato de preditor de vetor) é representado por mvc' = (mvcx', mvcy'), e mvc é mvCol.
[0032] Além disso, ColRefPic 23 indica uma imagem que mvc refere-se a, ColPicPoc indica a POC do ColPic 20 incluindo mvc, ColRefPoc indica a POC do ColRefPic 23, CurrPoc indica a POC de uma imagem de destino atual 10, e CurrRefPoc indica a POC de uma imagem 25 identificada por RefPicList_LX e RefIdx.
[0033] Quando o vetor de movimento a ser escalado é um vetor de movimento de um bloco espacialmente adjacente, ColPicPoc é igual CurrPoc. Quando o vetor de movimento a ser escalado é um vetor de movimento de um bloco temporalmente adjacente, ColPicPoc é igual a POC de ColPic.
[0034] Tal como indicado pelas fórmulas (4) e (5) abaixo, mvc é escalado com base na relação entre intervalos de tempo de imagens. mvcx' = mvcx x (CurrPoc-CurrRefPoc) / (ColPicPoc- ColRefPoc) ... fórmula (4) mvcy' = mvcy x (CurrPoc-CurrRefPoc) / (ColPicPoc- ColRefPoc) ... fórmula (5)
[0035] No entanto, uma vez que a divisão requer uma grande quantidade de cálculo, mvc' pode ser aproximado, por exemplo, através da multiplicação e deslocamento utilizando as fórmulas abaixo. 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, (TDB x iX +32) >> 6) ... fórmula (11) abs (): uma função que retorna um valor absoluto clip3 (x, y, z): uma função que retorna uma mediana de x, y, e z >>: deslocamento aritmético à direita
[0036] "Escala" obtida pela fórmula (11) é usada como um fator de escala. Neste exemplo, Escala = 256 indica um coeficiente de "1", ou seja, mv não é escalado. O fator de escala tem uma precisão de 8-bits depois do ponto decimal. Assim, quando multiplicado pelo fator de escala, a precisão após o ponto decimal de um vetor de movimento é aumentada em 8 bits.
[0037] Com base na Escala fator de escala, uma operação de escala é realizada usando as fórmulas abaixo. mvcx' = (Escala x mvcx + 128) >> 8 ... fórmula (12) mvcy' = (Escala x mvcy + 128) >> 8 ... fórmula (13)
[0038] Nas fórmulas (12) e (13), N bits após o ponto decimal são arredondados para o inteiro mais próximo pela adição de 2N-1 a um valor multiplicado pelo fator de escala e deslocando o resultado de adição para a direita em N bits. Um processo de Escala semelhante é divulgado em ISO / IEC 14496-10 (MPEG-4 Parte 10) / ITU-T Rec. H.264. O vetor obtido mvc’ é utilizado como um candidato de preditor de vetor.
SUMÁRIO
[0039] É um objetivo em um aspecto da modalidade prover um aparelho de decodificação de vídeo, um aparelho de codificação de vídeo, um método de decodificação de vídeo, um método de codificação de vídeo, e um meio de armazenamento que armazena o código de programa, que torna possível melhorar a precisão de um preditor de vetor.
[0040] De acordo com um aspecto da invenção, é provido um aparelho de decodificação de vídeo que inclui uma unidade de armazenamento de lista de imagem de referência configurada para armazenar informação de imagem de imagens; uma unidade de armazenamento de informação de vetor de movimento configurada para armazenar informação de vetor de movimento incluindo vetores de movimento de blocos que são espacial e temporalmente adjacentes a um bloco de destino a ser decodificado e identificadores de imagens de referência, indicando imagens a que os vetores de movimento se referem, e uma unidade de geração de preditor de vetor configurada para escalar um candidato de preditor de vetor para um vetor de movimento do bloco de destino com base na informação de imagem e na informação de vetor de movimento e corrigir o candidato de preditor de vetor escalado para 0 por uma quantidade predeterminada.
BREVE DESCRIÇÃO DOS DESENHOS
[0041] Figura 1 é um desenho que ilustra blocos espacialmente adjacentes a um bloco de destino;
[0042] figura 2 é um desenho usado para descrever um processo de seleção de um candidato de preditor de vetor a partir de um bloco temporalmente adjacente a um bloco de destino;
[0043] figura 3 é um desenho que ilustra uma relação entre mvp' e mvCol;
[0044] figura 4 é um gráfico ilustrando uma distribuição de probabilidade de aparecimento de mv quando mvp' é positivo;
[0045] figura 5 é um gráfico ilustrando uma distribuição de probabilidade de aparecimento de mv quando mvp' é negativo;
[0046] figura 6 é um diagrama de blocos que ilustra uma configuração exemplar de um aparelho de decodificação de vídeo de acordo com uma primeira modalidade;
[0047] figura 7 é um diagrama de blocos que ilustra uma configuração exemplar de uma unidade de geração de preditor de vetor de acordo com a primeira modalidade;
[0048] figura 8 é um diagrama de blocos que ilustra uma configuração exemplar de uma unidade de operação de escala de acordo com a primeira modalidade;
[0049] figura 9 é um diagrama de blocos que ilustra configurações exemplares (1) de componentes de uma unidade de operação de escala;
[0050] figura 10 é um diagrama de blocos que ilustra configurações exemplares (2) dos componentes de uma unidade de operação de escala;
[0051] figura 11 é um desenho usado para descrever as operações de uma unidade de operação de escala;
[0052] figura 12 é um diagrama de blocos que ilustra configurações exemplares (3) dos componentes de uma unidade de operação de escala;
[0053] figura 13 é um fluxograma que ilustra um processo exemplar realizado por um aparelho de decodificação de vídeo da primeira modalidade;
[0054] figura 14 é um fluxograma que ilustra um processo exemplar (1) realizado por uma unidade de geração de preditor de vetor da primeira modalidade;
[0055] figura 15 é um fluxograma que ilustra um processo exemplar (2) realizado por uma unidade de geração de preditor de vetor da primeira modalidade;
[0056] figura 16 é um diagrama de blocos que ilustra uma configuração exemplar de uma unidade de geração de preditor de vetor de acordo com uma segunda modalidade;
[0057] figura 17 é um fluxograma que ilustra um processo exemplar realizado por uma unidade de geração de preditor de vetor da segunda modalidade;
[0058] figura 18 é um diagrama de blocos que ilustra uma configuração exemplar de uma unidade de geração de preditor de vetor de acordo com uma terceira modalidade;
[0059] figura 19 é um fluxograma que ilustra um processo exemplar (1) realizado por uma unidade de geração de preditor de vetor da terceira modalidade;
[0060] figura 20 é um fluxograma que ilustra um processo exemplar (2) realizado por uma unidade de geração de preditor de vetor da terceira modalidade;
[0061] figura 21 é um diagrama de blocos que ilustra uma configuração exemplar de uma unidade de geração de preditor de vetor de acordo com uma quarta modalidade;
[0062] figura 22 é um fluxograma que ilustra um processo exemplar (1) realizado por uma unidade de geração de preditor de vetor da quarta modalidade;
[0063] figura 23 é um fluxograma que ilustra um processo exemplar (2) realizado por uma unidade de geração de preditor de vetor da quarta modalidade;
[0064] figura 24 é um diagrama de blocos que ilustra uma configuração exemplar de um aparelho de codificação de vídeo de acordo com uma quinta modalidade;
[0065] figura 25 é um fluxograma que ilustra um processo exemplar realizado por um aparelho de codificação de vídeo da quinta modalidade; e
[0066] figura 26 é um desenho que ilustra uma configuração exemplar de um aparelho de processamento de imagem.
DESCRIÇÃO DAS MODALIDADES
[0067] Em HEVC e H.264, o movimento entre os quadros é representado por vetores de movimento de blocos respectivos. Geralmente, ao gerar um preditor de vetor a partir de um bloco temporalmente adjacente, o vetor de movimento do bloco de temporalmente adjacente é escalado. Aqui, uma diferença T1 entre o tempo de exibição de uma imagem de destino e o tempo de exibição de uma imagem a que o vetor de movimento de um bloco de destino se refere é diferente de uma diferença T2 entre o tempo de exibição de uma imagem, incluindo um bloco temporalmente adjacente e o tempo de exibição de uma imagem a que o vetor de movimento do bloco de temporalmente adjacente se refere.
[0068] Portanto, o vetor de movimento do bloco de temporalmente adjacente é escalado pela razão entre a diferença T1 e a diferença T2 (T1/T2) de modo que a quantidade de movimento por unidade de tempo torna-se constante. No entanto, com um método, tal como indicado pelas fórmulas (12) e (13), onde o vetor de movimento é escalado utilizando um fator de escala com uma certa precisão depois do ponto decimal e um preditor de vetor é representado por números inteiros mais próximo do vetor de movimento escalado, é difícil melhorar a precisão do preditor de vetor.
[0069] Um aspecto da presente divulgação torna possível melhorar a precisão de um preditor de vetor.
[0070] Os inventores estudaram a precisão dos preditores de vetor. A figura 3 é um desenho que ilustra uma relação entre mvp’ e mvCol. Na figura 3, mvCol 22 indica um vetor de movimento de um bloco (Col bloco 21), que é temporalmente adjacente a um bloco de destino 11 para ser processado, e mv indica um vetor de movimento do bloco de destino 11.
[0071] Também na figura 3, o mvp’ indica um vetor de movimento (candidato de preditor de vetor) obtido escalando o mvCol 22 pela razão (T1/T2) acima descrita com precisão infinita de números reais. Isto é, mvp’ é representado pela fórmula (14) abaixo. mvp' = mvCol x (T1/T2) ... fórmula (14)
[0072] Quando um candidato de preditor de vetor que é igual a mv é selecionado como o preditor de vetor, o vetor de diferença torna-se "0" e, como resultado, a eficiência de codificação é melhorada. Portanto, é importante fazer mvp’ tornar-se próximo ou igual a mv, a fim de melhorar a eficiência de codificação. Os inventores estudaram diferenças entre mvp’ e mv.
[0073] figura 4 é um gráfico ilustrando uma distribuição de probabilidade de aparecimento de mv quando mvp’ é positivo. A distribuição de probabilidade da figura 4 baseia-se nos componentes horizontais de vetores. A figura 5 é um gráfico ilustrando uma distribuição de probabilidade de aparecimento de mv quando mvp’ é negativo. A distribuição de probabilidade da figura 5 baseia-se também os componentes horizontais de vetores.
[0074] Quando mvp, obtido pela escala de mvCol 22 é comparado com mv, como ilustrado nas figuras 4 e 5, a frequência de aparecimento de mv é mais elevada a um ponto um pouco mais próximo do que mvp’ para o vetor 0. Por esta razão, nas modalidades descritas a seguir, um candidato de preditor de vetor escalado por um fator de escala é corrigido para o vetor 0.
[0075] As modalidades preferidas da presente invenção são descritas abaixo com referência aos desenhos que as acompanham. PRIMEIRA MODALIDADE CONFIGURAÇÃO
[0076] Figura 6 é um diagrama de blocos que ilustra uma configuração exemplar de um aparelho de decodificação de vídeo 100 de acordo com uma primeira modalidade. Como ilustrado na figura 6, o aparelho de decodificação de vídeo 100 pode incluir uma unidade de decodificação de entropia 101, uma unidade de armazenamento de lista de imagem de referência 102, uma unidade de armazenamento de informação de vetor de movimento 103, uma unidade de geração de preditor de vetor 104, uma unidade de restauração de vetor de movimento 105, uma unidade de geração de pixel predito 106, uma unidade de quantização inversa 107, uma unidade de transformação ortogonal inversa 108, uma unidade de geração de pixel decodificado 109, e uma unidade de armazenamento de imagem decodificada 110.
[0077] A unidade de decodificação de entropia 101 realiza entropia decodificação em um fluxo comprimido, e os índices de referência, assim, decodifica, vetores de diferença, e os índices candidatos de preditor para L0 e L1 de um bloco de destino, e um coeficiente de transformação ortogonal.
[0078] A unidade de armazenamento de lista de imagem de referência 102 armazena informações de imagem que incluem POCs de imagens, incluindo imagens de referência que um bloco de destino pode se referir e também armazena locais de armazenamento de dados de imagem.
[0079] As unidades de armazenamento de informações de vetor de movimento 103 armazenam informações de vetor movimentos incluindo vetores de movimento de blocos que são temporal e espacialmente adjacentes a um bloco de destino e identificadores de imagem de referência, indicando imagens as quais os vetores de movimento se referem. A informação de vetor de movimento é gerada pela unidade de restauração de vetor de movimento 105.
[0080] A unidade de geração de preditor de vetor 104 obtém os índices de referência (identificadores de imagem de referência) de L0 e L1 a partir da unidade de decodificação de entropia 101, e gera listas de candidatos de preditor de vetor para um vetor de movimento do bloco de destino. Detalhes da unidade de geração de preditor de vetor 104 são descritos mais adiante.
[0081] A unidade de restauração de vetor de movimento 105 obtém os índices de candidatos de preditor e os vetores de diferença para L0 e L1 a partir da unidade de decodificação de entropia 101, e acrescenta candidatos de preditor de vetor indicados pelos índices de candidatos de preditor para os vetores de diferença correspondentes para restaurar vetores de movimento.
[0082] A unidade de geração de pixel predito 106 gera um sinal de pixel predito usando os vetores de movimento restaurados e uma imagem decodificada armazenada na unidade armazenamento de imagem decodificada 110.
[0083] A unidade de quantização inversa 107 realiza quantização inversa sobre o coeficiente de transformação ortogonal obtido a partir da unidade de decodificação de entropia 101. A unidade de transformação ortogonal inversa 108 gera um sinal de erro de predição, realizando a transformação ortogonal inversa sobre uma saída de sinal inversamente quantizado a partir da unidade de quantização inversa 107. O sinal de erro de predição é emitido para a unidade de geração de pixel decodificado 109.
[0084] A unidade de geração de pixel decodificado 109 adiciona o sinal de pixel predito e do sinal de erro de predição para gerar pixels decodificados.
[0085] A unidade de armazenamento de imagem decodificada 110 armazena uma imagem decodificada incluindo os pixels decodificados gerados pala unidade de geração de pixel decodificado 109. A imagem decodificada na unidade de armazenamento de imagem decodificada 110 é emitida para uma unidade de exibição.
[0086] Em seguida, a unidade de geração de preditor de vetor 104 é descrita em mais detalhe. A figura 7 é um diagrama de blocos que ilustra uma configuração exemplar do da unidade de geração de preditor de vetor 104 de acordo com a primeira modalidade. Como ilustrado na figura 7, a unidade de geração de preditor de vetor 104 pode incluir uma unidade de cálculo de fator de escala 201, uma unidade de obtenção de informação de vetor 202, e uma unidade de operação de escala 203.
[0087] A unidade de geração de preditor de vetor 104 recebe um identificador de imagem de referência de um bloco de informação de destino e POC de uma imagem de destino. Aqui, LX indica um identificador de lista de referência e refidx indica um índice de referência incluído no identificador de imagem de referência do bloco de destino.
[0088] A unidade de armazenamento de informação de vetor de movimento 103 armazena informações de vetor de movimento em blocos previamente processados. A informação de vetor de movimento de um vetor de movimento inclui um identificador de uma imagem à qual um bloco incluindo o vetor de movimento pertence, um identificador (identificador de imagem de referência) de uma imagem à qual o vetor de movimento se refere, e os valores de componentes horizontal e vertical do vetor de movimento.
[0089] A unidade de obtenção de informação de vetor 202 obtém informação de movimento do vetor de um bloco que é adjacente a um bloco de destino da unidade de armazenamento de informação de vetor de movimento 103. A informação de vetor de movimento inclui um vetor de movimento, um identificador de uma imagem à qual o bloco incluindo o vetor de movimento faz parte, e um identificador de imagem de referência de uma imagem de referência á qual o vetor de movimento se refere.
[0090] A unidade de obtenção de informação de vetor 202 sequencialmente obtém informação de vetor de movimento de blocos que são espacial e temporalmente adjacentes a um bloco de destino. Como descrito acima, um vetor de movimento de um bloco à esquerda do bloco de destino é primeiro buscado. As unidades de obtenção de informação de vetor 202 buscam por um vetor de movimento 1 com o identificador de lista LX e o índice de referência refidx, e seleciona o vetor de movimento 1 se ele for encontrado.
[0091] Se o vetor de movimento 1 não for encontrado, a unidade de obtenção de informação de vetor 202 busca por um vetor de movimento 2 referindo-se a uma imagem de referência que está em uma lista de imagem de referência LY e é a mesma que a imagem de referência indicada pelo índice de referência refidx da lista de imagem de referência LX. Se o vetor de movimento 2 é encontrado, a unidade de obtenção de informação de vetor 202 seleciona o vetor de movimento 2.
[0092] Se o vetor de movimento 2 não for encontrado, a unidade de obtenção de informação de vetor 202 busca por um vetor de movimento 3 para interpredição. Se o vetor de movimento 3 for encontrado, a unidade de obtenção de informação de vetor 202 seleciona o vetor de movimento 3. Se o vetor de movimento selecionado no presente processo não se refere a uma imagem de referência que é a mesma que a imagem de referência indicada pelo índice de referência refidx das listas de imagem de referência LX, um processo de escalonamento é realizado. As informações de obtenção de vetor unidade 202 emite as informações de vetor de movimento obtida de um vetor de movimento selecionado para a unidade de cálculo de fator de escala 201.
[0093] A unidade de cálculo de fator de escala 201 recebe as informações de vetor de movimento da unidade de obtenção de informação de vetor 202, obtém as POCs de imagens relacionadas na unidade de armazenamento de lista de imagem de referência 102, e calcula um fator de escala.
[0094] Aqui, CurrPoc indica a POC de uma imagem de destino. A unidade de cálculo de fator de escala 201 obtém, a partir da unidade de armazenamento de lista de imagem de referência 102, a POC (CurrRefPoc) de uma imagem que o bloco de destino refere-se a, a POC (ColPicPoc) de uma imagem para a qual um vetor de movimento a ser escalado pertence, e a POC (ColRefPoc) de uma imagem que o vetor de movimento se refere.
[0095] A unidade de cálculo de fator de escala 201 calcula um fator de escala utilizando as fórmulas abaixo. 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, (TDB x iX +32) >> 6) ... fórmula (11) abs (x): uma função que retorna um valor absoluto de x clip3 (x, y, z): uma função que retorna uma mediana de x, y, ez >>: Deslocamento aritmético à direita
[0096] A Escala do fator de escala calculado tem uma precisão de 8-bits depois do ponto decimal. A unidade de cálculo de fator de escala 201 emite a escala do fator de escala calculado para a unidade de operação de escala 203.
[0097] A unidade de operação de escala 203 escala o vetor de movimento com base na informação de vetor de movimento a partir da unidade de obtenção de informação de vetor 202 e o fator de escala recebido a partir da unidade de cálculo de fator de escala 201.
[0098] A figura 8 é um diagrama de blocos que ilustra uma configuração exemplar da unidade de operação de escala 203 da primeira modalidade. A unidade de operação de escala 203 recebe um fator de escala da unidade de cálculo de fator de escala 201 e um vetor de movimento (mvcx, mvcy) para ser escalado a partir da unidade de obtenção de informações de vetor 202. O vetor de movimento (mvcx, mvcy) a ser escalado pode ser referido como um candidato de preditor de vetor de pré-escala. A unidade de operação de escala 203 gera um vetor de movimento (Escala mvcx', mvcy'). O vetor de movimento (Escala mvcx', mvcy') pode ser referido como um candidato escalado de preditor de vetor.
[0099] Como ilustrado na figura 8, a unidade de operação de escala 203 pode incluir uma unidade de escala 301, uma unidade de correção 302, e uma unidade de ajuste 303. A unidade de escala 301 multiplica o candidato de preditor de vetor pré-escalado por um fator de escala com uma precisão predeterminada após o ponto decimal para obter um candidato de preditor de vetor escalado. Assim, a precisão após o ponto decimal do candidato de preditor de vetor escalado é aumentada para a precisão após o ponto decimal do fator de escala.
[00100] A unidade de correção 302 corrige (ou ajusta) o candidato de preditor de vetor escalado até 0 (ou o vetor 0) por uma quantidade predeterminada. A unidade de ajuste 303 arredonda o candidato de preditor de vetor escalado e corrigido para o próximo vetor de inteiros. Operações detalhadas da unidade de escala 301, a unidade de correção 302, e a unidade de ajuste 303 são descritas abaixo.
[00101] A unidade de escala 301 multiplica o vetor de movimento (mvcx, mvcy) pela Escala de fator de escala. Quando o fator de escala tem uma precisão de N-bit após o ponto decimal, a precisão após o ponto decimal do vetor de movimento multiplicado (ou escalado) é aumentada para N bits.
[00102] A unidade de correção 302 subtrai uma quantidade predeterminada "a" a partir de valores absolutos de vetor de movimento escalado para corrigir o vetor de movimento escalado para 0. A unidade de ajuste 303 adiciona 2N-1 aos valores (ou componentes) do vetor de movimento corrigido e desloca os resultados de adição para a direita em N bits para arredondar os valores para os inteiros mais próximos. Em seguida, a unidade de ajuste 303 multiplica os valores arredondados por um sinal do vetor de movimento escalado.
[00103] A operação de escala acima realizada pela unidade de operação de escala 203 é representada pelas fórmulas (15) e (16) abaixo. mvcx' = sinal (Escala x mvcx) x {(abs (Escala x mvcx)-a + 2N-1) >> N} ... fórmula (15) mvcy' = sinal (Escala x mvcy) x {(abs (Escala x mvcy)-a + 2N-1) >> N} ... fórmula (16) abs (): uma função que retorna um valor absoluto sinal (): uma função que retorna um sinal (1 ou -1)
[00104] Nas fórmulas (15) e (16), os valores absolutos de vetor de movimento escalado (Escala x mvcx, Escala x mvcy) obtidos antes de subtrair o montante predeterminado "a". Isto é para corrigir os valores do vetor de movimento escalado para 0 independentemente do fato de os valores serem positivos ou negativos. Com fórmulas (15) e (16), o vetor de movimento escalado é corrigido para o vetor 0 pelo valor predeterminado "a". Corrigir os vetores de movimento em Escala para 0 pela quantidade predeterminada "A" torna possível fazer uma média dos candidatos de preditor de vetor emitidos pela unidade de operação de escala 203 perto de 0.
[00105] Quando N = 8, as fórmulas (15) e (16) podem ser reescritas nas fórmulas (17) e (18) abaixo. mvcx' = sinal (Escala x mvcx) x {(abs (Escala x mvcx)-a + 128) >> 8} ... fórmula (17) mvcy' = sinal (Escala x mvcy) x {(abs (Escala x mvcy)-a + 128) >> 8} ... fórmula (18)
[00106] Através de experimentos, os inventores descobriram que a eficiência da codificação melhora quando a quantidade predeterminada "a" está dentro de um intervalo de 1 i a i 2N-2. Portanto, quando, por exemplo, N = 8, a quantidade predeterminada "a" está, de preferência dentro de um intervalo de 1 i a i 64.
[00107] O valor predeterminado "a" pode ser fixado em um valor fixo selecionado na faixa de 1 i a i 2N-2. Alternativamente, um valor ideal para a quantidade predeterminada "a" pode ser determinado dinamicamente em função de uma cena ou o fator de escala. Um método exemplar de dinamicamente mudar o valor da quantidade predeterminada "a" dependendo do fator de escala é descrito mais tarde.
[00108] A figura 9 é um diagrama de blocos que ilustra configurações exemplares (1) de componente da unidade de operação de escala 203. Abaixo, cálculos realizados pelos componentes da unidade de operação de escala 203 são descritos utilizando mvcx em um vetor de movimento (mvcx, mvcy). Cálculos semelhantes podem também ser realizados para mvcy. No exemplo da figura 9, a unidade de escala 301 calcula (Escala x mvcx) na fórmula (15).
[00109] A unidade de correção 302 obtém o valor absoluto abs (Escala x mvcx) de (Escala x mvcx), e subtrai o valor predeterminado "a" do valor absoluto. A unidade de correção 302 também calcula sinal (Escala x mvcx) para obter o sinal de (Escala x mvcx).
[00110] A unidade de ajuste 303 adiciona 2N-1 a "abs (Escala x mvcx)-a", e desloca "abs (Escala x mvcx)-a + 2N-1" em N bits. Em seguida, a unidade de ajuste 303 multiplica o valor deslocado pelo sinal de (Escala x mvcx) para obter mvcx'. De um modo semelhante, mvcy’ é obtido. Em seguida, a unidade de ajuste 303 gera o vetor de movimento (Escala mvcx’ , mvcy') como um candidato de preditor de vetor.
[00111] A figura 10 é um diagrama de blocos que ilustra configurações exemplares (2) dos componentes da unidade de operação de escala 203. No exemplo da fig. 10, uma unidade de correção 304 adiciona "2N-1-a" a abs (Escala x mvcx).
[00112] Uma unidade de ajuste 305 desloca "abs (Escala x mvcx) + (a+ 2 N-1)" emitido da unidade de correção 304 por N bits, e multiplica o valor deslocado pelo sinal de (Escala x mvcx). Unidade de operação de escala 301 da figura 10 é substancialmente a mesma que a unidade de escala 301 da figura 9.
[00113] A figura 11 é um desenho usado para descrever um processo exemplar realizado pela unidade de operação de escala 203. No exemplo da figura 11, é assumido que um fluxo de entrada é um vídeo comprimido de um objeto estacionário. Mesmo quando um objeto no vídeo é estacionário, existe um caso em que um vetor de movimento pequeno que não é 0 é selecionado devido aos ruídos em imagens.
[00114] Supõe-se um caso em que um vetor de movimento temporalmente adjacente não é 0, embora um fluxo de entrada seja completamente estacionário e um vetor 0 seja esperado. Neste exemplo, é assumido que um vetor de movimento temporalmente adjacente (mvcx, mvcy) é (2, 0) (isto é, o movimento de 2/4 pixels e 0 pixel) e o vetor de movimento temporalmente adjacente (mvcx, mvcy) é escalado para um quarto por um fator de escala Escala = 64. Neste caso, uma vez que mvcx / 4 = 0,5, quer mvcx’ = 0 ou mvcx' = 1 é selecionado para um candidato de preditor a ser emitido.
[00115] Quando o método de operação de escala das fórmulas (12) e (13) é usado, mvcx’ = 1 é selecionado (candidato de preditor de vetor 2 na FIG. 11). Enquanto isso, na unidade de operação de escala 203 da presente modalidade que usa fórmulas (15) e (16), a unidade de escala 301 emite 2 (mvcx) x 64 (Escala) = 128. A unidade de correção 302 calcula 128-a + 128 = 256-a. Quando "a" está dentro do intervalo acima descrito, a unidade de ajuste 303 desloca "256-a" por 8 bits e emite mvcx’ = 0 (candidato de preditor de vetor 1 na fig. 11).
[00116] Assim, a unidade de operação de escala 203 da presente modalidade é capaz de obter (mvcx’, mvcy') = (0, 0), isto é, um candidato de preditor de vetor estacionário que é esperado.
[00117] Aqui, quando N0 indicando o número de vezes que mv é representado por (0, 0) é maior do que N1 indicando o número de vezes que mv é representado por (1, 0) (N0> N1), ele indica que, em comparação com a técnica relacionada, a presente modalidade torna possível aumentar o número de vezes que o preditor de vetor é representado pelo vetor 0. Este por sua vez, faz com que seja possível reduzir a quantidade de código de vetores de diferença e melhore a eficiência de codificação.
[00118] Outro método de operação de escala tal como descrito abaixo pode também ser utilizado. A figura 12 é um diagrama de blocos que ilustra configurações exemplares (3) dos componentes da unidade de operação de escala 203. No exemplo da figura 12, a quantidade predeterminada "a" é calculada com base na magnitude do fator de escala. Aqui, "2N-1-a" é chamado de desvio.
[00119] Na figura 12, uma unidade de correção 306 inclui uma unidade de cálculo de desvio 361. A unidade de cálculo de desvio 361 obtém o fator de escala a partir da unidade de escala 301, calcula a quantidade predeterminada "a" com base na magnitude do fator de escala, e calcula o desvio (2N-1-a). Por exemplo, a unidade de cálculo de desvio 361 calcula a quantidade predeterminada "a" utilizando a fórmula (19) abaixo. a = MIN(2N-2, abs (Escala) >> 3) ... fórmula (19)
[00120] MIN (x, y): uma função que retorna o menor dentre x e y
[00121] Com fórmula (19), quando o valor absoluto da Escala de fator de escala torna-se grande, a quantidade predeterminada "a" torna-se também grande e o valor escalado é corrigido para o vetor de 0 em um maior grau. Em outras palavras, a fórmula (19) indica que a quantidade predeterminada "a" aumenta até 2N-2 como os aumentos do fator de escala.
[00122] Como descrito acima, corrigir um candidato de preditor de vetor escalado para o vetor de 0 faz com que seja possível melhorar a precisão de um preditor de vetor. OPERAÇÕES
[00123] Em seguida, as operações exemplares do aparelho de decodificação de vídeo 100 da primeira modalidade são descritas. A figura 13 é um fluxograma que ilustra um processo exemplar realizado pelo aparelho de decodificação de vídeo 100 da primeira modalidade. No processo da figura 13, um bloco, que é uma unidade de processamento, é decodificado.
[00124] Na etapa S101, a unidade de decodificação de entropia 101 realiza a decodificação de entropia em dados de fluxo de entrada, e, assim, decodifica um índice de referência, um vetor de diferença, e um índice de candidato de preditor de L0 do bloco de destino; um índice de referência, um vetor de diferença, e um índice candidato de preditor para L1 do bloco de destino, e um coeficiente de transformação ortogonal.
[00125] Na etapa S102, a unidade de geração de preditor de vetor 104 gera listas (listas de candidatos de preditor de vetor) de candidatos de preditor de vetor para L0 e L1 com base nos índices de referência decodificados de L0 e L1 e informações de vetor de movimento.
[00126] Na etapa S103, a unidade de restauração de vetor de movimento 105 obtém os índices de candidato de preditor e os vetores de diferença de L0 e L1 que são decodificados pela unidade de decodificação de entropia 101. A unidade de restauração de vetor de movimento 105 identifica preditores de vetor para L0 e L1 a partir das listas de candidato de preditor de vetor com base nos índices de candidato de preditor. Então, a unidade de restauração de vetor de movimento 105 adiciona os preditores do vetor identificados e os vetores de diferença para restaurar vetores de movimento de L0 e L1 (L0 e L1 vetores de movimento).
[00127] Na etapa S104, a unidade de restauração de vetor de movimento 105 armazena informações de vetor de movimento, incluindo os índices de referência para os vetores de movimento restaurados de L0 e L1 na unidade de armazenamento de informação de vetor de movimento 103. A informação armazenada é utilizada no processo subsequente de bloco de decodificação.
[00128] Na etapa S105, a unidade de geração de pixel predito 106 obtém o vetor de movimento L0 e o vetor de movimento L1, obtém dados de pixel de regiões que os vetores de movimento se referem a partir da unidade de armazenamento de imagem decodificada 110, e gera um sinal de pixel predito.
[00129] Na etapa S106, a unidade de quantização inversa 107 realiza quantização inversa sobre o coeficiente de transformação ortogonal decodificado pela unidade de decodificação de entropia 101.
[00130] Na etapa S107, a unidade de transformação ortogonal inversa 108 gera um sinal de erro de predição, realizando a transformação ortogonal inversa do sinal inversamente quantizado.
[00131] As etapas S102 a S104 e etapas através de S106 e S107 não são necessariamente realizadas na ordem descrita anteriormente, e pode ser realizado em paralelo.
[00132] Na etapa S108, a unidade de geração de pixel decodificado 109 adiciona o sinal de pixel predito e o sinal de erro de predição para gerar pixels decodificados.
[00133] Na etapa S109, a unidade de armazenamento de imagem decodificada 110 armazena uma imagem decodificada incluindo os pixels decodificados. O processo de decodificação de um bloco é completado através das etapas acima, e as etapas são repetidas para decodificar o bloco seguinte.
[00134] Em seguida, as operações da unidade de geração de preditor de vetor 104 são descritas adiante. CANDIDATOS DE PREDITOR DE VETOR DE BLOCOS ESPACIALMENTE ADJACENTES
[00135] Um processo exemplar de gerar candidatos de preditor de vetor de blocos espacialmente adjacentes ao bloco de destino é descrito. A figura 14 é um fluxograma que ilustra um processo exemplar (1) feito pela unidade de geração de preditor de vetor 104 da primeira modalidade. Na etapa S201 da figura 14, a unidade de obtenção de informação de vetor 202 sequencialmente obtém informação de vetor de movimento (de vetores de movimento selecionados) de blocos (blocos superior e à esquerda) que são espacialmente adjacentes ao bloco de destino. A informação de vetor de movimento é obtida de uma maneira como descrito acima.
[00136] Na etapa S202, a unidade de obtenção de informação de vetor 202 determina se um vetor de movimento desejado, que se refere a uma imagem de referência que é a mesma que a imagem de referência indicada pelo índice de referência refidx das listas de imagem de referência LX, foi selecionada. Se o vetor de movimento desejado foi selecionado (SIM na etapa S202), o processo prossegue para a etapa S205. Enquanto isso, se o vetor de movimento desejado não foi selecionado (NÃO na etapa S202), o processo prossegue para a etapa S203.
[00137] Na etapa S203, a unidade de cálculo de fator de escala 201 calcula um fator de escala utilizando as fórmulas (6) a (11) descritas acima.
[00138] Na etapa S204, a unidade de operação de escala 203 escala um vetor de movimento (que é selecionado pela unidade de obtenção de informação de vetor 202 e é diferente do vetor de movimento desejado) usando o fator de escala, corrige o vetor de movimento escalado para o vetor de 0 por uma quantidade predeterminada, e realiza um deslocamento de bits no vetor de movimento corrigido.
[00139] Na etapa S205, a unidade de operação de escala 203 gera o vetor de movimento escalado e corrigido como um candidato de preditor de vetor. Enquanto isso, quando o vetor de movimento desejado foi selecionado, a unidade de operação de escala 203 gera o vetor de movimento desejado como um candidato de preditor de vetor sem realizar a operação de escala. CANDIDATOS DE PREDITOR DE VETOR DE BLOCOS TEMPORALMENTE ADJACENTES
[00140] Em seguida, um processo exemplar de gerar candidatos de preditor de vetor de blocos temporalmente adjacentes ao bloco de destino é descrito. A figura 15 é um fluxograma que ilustra um processo exemplar (2) feito pela unidade de geração de preditor de vetor 104 da primeira modalidade.
[00141] Na etapa S301 da figura 15, a unidade de obtenção de informação de vetor 202 obtém informação de vetor de movimento (de um vetor de movimento selecionado) de um bloco (bloco temporalmente adjacente) que é temporalmente adjacente ao bloco de destino. A informação de vetor de movimento é obtido de uma maneira como descrito acima.
[00142] Na etapa S302, a unidade de cálculo fator de escala 201 calcula um fator de escala Escala usando as fórmulas (6) a (11) descritas acima.
[00143] Na etapa S303, a unidade de cálculo de fator de escala 201 determina se a escala do fator de escala calculado é de 1. Se o fator de escala não é 1 (NÃO na etapa S303), o processo prossegue para a etapa S304. Enquanto isso, se o fator de escala é 1 (SIM na etapa S303), o processo prossegue para a etapa S305.
[00144] Na etapa S304, a unidade de operação de escala 304 escala o vetor de movimento selecionado usando o fator de escala calculado, corrige o vetor de movimento escalado na direção ao vetor 0 por um valor predeterminado, e realiza um deslocamento de bit sobre o vetor de movimento corrigido.
[00145] Na etapa S305, a unidade de operação de escala 203 gera o vetor de movimento escalado e corrigido como um candidato de preditor de vetor. Enquanto isso, quando o fator de escala é 1, a unidade de operação de escala 203 gera o vetor de movimento selecionado como um candidato de preditor de vetor sem realizar a operação de escala.
[00146] Assim, de acordo com a primeira modalidade, um candidato de preditor de vetor é corrigido para o vetor de 0. Este método ou configuração torna possível melhorar a precisão de preditores de vetor, para reduzir a quantidade de código de vetores de diferença, e, assim, melhorar a eficiência de codificação. Segunda modalidade
[00147] Em seguida, um aparelho de decodificação de vídeo de acordo com uma segunda modalidade é descrito. Na segunda modalidade, as operações de escala diferentes são realizadas, dependendo se uma imagem incluindo um vetor de movimento utilizado como um candidato de preditor de vetor é espacialmente adjacente ou temporalmente adjacente ao bloco de destino. CONFIGURAÇÃO
[00148] Os componentes do aparelho de decodificação de vídeo da segunda modalidade, com exceção de uma unidade de geração de preditor de vetor gerando 400, são substancialmente os mesmos que os do aparelho de decodificação de vídeo 100 da primeira modalidade. Portanto, a unidade de geração de preditor de vetor 400 é principalmente descrita abaixo.
[00149] A figura 16 é um diagrama de blocos que ilustra uma configuração exemplar da unidade de geração de preditor de vetor 400 de acordo com a segunda modalidade. Na configuração exemplar da figura 16, a unidade de geração de preditor de vetor 400 pode incluir uma unidade de cálculo de fator de escala 201, uma unidade de obtenção de informação de vetor 202, e unidade de determinação de bloco 401, e as unidades de operação de escala A402 e B403 que são adaptativamente comutadas. Os mesmos números de referência como na primeira modalidade são atribuídos aos componentes correspondentes na figura 16, e descrições desses componentes são omitidas aqui.
[00150] A unidade de determinação de bloco 401 determina se um bloco incluindo um vetor de movimento utilizado para gerar um candidato de preditor de vetor é espacialmente adjacente ou temporalmente adjacente ao bloco de destino. A unidade de determinação de bloco 401 seleciona a unidade de operação de escala A402 quando o bloco é temporalmente adjacente ao bloco de destino e seleciona a unidade de operação de escala B403 quando o bloco é temporalmente adjacente ao bloco de destino.
[00151] A unidade de operação de escala A402 realiza uma operação de escala usando as fórmulas (15) e (16) substancialmente da mesma maneira que a unidade de operação de escala 203 da primeira modalidade, e, assim, corrige um candidato de preditor de vetor escalado.
[00152] Enquanto isso, a unidade de operação de escala B403 realiza uma operação de escala em um candidato de preditor de vetor utilizando as fórmulas (12) e (13). Assim, um vetor de movimento gerado por uma das unidades de operação de escala A402 e B403 é usado como um candidato de preditor de vetor.
[00153] A configuração da segunda modalidade baseia-se no pressuposto de que a tendência de a distribuição de probabilidade de aparecimento de mv varia, dependendo se um bloco incluindo um vetor de movimento utilizado para gerar um candidato de preditor de vetor é espacialmente adjacente ou temporalmente adjacente ao bloco de destino. Aqui, a informação que indica se um bloco é espacialmente adjacente ou temporalmente adjacente ao bloco de destino é referido como a informação de adjacência.
[00154] Por exemplo, quando um bloco incluindo um vetor de movimento é temporalmente adjacente ao bloco de destino, a probabilidade de que o vetor de movimento é escalado é elevada. Portanto, neste caso, a correção do vetor de movimento, conforme descrito na primeira modalidade é preferível para melhorar a eficiência de codificação. Enquanto isso, quando um bloco incluindo um vetor de movimento é espacialmente adjacente ao bloco de destino, a probabilidade de que o vetor de movimento seja escalado é baixa. Portanto, neste caso, a escala do vetor de movimento utilizando as fórmulas (12) e (13) não pode causar um problema.
[00155] Embora as várias unidades de operação de escala são utilizadas no exemplo da figura 16, a segunda modalidade pode também ser implementada utilizando uma unidade de operação de escala. Neste caso, a unidade de determinação de bloco 401 envia a informação de adjacência para a unidade de operação de escala.
[00156] A unidade de operação de escala realiza uma operação de escala usando as fórmulas (15) e (16), se a informação de adjacência indicar que o bloco é temporalmente adjacente ao bloco de destino, e realiza uma operação de escala excluindo a subtração da quantidade predeterminada "a" em fórmulas (15) e (16), se a informação de adjacência indica que o bloco é espacialmente adjacente ao bloco de destino.
[00157] Assim, a segunda modalidade pode também ser implementada utilizando uma unidade de operação de escala que determina se subtrai a quantidade predeterminada "a" de um vetor de movimento escalado com base no resultado de determinação da unidade de determinação de bloco 401. OPERAÇÕES
[00158] Operações exemplares do aparelho de decodificação de vídeo da segunda modalidade estão descritas abaixo. O processo de decodificação realizado pelo aparelho de decodificação de vídeo da segunda modalidade é substancialmente o mesmo que o ilustrado na figura 13, e, portanto, suas descrições são omitidas aqui.
[00159] figura 17 é um fluxograma que ilustra um processo exemplar realizado pela unidade de geração de preditor de vetor 400 da segunda modalidade.
[00160] Na etapa S401, a unidade de geração de preditor de vetor 400 determina se um bloco incluindo um vetor de movimento utilizado para um candidato de preditor de vetor é espacialmente adjacente ou temporalmente adjacente ao bloco de destino. Por exemplo, se um bloco é espacialmente adjacente ou temporalmente adjacente ao bloco de destino pode ser determinado com base no identificador de imagem de referência. Se o bloco é temporalmente adjacente ao bloco de destino (SIM na etapa S401), o processo prossegue para a etapa S402. Enquanto isso, se o bloco é espacialmente adjacente ao bloco de destino (NÃO na etapa S401), o processo prossegue para a etapa S407.
[00161] Uma vez que as etapas S402 a S406 são substancialmente a mesma que as etapas S301 a S305 da figura 15, suas descrições são omitidas aqui. Uma operação de escala na etapa S405 é realizada pela unidade de operação de escala A402 usando as fórmulas (15) e (16).
[00162] Do mesmo modo, uma vez que as etapas de S407 a S409 e S411 são substancialmente as mesmas que as etapas S201 a S203 e S205 da fig. 14, suas descrições são omitidas aqui.
[00163] Na etapa S410, a unidade de operação de escala B403 realiza uma operação de escala B utilizando as fórmulas (12) e (13).
[00164] Como descrito acima, a segunda modalidade torna possível adaptativamente alternar operações de escala com base na informação de adjacência de um bloco incluindo um vetor de movimento utilizado como um candidato de preditor de vetor, e, assim, torna possível melhorar a precisão de um preditor de vetor. TERCEIRA MODALIDADE
[00165] Em seguida, um aparelho de decodificação de vídeo de acordo com uma terceira modalidade é descrito. Na terceira modalidade, as operações de escala diferentes são realizadas dependendo da magnitude de um vetor de movimento utilizado como um candidato de preditor de vetor. CONFIGURAÇÃO
[00166] Os componentes do aparelho de decodificação de vídeo da terceira modalidade, com exceção de uma unidade de geração de preditor de vetor 500, são substancialmente as mesmas que as do aparelho de decodificação de vídeo 100 da primeira modalidade. Portanto, a unidade de geração de preditor de vetor 500 é principalmente descrita abaixo.
[00167] A figura 18 é um diagrama de blocos que ilustra uma configuração exemplar da unidade de geração de preditor de vetor 500 de acordo com a terceira modalidade. Na configuração exemplar da figura 18, a unidade de geração de preditor de vetor 500 pode incluir uma unidade de cálculo de fator de escala 201, uma unidade de obtenção de informação de vetor 202, uma unidade de determinação de vetor de movimento 501, e as unidades de operação de escala A502 e B503 que são adaptativamente comutadas. Os mesmos números de referência como na primeira modalidade são atribuídos aos componentes correspondentes na figura 18, e descrições desses componentes são omitidos aqui.
[00168] A unidade de determinação de vetor de movimento 501 comuta as unidades de operação de escala A502 e B503 com base na magnitude de um vetor de movimento de entrada antes de escala (ou um candidato de preditor de vetor de pré-escala). Por exemplo, a unidade de determinação de vetor de movimento 501 determina se a magnitude de um vetor de movimento de entrada é menor que ou igual a um valor predeterminado (por exemplo, 16).
[00169] A unidade de determinação de vetor de movimento 501 seleciona a unidade de operação de escala A502, se a magnitude do vetor de movimento é inferior ou igual ao valor predeterminado, e seleciona a unidade de operação de escala B503 se a magnitude do vetor de movimento é maior do que o valor predeterminado.
[00170] A unidade de operação de escala A502 realiza uma operação de escala usando as fórmulas (15) e (16) substancialmente da mesma maneira que a unidade de operação de escala 203 da primeira modalidade, e, assim, corrige um candidato de preditor de vetor escalado.
[00171] Enquanto isso, a unidade de operação de escala B503 realiza uma operação de escala em um candidato de preditor de vetor utilizando as fórmulas (12) e (13). Assim, um vetor de movimento gerado por uma das unidades de operação de escala A502 e B503 é usado como um candidato de preditor de vetor.
[00172] A configuração da terceira modalidade baseia-se no pressuposto de que a tendência de a distribuição de probabilidade de aparecimento de mv difere dependendo da magnitude de um vetor de movimento de pré-escala (ou um candidato de preditor de vetor de escala). A influência de um erro de um preditor de vetor aumenta à medida que o valor absoluto do vetor de movimento torna-se menor. Por este motivo, na terceira modalidade, um vetor de movimento é corrigido como na primeira modalidade, quando o valor absoluto do vetor de movimento é pequeno.
[00173] Embora as unidades plurais de operação de escala são utilizadas no exemplo da figura 18, a terceira modalidade pode também ser implementada utilizando uma unidade de operação de escala. Neste caso, a unidade de determinação de vetor de movimento 501 envia a informação que indica se a magnitude do vetor de movimento é inferior ou igual ao valor predeterminado para a unidade de operação de escala.
[00174] A unidade de operação de escala realiza uma operação de escala usando as fórmulas (15) e (16) se a magnitude do vetor de movimento é inferior ou igual ao valor predeterminado, e realiza uma operação de escala excluindo a subtração do valor predeterminado "a" nas fórmulas (15) e (16) se a magnitude do vetor de movimento é maior do que o valor predeterminado.
[00175] Assim, a terceira modalidade pode também ser implementada utilizando uma unidade de operação de escala que determina se subtrai a quantidade predeterminada "a" a partir de um vetor de movimento escalado com base no resultado de determinação da unidade de determinação de vetor de movimento 501. OPERAÇÕES
[00176] Operações exemplares do aparelho de decodificação de vídeo da terceira modalidade são descritas abaixo. O processo de decodificação realizado pelo aparelho de decodificação de vídeo da terceira modalidade é substancialmente o mesmo que o ilustrado na figura 13, e, portanto, suas descrições são omitidas aqui. Processos exemplares realizados pela unidade de geração de preditor de vetor 500 são descritos abaixo. CANDIDATOS DE PREDITOR DE VETOR DE BLOCOS ESPACIALMENTE ADJACENTES
[00177] A figura 19 é um fluxograma que ilustra um processo exemplar (1) feito pela unidade de geração de preditor de vetor 500 da terceira modalidade. Etapas S501 a S503 da figura 19 são substancialmente as mesmas que as etapas S201 a S203 da figura 14.
[00178] Na etapa S504, a unidade de determinação de vetor de movimento 501 determina se a magnitude de um vetor de movimento (candidato de preditor de vetor) é menor ou igual ao valor predeterminado. Se a magnitude do vetor de movimento é inferior ou igual ao valor predeterminado (SIM na etapa S504), o processo prossegue para a etapa S505. Entretanto, se a magnitude do vetor de movimento é maior do que o valor predeterminado (NÃO na etapa S504), o processo prossegue para a etapa S506.
[00179] Na etapa S505, a unidade de operação de escala A502 realiza uma operação de escala utilizando as fórmulas (15) e (16) onde o candidato de preditor de vetor escalado é corrigido pela quantidade predeterminada "a".
[00180] Na etapa S506, a unidade de operação de escala B503 realiza uma operação de escala utilizando as fórmulas (12) e (13).
[00181] Na etapa S507, a unidade de geração de preditor de vetor 500 emite o vetor de movimento calculado pela unidade de operação de escala A502 ou B503 como um candidato de preditor de vetor. Enquanto isso, quando um vetor de movimento desejado foi selecionado, a unidade de geração de preditor de vetor 500 emite o vetor de movimento desejado como um candidato de preditor de vetor sem realizar a operação de escala.
[00182] Candidatos de preditor de vetor de blocos temporalmente adjacentes
[00183] A figura 20 é um fluxograma que ilustra um processo exemplar (2) feita pela unidade de geração de preditor de vetor 500 da terceira modalidade.
[00184] Etapas S601 a S603 da figura 20 são substancialmente as mesmas que as etapas S301 a S303 da figura 15.
[00185] Na etapa S604, a unidade de determinação de vetor de movimento 501 determina se a magnitude de um vetor de movimento (candidato de preditor de vetor) é menor ou igual ao valor predeterminado. Se a magnitude do vetor de movimento é inferior ou igual ao valor predeterminado (SIM na etapa S604), o processo prossegue para a etapa S605. Entretanto, se a magnitude do vetor de movimento é maior do que o valor predeterminado (NÃO na etapa S604), o processo prossegue para a etapa S606.
[00186] Na etapa S605, a unidade de operação de escala A502 realiza uma operação de escala utilizando as fórmulas (15) e (16) onde o candidato de preditor de vetor escalado é corrigido pela quantidade predeterminada "a".
[00187] Na etapa S606, a unidade de operação de escala B503 realiza uma operação de escala utilizando as fórmulas (12) e (13).
[00188] Na etapa S607, a unidade de geração de preditor de vetor 500 emite o vetor de movimento calculado pela unidade de operação de escala A502 ou B503 como um candidato de preditor de vetor. Enquanto isso, quando o fator de escala é 1, a unidade de geração de preditor de vetor 500 emite o vetor de movimento como um candidato de preditor de vetor sem realizar a operação de escala.
[00189] Como descrito acima, a terceira modalidade torna possível adaptativamente alternar operações de escala com base na magnitude de um vetor de movimento utilizado como um candidato de preditor de vetor, e, assim, tornar possível melhorar a precisão de um preditor de vetor. QUARTA MODALIDADE
[00190] Em seguida, um aparelho de decodificação de vídeo de acordo com uma quarta modalidade é descrito. Na quarta modalidade, as operações de escala diferentes são realizadas com base na diferença entre o tempo de exibição de uma imagem, incluindo um vetor de movimento de pré-escala (candidato de preditor de vetor) e o tempo de exibição de uma imagem a que o vetor de movimento de pré-escala refere-se. CONFIGURAÇÃO
[00191] Os componentes do aparelho de decodificação de vídeo da quarta modalidade, com exceção de uma unidade de geração de preditor de vetor 600, são substancialmente os mesmos que os do aparelho de decodificação de vídeo 100 da primeira modalidade. Portanto, a unidade de geração de preditor de vetor 600 é principalmente descrito abaixo.
[00192] figura 21 é um diagrama de blocos que ilustra uma configuração exemplar da unidade de geração de preditor de vetor 600 de acordo com a quarta modalidade. Na configuração exemplar da figura 21, a unidade de geração de preditor de vetor 600 inclui uma unidade de cálculo de fator de escala 201, uma unidade de obtenção de informação de vetor 202, uma unidade de determinação de diferença de tempo 601, e as unidades de operação de escala A602 e B603 que são adaptativamente comutadas. Os mesmos números de referência como na primeira modalidade são atribuídos aos componentes correspondentes na figura 21, e descrições desses componentes são omitidas aqui.
[00193] A unidade de determinação de diferença de tempo 601 comuta as unidades de operação de escala A602 e B603 com base na diferença entre o tempo de exibição de uma imagem, incluindo um vetor de movimento de pré-escala (candidato de preditor de vetor) e o tempo de exibição de uma imagem a que o vetor de movimento de pré-escala se refere.
[00194] Por exemplo, a unidade de determinação de diferença de tempo 601 obtém o identificador de imagem de referência de um bloco de destino e a POC de uma imagem de destino. Além disso, a unidade de determinação de diferença de tempo 601 obtém o identificador de uma imagem, incluindo um vetor de movimento de pré-escala (candidato de preditor de vetor) selecionado pela unidade de obtenção de informação de vetor 202 e uma imagem a que o vetor de movimento de pré-escala se refere.
[00195] A unidade de determinação de diferença de tempo 601 obtém, a partir da unidade de lista de armazenamento de imagem de referência 102, as POCs da imagem, incluindo o vetor de movimento de pré-escala (candidato de preditor de vetor) e a imagem a que o vetor de movimento de pré-escala se refere, e calcula a diferença de tempo entre as POCs. Em seguida, a unidade de determinação de diferença de tempo 601 determina se a diferença de tempo entre a POC (ou o intervalo entre as imagens) é menor que ou igual a um valor predeterminado (por exemplo, 4).
[00196] A unidade de determinação de diferença de tempo 601 seleciona a unidade de operação de escala A602, se a diferença de tempo é inferior ou igual ao valor predeterminado, e seleciona a unidade de operação de escala B603 se a diferença de tempo é maior do que o valor predeterminado.
[00197] A unidade de operação de escala A602 realiza uma operação de escala usando as fórmulas (15) e (16) substancialmente da mesma maneira que a unidade de operação de escala 203 da primeira modalidade, e, assim, corrige um candidato de preditor de vetor escalado.
[00198] Enquanto isso, a unidade de operação de escala B603 realiza uma operação de escala em um candidato de preditor de vetor utilizando as fórmulas (12) e (13). Assim, um vetor de movimento gerado por uma das unidades de operação de escala A602 e B603 é usado como um candidato de preditor de vetor.
[00199] A configuração da quarta modalidade baseia-se no pressuposto de que a tendência de a distribuição de probabilidade de aparecimento de mv difere dependendo da diferença entre o tempo de exibição de uma imagem, incluindo um vetor de movimento de pré- escala (candidato de preditor de vetor) e do tempo de exibição de uma imagem a que o vetor de movimento pré-escala se refere.
[00200] Embora as unidades plurais de operação de escala sejam utilizadas no exemplo da figura 21, a quarta modalidade pode também ser implementada utilizando uma unidade de operação de escala. Neste caso, a unidade de determinação de diferença de tempo 601 envia a informação que indica se a diferença de tempo calculada é menor do que ou igual ao valor predeterminado para a unidade de operação de escala.
[00201] A unidade de operação de escala realiza uma operação de escala usando as fórmulas (15) e (16) se a diferença de tempo é inferior ou igual ao valor predeterminado, e realiza uma operação de escala excluindo a subtração do valor predeterminado "a" nas fórmulas (15) e (16) se a diferença de tempo é maior do que o valor predeterminado.
[00202] Assim, a quarta modalidade pode também ser implementada utilizando uma unidade de operação de escala que determina se subtrair a quantidade predeterminada "a" a partir de um vetor de movimento escalado com base no resultado determinação da unidade de determinação de diferença de tempo 601. OPERAÇÕES
[00203] Operações exemplares do aparelho de decodificação de vídeo da quarta modalidade são descritas abaixo. O processo de decodificação realizado pelo aparelho de decodificação de vídeo da quarta modalidade é substancialmente o mesmo que o ilustrado na figura 13, e, portanto, suas descrições são omitidas aqui. Exemplos de processos realizados pela unidade de geração de preditor de vetor 600 são descritos abaixo.
[00204] Candidatos de preditor de VETOR de blocos espacialmente adjacentes
[00205] A figura 22 é um fluxograma que ilustra um processo exemplar (1) realizado pela unidade de geração de preditor de vetor 600 da quarta modalidade. As Etapas S701 a S703 da figura 22 são substancialmente as mesmas que as etapas S201 a S203 da figura 14.
[00206] Na etapa S704, a unidade de determinação de diferença de tempo 601 calcula a diferença de tempo entre o tempo de exibição de uma imagem, incluindo um vetor de movimento de pré-escala (candidato de preditor de vetor) e o tempo de exibição de uma imagem a que o vetor de movimento de pré-escala se refere, e determina se a diferença de tempo é inferior ou igual ao valor predeterminado. Se a diferença de tempo é inferior ou igual ao valor predeterminado (SIM na etapa S704), o processo prossegue para a etapa S705. Entretanto, se a diferença de tempo é maior do que o valor predeterminado (NÃO na etapa S704), o processo prossegue para a etapa S706.
[00207] Na etapa S705, a unidade de operação de escala A602 realiza uma operação de escala utilizando as fórmulas (15) e (16) onde o candidato de preditor de vetor escalado é corrigido pela quantidade predeterminada "a".
[00208] Na etapa S706, a unidade de operação de escala B603 realiza uma operação de escala utilizando as fórmulas (12) e (13).
[00209] Na etapa S707, a unidade de geração de preditor de vetor 600 gera o vetor de movimento calculado pela unidade de operação de escala A602 ou B603 como um candidato de preditor de vetor. Enquanto isso, quando um vetor de movimento desejado foi selecionado, a unidade de geração de preditor de vetor 600 gera o vetor de movimento desejado como um candidato de preditor de vetor sem realizar a operação de escala. CANDIDATOS DE PREDITOR DE VETOR DE BLOCOS TEMPORLMENTE ADJACENTES
[00210] A FIG. 23 é um fluxograma que ilustra um processo exemplar (2) realizado pela unidade de geração de preditor de vetor 600 da quarta modalidade.
[00211] Etapas S801 a S803 da figura 23 são substancialmente as mesmas que as etapas S301 a S303 da figura 15.
[00212] Na etapa S804, a unidade de determinação de diferença de tempo 601 calcula a diferença de tempo entre o tempo de exibição de uma imagem, incluindo um vetor de movimento de pré-escala (candidato de preditor de vetor) e o tempo de exibição de uma imagem a que o vetor de movimento de pré-escala se refere, e determina se a diferença de tempo é inferior ou igual ao valor predeterminado. Se a diferença de tempo é inferior ou igual ao valor predeterminado (SIM na etapa S804), o processo prossegue para a etapa S805. Entretanto, se a diferença de tempo é maior do que o valor predeterminado (NÃO na etapa S804), o processo prossegue para a etapa S806.
[00213] Na etapa S805, a unidade de operação de escala A602 realiza uma operação de escala utilizando as fórmulas (15) e (16) onde o candidato de preditor de vetor escalado é corrigido pela quantidade predeterminada "a".
[00214] Na etapa S806, a unidade de operação de escala B603 realiza uma operação de escala utilizando as fórmulas (12) e (13).
[00215] Na etapa S807, a unidade de geração de preditor de vetor 600 emite o vetor de movimento calculado pela unidade de operação de escala A602 ou B603 como um candidato de preditor de vetor. Enquanto isso, quando o fator de escala é 1, a unidade de geração de preditor de vetor 600 emite o vetor de movimento como um candidato de preditor de vetor sem realizar a operação de escala.
[00216] Assim, a quarta modalidade torna possível adaptativamente alternar operações de escala com base na diferença entre o tempo de exibição de uma imagem, incluindo um vetor de movimento de pré- escala (candidato de preditor de vetor) e o tempo de exibição de uma imagem a que o vetor de movimento de pré-escala se refere, e, assim, torna possível melhorar a precisão de um preditor de vetor. QUINTA MODALIDADE
[00217] Em seguida, um aparelho de codificação de vídeo 700 de acordo com uma quinta modalidade é descrito. O aparelho de codificação de vídeo 700 da quinta modalidade pode incluir uma unidade de geração de preditor de vetor de qualquer uma das primeira a quarta modalidades. CONFIGURAÇÃO
[00218] A figura 24 é um diagrama de blocos que ilustra uma configuração exemplar do aparelho de codificação de vídeo 700 de acordo com a quinta modalidade. Como ilustrado na figura 24, o aparelho de codificação de vídeo 700 pode incluir uma unidade de detecção de vetor de movimento 701, uma unidade de armazenamento de lista de imagem de referência 702, uma unidade de armazenamento de imagem decodificada 703, uma unidade de armazenamento de informação de vetor de movimento 704, uma unidade de geração de preditor de vetor 705, e uma unidade de cálculo de vetor de diferença 706.
[00219] O aparelho de codificação de vídeo 700 pode também incluir uma unidade de geração de pixel predito 707, uma unidade de geração de erro de predição 708, uma unidade de transformação ortogonal 709, uma unidade de quantização 710, uma unidade de quantização inversa 711, uma unidade de transformação ortogonal inversa 712, uma unidade de geração de pixel decodificado 713, e uma unidade de codificação de entropia 714.
[00220] A unidade de detecção de vetor de movimento 701 obtém uma imagem original, obtém o local de armazenamento de uma imagem de referência a partir da unidade de armazenamento de lista de imagem de referência 702, e obtém os dados de pixel da imagem de referência da unidade de armazenamento de imagem decodificada 703. A unidade de detecção de vetor de movimento 701 detecta índices de referência e vetores de movimento de L0 e L1. Em seguida, a unidade de detecção de vetor de movimento 701 emite informações de localização de região de imagens de referência as quais os vetores de movimento detectados se referir, para a unidade de geração de pixel predito 707.
[00221] A unidade de armazenamento de lista de imagem de referência de 702 armazena informações de imagem, incluindo localizações de locais de armazenamento de imagens de referência e POCs de imagens de referência que um bloco de destino pode se referir.
[00222] A unidade de armazenamento de imagem decodificada 703 armazena imagens que foram previamente codificadas e localmente decodificadas no aparelho de codificação de vídeo 700, como imagens de referência usadas para compensação de movimento.
[00223] A unidade de armazenamento de informações de vetor de movimento 704 armazena informações de vetor de movimento, incluindo índices de referência de L0 e L1 e vetores de movimento detectados pela unidade de detecção de vetor de movimento 701. Por exemplo, a unidade de armazenamento de vetor de movimento 704 armazena a informação de vetor de movimento, incluindo vetores de movimento de blocos que são temporal e espacialmente adjacentes a um bloco de destino e identificadores imagem de referência, indicando imagens as quais os vetores de movimento se referem.
[00224] A unidade de geração de preditor de vetor 705 gera listas de candidatos de preditor de vetor para L0 e L1. Candidatos de preditor de vetor podem ser gerados como descrito nas primeira a quarta modalidades.
[00225] A unidade de cálculo de vetor de diferença 706 obtém os vetores de movimento de L0 e L1 da unidade de detecção de vetor de movimento 701, obtém as listas de candidatos de preditor de vetor L0 e L1 da unidade de geração de preditor de vetor 705, e calcula vetores de diferença.
[00226] Por exemplo, a unidade de cálculo de veto de diferença 706 seleciona preditores de vetor que estão mais próximos dos vetores de movimento de L0 e L1 (vetores de movimento L0 e L1) das listas de candidatos de preditor de vetor e, assim, determina preditores de vetor (preditores do vetor L0 e L1) e índices de candidatos de preditor para L0 e L1.
[00227] Em seguida, a unidade de cálculo de vetor de diferença 706 subtrai o preditor de vetor L0 do vetor de movimento L0 para gerar um vetor de diferença L0, e subtrai o preditor de vetor L1 do vetor de movimento L1 para gerar um vetor de diferença L1.
[00228] A unidade de geração de pixel predito 707 obtém pixels de referência da unidade de armazenamento de imagem decodificada 703 baseado na informação de localização de região de entradas de imagens de referência a partir da unidade de detecção de vetor de movimento 701, e gera um sinal de pixel predito.
[00229] A unidade de geração de erro de predição 708 obtém a imagem original e o sinal de pixel predito, e calcula a diferença entre a imagem original e o sinal de pixel predito para gerar um sinal de erro de predição.
[00230] A unidade de transformação ortogonal 709 realiza a transformação ortogonal, tais como a transformação de cosseno discreta sobre o sinal de erro de predição, e emite um coeficiente de transformação ortogonal para a unidade de quantização 710. A unidade de quantização 710 quantifica o coeficiente de transformação ortogonal.
[00231] A unidade de quantização inversa 711 realiza quantização inversa sobre o coeficiente de transformação ortogonal quantizado. A unidade de transformação ortogonal inversa 712 realiza a transformação ortogonal inversa sobre o coeficiente inversamente quantizado.
[00232] A unidade de geração de pixel decodificado 713 adiciona o sinal de erro de predição e o sinal de pixel predito para gerar pixels decodificados. Uma imagem decodificada incluindo os pixels gerados decodificados é armazenada na unidade de armazenamento de imagem decodificada 703.
[00233] A unidade de codificação de entropia 714 realiza codificação de entropia sobre os índices de referência, os vetores de diferença, e os índices de predição candidatos de L0 e L1 e o coeficiente de transformação ortogonal quantizado obtido a partir da unidade de cálculo do vetor de diferença 706 e a unidade de quantização 710. Em seguida, a unidade de codificação de entropia 714 emite os dados codificados por entropia como um fluxo. OPERAÇÕES
[00234] Em seguida, as operações exemplares do aparelho de codificação de vídeo 700 da quinta modalidade são descritas. A figura 25 é um fluxograma que ilustra um processo exemplar realizado pelo aparelho de codificação de vídeo 700. No processo da figura 25, um bloco, que é uma unidade de processamento, é codificado.
[00235] Na etapa S901, a unidade de detecção de vetor de movimento 701 obtém uma imagem original e dados de pixel de uma imagem de referência, e detecta índices de referência e vetores de movimento de L0 e L1.
[00236] Na etapa S902, a unidade de geração de preditor de vetor 705 gera listas de candidatos de preditor de vetor para L0 e L1. Nesta etapa, a unidade de geração de preditor de vetor 705 corrige candidatos de preditor de vetor de escala na direção do vetor 0 pelo valor predeterminado "a".
[00237] Na etapa S903, a unidade de cálculo de vetor de diferença 706 seleciona preditores vetoriais que estão mais próximos dos vetores de movimento de L0 e L1 (vetores de movimento L0 e L1) de listas de candidatos de preditor de vetor e, assim, determina preditores de vetor (preditores do vetor L0 e L1) e índices de candidatos de predição para L0 e L1.
[00238] Em seguida, a unidade de cálculo de vetor de diferença 706 subtrai o preditor de vetor L0 do vetor de movimento L0 para gerar um vetor de diferença L0, e subtrai o preditor de vetor L1 do vetor de movimento L1 para gerar um vetor de diferença L1.
[00239] Na etapa S904, a unidade de geração de pixel predito 707 obtém pixels de referência da unidade de armazenamento de imagem decodificada 703 baseada na informação de localização de região de entradas de imagens de referência que formam a unidade de detecção de vetor de movimento 701 vetor, e gera um sinal de pixel predito.
[00240] Na etapa S905, a unidade de geração de erro de predição 708 recebe a imagem original e o sinal de pixel predito, e calcula a diferença entre a imagem original e o sinal de pixel predito para gerar um sinal de erro de predição.
[00241] Na etapa S906, a unidade de transformação ortogonal 709 realiza transformação ortogonal sobre o sinal de erro de predição para gerar um coeficiente de transformação ortogonal.
[00242] Na etapa S907, a unidade de quantização 710 quantifica o coeficiente de transformação ortogonal.
[00243] Na etapa S908, a unidade de armazenamento de informações de vetor de movimento 704 armazena a informação de vetor de movimento, incluindo os índices de referência e os vetores de movimento de L0 e L1 emitidos da unidade de detecção de vetor de movimento 701. A informação armazenada é utilizada no processo de codificação de bloco subsequente.
[00244] As etapas S902 e S903, as etapas S904 a S907, e a etapa S908 não são necessariamente realizadas na ordem descrita anteriormente, e podem ser realizadas em paralelo.
[00245] Na etapa S909, a unidade de quantização inversa 711 realiza quantização inversa sobre o coeficiente de transformação ortogonal quantizado para gerar o coeficiente de transformação ortogonal. Também nesta etapa, a unidade de transformação ortogonal inversa 712 gera o sinal de erro de predição, realizando a transformação ortogonal inversa sobre o coeficiente de transformação ortogonal.
[00246] Na etapa S910, a unidade de geração de pixel decodificado 713 adiciona o sinal de erro de predição e o sinal de pixel predito para gerar pixels decodificados.
[00247] Na etapa S911, a unidade de armazenamento de imagem decodificada 703 armazena uma imagem decodificada incluindo os pixels decodificados. A imagem decodificada é usada no processo de codificação de bloco subsequente.
[00248] Na etapa S912, a unidade de codificação de entropia 714 realiza codificação de entropia dos índices de referência, os vetores de diferença, e os índices de candidatos de preditor de L0 e L1, e o coeficiente de transformação ortogonal quantizado, e gera os dados codificados por entropia como um fluxo.
[00249] Assim, a quinta modalidade torna possível melhorar a precisão de um preditor de vetor e prover um aparelho de codificação de vídeo com uma eficiência de codificação melhorada. Uma unidade de geração de preditor de vetor de qualquer uma das primeira a quarta modalidades pode ser utilizada para a unidade de geração de preditor de vetor 705 do aparelho de codificação de vídeo 700.
[00250] Através de experimentos, os inventores descobriram que a eficiência de codificação pode ser melhorada em cerca de 1% a 2% por meio do cálculo de candidatos de preditor de vetor usando as unidades de geração de preditor de vetor das modalidades acima. EXEMPLO
[00251] A FIG. 26 é um desenho que ilustra uma configuração exemplar de um aparelho de processamento de imagem 800. O aparelho de processamento de imagem 800 é uma implementação exemplar de um aparelho de decodificação de vídeo ou um aparelho de codificação de vídeo das modalidades acima. Como ilustrado na figura 26, o aparelho de processamento de imagem 800 pode incluir uma unidade de controle 801, uma memória 802, uma unidade de armazenamento secundária 803, uma unidade de acionamento 804, uma interface de rede (I/F) 806, uma unidade de entrada 807, e uma unidade de exibição 808. Estes componentes são ligados uns aos outros através de um barramento para permitir a transmissão e recepção de dados.
[00252] A unidade de controle 801 é uma unidade de processamento central (CPU) que controla os outros componentes do aparelho de processamento de imagem 800 e realiza cálculos e processamento de dados. Por exemplo, a unidade de controle 801 realiza programas armazenados na memória 802 e na unidade de armazenamento secundária 803, processa os dados recebidos da unidade de entrada 807 e da unidade de armazenamento secundária 803, e emite os dados processados para a unidade de exibição 808 e a unidade de armazenamento secundária 803.
[00253] A memória 802 pode ser implementada, por exemplo, por uma memória semente de leitura (ROM) ou uma memória de acesso aleatório (RAM), e retém ou armazena temporariamente dados e programas, tais como software básico (sistema de operação (OS)) e software aplicativo a ser realizado pela unidade de controle 801.
[00254] A unidade de armazenamento secundária 803 pode ser implementada por uma unidade de disco rígido (HDD), e armazena, por exemplo, dados relacionados com software aplicativo.
[00255] A unidade de disco 804 lê os programas a partir de um meio de armazenamento 805 e instala os programas na unidade de armazenamento secundária 803.
[00256] O meio de armazenamento 805 armazena programas. Os programas armazenados no meio de armazenamento 805 estão instalados no aparelho de processamento de imagem 800 por meio da unidade de disco 804. Os programas instalados podem ser realizados pelo aparelho de processamento de imagem 800.
[00257] A rede I/F 806 permite que o aparelho de processamento de imagem 800 se comunique com outros dispositivos conectados através de uma rede, tal como uma rede de área local (LAN) ou uma rede de área ampla (WAN), implementado por canais de comunicação de dados com fio e/ou sem fio.
[00258] A unidade de entrada 807 pode incluir um teclado incluindo teclas de cursor, teclas numéricas, e teclas de função e um mouse ou um trackpad para selecionar um item em uma tela exibida na unidade de exibição 808. Assim, a unidade de entrada 807 é uma interface de usuário que permite ao usuário entrar, por exemplo, com instruções e dados na unidade de controle 801.
[00259] A unidade de exibição 808 inclui, por exemplo, um display de cristal líquido (LCD) e exibe dados recebidos da unidade de controle 801. A unidade de exibição 808 pode ser provida fora do aparelho de processamento de imagem 800. Neste caso, o aparelho de processamento de imagem 800 pode incluir uma unidade de controle de exibição.
[00260] Os métodos de codificação e decodificação de vídeo (ou processos) descritos nas modalidades acima indicadas podem ser implementados por programas que são executados por um computador. Tais programas podem ser baixados de um servidor e instalados em um computador.
[00261] Alternativamente, os programas para implementar os métodos de codificação e decodificação de vídeo (ou processos) descritos nas modalidades acima indicadas podem ser armazenados em um meio de armazenamento legível por computador, não transitório, tal como o meio de armazenamento 805, e podem ser lidos a partir do meio de armazenamento em um computador ou um dispositivo portátil.
[00262] Por exemplo, meios de armazenamento tais como uma memória semente de leitura de disco compacto (CD-ROM), um disco flexível, e um disco magneto-óptico que gravam as informações óptica, elétrica ou magneticamente, e memórias de semicondutores, tais como uma ROM e uma memória flash que registram informações eletricamente podem ser utilizados como meio de armazenagem 805. Além disso, os métodos de codificação e decodificação de vídeo (ou processos) descritos nas modalidades acima indicadas podem ser executados por um ou mais circuitos integrados.

Claims (6)

1. Sistema de codificação/decodificação de vídeo, caracterizado pelo fato de que compreende: um aparelho de codificação de vídeo incluindo uma primeira unidade de armazenamento de lista de imagem de referência configurada para armazenar informações de imagem de imagens; uma primeira unidade de armazenamento de informação de vetor de movimento configurada para armazenar informação de vetor de movimento incluindo vetores de movimento de blocos que são espacial ou temporalmente adjacentes a um bloco de destino a ser processado e identificadores de imagem de referência, indicando imagens a que os vetores de movimento referem-se, e uma primeira unidade de cálculo de fator de escala configurado para calcular, com base na informação de imagem e na informação de vetor de movimento, um intervalo entre uma imagem de destino incluindo o bloco de destino e uma imagem de referência de destino a que um vetor de movimento do bloco de destino se refere e um intervalo entre uma imagem incluindo um bloco adjacente, adjacente ao bloco de destino, e uma imagem de referência adjacente a que um vetor de movimento do bloco adjacente se refere, e para calcular um fator de escala com base nos intervalos calculados; e uma primeira unidade de operação de escala configurada para escalar um candidato de preditor de vetor para o vetor de movimento do bloco de destino ao multiplicar o candidato de preditor de vetor pelo fator de escala e para corrigir o candidato de preditor de vetor escalado ao subtrair um valor predeterminado de um valor absoluto do candidato do preditor de vetor escalado; e um aparelho de decodificação de vídeo incluindo uma segunda unidade de armazenamento de lista de imagem de referência configurada para armazenar informações de imagem das imagens; uma segunda unidade de armazenamento de informação de vetor de movimento configurada para armazenar a informação de vetor de movimento incluindo os vetores de movimento dos blocos que são espacial ou temporalmente adjacentes ao bloco de destino e os identificadores de imagem de referência, indicando as imagens a que os vetores de movimento referem-se, uma segunda unidade de cálculo de fator de escala configurado para calcular, com base na informação de imagem e na informação de vetor de movimento, o intervalo entre a imagem de destino incluindo o bloco de destino e a imagem de referência de destino a que o vetor de movimento do bloco de destino se refere, e o intervalo entre a imagem incluindo um bloco adjacente, adjacente ao bloco de destino, e a imagem de referência adjacente a que um vetor de movimento do bloco adjacente se refere, e para calcular o fator de escala com base nos intervalos calculados; e uma segunda unidade de operação de escala configurada para escalar o candidato de preditor de vetor para o vetor de movimento do bloco de destino ao multiplicar o candidato de preditor de vetor pelo fator de escala e para corrigir o candidato de preditor de vetor escalado ao subtrair o valor predeterminado do valor absoluto do candidato do preditor de vetor escalado, em que o fator de escala tem N bits de precisão após um ponto decimal, e cada uma da primeira unidade de operação de escala e da segunda unidade de operação de escala é configurada para calcular o valor predeterminado, que é maior que ou igual a 1 e menor que ou igual a 2 N-2 .
2. Sistema de codificação/decodificação de vídeo, de acordo com a reivindicação 1, caracterizado pelo fato de que a unidade de operação de escala inclui uma unidade de escala configurada para multiplicar o candidato de preditor de vetor pelo fator de escala para escalar o candidato de preditor de vetor e aumentar a precisão após o ponto decimal do candidato de preditor de vetor escalado para os N bits de precisão após o ponto decimal, uma unidade de correção configurada para corrigir o candidato de preditor de vetor escalado ao subtrair o valor predeterminado do valor absoluto do candidato do preditor de vetor escalado, e uma unidade de ajuste configurada para arredondar o candidato de preditor de vetor escalado e corrigido para inteiros aproximados.
3. Sistema de codificação/decodificação de vídeo, de acordo com a reivindicação 2, caracterizado pelo fato de que, quando “a” indica o valor predeterminado, a unidade de correção está configurada para calcular o valor predeterminado de acordo com uma seguinte fórmula: a = MIN(2N-2, abs(Escala)>>3), onde MIN(x, y) é uma função que retorna um menor dentre x e y, e Escala indica o fator de escala.
4. Método realizado por um sistema de codificação/decodificação de vídeo incluindo um aparelho de codificação de vídeo e um aparelho de decodificação de vídeo, o método caracterizado pelo fato de que compreende: etapas, realizadas pelo aparelho de codificação de vídeo, de com base em informações de imagem de imagens e informações de vetor de movimento incluindo vetores de movimento de blocos que são espacial ou temporalmente adjacentes a um bloco de destino a ser processado e identificadores de imagem de referência, indicando imagens a que os vetores de movimento se referem, calcular um intervalo entre uma imagem de destino incluindo o bloco de destino e uma imagem de referência de destino a que um vetor de movimento do bloco de destino se refere e um intervalo entre uma imagem incluindo um bloco adjacente, adjacente ao bloco de destino, e uma imagem de referência adjacente a que um vetor de movimento do bloco adjacente se refere, calcular um fator de escala com base nos intervalos calculados, escalar um candidato de preditor de vetor para o vetor de movimento do bloco de destino ao multiplicar o candidato de preditor de vetor pelo fator de escala, e corrigir o candidato de preditor de vetor escalado ao subtrair um valor predeterminado de um valor absoluto do candidato do preditor de vetor escalado; e etapas, realizadas pelo aparelho de decodificação de vídeo, de com base nas informações de imagem das imagens e nas informações de vetor de movimento incluindo os vetores de movimento de blocos que são espacial ou temporalmente adjacentes ao bloco de destino e os identificadores de imagem de referência, indicando as imagens a que os vetores de movimento se referem, calcular um intervalo entre a imagem de destino incluindo o bloco de destino e a imagem de referência de destino a que o vetor de movimento do bloco de destino se refere e um intervalo entre a imagem incluindo o bloco adjacente, adjacente ao bloco de destino, e a imagem de referência adjacente a que um vetor de movimento do bloco adjacente se refere, calcular o fator de escala com base nos intervalos calculados, escalar o candidato de preditor de vetor para o vetor de movimento do bloco de destino ao multiplicar o candidato de preditor de vetor pelo fator de escala, e corrigir o candidato de preditor de vetor escalado ao subtrair o valor predeterminado do valor absoluto do candidato do preditor de vetor escalado, em que o fator de escala tem N bits de precisão após um ponto decimal; e o valor predeterminado é maior que ou igual a 1 e menor que ou igual a 2 N-2.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que no escalar, o candidato de preditor de vetor é multiplicado pelo fator de escala para escalar o candidato de preditor de vetor e aumentar a precisão após o ponto decimal do candidato de preditor de vetor escalado para a precisão predeterminada após o ponto decimal; e o candidato de preditor de vetor escalado e corrigido é arredondado para inteiros aproximados.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que, quando “a” indica o valor predeterminado, o valor predeterminado é calculado de acordo com uma seguinte fórmula: a = MIN(2N-2, abs(Escala)>>3), onde MIN(x, y) é uma função que retorna um menor dentre x e y, e Escala indica o fator de escala.
BR122020015453-5A 2011-06-15 2012-05-31 Sistema de codificação/decodificação de vídeo e método realizado por um sistema de codificação/decodificação de vídeo BR122020015453B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011133383A JP5786478B2 (ja) 2011-06-15 2011-06-15 動画像復号装置、動画像復号方法、及び動画像復号プログラム
JP2011-133383 2011-06-15
BR102012013152-8A BR102012013152B1 (pt) 2011-06-15 2012-05-31 Aparelho de decodificação de vídeo, método de decodificação de vídeo e meio de armazenamento

Publications (1)

Publication Number Publication Date
BR122020015453B1 true BR122020015453B1 (pt) 2021-12-14

Family

ID=46384134

Family Applications (5)

Application Number Title Priority Date Filing Date
BR122020015453-5A BR122020015453B1 (pt) 2011-06-15 2012-05-31 Sistema de codificação/decodificação de vídeo e método realizado por um sistema de codificação/decodificação de vídeo
BR122020015445-4A BR122020015445B1 (pt) 2011-06-15 2012-05-31 Método realizado por um aparelho de decodificação de vídeo
BR102012013152-8A BR102012013152B1 (pt) 2011-06-15 2012-05-31 Aparelho de decodificação de vídeo, método de decodificação de vídeo e meio de armazenamento
BR122020015442-0A BR122020015442B1 (pt) 2011-06-15 2012-05-31 Método realizado por um aparelho de codificação de vídeo
BR122020015451-9A BR122020015451B1 (pt) 2011-06-15 2012-05-31 Aparelho de codificação de vídeo, método de codificação de vídeo e meio de armazenamento

Family Applications After (4)

Application Number Title Priority Date Filing Date
BR122020015445-4A BR122020015445B1 (pt) 2011-06-15 2012-05-31 Método realizado por um aparelho de decodificação de vídeo
BR102012013152-8A BR102012013152B1 (pt) 2011-06-15 2012-05-31 Aparelho de decodificação de vídeo, método de decodificação de vídeo e meio de armazenamento
BR122020015442-0A BR122020015442B1 (pt) 2011-06-15 2012-05-31 Método realizado por um aparelho de codificação de vídeo
BR122020015451-9A BR122020015451B1 (pt) 2011-06-15 2012-05-31 Aparelho de codificação de vídeo, método de codificação de vídeo e meio de armazenamento

Country Status (11)

Country Link
US (5) US9247267B2 (pt)
EP (5) EP3148191B1 (pt)
JP (1) JP5786478B2 (pt)
KR (4) KR101377789B1 (pt)
CN (4) CN102833533B (pt)
AU (2) AU2012203337B2 (pt)
BR (5) BR122020015453B1 (pt)
CA (5) CA2883125C (pt)
ES (5) ES2721499T3 (pt)
MX (1) MX2012007139A (pt)
TW (5) TWI555387B (pt)

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
CN104041041B (zh) 2011-11-04 2017-09-01 谷歌技术控股有限责任公司 用于非均匀运动向量栅格的运动向量缩放
CN110830799B (zh) * 2012-01-18 2023-09-15 韩国电子通信研究院 视频解码装置、视频编码装置和传输比特流的方法
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
WO2014050675A1 (ja) * 2012-09-28 2014-04-03 ソニー株式会社 画像処理装置および方法
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 株式会社東芝 画像処理装置
CN105874789B (zh) * 2014-01-29 2019-10-29 联发科技股份有限公司 利用自适应运动向量精度的方法
CN117221573A (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
EP3780608A4 (en) 2018-04-02 2021-12-01 SZ DJI Technology Co., Ltd. IMAGE PROCESSING PROCESS AND IMAGE PROCESSING DEVICE
KR102516233B1 (ko) 2018-04-02 2023-03-30 엘지전자 주식회사 움직임 벡터에 기반한 영상 코딩 방법 및 그 장치
TWI728390B (zh) 2018-06-29 2021-05-21 大陸商北京字節跳動網絡技術有限公司 查找表尺寸
CN114845108A (zh) 2018-06-29 2022-08-02 抖音视界(北京)有限公司 查找表的更新:fifo、约束的fifo
KR102646649B1 (ko) 2018-06-29 2024-03-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
SG11202013028PA (en) 2018-06-29 2021-01-28 Beijing Bytedance Network Technology Co Ltd Interaction between lut and amvp
TWI724442B (zh) 2018-06-29 2021-04-11 大陸商北京字節跳動網絡技術有限公司 用於查找表更新的編碼的運動信息的選擇
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
EP3791586A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
KR102648120B1 (ko) 2018-06-29 2024-03-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 슬라이스/타일/lcu 행마다의 룩업 테이블 리셋
SG11202011714RA (en) 2018-06-29 2020-12-30 Beijing Bytedance Network Technology Co Ltd Partial/full pruning when adding a hmvp candidate to merge/amvp
TWI731364B (zh) 2018-07-02 2021-06-21 大陸商北京字節跳動網絡技術有限公司 Hmvp+非相鄰運動
CN110809164B (zh) * 2018-08-04 2022-06-28 北京字节跳动网络技术有限公司 Bio中的mv精度
CN110809159B (zh) 2018-08-04 2022-06-07 北京字节跳动网络技术有限公司 更新的mv或推导的mv的裁剪
CN111064959B (zh) 2018-09-12 2023-09-01 北京字节跳动网络技术有限公司 要检查多少个hmvp候选
CN111010569B (zh) 2018-10-06 2023-02-28 北京字节跳动网络技术有限公司 Bio中的时间梯度计算的改善
CN113273186A (zh) 2019-01-10 2021-08-17 北京字节跳动网络技术有限公司 Lut更新的调用
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
CN112468812B (zh) 2019-03-11 2022-07-01 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
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
JP4447056B2 (ja) * 1996-09-02 2010-04-07 エステー マイクロエレクトロニクス ナームローゼ ベンノートシャップ 多重搬送波伝送システムにおける、あるいはそれに関する改良
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 動画像符号化方法および動画像復号化方法
EP3324624B1 (en) * 2002-04-19 2019-06-12 Panasonic Intellectual Property Corporation of America Motion vector calculating method
HUE045566T2 (hu) * 2002-04-19 2020-01-28 Panasonic Ip Corp America Mozgásvektor-számítási eljárás
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都科摩 动态图像编码装置、动态图像编码方法、动态图像编码程序、动态图像解码装置、动态图像解码方法以及动态图像解码程序
EP1915871B1 (en) * 2005-07-21 2017-07-05 Thomson Licensing Method and apparatus for weighted prediction for scalable video coding
JP4389866B2 (ja) 2005-12-12 2009-12-24 セイコーエプソン株式会社 画像処理方法、画像処理装置、表示装置およびプログラム
WO2008140656A2 (en) * 2007-04-03 2008-11-20 Gary Demos Flowfield motion compensation for video compression
US10313702B2 (en) * 2007-04-25 2019-06-04 Interdigital Madison Patent Holdings Inter-view prediction
KR101103724B1 (ko) * 2007-07-02 2012-01-11 니폰덴신뎅와 가부시키가이샤 동화상 스케일러블 부호화 방법 및 복호 방법, 그 장치, 그 프로그램 및 프로그램을 기록한 기록 매체
KR101712915B1 (ko) * 2007-10-16 2017-03-07 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
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 晨星软件研发(深圳)有限公司 影像处理方法及装置
RU2011110246A (ru) * 2008-09-24 2012-09-27 Сони Корпорейшн (JP) Устройство и способ обработки изображений
JPWO2010035733A1 (ja) 2008-09-24 2012-02-23 ソニー株式会社 画像処理装置および方法
JPWO2010035730A1 (ja) * 2008-09-24 2012-02-23 ソニー株式会社 画像処理装置および方法
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
CN102884793B (zh) * 2010-02-09 2016-03-23 日本电信电话株式会社 运动向量预测编码方法、运动向量预测解码方法、活动图像编码装置及活动图像解码装置

Also Published As

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

Similar Documents

Publication Publication Date Title
BR122020015453B1 (pt) Sistema de codificação/decodificação de vídeo e método realizado por um sistema de codificação/decodificação de vídeo
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
JP2014112947A (ja) 動画像符号化方法、動画像符号化装置、及び動画像符号化プログラム
JP2014112946A (ja) 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム

Legal Events

Date Code Title Description
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 31/05/2012, OBSERVADAS AS CONDICOES LEGAIS.