BR112014007492B1 - Dispositivo de codificação de imagem em movimento, método de codificação de imagem em movimento, dispositivo de decodificação de imagem em movimento e método de decodificação de imagem em movimento - Google Patents

Dispositivo de codificação de imagem em movimento, método de codificação de imagem em movimento, dispositivo de decodificação de imagem em movimento e método de decodificação de imagem em movimento Download PDF

Info

Publication number
BR112014007492B1
BR112014007492B1 BR112014007492-5A BR112014007492A BR112014007492B1 BR 112014007492 B1 BR112014007492 B1 BR 112014007492B1 BR 112014007492 A BR112014007492 A BR 112014007492A BR 112014007492 B1 BR112014007492 B1 BR 112014007492B1
Authority
BR
Brazil
Prior art keywords
motion vector
vector predictor
list
candidate
predictor candidate
Prior art date
Application number
BR112014007492-5A
Other languages
English (en)
Other versions
BR112014007492A2 (pt
Inventor
Hiroya Nakamura
Shigeru Fukushima
Hideki Takehara
Original Assignee
JVC Kenwood Corporation
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
Priority claimed from JP2012214684A external-priority patent/JP5884697B2/ja
Priority claimed from JP2012214685A external-priority patent/JP5488666B2/ja
Application filed by JVC Kenwood Corporation filed Critical JVC Kenwood Corporation
Priority claimed from PCT/JP2012/006225 external-priority patent/WO2013046707A1/ja
Publication of BR112014007492A2 publication Critical patent/BR112014007492A2/pt
Publication of BR112014007492B1 publication Critical patent/BR112014007492B1/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
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/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/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/172Methods 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 picture, frame or field
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream

Abstract

DISPOSITIVO DE CODIFICAÇÃO DE VÍDEO, MÉTODO DE CODIFICAÇÃO DE VÍDEO, PROGRAMA DE CODIFICAÇÃO DE VÍDEO, DISPOSITIVO DE TRANSMISSÃO, MÉTODO DE TRANSMISSÃO E PROGRAMA DE TRANSMISSÃO; E DISPOSITIVO DE DECODIFICAÇÃO DE VÍDEO, MÉTODO DE DECODIFICAÇÃO DE VÍDEO, PROGRAMA DE DECODIFICAÇÃO DE VÍDEO, DISPOSITIVO DE RECEPÇÃO, MÉTODO DE RECEPÇÃO E PROGRAMA DE RECEPÇÃO. Trata-se de unidade de construção de candidato a previsor de vetor de movimento realizando previsão com base em vetor de movimento de bloco codificado adjacente a um bloco-alvo de codificação na mesma imagem que bloco-alvo de codificação, constrói uma pluralidade de candidatos a previsor de vetor de movimento e adiciona os candidatos a uma lista . Uma unidade de limitação do número de candidatos a previsor de vetor de movimento limita o número de candidatos adicionado à lista de candidatos a um número máximo de candidatos de acordo com um tamanho de um bloco de previsão. Uma unidade de seleção de previsor de vetor de movimento seleciona um previsor de vetor de movimento da lista de candidatos a previsor de vetor de movimento. Uma unidade de codificação codifica informações que representam um índice do previsor de vetor de movimento selecionado na lista de candidatos.

Description

ANTECEDENTES
[001] A presente invenção refere-se a técnicas de codificação e decodificação de imagem em movimento e, mais particularmente, a técnicas de codificação e decodificação de imagem em movimento que usam previsão de compensação de movimento.
[002] Como um esquema de codificação por compressão repre sentativo de uma imagem em movimento, é citado um padrão MPEG-4 AVC/H.264. Em MPEG-4 AVC/H.264, a compensação de movimento de previsão de uma imagem em uma pluralidade de blocos retangulares e a previsão de um movimento a partir de uma imagem de referência com o uso de uma imagem já codificada ou decodificada como uma imagem de referência é usada. Uma técnica de previsão de um movimento através da compensação de movimento é chamada de interprevisão. Na inter- previsão de MPEG-4 AVC/H.264, uma pluralidade de imagens pode ser usada como uma imagem de referência e uma imagem de referência ideal é selecionada para cada bloco dentre a pluralidade de imagens de referência e, então, a compensação de movimento é executada. Em suma, um índice de referência é alocado para cada imagem de referência e a imagem de referência é especificada pelo índice de referência. Em uma imagem B, um máximo de duas imagens de referência é selecionado a partir de imagens de referência codificadas ou decodificadas e usado para a interprevisão. A previsão com o uso das duas imagens de referência é classificada em previsão L0 (previsão lista 0) principalmente usada como previsão adiantada e previsão L1 (previsão lista 1) principalmente usada como previsão retrógrada.
[003] Adicionalmente, previsão dupla simultaneamente com o uso de duas interprevisões, ou seja, a previsão L0 e a previsão L1 são também definidas. Na previsão dupla, um sinal de imagem de interpre- visão final é construído através da execução de previsões de ambas as direções, da multiplicação de sinais que foram submetidos às interpre- visões da previsão L0 e da previsão L1 por um coeficiente de ponderação, adição de um valor de deslocamento e provocação da sobreposição dos sinais resultantes entre si. Para o coeficiente de ponderação e o valor de deslocamento usados na previsão de ponderação, um valor representativo é definido e codificado em unidades de imagens para cada imagem de referência de cada lista. Os exemplos de informação de codificação relacionada à interprevisão incluem um modo de previsão que representa a previsão L0, a previsão L1 ou a previsão dupla para cada bloco, um índice de referência que especifica uma imagem de referência para cada lista de referência de cada bloco e um vetor de movimento que representa uma direção de movimento e uma quantidade de movimento de um bloco e essa informação de codificação é codificada ou decodificada.
[004] Em um esquema de codificação de imagem em movimento no qual a compensação de movimento é executada, a fim de reduzir uma quantidade de codificação de um vetor de movimento construído em cada bloco, um processo de previsão é executado em um vetor de movimento. Em MPEG-4 AVC/H.264, um previsor de vetor de movimento é derivado através da execução da previsão com base em um bloco adjacente com o uso do fato de que um vetor de movimento de um alvo de codificação tem uma forte correlação com um vetor de movimento de um bloco adjacente, uma diferença de vetor de movimento que é uma diferença entre o vetor de movimento do alvo de codificação e o previsor de vetor de movimento é derivado e a diferença de vetor de movimento é codificada, através do que uma quantidade de codificação é reduzida.
[005] Especificamente, conforme ilustrado na Figura 36A, um va lor mediano é derivado com base em vetores de movimento de blocos adjacentes A, B e C e definido como um previsor de vetor de movimento, uma quantidade de codificação de um vetor de movimento é reduzida através da obtenção de uma diferença entre o vetor de movimento e o previsor de vetor de movimento. Aqui, quando o bloco de alvo de codificação é diferente em tamanho e formato do bloco adjacente conforme ilustrado na Figura 36B, um bloco superior é decidido como um bloco de previsão quando uma pluralidade de blocos adjacentes está no lado esquerdo e um bloco mais à esquerda é decidido como um bloco de previsão quando uma pluralidade de blocos adja-centes está acima do bloco de alvo de codificação e a previsão é executada com base no vetor de movimento do bloco de previsão decidido. Literatura de Patente 1: JP 2011-147172 A
[006] Entretanto, no método da técnica relacionada, uma vez que apenas um previsor de vetor é obtido, existem muitos casos em que, dependendo de uma imagem, uma precisão de previsão de um previsor de vetor de movimento é baixa e a eficiência de codificação não é aprimorada.
[007] A esse respeito, os presentes inventores reconheceram que é necessário comprimir adicionalmente a informação de codificação e reduzir toda a quantidade de codificação no esquema de codificação de imagem em movimento com o uso da previsão de compensação de movimento.
[008] A presente invenção foi feita à luz do supracitado e um ob jetivo da presente invenção consiste em fornecer uma técnica de codificação de imagem em movimento com capacidade de reduzir uma quantidade de codificação de uma diferença de vetor de movimento através da derivação de um candidato a previsor de vetor de movimento e, dessa forma, do aprimoramento da eficiência de codificação. Um outro objetivo da presente invenção consiste em fornecer uma técnica de codificação de imagem em movimento com capacidade de reduzir uma quantidade de codificação de informação de codificação através da derivação de uma informação de codificação candidate e, dessa forma, do aprimoramento da eficiência de codificação.
SUMÁRIO
[009] A fim de resolver o objetivo acima, um dispositivo de codifi cação de imagem em movimento de acordo com um aspecto da presente invenção é um dispositivo de codificação de imagem em movimento que codifica uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos através da divisão de cada imagem e inclui uma unidade de construção de candidato a previsor de vetor de movimento (121) que deriva uma pluralidade de candidatos a previsor de vetor de movimento de um vetor de movimento de um dos blocos codificados adjacentes a um bloco de alvo de codificação em uma mesma imagem que o bloco de alvo de codificação e um vetor de movimento de um dos blocos de uma imagem codificada diferente do bloco de alvo de codificação, uma unidade de adição de candidato a previsor de vetor de movimento (122) que adiciona um candidato a previsor de vetor de movimento que satisfaz uma certa condição dentre a pluralidade de candidatos a previsor de vetor de movimento a uma lista de candidato a previsor de vetor de movimento, uma unidade de limitação de candidato a previsor de vetor de movimento (124) que adiciona repetidamente um candidato a previsor de vetor de movimento que tem um mesmo valor à lista de candidato a previsor de vetor de movimento até que o número de candidatos a previsor de vetor de movimento alcance um certo número quando o número dos candidatos a previsor de vetor de movimento adicionado à lista de candidato a previsor de vetor de movimento é menor que o certo número (um número natural maior que ou igual a 2), uma unidade de seleção de previsor de vetor de movimento (126) que decide um previsor de vetor de movimento do bloco de alvo de codificação com base na lista de candidato a previsor de vetor de movimento e uma unidade de codificação (109) que codifica a informação que representa uma posição do previsor de vetor de movimento decidido na lista de candidato a previsor de vetor de movimento.
[0010] Um outro aspecto da presente invenção é um dispositivo de codificação de imagem em movimento. O dispositivo é um dispositivo de codificação de imagem em movimento que codifica uma imagem em movimento que usa um vetor de movimento em unidades de blocos obtidos através da divisão de cada imagem e inclui uma unidade de construção de candidato a previsor de vetor de movimento (121 e 122) que executa previsão com base em um vetor de movimento de um dos blocos codificados adjacente a um bloco de alvo de codificação em uma mesma imagem que o bloco de alvo de codificação para construir uma pluralidade de candidatos a previsor de vetor de movimento e adiciona a pluralidade de candidatos a previsor de vetor de movimento a uma lista de candidato a previsor de vetor de movimento, uma unidade de limitação de número de candidato a previsor de vetor de mo-vimento (124) que limita o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento a uma número de candidato máximo de acordo com um tamanho de um bloco de previsão, uma unidade de seleção de previsor de vetor de movimento (126) que decide um previsor de vetor de movimento do bloco de alvo de codificação com base na lista de candidato a previsor de vetor de movimento e uma unidade de codificação (109) que codifica informação que representa uma posição do previsor de vetor de movimento decidido na lista de candidato a previsor de vetor de movimento.
[0011] Um outro aspecto da presente invenção é um método de codificação de imagem em movimento. O método é um método de codificação de imagem em movimento de codificação de uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos através da divisão de cada imagem e inclui uma etapa de construção de candidato a previsor de vetor de movimento de derivação de uma pluralidade de candidatos a previsor de vetor de movimento a partir de um vetor de movimento de um dos blocos codificados adjacentes a um bloco de alvo de codificação em uma mesma imagem que o bloco de alvo de codificação e um vetor de movimento de um dos blocos de uma imagem codificada diferente do bloco de alvo de codificação, uma etapa de adição de candidato a previsor de vetor de movimento de adição de um candidato a previsor de vetor de movimento que satisfaz uma certa condição dentre a pluralidade de candidatos a previsor de vetor de movimento para uma lista de candidato a previsor de vetor de movimento, uma etapa de limitação de candidato a previsor de vetor de movimento de adição repetida de um candidato a previsor de vetor de movimento que tem um mesmo valor à lista de candidato a previsor de vetor de movimento até que o número de candidatos a previsor de vetor de movimento alcance um certo número quando o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento é menor que o certo número (um número natural maior que ou igual a 2), uma etapa de seleção de previsor de vetor de movimento de decisão de um previsor de vetor de movimento do bloco de alvo de codificação com base na lista de candidato a previsor de vetor de movimento e uma etapa de codificação de informação de codificação que representa uma posição do previsor de vetor de movimento decidido na lista de candidato a previsor de vetor de movimento.
[0012] Um outro aspecto da presente invenção é um dispositivo de transmissão. O dispositivo inclui uma unidade de processamento de pacote que empacota um fluxo de bit codificado por um método de codificação de imagem em movimento de codificação de uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos através da divisão de cada imagem e obtém dados de codificação e uma unidade de transmissão que transmite os dados de codificação empacotados. O método de codificação de imagem em movimento inclui uma etapa de construção de candidato a previsor de vetor de movimento de derivação de uma pluralidade de candidatos a previsor de vetor de movimento a partir de um vetor de movimento de um dos blocos codificados adjacente a um bloco de alvo de codificação em uma mesma imagem que o bloco de alvo de codificação e um vetor de movimento de um dos blocos de uma imagem codificada diferente do bloco de alvo de codificação, uma etapa de adição de candidato a previsor de vetor de movimento de adição de um candidato a previsor de vetor de movimento que satisfaz uma certa condição dentre a plura-lidade de candidatos a previsor de vetor de movimento para uma lista de candidato a previsor de vetor de movimento, uma etapa de limitação de candidato a previsor de vetor de movimento de adição repetida de um candidato a previsor de vetor de movimento que tem um mesmo valor à lista de candidato a previsor de vetor de movimento até que o número de candidatos a previsor de vetor de movimento alcance um certo número quando o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento seja menor que o certo número (um número natural maior que ou igual a 2), uma etapa de seleção de previsor de vetor de movimento de decisão de um previsor de vetor de movimento do bloco de alvo de codificação com base na lista de candidato a previsor de vetor de movimento e uma etapa de codificação de informação de codificação que representa uma posição do previsor de vetor de movimento decidido na lista de candidato a previsor de vetor de movimento.
[0013] Um outro aspecto da presente invenção é um método de transmissão. O método inclui uma etapa de processamento de pacote de empacotamento de um fluxo de bit codificado por um método de codificação de imagem em movimento de codificação de uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos através da divisão de cada imagem e obtenção de dados de codificação e uma etapa de transmissão de transmissão dos dados de codificação empacotados. O método de codificação de imagem em movimento inclui uma etapa de construção de candidato a previsor de vetor de movimento de derivação de uma pluralidade de candidatos a previsor de vetor de movimento a partir de um vetor de movimento de um dos blocos codificados adjacente a um bloco de alvo de codificação em uma mesma imagem que o bloco de alvo de codifi-cação e um vetor de movimento de um dos blocos de uma imagem codificada diferente do bloco de alvo de codificação, uma etapa de adição de candidato a previsor de vetor de movimento de adição de um candidato a previsor de vetor de movimento que satisfaz uma certa condição dentre a pluralidade de candidatos a previsor de vetor de movimento para uma lista de candidato a previsor de vetor de movimento, uma etapa de limitação de candidato a previsor de vetor de movimento de adição repetida de um candidato a previsor de vetor de movimento que tem um mesmo valor à lista de candidato a previsor de vetor de movimento até que o número de candidatos a previsor de vetor de movimento alcance um certo número quando o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento seja menor que o certo número (um número natural maior que ou igual a 2), uma etapa de seleção de previsor de vetor de movimento de decisão de um previsor de vetor de movimento do bloco de alvo de codificação com base na lista de candidato a previsor de vetor de movimento e uma etapa de codifi- cação da informação de codificação que representa uma posição do previsor de vetor de movimento decidido na lista de candidato a previsor de vetor de movimento.
[0014] Um dispositivo de decodificação de imagem em movimento de acordo com um aspecto da presente invenção é um dispositivo de decodificação de imagem em movimento que decodifica um fluxo de bit obtido através da codificação de uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos através da divisão de cada imagem e inclui uma unidade de decodificação (202) que decodifica informação que representa uma posição de um previsor de vetor de movimento a ser selecionado em uma lista de candidato a previsor de vetor de movimento, uma unidade de construção de candidato a previsor de vetor de movimento (221) que deriva uma pluralidade de candidatos a previsor de vetor de movimento a partir de um vetor de movimento de um dos blocos decodificados adjacentes a um bloco de alvo de decodificação em uma mesma imagem que o bloco de alvo de decodificação e um vetor de movimento de um dos blocos em uma imagem decodificada diferente do bloco de alvo de decodificação, uma unidade de adição de candidato a previsor de vetor de movimento (222) que adiciona um candidato a previsor de vetor de movimento que satisfaz uma certa condição dentre a pluralidade de candidatos a previsor de vetor de movimento para uma lista de candidato a previsor de vetor de movimento, uma unidade de limitação de candidato a previsor de vetor de movimento (224) que adiciona repetidamente um candidato a previsor de vetor de movimento que tem um mesmo valor à lista de candidato a previsor de vetor de movimento até que o número de candidatos a previsor de vetor de movimento alcance um certo número quando o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento seja menor que o certo número (um número natural maior que ou igual a 2) e uma unidade de seleção de previsor de vetor de movimento (225) que seleciona um previsor de vetor de movimento do bloco de alvo de decodificação a partir da lista de candidato a previsor de vetor de movimento com base na informação decodificada que representa a posição do previsor de vetor de movimento a ser selecionado.
[0015] Um outro aspecto da presente invenção é um dispositivo de decodificação de imagem em movimento. O dispositivo é um dispositivo de decodificação de imagem em movimento que decodifica um fluxo de bit obtido através da codificação de uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos através da divisão de cada imagem e inclui uma unidade de decodificação (202) que decodifica informação que representa uma posição de um previsor de vetor de movimento a ser selecionado em uma lista de candidato a previsor de vetor de movimento, uma unidade de construção de candidato a previsor de vetor de movimento (221 e 222) que executa previsão com base em um vetor de movimento de um dos blocos decodificados adjacentes a um bloco de alvo de decodifi- cação em uma mesma imagem que o bloco de alvo de decodificação para construir uma pluralidade de candidatos a previsor de vetor de movimento e adiciona a pluralidade de candidatos a previsor de vetor de movimento a uma lista de candidato a previsor de vetor de movimento, uma unidade de limitação de número de candidato a previsor de vetor de movimento (224) que limita o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento a um número de candidato máximo de acordo com um tamanho de um bloco de previsão e uma unidade de seleção de previsor de vetor de movimento (225) que seleciona um previsor de vetor de movimento do bloco de alvo de decodificação a partir da lista de candidato a previsor de vetor de movimento com base na informação decodificada que representa a posição do previsor de vetor de movimento a ser selecionado na lista de candidato a previsor de vetor de movimento.
[0016] Um outro aspecto da presente invenção é um método de decodificação de imagem em movimento. O método é um método de decodificação de imagem em movimento de decodificação de um fluxo de bit obtido através da codificação de uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos através da divisão de cada imagem e inclui uma etapa de decodificação de informação de decodificação que representa uma posição de um previsor de vetor de movimento a ser selecionado em uma lista de candidato a previsor de vetor de movimento, uma etapa de construção de candidato a previsor de vetor de movimento de derivação de uma pluralidade de candidatos a previsor de vetor de movimento a partir de um vetor de movimento de um dos blocos decodificados adjacentes a um bloco de alvo de decodificação em uma mesma imagem que o bloco de alvo de decodificação e um vetor de movimento de um dos blocos em uma imagem decodificada diferente do bloco de alvo de decodificação, uma etapa de adição de candidato a previsor de vetor de movimento de adição de um candidato a previsor de vetor de movimento que satisfaz uma certa condição dentre a pluralidade de candidatos a previsor de vetor de movimento para uma lista de candidato a previsor de vetor de movimento, uma etapa de limitação de candidato a previsor de vetor de movimento de adição repetida de um candidato a previsor de vetor de movimento que tem um mesmo valor à lista de candidato a previsor de vetor de movimento até que o número de candidatos a previsor de vetor de movimento alcance um certo número quando o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento seja menor que o certo número (um número natural maior que ou igual a 2) e uma etapa de seleção de previsor de vetor de movimento de seleção de um previsor de vetor de movimento do bloco de alvo de decodifica- ção a partir da lista de candidato a previsor de vetor de movimento com base na informação decodificada que representa a posição do previsor de vetor de movimento a ser selecionado.
[0017] Um outro aspecto da presente invenção é um dispositivo de recepção. O dispositivo é um dispositivo de recepção que recebe e decodifica um fluxo de bit obtido através da codificação de uma imagem em movimento e inclui uma unidade de recepção que recebe dados de codificação obtido através do empacotamento de a fluxo de bit obtido através da codificação de uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos através da divisão de cada imagem, uma unidade de reconstrução que executa processamento de pacote nos dados de codificação recebidos e reconstrói um fluxo de bit original, uma unidade de decodificação (202) que decodifica informação que representa uma posição de um previsor de vetor de movimento a ser selecionado em uma lista de candidato a previsor de vetor de movimento a partir do fluxo de bit reconstruído, uma unidade de construção de candidato a previsor de vetor de movimento (221) que deriva uma pluralidade de candidatos a previsor de vetor de movimento a partir de um vetor de movimento de um dos blocos decodificados adjacente a um bloco de alvo de decodificação em uma mesma imagem que o bloco de alvo de decodificação e um vetor de movimento de um dos blocos em uma imagem decodificada diferente do bloco de alvo de decodificação, uma unidade de adição de candidato a previsor de vetor de movimento (222) que adiciona um candidato a previsor de vetor de movimento que satisfaz uma certa condição dentre a pluralidade de candidatos a previsor de vetor de movimento para uma lista de candidato a previsor de vetor de movimento, uma unidade de limitação de candidato a previsor de vetor de movimento (224) que adiciona repetidamente um candidato a previsor de vetor de movimento que tem um mesmo valor à lista de candidato a previsor de vetor de movimento até que o número de candidatos a previsor de vetor de movimento alcance um certo número quando o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento é menor que o certo número (um número natural maior que ou igual a 2) e uma unidade de seleção de previsor de vetor de movimento (225) que seleciona um previsor de vetor de movimento do bloco de alvo de decodifi- cação a partir da lista de candidato a previsor de vetor de movimento com base na informação decodificada que representa a posição do previsor de vetor de movimento a ser selecionado.
[0018] Um outro aspecto da presente invenção é um método de recepção. O método é um método de recepção de recepção e de decodificação de um fluxo de bit obtido através da codificação de uma imagem em movimento e inclui a etapa de recepção de recepção de dados de codificação obtido através do empacotamento de um fluxo de bit obtido através da codificação de uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos através da divisão de cada imagem, uma etapa de reconstrução de execução de processamento de pacote nos dados de codificação recebidos e de reconstrução de um fluxo de bit original, uma etapa de decodificação da informação de decodificação que representa uma posição de um previsor de vetor de movimento a ser selecionado em uma lista de candidato a previsor de vetor de movimento a partir do fluxo de bit reconstruído, uma etapa de construção de candidato a previsor de vetor de movimento de derivação de uma pluralidade de candidatos a previsor de vetor de movimento a partir de um vetor de movimento de um dos blocos decodificados adjacente a um bloco de alvo de decodificação em uma mesma imagem que o bloco de alvo de decodificação e um vetor de movimento de um dos blocos em uma imagem decodificada diferente do bloco de alvo de decodificação, uma etapa de adição de candidato a previsor de vetor de movimento de adição de um candidato a previsor de vetor de movimento que satisfaz uma certa condição dentre a pluralidade de candidatos a previsor de vetor de movimento para uma lista de candidato a previsor de vetor de movimento, uma etapa de limitação de candidato a previsor de vetor de movimento de adição repetida de um candidato a previsor de vetor de movimento que tem um mesmo valor à lista de candidato a previsor de vetor de movimento até que o número de candidatos a previsor de vetor de movimento alcance um certo número quando o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento é menor que o certo número (um número natural maior que ou igual a 2) e uma etapa de seleção de previsor de vetor de movimento de seleção de um previsor de vetor de movimento do bloco de alvo de decodificação a partir da lista de candidato a previsor de vetor de movimento com base na informação decodificada que representa a posição do previsor de vetor de movimento a ser selecionado.
[0019] Adicionalmente, uma modalidade obtida através da troca de uma combinação arbitrária dos componentes acima e uma expressão da presente invenção dentre um método, um dispositivo, um sistema, um meio de registro, um programa de computador e similares é também eficaz como um aspecto da presente invenção.
[0020] De acordo com a presente invenção, é possível aprimorar a eficiência de codificação através do cálculo de uma pluralidade de previsor de vetor de movimento, seleção de um previsor de vetor de movimento ideal a partir da pluralidade de previsor de vetor de movimento e redução de uma quantidade de codificação gerada da diferença de vetor de movimento.
BREVE DESCRIÇÃO DOS DESENHOS
[0021] A Figura 1 é um diagrama em bloco que ilustra uma confi guração de um dispositivo de codificação de imagem em movimento que implanta um método de previsão de vetor de movimento de acordo com uma modalidade;
[0022] A Figura 2 é um diagrama em bloco que ilustra uma confi guração de um dispositivo de decodificação de imagem em movimento que implanta um método de previsão de vetor de movimento de acordo com uma modalidade;
[0023] A Figura 3 é um diagrama para descrever um bloco em ár vore e um bloco de codificação;
[0024] As Figuras 4A a 4D são diagramas para descrever um modo de divisão de um bloco de previsão;
[0025] A Figura 5 é um diagrama para descrever um grupo de bloco de previsão;
[0026] A Figura 6 é um diagrama para descrever um grupo de bloco de previsão;
[0027] A Figura bloco de previsão; 7 é um diagrama para descrever um grupo de
[0028] A Figura 8 é um diagrama para descrever um grupo de bloco de previsão;
[0029] A Figura bloco de previsão; 9 é um diagrama para descrever um grupo de
[0030] A Figura 10 é um diagrama para descrever uma sintaxe de um fluxo de bit em um nível de fatia relacionado a um método de previsão de vetor de movimento;
[0031] A Figura 11 é um diagrama para descrever uma sintaxe de um fluxo de bit em um nível de bloco de previsão relacionado a um método de previsão de vetor de movimento;
[0032] A Figura 12 é um diagrama para descrever um exemplo de codificação por entropia de um elemento de sintaxe de um índice de previsor de vetor de movimento;
[0033] A Figura 13 é um diagrama em bloco que ilustra uma con figuração detalhada de uma unidade de derivação de diferença de vetor de movimento da Figura 1;
[0034] A Figura 14 é um diagrama em bloco que ilustra uma con figuração detalhada de uma unidade de derivação de vetor de movimento da Figura 2;
[0035] A Figura 15 é um fluxograma que ilustra uma diferença de processo de procedimento de derivação de vetor de movimento da unidade de derivação de diferença de vetor de movimento da Figura 1;
[0036] A Figura 16 é um fluxograma que ilustra um processo de procedimento de derivação de vetor de movimento da unidade de derivação de vetor de movimento da Figura 2;
[0037] A Figura 17 é um fluxograma que ilustra um procedimento de processo de definição de um número de candidato final de um previsor de vetor de movimento;
[0038] A Figura 18 é um fluxograma que ilustra um procedimento de processo de derivação de um candidato a previsor de vetor de movimento e construção de uma lista de previsor de vetor de movimento;
[0039] A Figura 19 é um fluxograma que ilustra um processo de procedimento de derivação de candidato a previsor de vetor de movimento;
[0040] A Figura 20 é um fluxograma que ilustra um processo de procedimento de derivação de candidato a previsor de vetor de movimento;
[0041] A Figura 21 é um fluxograma que ilustra um processo de procedimento de derivação de candidato a previsor de vetor de movimento;
[0042] A Figura 22 é um fluxograma que ilustra um procedimento de processo de escalonamento de vetor de movimento;
[0043] A Figura 23 é um fluxograma que ilustra um procedimento de processo de escalonamento de vetor de movimento por uma operação de número inteiro;
[0044] A Figura 24 é um fluxograma que ilustra um processo de procedimento de derivação de candidato a previsor de vetor de movimento;
[0045] A Figura 25 é um fluxograma que ilustra um procedimento de processo de derivação de uma imagem de um tempo diferente;
[0046] A Figura 26 é um fluxograma que ilustra a candidate proce dimento de processo de derivação de um bloco de previsão de uma imagem de um tempo diferente;
[0047] A Figura 27 é um fluxograma que ilustra um processo de procedimento de derivação de candidato a previsor de vetor de movimento;
[0048] A Figura 28 é um fluxograma que ilustra um processo de procedimento de derivação de candidato a previsor de vetor de movimento;
[0049] A Figura 29 é um fluxograma que ilustra um procedimento de processo de escalonamento de vetor de movimento;
[0050] A Figura 30 é um fluxograma que ilustra um procedimento de processo de escalonamento de vetor de movimento por uma operação de número inteiro;
[0051] A Figura 31 é um fluxograma que ilustra um procedimento de processo de adição de um candidato a previsor de vetor de movimento a uma lista de candidato a previsor de vetor de movimento;
[0052] A Figura 32 é um fluxograma que ilustra um procedimento de processo de deleção de um candidato a previsor de vetor de movimento redundante a partir de uma lista de candidato a previsor de vetor de movimento;
[0053] A Figura 33 é um fluxograma que ilustra um procedimento de processo de limitação de um número de candidato a previsor de vetor de movimento;
[0054] A Figura 34 é um fluxograma que ilustra um procedimento de processo de adição de um candidato a previsor de vetor de movimento a uma lista de candidato a previsor de vetor de movimento;
[0055] A Figura 35 é um fluxograma que ilustra um procedimento de processo de adição de um candidato a previsor de vetor de movimento a uma lista de candidato a previsor de vetor de movimento; e
[0056] As Figuras 36A e 36B são diagramas para descrever um método de derivação de previsor de vetor de movimento de acordo com uma técnica relacionada.
DESCRIÇÃO DETALHADA
[0057] A presente modalidade se refere à codificação de imagem em movimento e, particularmente, codificação de imagem em movimento na qual uma imagem é dividida em blocos retangulares que têm um tamanho e formato arbitrários e a compensação de movimento é executada em unidades de blocos entre imagens, a fim de aprimorar a eficiência de codificação, a quantidade de codificação é reduzida através da derivação de uma pluralidade de previsor de vetores de movimento a partir de vetores de movimento de blocos codificados adjacentes, derivação de uma diferença de vetor entre um vetor de movimento de um bloco de alvo de codificação e um previsor de vetor de movimento selecionado e codificação da diferença de vetor. Alternati-vamente, a quantidade de codificação é reduzida através da estimação da informação de codificação do bloco de alvo de codificação com o uso da informação de codificação do bloco adjacente codificado. Adicionalmente, quando uma imagem em movimento é decodificada, uma pluralidade de previsor de vetores de movimento é derivada de vetores de movimento de blocos decodificados adjacentes, um vetor de movimento de um bloco de alvo de decodificação é derivado com base em uma diferença de vetor decodificado a partir de um fluxo de bit e um previsor de vetor de movimento selecionado e o vetor de movimento é decodificado. Alternativamente, a informação de codificação do bloco de alvo de decodificação é estimada com o uso da informação de codificação do bloco adjacente decodificado.
[0058] Primeiro, a técnica e a terminologia usadas na presente modalidade são definidas. (Bloco em árvore e bloco de codificação)
[0059] Em uma modalidade, uma imagem é igualmente dividida em unidades de quadrados que têm o mesmo tamanho arbitrário conforme ilustrado na Figura 3. Essa unidade é definida como um bloco em árvore e usada como uma unidade básica de gerenciamento de endereço para especificar uma codificação ou decodificação de bloco de alvo (uma codificação de bloco de alvo em um processo de codificação e uma decodificação de bloco de alvo em um processo de decodificação e esse significado é posteriormente na presente invenção usado salvo se apresentado de outro modo no presente documento) em uma imagem. Exceto um monocromo, o bloco em árvore é configurado com um sinal de brilho e sinais de diferença de duas cores. O tamanho do bloco em árvore pode ser livremente definido como uma potência de 2 de acordo com o tamanho de imagem ou a textura da imagem. O bloco em árvore pode ser dividido em blocos que têm um tamanho de bloco pequeno através da divisão hierárquica do sinal de brilho e dos sinais de diferença de cor no bloco em árvore em quatro (divisão dos sinais pela metade na vertical e na horizontal, respectivamente) conforme necessário de acordo com a textura da imagem de modo que o processo de codificação possa ser otimizado. Esse bloco é definido como um bloco de codificação e usado como uma unidade básica para os processos de codificação e decodificação. Exceto um monocromo, o bloco de codificação é configurado com um sinal de brilho e sinais de diferença de duas cores. O tamanho máximo do bloco de codificação é igual ao bloco em árvore. Um bloco de codificação que tem o tamanho mínimo do bloco de codificação é chamado de bloco de codificação mínimo e pode ser livremente definido como o tamanho de uma potência de 2.
[0060] Na Figura 3, um bloco de codificação A é um bloco de codi ficação no qual o bloco em árvore não é dividido. Um bloco de codificação B é um dos blocos de codificação obtidos através da divisão do bloco em árvore em quatro. Um bloco de codificação C é um dos blocos de codificação obtidos através da divisão adicional de um dos blocos obtidos através da divisão do bloco em árvore em quatro em quatro. Um bloco de codificação D é um dos blocos de codificação obtidos através da divisão hierárquica adicional um dos blocos obtidos através da divisão do bloco em árvore em quatro em quatro duas vezes e é um bloco de codificação que tem o tamanho mínimo. (Modo de previsão)
[0061] Em unidades de codificação de blocos, a comutação é executada entre intraprevisão (MODE_INTRA) de execução de previsão com base em um sinal de imagem adjacente decodificado e inter- previsão (MODE_INTER) de execução de previsão com base em um sinal de imagem de uma imagem decodificada. Um modo que identifica a intraprevisão (MODE_INTRA) e a interprevisão (MODE_INTER) é definido como um modo de previsão (PredMode). O modo de previsão (PredMode) tem um valor da intraprevisão (MODE_INTRA) ou da in- terprevisão (MODE_INTER) e pode ser selecionado e codificado. (Modo de divisão, bloco de previsão e unidade de previsão)
[0062] Quando uma imagem é dividida em blocos e, então, a in- traprevisão (MODE_INTRA) e a interprevisão (MODE_INTER) são executadas, a fim de reduzir adicionalmente uma unidade na qual a comutação é executada entre o método de intraprevisão e o método de interprevisão, um bloco de codificação é dividido conforme necessário e a previsão é executada. Um modo que identifica um método de divisão do sinal de brilho e o sinal de diferença de cor do bloco de codificação é definido como um modo de divisão (PartMode). Adicionalmente, um bloco obtido pela divisão é definido como um bloco de previsão. Conforme ilustrado nas Figuras 4A a 4D, quatro tipos de modos de divisão (PartMode) são definidos de acordo com o método de divisão do sinal de brilho do bloco de codificação.
[0063] O modo de divisão (PartMode) no qual o sinal de brilho do bloco de codificação está relacionado a um bloco de previsão sem divisão (Figura 4A) é definido como divisão 2N x 2N (PART_2Nx2N), o modo de divisão (PartMode) no qual o sinal de brilho do bloco de codificação é dividido em dois blocos de previsão na direção horizontal (Figura 4B) é definido como divisão 2N x N (PART_2NxN), o modo de divisão (PartMode) no qual o sinal de brilho do bloco de codificação é dividido em dois blocos de previsão na direção vertical como blocos de codificação (Figura 4C) é definido como divisão N x 2N (PART_Nx2N) e o modo de divisão (PartMode) no qual o sinal de brilho do bloco de codificação é igualmente dividido na direção horizontal e na direção vertical, ou seja, dividido em quatro blocos de previsão (Figura 4D) é definido como divisão N x N (PART_NxN). Adicionalmente, exceto a divisão N x N (PART_NxN) da intraprevisão (MODE_INTRA), o sinal de diferença de cor é também dividido nas mesmas proporções de divisão vertical e horizontal que o sinal de brilho para cada modo de divisão (PartMode).
[0064] No bloco de codificação, a fim de especificar cada bloco de previsão, os números que começam de zero (0) são alocados nos blocos de previsão presentes no bloco de codificação em ordem de codificação. Esse número é definido como um índice de divisão PartIdx. Um número descrito em cada bloco de previsão de um bloco de codificação nas Figuras 4A a 4D representa o índice de divisão PartIdx do bloco de previsão. Na divisão 2N x N (PART_2NxN) ilustrada na Figura 4B, o índice de divisão PartIdx do bloco de previsão superior é definido como 0 e o índice de divisão PartIdx do bloco de previsão inferior é definido como 1. Na divisão N x 2N (PART_Nx2N) ilustrada na Figura 4C, o índice de divisão PartIdx do bloco de previsão esquerdo é definido como 0 e o índice de divisão PartIdx do bloco de previsão direito é definido como 1. Na divisão N x N (PART_NxN) na Figura 4D, o índice de divisão PartIdx do bloco de previsão esquerdo superior é definido como 0, o índice de divisão PartIdx do bloco de previsão direito superior é definido como 1, o índice de divisão PartIdx do bloco de previsão esquerdo superior é definido como 2 e o índice de divisão PartIdx do bloco de previsão direito inferior é definido como 3.
[0065] Quando o modo de previsão (PredMode) é a interprevisão (MODE_INTER), para os blocos de codificação diferentes do bloco de codificação D, ou seja, o bloco de codificação mínimo, a divisão 2N x 2N (PART_2Nx2N), a divisão 2N x N (PART_2NxN) e a divisão N x 2N (PART_Nx2N) são definidas como o modo de divisão (PartMode) e para apenas o bloco de codificação D, ou seja, o bloco de codificação mínimo, a divisão N x N (PART_NxN) é definida como o modo de divisão (PartMode) além da divisão 2N x 2N (PART_2Nx2N), divisão 2N x N (PART_2NxN) e divisão N x 2N (PART_Nx2N). A razão pela qual a divisão N x N (PART_NxN) não é definida para os blocos de codificação além do bloco de codificação mínimo se deve ao fato de que os blocos de codificação além do bloco de codificação mínimo, blocos de codificação pequenos podem ser expressos através da divisão do bloco de codificação em quatro. (Posições de bloco em árvore, bloco de codificação, bloco de previsão e bloco de transformada)
[0066] A posição de cada bloco tal como o bloco em árvore, o bloco de codificação, o bloco de previsão e o bloco de transformada da pre- sente modalidade é representada por coordenadas bidimensionais nas quais a posição de um pixel de um sinal de brilho esquerdo mais acima de uma tela de u sinal de brilho é definida como um ponto original (0, 0) e a posição de um pixel de um sinal de brilho esquerdo mais acima incluído em uma região de cada bloco é (x, y). Em uma direção de eixo de coordenada, a direção direita na direção horizontal e a direção descendente na direção vertical são direções positivas e uma unidade é uma unidade de um pixel de um sinal de brilho. Não apenas quando um formato de diferença de cor no qual o sinal de brilho é igual no tamanho de imagem (o número de pixels) ao sinal de diferença de cor é 4:4:4, mas também quando um formato de diferença de cor em que o sinal de brilho é diferente no tamanho de imagem (o número de pixels) do sinal de diferença de cor é 4:2:0 ou 4 : 2 : 2, a posição de cada bloco de um sinal de diferença de cor é representada por coordenadas de um pixel de um sinal de brilho incluído em uma região de cada bloco e uma unidade é um pixel de um sinal de brilho. Dessa forma, a posição de cada bloco de um sinal de diferença de cor pode ser especificada e uma relação entre um bloco de um sinal de brilho e a posição de um bloco de um sinal de diferença de cor também se torna evidente por uma comparação de valores de coordenada. (Grupo de bloco de previsão)
[0067] Um grupo configurado com uma pluralidade de blocos de previsão é definido como um grupo de bloco de previsão. As Figuras 5 a 8 são diagramas para descrever um grupo de bloco de previsão que se situa adjacente a um bloco de previsão de um alvo de codificação ou decodificação na mesma imagem que o bloco de previsão do alvo de codificação ou decodificação. A Figura 9 é um diagrama para descrever um grupo de bloco de previsão codificado ou decodificado presente na mesma posição que ou na posição próxima ao bloco de previsão do alvo de codificação ou decodificação em uma imagem já decodificada que é temporalmente diferente do bloco de previsão do alvo de codificação ou decodificação. O grupo de bloco de previsão será descrito em referência às Figuras 5 a 9.
[0068] Um primeiro grupo de bloco de previsão configurado com um bloco de previsão A1 adjacente ao lado esquerdo do bloco de previsão do alvo de codificação ou decodificação na mesma imagem que o bloco de previsão do alvo de codificação ou decodificação e um bloco de previsão A0 adjacente a um vértice esquerdo inferior do bloco de previsão do alvo de codificação ou decodificação conforme ilustrado na Figura 5 é definido como um grupo de bloco de previsão adjacente ao lado esquerdo.
[0069] Adicionalmente, conforme ilustrado na Figura 6, mesmo quando o bloco de previsão adjacente ao lado esquerdo do bloco de previsão do alvo de codificação ou decodificação é maior em tamanho que o bloco de previsão do alvo de codificação ou decodificação, de acordo com a condição acima, quando o bloco de previsão A adjacente ao lado esquerdo se situa adjacente ao lado esquerdo do bloco de previsão do alvo de codificação ou decodificação, o bloco de previsão é definido como um bloco de previsão A1 e quando o bloco de previsão A adjacente ao lado esquerdo se situa adjacente a um vértice esquerdo inferior do bloco de previsão do alvo de codificação ou decodificação, o bloco de previsão é definido como um bloco de previsão A0. No exemplo da Figura 6, o bloco de previsão A0 e o bloco de previsão A1 são o mesmo bloco de previsão.
[0070] Adicionalmente, conforme ilustrado na Figura 7, quando existe uma pluralidade de blocos de previsão adjacentes ao lado esquerdo do bloco de previsão do alvo de codificação ou decodificação que são menores em tamanho que o bloco de previsão do alvo de codificação ou decodificação, na presente modalidade, apenas um bloco de previsão A10 localizado na posição mais inferior dentre os blocos de previsão adjacentes ao lado esquerdo é definido como o bloco de previsão A1 adjacente ao lado esquerdo.
[0071] Um segundo grupo de bloco de previsão configurado com um bloco de previsão B1 adjacente ao lado superior do bloco de previsão do alvo de codificação ou decodificação na mesma imagem que o bloco de previsão do alvo de codificação ou decodificação, um bloco de previsão B0 adjacente ao vértice direito superior do bloco de previsão do alvo de codificação ou decodificação e um bloco de previsão B2 adjacente ao vértice esquerdo superior do bloco de previsão do alvo de codificação ou decodificação é definido como um grupo de bloco de previsão adjacente ao lado superior.
[0072] Adicionalmente, conforme ilustrado na Figura 8, mesmo quando o bloco de previsão adjacente ao lado superior do bloco de previsão do alvo de codificação ou decodificação é maior em tamanho que o bloco de previsão do alvo de codificação ou decodificação, de acordo com a condição acima, o bloco de previsão é definido como o bloco de previsão B1 quando o bloco de previsão B adjacente ao lado superior se situa adjacente ao lado superior do bloco de previsão do alvo de codificação ou decodificação, o bloco de previsão é definido como o bloco de previsão B0 quando o bloco de previsão B adjacente ao lado superior se situa adjacente ao vértice direito superior do bloco de previsão do alvo de codificação ou decodificação e o bloco de previsão é definido como o bloco de previsão B2 quando o bloco de previsão B adjacente ao lado superior se situa adjacente ao vértice esquerdo superior do bloco de previsão do alvo de codificação ou deco- dificação. No exemplo da Figura 8, o bloco de previsão B0, o bloco de previsão B1 e o bloco de previsão B2 são o mesmo bloco de previsão.
[0073] Adicionalmente, conforme ilustrado na Figura 7, quando existe uma pluralidade de blocos de previsão adjacentes ao lado superior do bloco de previsão do alvo de codificação ou decodificação que são menores em tamanho que o bloco de previsão do alvo de codificação ou decodificação, em uma modalidade, apenas um bloco de previsão mais à direita B10 dentre os blocos de previsão adjacentes ao lado superior é definido como o bloco de previsão B1 adjacente ao lado superior.
[0074] Conforme ilustrado na Figura 9, um terceiro grupo de bloco de previsão configurado com grupos de bloco de previsão já codificados ou decodificados T0 e T1 presentes na mesma posição que ou na posição próxima ao bloco de previsão do alvo de codificação ou deco- dificação em uma imagem codificada ou decodificada, ou seja, temporalmente diferente do bloco de previsão do alvo de codificação ou de- codificação é definido como um grupo de bloco de previsão temporalmente diferente. (Modo de interprevisão e lista de referência)
[0075] Na modalidade da presente invenção, na interprevisão em que a previsão é executada com base em um sinal de imagem de uma imagem decodificada, uma pluralidade de imagens decodificadas pode ser usada como uma imagem de referência. A fim de especificar uma imagem de referência selecionada dentre uma pluralidade de imagens de referência, um índice de referência é dado para cada bloco de previsão. Na fatia B, a interprevisão pode ser executada através da seleção de duas imagens de referência arbitrárias para cada bloco de previsão e existem previsão L0 (Pred_L0), previsão L1 (Pred_L1) e previsão dupla (Pred_B1) com o modo de interprevisão. A imagem de referência é gerenciada por L0 (uma lista de referência 0) e L1 (uma lista de referência 1) de uma estrutura de lista e a imagem de referência pode ser especificada através da designação do índice de referência de L0 ou L1. A previsão L0 (Pred_L0) é a interprevisão em que a imagem de referência gerenciada por L0 é referenciada, a previsão L1 (Pred_L1) é a interprevisão em que a imagem de referência gerenciada por L1 é referenciada e a previsão dupla (Pred_B1) é a interprevisão em que tanto a previsão L0 quanto a previsão L1 são executadas e uma imagem de referência gerenciada por cada um dentre L0 e L1 é referenciada. Na interprevisão da fatia P, apenas a previsão L0 pode ser usada e na interprevisão da fatia B, a previsão L0, a previsão L1 e a previsão dupla (Pred_B1) em que a previsão L0 e a previsão L1 são ponderadas e adicionadas podem ser usadas. Em um processo subsequente, uma constante ou uma variável em que um sufixo LX (X é 0 ou 1) é anexado a uma saída é considerado como processado para cada um dentre L0 e L1. (POC)
[0076] Uma POC é uma variável associada a uma imagem a ser codificada e um valor que aumenta em um na ordem de saída de imagens é definido como POC. Com base no valor POC, é possível determinar se é a mesma imagem, determinar uma relação anteroposterior de imagens na ordem de saída ou derivar uma distância entre as imagens. Por exemplo, quando duas imagens têm o mesmo valor de POC, as duas imagens podem ser determinadas como sendo iguais. Quando duas imagens têm diferentes valores de POC, uma imagem que tem um valor de POC menor pode ser determinada como uma imagem a ser primeiro emitida em termos de tempo e uma diferença de POC entre duas imagens é uma distância entre as imagens em uma direção de eixo de tempo.
[0077] Doravante na presente invenção, a modalidade da presente invenção será descrita em referência aos desenhos anexos. A Figura 1 é um diagrama em bloco que ilustra uma configuração de um dispositivo de codificação de imagem em movimento de acordo com a modalidade da presente invenção. O dispositivo de codificação de imagem em movimento de acordo com a modalidade inclui uma memória de imagem 101, uma unidade de estimação de vetor de movimento 102, uma unidade de derivação de diferença de vetor de movimento 103, uma unidade de estimação de informação de interprevisão 104, uma unidade de previsão de compensação de movimento 105, uma unidade de decisão de método de previsão 106, uma unidade de construção de sinal residual 107, uma unidade de quantificação/transformação ortogonal 108, uma unidade de construção de primeiro fluxo de bit 109, uma unidade de construção de segundo fluxo de bit 110, uma unidade de multiplexação 111, uma unidade de transformação ortogonal inver- sa/quantificação inversa 112, uma unidade de sobreposição de sinal de imagem decodificada 113, uma memória de armazenamento de informação de codificação 114 e uma memória de imagem decodificada 115.
[0078] A memória de imagem 101 armazena temporariamente si nais de imagem de uma imagem de alvo de codificação suprida na ordem de tempos de exibição/fotografia. A memória de imagem 101 supre os sinais de imagem armazenados da imagem de alvo de codificação para a unidade de estimação de vetor de movimento 102, a unidade de decisão de método de previsão 106 e a unidade de construção de sinal residual 107 em unidades de certos blocos de pixel. Nesse tempo, os sinais de imagem da imagem armazenada na ordem de tempos de exibição/fotografia são redispostos na ordem de codificação e, então, emitidos a partir da memória de imagem 101 em unidades de blocos de pixel.
[0079] A unidade de estimação de vetor de movimento 102 detecta um vetor de movimento de cada bloco de previsão tamanho e cada modo de previsão em unidades de blocos de previsão, por exemplo, por correspondência de bloco entre o sinal de imagem suprido a partir da memória de imagem 101 e a imagem de referência suprida a partir da memória de imagem decodificada 115 e supre o vetor de movimento detectado para a unidade de previsão de compensação de movimento 105, a unidade de derivação de diferença de vetor de movimento 103 e a unidade de decisão de método de previsão 106.
[0080] A unidade de derivação de diferença de vetor de movimento 103 deriva uma pluralidade de candidatos a previsor de vetor de movimento com o uso de informação de codificação de sinais de imagem já codificada armazenados na memória de armazenamento de informação de codificação 114, adiciona a pluralidade de candidatos a previsor de vetor de movimento a uma lista de previsor de vetor de movimento que será descrita posteriormente, seleciona um previsor de vetor de movimento ideal dentre a pluralidade de candidatos a previsor de vetor de movimento adicionados à lista de previsor de vetor de movimento, deriva uma diferença de vetor de movimento com base no vetor de movimento detectado pela unidade de estimação de vetor de mo-vimento 102 e pelo previsor de vetor de movimento e supre a diferença de vetor de movimento derivado para a unidade de decisão de método de previsão 106. Adicionalmente, um índice de previsor de vetor de movimento que especifica o previsor de vetor de movimento selecionado a partir dos candidatos a previsor de vetor de movimento adicionados à lista de previsor de vetor de movimento é suprido para a unidade de decisão de método de previsão 106. Uma configuração detalhada e a operação da unidade de derivação de diferença de vetor de movimento 103 serão descritas posteriormente.
[0081] A unidade de estimação de informação de interprevisão 104 estima a informação de interprevisão de um modo de consolidação. O modo de consolidação se refere a um modo de uso de informação de interprevisão de um bloco de previsão codificado adjacente que foi submetido à interprevisão ou um bloco de previsão de uma imagem diferente que foi submetido à interprevisão sem informação de inter- previsão de codificação de um bloco de previsão correspondente tal como um modo de previsão, um índice de referência (informação que especifica uma imagem de referência usada em previsão de compensação de movimento a partir de uma pluralidade de imagens de referência adicionadas a uma lista de referência) e um vetor de movimento de um bloco de previsão correspondente. A unidade de estimação de informação de interprevisão 104 deriva uma pluralidade de candidatos de consolidação (candidatos de informação de interprevisão) com o uso de informação de codificação de um bloco já codificado de previsão armazenado na memória de armazenamento de informação de codificação 114, adiciona a pluralidade de candidatos de consolidação a uma lista de candidato de consolidação, seleciona um candidato de consolidação ideal dentre a pluralidade de candidatos de consolidação adicionados à lista de candidato de consolidação, supre informação de interprevisão do candidato de consolidação selecionado tal como um modo de previsão, um índice de referência e um vetor de movimento à unidade de previsão de compensação de movimento 105 e supre um índice de consolidação que especifica o candidato de consolidação selecionado para a unidade de decisão de método de previsão 106.
[0082] A unidade de previsão de compensação de movimento 105 constrói um sinal de imagem de previsão com base na imagem de referência com o uso do vetor de movimento detectado pela unidade de estimação de vetor de movimento 102 e pela unidade de estimação de informação de interprevisão 104 através de previsão de compensação de movimento e supre o sinal de imagem de previsão para a unidade de decisão de método de previsão 106. Na previsão L0 e na previsão L1, a previsão de sentido único é executada. No caso da previsão dupla (Pred_B1), um sinal de imagem de previsão é construído através da execução de uma previsão de dois sentidos, da multiplicação adapta- tiva de sinais que foram submetidos a interprevisões da previsão L0 e da previsão L1 por um coeficiente de ponderação e da adição e sobreposição de um valor de deslocamento.
[0083] A unidade de decisão de método de previsão 106 avalia uma quantidade de codificação da diferença de vetor de movimento, uma quantidade de distorção entre o sinal de imagem de previsão e o sinal de imagem e similares, decide o modo de previsão PredMode para determinar se o método de previsão é a interprevisão (PRED_INTER) ou a intraprevisão (PRED_INTRA) em unidades de blocos de codificação ideais de uma pluralidade de métodos de previsão e o modo de divisão PartMode, decide se um método de previsão é um modo de consolidação ou similares em unidades de blocos de previsão na interprevisão (PRED_INTER), decide o índice de consolidação quando o método de previsão é o modo de consolidação ou o sinalizador de interprevisão, o índice de previsor de vetor de movimento, os índices de referência de L0 e L1, a diferença de vetor de movimento e similares quando o método de previsão não é o modo de consolidação e supre a informação de codificação decidida para a unidade de construção de primeiro fluxo de bit 109.
[0084] Adicionalmente, a unidade de decisão de método de previ são 106 armazena informação que representa o método de previsão decidido e informação de codificação que inclui o vetor de movimento de acordo com o método de previsão decidido e similares na memória de armazenamento de informação de codificação 114. Aqui, os exemplos da informação de codificação a ser armazenada incluem o modo de previsão PredMode, o modo de divisão PartMode, sinalizadores predFlagL0 e predFlagL1 que representam se a previsão L0 e a previsão L1 são usadas, índices de referência refIdxL0 e refIdxL1 de L0 e L1, vetores de movimento mvL0 e mvL1 de L0 e L1 e similares. Aqui, quando o modo de previsão PredMode é a intraprevisão (PRED_INTRA), tanto o sinalizador predFlagL0 que representa se a previsão L0 é usada e o sinalizador predFlagL1 que representa se a previsão L1 é usada são 0. Entretanto, quando o modo de previsão PredMode é a interprevisão (MODE_INTER) e o modo de interprevisão é a previsão L0 (Pred_L0), o sinalizador predFlagL0 que representa se a previsão L0 é usada é 1 e o sinalizador predFlagL1 que representa se a previsão L1 é usada é 0. Quando o modo de interprevisão é a previsão L1 (Pred_L1), o sinalizador predFlagL0 que representa se a previsão L0 é usada é 0 e o sinalizador predFlagL1 que representa se a previsão L1 é usada é 1. Quando o modo de interprevisão é a previsão dupla (Pred_B1), tanto o sinalizador predFlagL0 que representa se a previsão L0 é usada quanto o sinalizador predFlagL1 que representa se a previsão L1 é usada são 1. A unidade de decisão de método de previsão 106 supre o sinal de imagem de previsão de acordo com o modo de previsão decidido para a unidade de construção de sinal residual 107 e a unidade de sobreposição de sinal de imagem decodifi-cada 113.
[0085] A unidade de construção de sinal residual 107 constrói um sinal residual através da execução da subtração do sinal de imagem a ser codificado e o sinal de imagem de previsão e supre o sinal residual para a unidade de quantificação/transformação ortogonal 108.
[0086] A unidade de quantificação/transformação ortogonal 108 constrói um sinal residual que foi submetido a uma transformada e uma quantização ortogonais através da execução das transformada e quan- tização ortogonais no sinal residual de acordo com um parâmetro de quantização e supre o sinal residual para a unidade de construção de segundo fluxo de bit 110 e a unidade de transformação ortogonal in- versa/quantificação inversa 112. Adicionalmente, a unidade de quanti- ficação/transformação ortogonal 108 supre o parâmetro de quantização para a memória de armazenamento de informação de codificação 114.
[0087] A unidade de construção de primeiro fluxo de bit 109 codi fica a informação de codificação de acordo com o método de previsão decidido pela unidade de decisão de método de previsão 106 em uni dades de codificação de blocos e blocos de previsão além de informação em unidades de sequências, imagens, fatias e blocos de codificação. Especificamente, quando o modo de previsão PredMode de cada bloco de codificação é a interprevisão (PRED_INTER), a unidade de construção de primeiro fluxo de bit 109 constrói um primeiro fluxo de bit através da codificação de informação de codificação tal como um sinalizador usado para determinar se isso é o modo de consolidação e a informação relacionada ao índice de consolidação quando esse é o modo de consolidação e a informação relacionada ao modo de inter- previsão, ao índice de referência, ao índice de previsor de vetor de movimento e à diferença de vetor de movimento quando não é o modo de consolidação de acordo com uma regra de sintaxe especificada que será descrita posteriormente e supre o primeiro fluxo de bit para a unidade de multiplexação 111. Adicionalmente, quando o número dos candidatos a previsor de vetor de movimento adicionados à lista de previsor de vetor de movimento é 1, o índice de previsor de vetor de movimento mvp_idx pode ser especificado como 0 e dessa forma não é codificado. Na presente modalidade, o número de candidato a previsor de vetor de movimento é definido de acordo com o tamanho do bloco de previsão do alvo de codificação conforme será descrito posteriormente. Dessa forma, a unidade de construção de primeiro fluxo de bit 109 define o número de candidato a previsor de vetor de movimento de acordo com o tamanho do bloco de previsão do alvo de codificação e codifica o índice de previsor de vetor de movimento quando o número de candidato definido é maior que 1.
[0088] A unidade de construção de segundo fluxo de bit 110 cons trói um segundo fluxo de bit através da execução da codificação por entropia no sinal residual que foi submetido a transformada ortogonal e quantização de acordo com a regra de sintaxe especificada e supre o segundo fluxo de bit para a unidade de multiplexação 111. A unidade de multiplexação 111 multiplexa o primeiro fluxo de bit e o segundo fluxo de bit de acordo com a regra de sintaxe especificada e emite um fluxo de bit.
[0089] A unidade de transformação ortogonal inversa/quantificação inversa 112 deriva um sinal residual através da execução da quanti- zação inversa e transformada ortogonal inversa no sinal residual que foi submetido a transformada ortogonal e quantização supridas a partir da unidade de quantificação/transformação ortogonal 108 e supre o sinal residual para a unidade de sobreposição de sinal de imagem decodificada 113. A unidade de sobreposição de sinal de imagem decodificada 113 constrói uma imagem decodificada através do uso do sinal de imagem de previsão de acordo com a decisão feita pela unidade de decisão de método de previsão 106 para ser sobreposta no sinal residual que foi submetido à quantização inversa e à transformada ortogonal inversa pela unidade de transformação ortogonal inver- sa/quantificação inversa 112 e armazena a imagem decodificada na memória de imagem decodificada 115. Adicionalmente, existem casos em que a imagem decodificada é submetida a um processo de filtração de redução de distorção tal como distorção de bloco ocasionada através da codificação de e, então, armazenado na memória de imagem decodificada 115.
[0090] A Figura 2 é um diagrama em bloco que ilustra uma confi guração de um dispositivo de decodificação de imagem em movimento de acordo com a modalidade da presente invenção que corresponde ao dispositivo de codificação de imagem em movimento da Figura 1. O dispositivo de decodificação de imagem em movimento de acordo com a modalidade inclui uma unidade de demultiplexação 201, uma unidade de decodificação de primeiro fluxo de bit 202, uma unidade de decodifi- cação de segundo fluxo de bit 203, uma unidade de derivação de vetor de movimento 204, uma unidade de estimação de informação de inter- previsão 205, uma unidade de previsão de compensação de movimento 206, uma unidade de transformação ortogonal inversa/quantificação inversa 207, uma unidade de sobreposição de sinal de imagem decodificada 208, uma memória de armazenamento de informação de codificação 209 e uma memória de imagem decodificada 210.
[0091] O processo de decodificação do dispositivo de decodifica- ção de imagem em movimento da Figura 2 corresponde ao processo de decodificação executado no dispositivo de codificação de imagem em movimento da Figura 1 e, dessa forma, os respectivos componentes da unidade de previsão de compensação de movimento 206, da unidade de transformação ortogonal inversa/quantificação inversa 207, da unidade de sobreposição de sinal de imagem decodificada 208, da memória de armazenamento de informação de codificação 209 e da memória de imagem decodificada 210 da Figura 2 têm funções correspondentes aos respectivos componentes da unidade de previsão de compensação de movimento 105, da unidade de transformação ortogonal inversa/quantificação inversa 112, da unidade de sobreposição de sinal de imagem decodificada 113, da memória de armazenamento de informação de codificação 114 e da memória de imagem decodificada 115 do dispositivo de codificação de imagem em movimento da Figura 1.
[0092] Um fluxo de bit suprido para a unidade de demultiplexação 201 é demultiplexado de acordo com a regra de sintaxe especificada e, então, o fluxo de bit demultiplexado é suprido para a unidade de deco- dificação de primeiro fluxo de bit 202 e a unidade de decodificação de segundo fluxo de bit 203.
[0093] A unidade de decodificação de primeiro fluxo de bit 202 decodifica o fluxo de bit suprido e obtém informação em unidades de sequências, imagens, fatias e blocos de codificação e informação de codificação em unidades de blocos de previsão. Especificamente, a informação de codificação relacionada ao modo de previsão PredMode para determinar se isso é a interprevisão (PRED_INTER) ou a intra- previsão (PRED_INTRA) em unidades de codificação de blocos, o modo de divisão PartMode, o sinalizador para determinar se esse é o modo de consolidação quando esse é a interprevisão (PRED_INTER), o índice de consolidação quando esse é o modo de consolidação e o modo de interprevisão, o índice de previsor de vetor de movimento e a diferença de vetor de movimento quando não é o modo de consolidação é decodificado de acordo com a regra de sintaxe especificada que será descrito posteriormente e a informação de codificação é suprida para a unidade de derivação de vetor de movimento 204 ou a unidade de estimação de informação de interprevisão 205. Adicionalmente, quando não é o modo de consolidação e um candidato a previsor de vetor de movimento é adicionado à lista de previsor de vetor de movimento que será descrito posteriormente, o índice de previsor de vetor de movimento pode ser especificado como 0 e dessa forma o índice de previsor de vetor de movimento não é codificado e o índice de previsor de vetor de movimento é definido como 0. Na presente modalidade, o número de candidato a previsor de vetor de movimento é definido de acordo com o tamanho do bloco de previsão do alvo de decodificação conforme será descrito posteriormente. Dessa forma, a unidade de decodificação de primeiro fluxo de bit 202 define o número de candidato a previsor de vetor de movimento de acordo com o tamanho do bloco de previsão do alvo de decodificação e decodifica o índice de previsor de vetor de movimento quando o número de candidato definido é maior que 1.
[0094] A unidade de decodificação de segundo fluxo de bit 203 decodifica o fluxo de bit suprido, deriva o sinal residual que foi submetido a transformada ortogonal e quantização e supre o sinal residual que foi submetido a transformada ortogonal e quantização para a uni- dade de transformação ortogonal inversa/quantificação inversa 207.
[0095] A unidade de derivação de vetor de movimento 204 deriva uma pluralidade dos candidatos a previsor de vetor de movimento com o uso de informação de codificação de um sinal de imagem já decodificada armazenado na memória de armazenamento de informação de codificação 209 quando o bloco de previsão do alvo de decodificação não está no modo de consolidação, adiciona a pluralidade dos candidatos a previsor de vetor de movimento à lista de previsor de vetor de movimento que será descrita posteriormente, seleciona o previsor de vetor de movimento de acordo com o índice de previsor de vetor de movimento decodificado e suprido pela unidade de decodificação de primeiro fluxo de bit 202 dentre a pluralidade dos candidatos a previsor de vetor de movimento adicionados à lista de previsor de vetor de movimento, deriva o vetor de movimento com base na diferença de vetor decodificado pela unidade de decodificação de primeiro fluxo de bit 202 e o previsor de vetor de movimento selecionado supre o vetor de movimento para a unidade de previsão de compensação de movimento 206 junto com outra informação de codificação e armazena o vetor de movimento na memória de armazenamento de informação de codificação 209. Aqui, os exemplos da informação de codificação do bloco de previsão a ser suprida e armazenada incluem o modo de previsão PredMode, o modo de divisão PartMode, os sinalizadores predFlagL0 e predFlagL1 que representam se a previsão L0 e a previsão L1 são usadas, o índices de referência refIdxL0 e refIdxL1 de L0 e L1 e os vetores de movimento mvL0 e mvL1 de L0 e L1. Aqui, quando o modo de previsão é a intraprevisão (PRED_INTRA), tanto o sinalizador predFlagL0 que representa se a previsão L0 é usada quanto o sinalizador predFlagL1 que representa se a previsão L1 é usada são 0. Entretanto, quando o modo de previsão PredMode é a interprevisão (MODE_INTER) e o modo de interprevisão é a previsão L0 (Pred_L0), o sinalizador predFlagL0 que representa se a previsão L0 é usada é 1 e o sinalizador predFlagL1 que representa se a previsão L1 é usada é 0. Quando o modo de interprevisão é a previsão L1 (Pred_L1), o sinalizador predFlagL0 que representa se a previsão L0 é usada é 0 e o sinalizador predFlagL1 que representa se a previsão L1 é usada é 1. Quando o modo de interprevisão é a previsão dupla (Pred_B1), tanto o sinalizador predFlagL0 que representa se a previsão L0 é usada quanto o sinalizador predFlagL1 que representa se a previsão L1 é usada são 1. Uma configuração detalhada e a operação da unidade de derivação de vetor de movimento 204 serão descritas posteriormente.
[0096] A unidade de estimação de informação de interprevisão 205 estima a informação de interprevisão do modo de consolidação quando o bloco de previsão do alvo de decodificação está no modo de consolidação. A unidade de estimação de informação de interprevisão 205 deriva uma pluralidade de candidatos de consolidação com o uso de informação de codificação de um bloco já decodificado de previsão armazenado na memória de armazenamento de informação de codificação 114, adiciona a pluralidade de candidatos de consolidação à lista de candidato de consolidação, seleciona um candidato à consolidação correspondente ao índice de consolidação decodificado e suprido pela unidade de decodificação de primeiro fluxo de bit 202 dentre a pluralidade de candidatos de consolidação adicionados à lista de candidato de consolidação, supre informação de interprevisão do candidato de consolidação selecionado tal como o modo de previsão PredMode, o modo de divisão PartMode, os sinalizadores predFlagL0 e predFlagL1 que representam se a previsão L0 e a previsão L1 são usadas, os índices de referência refIdxL0 e refIdxL1 de L0 e L1 e os vetores de movimento mvL0 e mvL1 de L0 e L1 para a unidade de previsão de compensação de movimento 206 e armazena a informação de interprevisão na memória de armazenamento de informação de codificação 209.
[0097] A unidade de previsão de compensação de movimento 206 constrói o sinal de imagem de previsão com base na imagem de referência com o uso do vetor de movimento derivado pela unidade de derivação de vetor de movimento 204 através da previsão de compensação de movimento e supre o sinal de imagem de previsão para a unidade de sobreposição de sinal de imagem decodificada 208. No caso da previsão dupla (Pred_B1), o sinal de imagem de previsão final é construído através da multiplicação adaptativa de dois sinais de imagem de previsão de compensação de movimento da previsão L0 e da previsão L1 por um coeficiente de ponderação e fazendo com que os o sinais estejam sobrepostos entre si.
[0098] A unidade de transformação ortogonal inversa/quantificação inversa 207 executa transformada ortogonal inversa e quantização inversa no sinal residual que foi submetido a transformada ortogonal e quantização e decodificado pela unidade de decodificação de primeiro fluxo de bit 202 e obtém um sinal residual que foi submetido a transformada ortogonal inversa e quantização inversa.
[0099] A unidade de sobreposição de sinal de imagem decodificada 208 decodifica um sinal de imagem decodificada fazendo com que o sinal de imagem de previsão que foi submetido à previsão de compensação de movimento pela unidade de previsão de compensação de movimento 206 se sobreponha no sinal residual que foi submetido a transformada ortogonal inversa e quantização inversa pela unidade de transformação ortogonal inversa/quantificação inversa 207 e armazena o sinal de imagem decodificada na memória de imagem decodificada 210. Quando o sinal de imagem decodificada é armazenado na memória de imagem decodificada 210, existem casos em que a imagem decodificada é submetida a um processo de filtração de redução de distorção tal como distorção de bloco ocasionada através da codificação de e, então, armazenada na memória de imagem decodificada 210. (Sintaxe)
[00100] A seguir, uma sintaxe será descrita como uma regra comum de codificação de e decodificação de um fluxo de bit de uma imagem em movimento que é codificado pelo dispositivo de codificação de imagem em movimento que emprega o método de previsão de vetor de movimento de acordo com a presente modalidade e decodificado pelo dispositivo de decodificação.
[00101] A Figura 10 ilustra uma primeira estrutura de sintaxe descrita em um cabeçalho de fatia em unidades de fatias em um fluxo de bit construído de acordo com a presente modalidade. Aqui, apenas os elementos de sintaxe relacionados à presente modalidade são ilustrados. Quando um tipo de fatia é B, um sinalizador collocated_from_10_flag que representa se uma imagem de referência usada por uma imagem colPic de um tempo diferente usado para derivar o candidato a previsor de vetor de movimento ou o candidato à consolidação na direção de tempo é adicionado a uma lista de referência de L0 ou uma lista de referência de L1 de uma imagem que inclui um bloco de previsão de um alvo de processamento é definida. Os detalhes do sinalizador colloca- ted_from_10_flag serão descritos posteriormente.
[00102] O elemento de sintaxe acima pode ser definido para um parâmetro de imagem definido que descreve o elemento de sintaxe definido em unidades de imagens.
[00103] A Figura 11 ilustra um padrão de sintaxe descrito em uni dades de blocos de previsão. Quando o valor do modo de previsão PredMode do bloco de previsão é a interprevisão (MODE_INTER), merge_flag[x0][y0] que representa se esse é o modo de consolidação é definido. Aqui, x0 e y0 são um índice que representa a posição de um pixel esquerdo superior de um bloco de previsão em uma imagem de um sinal de brilho e merge_flag[x0][y0] é um sinalizador que representa se esse é o modo de consolidação de um bloco de previsão posicio- nado em (x0, y0) em uma imagem.
[00104] A seguir, quando merge_flag[x0][y0] é 1, isso significa que esse é o modo de consolidação e um elemento de sintaxe mer- ge_idx[x0][y0] que serve como um índice de uma lista de consolidação que é uma lista de candidatos de consolidação a serem referenciados é definida. Aqui, x0 e y0 são índices que representam a posição de um pixel esquerdo superior de um bloco de previsão em uma imagem e merge_idx[x0][y0] é um índice de consolidação de um bloco de previsão posicionado em (x0, y0) em uma imagem.
[00105] Nesse ínterim, quando merge_flag[x0][y0] é 0, isso significa que esse não é o modo de consolidação e quando o tipo de fatia é B, um elemento de sintaxe inter_pred_flag[x0][y0] que identifica o modo de interprevisão é definido e a previsão L0 (Pred_L0), a previsão L1 (Pred_L1) e a previsão dupla (Pred_B1) são identificadas por esse elemento de sintaxe. Para cada um dentre L0 e L1, os elementos de sintaxe ref_idx_l0[x0][y0] e ref_idx_l1[x0][y0] do índice de referência para especificar uma imagem de referência e elementos de sintaxe mvd_l0[x0][y0][j] e mvd_l1[x0][y0][j] da diferença de vetor de movimento que são a diferença entre o vetor de movimento do bloco de previsão e o previsor de vetor de movimento obtido pelo detecção de vetor de movimento são definidas. Aqui, x0 e y0 são índices que representam a posição de um pixel esquerdo superior de um bloco de previsão em uma imagem, ref_idx_l0[x0][y0] e mvd_l0[x0][y0][j] são um índice de referência de L0 de um bloco de previsão posicionado em (x0, y0) em uma imagem e uma diferença de vetor de movimento do mesmo, respectivamente, e ref_idx_l1[x0][y0] e mvd_l1[x0][y0][j] são um índice de referência de L1 de um bloco de previsão posicionado em (x0, y0) em uma imagem e uma diferença de vetor de movimento do mesmo, respectivamente. Adicionalmente, j representa um componente de uma diferença de vetor de movimento e j de 0 representa um componente x, e j de 1 representa um componente y. A seguir, quando um número de candidato de uma diferença de vetor de movimento definido de acordo com o tamanho de um bloco de previsão de um alvo de codificação ou decodificação é maior que 1, os elementos de sintaxe mvp_idx_l0[x0][y0] e mvp_idx_l1[x0][y0] que servem como um índice de um lista de previsor de vetor de movimento que é uma lista de candidatos a previsor de vetor de movimento referenciados são definidos. Aqui, x0 e y0 são índices que representam a posição de um pixel esquerdo superior de um bloco de previsão em uma imagem, mvp_idx_l0[x0][y0] e mvp_idx_l1[x0][y0] são índices de previsor de vetor de movimento de L0 e L1 de um bloco de previsão posicionado em (x0, y0) em uma imagem. NumMVPCand (LX) representa uma função de derivação de um total do número de candidatos a previsor de vetor de movimento de um bloco de previsão em uma direção de previsão LX (X é 0 ou 1) e o mesmo valor que um número de candidato final NumMVPCand especificado de acordo com o tamanho de um bloco de previsão de um alvo de codificação ou decodificação que será descrito posteriormente é definido. A Figura 12 ilustra códigos de entropia dos elementos de sintaxe mvp_idx_l0[x0][y0] e mvp_idx_l1[x0][y0] de um índice de previsor de vetor de movimento de cada número de candidato a previsor de vetor de movimento especificado. Um índice de previsor de vetor de movimento mvp_idx_lx[x0][y0] é codificado por um método de previsão de um vetor de movimento quando um número de candidato a previsor de vetor de movimento NumMVPCand (LX) é maior que 1. Isso se deve ao fato de que quando um total do número de candidatos a previsor de vetor de movimento é 1, esse é o previsor de vetor de movimento e, dessa forma, o candidato a previsor de vetor de movimento a ser referenciado é decidido mesmo sem transmitir mvp_idx_lx[x0][y0]. Quando o número de candidato a previsor de vetor de movimento NumMVPCand (LX) é 2, os códigos dos elementos de sintaxe mvp_idx_l0[x0][y0] e mvp_idx_l1[x0][y0] do índice de previsor de vetor de movimento é "0" quando o índice de previsor de vetor de movimento é 0 e os códigos dos elementos de sintaxe mvp_idx_l0[x0][y0] e mvp_idx_l1[x0][y0] do índice de previsor de vetor de movimento são "1" quando o índice de previsor de vetor de movimento é 1. Quando o número de candidato a previsor de vetor de movimento NumMVPCand (LX) é 3, os códigos dos elementos de sintaxe mvp_idx_l0[x0][y0] e mvp_idx_l1[x0][y0] do índice de previsor de vetor de movimento são "0" quando o índice de previsor de vetor de movimento é 0, os códigos dos elementos de sintaxe mvp_idx_l0[x0][y0] e mvp_idx_l1[x0][y0] do índice de previsor de vetor de movimento são "10" quando o índice de previsor de vetor de movimento é 1 e os códigos dos elementos de sintaxe mvp_idx_l0[x0][y0] e mvp_idx_l1[x0][y0] do índice de previsor de vetor de movimento são "11" quando o índice de previsor de vetor de movimento é 2. Na modalidade da presente invenção, o número de candidato a previsor de vetor de movimento é definido de acordo com o tamanho de um bloco de previsão de um alvo de codificação ou decodificação e os detalhes dos mesmos serão descritos posteriormente.
[00106] O método de previsão de vetor de movimento de acordo com a modalidade é executado na unidade de derivação de diferença de vetor de movimento 103 do dispositivo de codificação de imagem em movimento da Figura 1 e a unidade de derivação de vetor de movimento 204 do dispositivo de decodificação de imagem em movimento da Figura 2.
[00107] O método de previsão de vetor de movimento de acordo com a modalidade será descrito em referência aos desenhos. O método de previsão de vetor de movimento é executado tanto no processo de codificação quanto nos processos de decodificação em unidades de blocos de previsão que configuram um bloco de codificação. Quando o modo de previsão de um bloco de previsão é a interprevisão (MO- DE_INTER) e não é o modo de consolidação, o método de previsão de vetor de movimento é executado para derivar um previsor de vetor de movimento com o uso de um vetor de movimento codificado usado para derivar uma diferença de vetor de movimento a ser codificada a partir de um vetor de movimento de um alvo de codificação no caso de codificação e é executado para derivar um previsor de vetor de movimento com o uso de um vetor de movimento decodificado usado para derivar um vetor de movimento de um alvo de decodificação no caso case de decodificação.
(Previsão de vetor de movimento em codificação)
[00108] Uma operação do método de previsão de vetor de movimento de acordo com a modalidade no dispositivo de codificação de imagem em movimento que codifica um fluxo de bit de uma imagem em movimento com base na sintaxe descrita acima será descrita. Quando a previsão de compensação de movimento é executada em unidades de fatias, ou seja, quando o tipo de fatia é a fatia P (fatia de previsão de sentido único) ou a fatia B (fatia de previsão de dois sentidos), o método de previsão de vetor de movimento é aplicado a um bloco de previsão em que o modo de previsão de um bloco de previsão em uma fatia é a interprevisão (MODE_INTER), esse não é o modo de consolidação e uma diferença de vetor de movimento é codificada ou decodificada.
[00109] A Figura 13 é um diagrama que ilustra uma configuração detalhada da unidade de derivação de diferença de vetor de movimento 103 do dispositivo de codificação de imagem em movimento da Figura 1. Uma porção circundada por uma linha de margem em negrito da Figura 13 ilustra a unidade de derivação de diferença de vetor de movimento 103.
[00110] Adicionalmente, uma porção circundada por uma linha pon- tilhada em negrito no interior disso ilustra uma unidade de operação do método de previsão de vetor de movimento que será descrito posteriormente é de modo similar instalado até mesmo no dispositivo de de- codificação de imagem em movimento correspondente ao dispositivo de codificação de imagem em movimento de acordo com a modalidade e configurado para obter o mesmo resultado de derivação, ou seja, consistente em codificação e decodificação. A seguir, o método de previsão de vetor de movimento em codificação será descrito em referência ao desenho.
[00111] Na presente modalidade, um número de candidato final fi- nalNumMVPCand do previsor de vetor de movimento é definido de acordo com o tamanho de um bloco de previsão de um alvo de codificação ou decodificação. A unidade de derivação de diferença de vetor de movimento 103 define finalNumMVPCand para um número menor que o último quando o tamanho de um bloco de previsão de um sinal de brilho de um alvo de codificação é menor que ou igual a um tamanho especificado sizePUNumMVPCand e define finalNumMVPCand para um número maior que o anterior quando o tamanho de um bloco de previsão de um sinal de brilho de um alvo de codificação não é menor que nem igual a um tamanho sizePUNumMVPCand. Na presente modalidade, o tamanho especificado sizePUNumMVPCand é definido como 8x8 e finalNumMVPCand é definido como 1 quando o tamanho de um bloco de previsão de um sinal de brilho de um alvo de codificação ou decodificação é menor que ou igual ao tamanho especificado sizePUNumMVPCand e finalNumMVPCand é definido como 2 nos outros casos.
[00112] Quando o tamanho de um bloco de previsão é pequeno, o número de blocos de previsão por área de unidade é grande e, dessa forma, o número de processos de deleção de um candidato a previsor de vetor de movimento redundante que será descrito posteriormente e o número de processos de codificação do índice de previsor de vetor de movimento descrito acima aumentam.
[00113] A esse respeito, na presente modalidade, quando um bloco de previsão de um alvo de codificação ou decodificação é menor que ou igual a um tamanho especificado, o número de candidato final fi- nalNumMVPCand é definido como 1 e o processo de deleção do candidato a previsor de vetor de movimento redundante e o processo de codificação e decodificação do índice de previsor de vetor de movimento são pulados e, dessa forma, a quantidade de processamento é reduzida. Adicionalmente, quando o número de candidato final final- NumMVPCand é 1, é desnecessário codificar o índice de previsor de vetor de movimento e, dessa forma, a quantidade de processamento de codificação por entropia pode ser reduzida.
[00114] A unidade de derivação de diferença de vetor de movimento 103 inclui uma unidade de construção de candidato a previsor de vetor de movimento 121, uma unidade de adição de candidato a previsor de vetor de movimento 122, uma unidade de deleção de candidato a previsor de vetor de movimento redundante 123, uma unidade de limitação de número de candidato a previsor de vetor de movimento 124, uma unidade de derivação de candidato a previsor de vetor de movimento redundante 125, uma unidade de seleção de previsor de vetor de movimento 126 e uma unidade de subtração de vetor de movimento 127.
[00115] O processo de derivação de diferença de vetor de movimento derivação da unidade de derivação de diferença de vetor de movimento 103 deriva uma diferença de vetor de movimento de um vetor de movimento usado no método de interprevisão selecionado em um bloco de alvo de codificação para cada um dentre L0 e L1. Especificamente, no caso em que o modo de previsão PredMode do bloco de alvo de codificação é a interprevisão (MODE_INTER), quando o modo de interprevisão do bloco de alvo de codificação é a previsão L0 (Pred_L0), uma lista de previsor de vetor de movimento mvpListL0 de L0 é derivada, um previsor de vetor de movimento mvpL0 é selecionado e uma diferença de vetor de movimento mvdL0 de um vetor de movimento de L0 é derivada. Quando o modo de interprevisão do bloco de alvo de codificação (Pred_L1) é a previsão L1, uma lista de previsor de vetor de movimento mvpListL1 de L1 é derivada, um previsor de vetor de movimento mvpL1 é selecionado e uma diferença de vetor de movimento mvdL1 de um vetor de movimento de L1 é derivada. Quando o modo de interprevisão do bloco de alvo de codificação é a previsão dupla (Pred_B1), tanto a previsão L0 quanto a previsão L1 são executadas, a lista de previsor de vetor de movimento mvpListL0 de L0 é derivada, o previsor de vetor de movimento mvpL0 de L0 é selecionado, a diferença de vetor de movimento mvdL0 do vetor de movimento mvL0 de L0 é derivado e, adicionalmente, a lista de previsor de vetor de movimento mvpListL1 de L1 é derivada, o previsor de vetor de movimento mvpL1 de L1 é derivado e a diferença de vetor de movimento mvdL1 do vetor de movimento mvL1 de L1 é derivada.
[00116] O processo de derivação de diferença de vetor de movimento é executado em cada um dentre L0 e L1, mas é um processo comum para L0 e L1. Dessa forma, na seguinte descrição, L0 e L1 são representados como LX comum a isso. No processo de derivação da diferença de vetor de movimento de L0, X é 0, e no processo de derivação da diferença de vetor de movimento de L1, X é 1. Adicionalmente, quando a informação da outra lista diferente de LX é referenciada durante o processo de derivação da diferença de vetor de movimento de LX, a outra lista é representada como LY.
[00117] A unidade de construção de candidato a previsor de vetor de movimento 121 deriva os vetores de movimento mvLXA, mvLXB e mvLXCol para cada grupo de bloco de previsão dos três grupos de blocos de previsão do grupo de bloco de previsão (o grupo de bloco de previsão (A0 e A1 da Figura 5) adjacente ao lado esquerdo de um bloco de previsão na mesma imagem que um bloco de previsão de um alvo de codificação) adjacente ao lado superior, o grupo de bloco de previsão (o grupo de bloco de previsão (B0, B1, e B2) da Figura 5) adjacente ao lado superior do bloco de previsão na mesma imagem que o bloco de previsão do alvo de codificação) adjacente ao lado esquerdo e o grupo de bloco de previsão de um tempo diferente (o grupo de bloco de previsão já codificado (T0 e T1 da Figura 9) apresentam a mesma posição que ou a posição próxima ao bloco de previsão em uma imagem temporalmente diferente do bloco de previsão do alvo de codificação) para cada um dentre L0 e L1 e supre os vetores de movimento mvLXA, mvLXB e mvLXCol para a unidade de adição de candidato a previsor de vetor de movimento 122 como os candidatos a previsor de vetor de movimento. Doravante na presente invenção, mvLXA e mvLXB são referenciados como um previsor de vetor de movimento espacial e mvLXCol é referenciado como um previsor de vetor de movimento temporal. Quando o candidato a previsor de vetor de movimento é derivado, a informação de codificação de um bloco codificado de previsão armazenado na memória de armazenamento de informação de codificação 114 tal como um modo de previsão, um índice de referência de cada lista de referência, uma POC de uma imagem de referência e um vetor de movimento.
[00118] Os candidatos a previsor de vetor de movimento mvLXA, mvLXB, e mvLXCol podem ser derivados através da execução de escalonamento de acordo com uma relação entre um POC de um alvo de codificação ou decodificação imagem (que é uma imagem de alvo de codificação no processo de codificação e uma imagem de alvo de de- codificação no processo de decodificação, e esse significado é posteriormente na presente invenção usado salvo se apresentado de outro modo no presente documento) e a POC de uma imagem de referência.
[00119] A unidade de construção de candidato a previsor de vetor de movimento 121 executa a determinação de condição que será descrita posteriormente em blocos de previsão em cada grupo de bloco de previsão em uma certa ordem para cada grupo de bloco de previsão, seleciona vetores de movimento de blocos de previsão que satisfazem uma primeira condição e usa os vetores de movimento selecionado como os candidatos a previsor de vetor de movimento mvLXA, mvLXB e mvLXCol.
[00120] A determinação de condição que será descrita posteriormente é executada em cada um dos blocos de previsão na ordem de baixo para cima (a ordem de A0 e A1 de A0 na Figura 5) no grupo de bloco de previsão adjacente ao lado esquerdo quando o previsor de vetor de movimento é derivado do grupo de bloco de previsão adjacente ao lado esquerdo, na ordem da direita para a esquerda (a ordem de B0, B1 e B2 de B0 na Figura 5) no grupo de bloco de previsão adjacente ao lado superior quando o previsor de vetor de movimento é derivado do grupo de bloco de previsão adjacente ao lado superior e na ordem de T0 e T1 de T0 na Figura 9 quando o previsor de vetor de movimento é derivado do grupo de bloco de previsão de um tempo di-ferente, vetores de movimento de blocos de previsão que satisfazem uma condição primeiro são selecionados, e mvLXA, mvLXB e mvLXCol são definidos como os candidatos a previsor de vetor de movimento.
[00121] Em outras palavras, no grupo de bloco de previsão adjacente ao lado esquerdo, um bloco de previsão no fundo é o mais alto na ordem de prioridade e a ordem de prioridade é dada para cima e no grupo de bloco de previsão adjacente ao lado superior, um bloco de previsão mais à direita é o mais alto na ordem de prioridade e a ordem de prioridade é da para a esquerda. No grupo de bloco de previsão de um tempo diferente, o bloco de previsão de T0 é o mais alto na ordem de prioridade e a ordem de prioridade é dada na ordem de T0 e T1.
(Explanação de ciclo de determinação de condição de bloco de previsão espacial)
[00122] Nos métodos de varredura 1, 2, 3 e 4 que serão descritos posteriormente, respectivas determinações de condição são aplicadas a cada um dos blocos de previsão adjacentes no grupo de bloco de previsão adjacente ao lado esquerdo e no grupo de bloco de previsão adjacente ao lado superior na ordem de prioridade das seguintes determinações de condição 1, 2, 3 e 4. Aqui, apenas em um método de varredura 5 que será descrito posteriormente, respectivas determinações de condição são aplicadas na ordem de prioridade das determinações de condição 1, 3, 2 e 4.
[00123] Determinação de condição 1: previsão com o uso da lista de referência LX e do índice de referência, ou seja, da imagem de referência que são iguais aos do vetor de movimento de LX do alvo de derivação de diferença de vetor de movimento do bloco de previsão do alvo de codificação ou decodificação que está sendo executado mesmo no bloco de previsão adjacente.
[00124] Determinação de condição 2: previsão com o uso da lista de referência LY diferente, mas da mesma imagem de referência que a do vetor de movimento de LX do alvo de derivação de diferença de vetor de movimento do bloco de previsão do alvo de codificação ou decodi- ficação que está sendo executado no bloco de previsão adjacente.
[00125] Determinação de condição 3: previsão com o uso da mesma lista de referência LX, mas a imagem de referência diferente da do vetor de movimento de LX do alvo de derivação de diferença de vetor de movimento do bloco de previsão do alvo de codificação ou decodifica- ção que está sendo executado no bloco de previsão adjacente.
[00126] Determinação de condição 4: previsão com o uso da lista de referência LY e da imagem de referência que são diferentes das do vetor de movimento de LX do alvo de derivação de diferença de vetor de movimento do bloco de previsão do alvo de codificação ou decodi- ficação que está sendo executado no bloco de previsão adjacente.
[00127] Quando qualquer uma das condições acima é satisfeita, um vetor de movimento que satisfaz uma condição é determinado como estando presente em um bloco de previsão correspondente e a determinação de condição subsequente não é executada. Adicionalmente, quando a condição da determinação de condição 1 e da determinação de condição 2 é satisfeita, o vetor de movimento do bloco de previsão adjacente corresponde à mesma imagem de referência e é usado como candidato a previsor de vetor de movimento sem alteração, mas quando a condição da determinação de condição 3 e da determinação de condição 4 é satisfeita, o vetor de movimento do bloco de previsão adjacente corresponde à imagem de referência diferente, o candidato a previsor de vetor de movimento é derivado com base no vetor de movimento por escalonamento.
[00128] Como um método de ciclo de varredura de um bloco de previsão espacial, os seguintes cinco métodos podem ser definidos de acordo com um método de condução das quatro determinações de condição acima. Os respectivos métodos são diferentes em disposição e uma quantidade máxima de processamento de um previsor de vetor e um dos métodos é selecionado e definido à luz de disposição e uma quantidade máxima de processamento de um previsor de vetor. O método de varredura 1 será descrito posteriormente em detalhes em referência aos fluxogramas das Figuras 19 a 23, mas uma descrição detalhada dos outros métodos de varredura 2 a 5 é omitida uma vez que um elemento versado na técnica pode projetar apropriadamente os processos de execução dos métodos de varredura 2 a 5 com base no processo de execução do método de varredura 1. Aqui, um processo de ciclo de varredura de um bloco de previsão espacial no dispositivo de codificação de imagem em movimento será descrito, mas o mesmo processo pode ser executado no dispositivo de decodificação de imagem em movimento.
[00129] Método de varredura 1:
[00130] Um previsor de vetor de movimento para o qual uma operação de escalonamento com o uso da mesma imagem de referência é desnecessária é preferencialmente determinado, duas das quatro determinações de condição são executadas em cada bloco de previsão e quando uma condição não é satisfeita, a determinação de condição de um bloco de previsão adjacente é executada. Em uma primeira rodada, a determinação de condição da determinação de condição 1 e da determinação de condição 2 é executada e em uma rodada de um bloco de previsão seguinte, a determinação de condição da determinação de condição 3 e da determinação de condição 4 é executada.
[00131] Especificamente, a determinação de condição é executada na seguinte ordem de prioridade (aqui, N é A ou B):
[00132] 1. Determinação de condição 1 de um bloco de previsão N0 (a mesma lista de referência LX, a mesma imagem de referência)
[00133] 2. Determinação de condição 2 do bloco de previsão N0 (lista de referência diferente LY, a mesma imagem de referência)
[00134] 3. Determinação de condição 1 de um bloco de previsão N1 (a mesma lista de referência LX, a mesma imagem de referência)
[00135] 4. Determinação de condição 2 do bloco de previsão N1 (lista de referência diferente LY, a mesma imagem de referência)
[00136] 5. Determinação de condição 1 do bloco de previsão N2 (a mesma lista de referência LX, a mesma imagem de referência) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00137] 6. Determinação de condição 2 do bloco de previsão N2 (lista de referência diferente LY, a mesma imagem de referência) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00138] 7. Determinação de condição 3 do bloco de previsão N0 (a mesma lista de referência LX, imagem de referência diferente)
[00139] 8. Determinação de condição 4 do bloco de previsão N0 (lista de referência diferente LY, imagem de referência diferente)
[00140] 9. Determinação de condição 3 do bloco de previsão N1 (a mesma lista de referência LX, imagem de referência diferente)
[00141] 10. Determinação de condição 4 do bloco de previsão N1 (lista de referência diferente LY, imagem de referência diferente)
[00142] 11. Determinação de condição 3 do bloco de previsão N2 (a mesma lista de referência LX, imagem de referência diferente) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00143] 12. Determinação de condição 4 do bloco de previsão N2 (lista de referência diferente LY, imagem de referência diferente) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00144] De acordo com o método de varredura 1, uma vez que o previsor de vetor de movimento para o qual a operação de escalonamento que usa a mesma imagem de referência é desnecessária é propenso a ser selecionado, um efeito de aumento de uma possibilidade de que a quantidade de codificação da diferença de vetor de movimento seja reduzida é obtido. Adicionalmente, uma vez que um máximo do número de rodadas da determinação de condição é 2, quando a implementação de hardware é considerada, o número de acessos à memória para a informação de codificação do bloco de previsão é menor que no método de varredura 2 que será descrito posteriormente e a complexidade é reduzida.
[00145] Método de varredura 2:
[00146] Uma das quatro determinações de condição é executada em cada bloco de previsão e quando uma condição não é satisfeita, a determinação de condição de um bloco de previsão adjacente é executada. A determinação de condição é executada quatro vezes em cada bloco de previsão e, então, termina.
[00147] Especificamente, a determinação de condição é executada na seguinte ordem de prioridade (aqui, N é A ou B):
[00148] 1. Determinação de condição 1 do bloco de previsão N0 (a mesma lista de referência LX, a mesma imagem de referência)
[00149] 2. Determinação de condição 1 do bloco de previsão N1 (a mesma lista de referência LX, a mesma imagem de referência)
[00150] 3. Determinação de condição 1 do bloco de previsão N2 (a mesma lista de referência LX, a mesma imagem de referência) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00151] 4. Determinação de condição 2 do bloco de previsão N0 (lista de referência diferente LY, a mesma imagem de referência)
[00152] 5. Determinação de condição 2 do bloco de previsão N1 (lista de referência diferente LY, a mesma imagem de referência)
[00153] 6. Determinação de condição 2 do bloco de previsão N2 (lista de referência diferente LY, a mesma imagem de referência) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00154] 7. Determinação de condição 3 do bloco de previsão N0 (a mesma lista de referência LX, imagem de referência diferente)
[00155] 8. Determinação de condição 3 do bloco de previsão N1 (a mesma lista de referência LX, imagem de referência diferente)
[00156] 9. Determinação de condição 3 do bloco de previsão N2 (a mesma lista de referência LX, imagem de referência diferente) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00157] 10. Determinação de condição 4 do bloco de previsão N0 (lista de referência diferente LY, imagem de referência diferente)
[00158] 11. Determinação de condição 4 do bloco de previsão N1 (lista de referência diferente LY, imagem de referência diferente)
[00159] 12. Determinação de condição 4 do bloco de previsão N2 (lista de referência diferente LY, imagem de referência diferente) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00160] De acordo com o método de varredura 2, uma vez que o previsor de vetor de movimento para o qual a operação de escalonamento que usa a mesma imagem de referência é desnecessária é propenso a ser selecionado, um efeito de aumento de uma possibilidade de que a quantidade de codificação da diferença de vetor de movimento seja reduzida é obtido. Adicionalmente, um máximo do número de rodadas da determinação de condição é 4, e quando a implementação de hardware é considerada, o número de acessos à memória para a informação de codificação do bloco de previsão é maior que no método de varredura 1, mas o previsor de vetor de movimento de uma mesma lista de referência é propenso a ser selecionado.
[00161] Método de varredura 3:
[00162] Em uma primeira rodada, a determinação de condição da determinação de condição 1 é executada em cada bloco de previsão e quando uma condição não é satisfeita, a determinação de condição de um bloco de previsão adjacente é executada. Em uma rodada seguinte, a determinação de condição é executada em cada bloco de previsão na ordem da determinação de condição 2, da determinação de condição 3 e da determinação de condição 4 e, então, prossegue para a adjacente.
[00163] Especificamente, a determinação de condição é executada na seguinte ordem de prioridade (aqui, N é A ou B):
[00164] 1. Determinação de condição 1 do bloco de previsão N0 (a mesma lista de referência LX, a mesma imagem de referência)
[00165] 2. Determinação de condição 1 do bloco de previsão N1 (a mesma lista de referência LX, a mesma imagem de referência)
[00166] 3. Determinação de condição 1 do bloco de previsão N2 (a mesma lista de referência LX, a mesma imagem de referência) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00167] 4. Determinação de condição 2 do bloco de previsão N0 (lista de referência diferente LY, a mesma imagem de referência)
[00168] 5. Determinação de condição 3 do bloco de previsão N0 (a mesma lista de referência LX, imagem de referência diferente)
[00169] 6. Determinação de condição 4 do bloco de previsão N0 (lista de referência diferente LY, imagem de referência diferente)
[00170] 7. Determinação de condição 2 do bloco de previsão N1 (lista de referência diferente LY, a mesma imagem de referência)
[00171] 8. Determinação de condição 3 do bloco de previsão N1 (a mesma lista de referência LX, imagem de referência diferente)
[00172] 9. Determinação de condição 4 do bloco de previsão N1 (lista de referência diferente LY, imagem de referência diferente)
[00173] 10. Determinação de condição 2 do bloco de previsão N2 (lista de referência diferente LY, a mesma imagem de referência) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00174] 11. Determinação de condição 3 do bloco de previsão N2 (a mesma lista de referência LX, imagem de referência diferente) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00175] 12. Determinação de condição 4 do bloco de previsão N2 (lista de referência diferente LY, imagem de referência diferente) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00176] De acordo com o método de varredura 3, uma vez que o previsor de vetor de movimento para o qual a operação de escalonamento que usa a mesma lista de referência e a mesma imagem de referência é desnecessária é propenso a ser selecionado, um efeito de aumento de uma possibilidade de que a quantidade de codificação da diferença de vetor de movimento seja reduzida é obtido. Adicionalmente, uma vez que um máximo do número de rodadas da determi-nação de condição é 2, quando a implementação de hardware é considerada, o número de acessos à memória para a informação de codificação do bloco de previsão é menor que no método de varredura 2 e a complexidade é reduzida.
[00177] Método de varredura 4:
[00178] A determinação de condição do mesmo bloco de previsão é preferencialmente executada, as quatro determinações de condição são executadas dentro de um bloco de previsão e quando qualquer uma de todas as condições não é satisfeita, um vetor de movimento que satisfaz uma condição é determinado como não estando presente no bloco de previsão correspondente e a determinação de condição do bloco de previsão seguinte é executada.
[00179] Especificamente, a determinação de condição é executada na seguinte ordem de prioridade (aqui, N é A ou B):
[00180] 1. Determinação de condição 1 do bloco de previsão N0 (a mesma lista de referência LX, a mesma imagem de referência)
[00181] 2. Determinação de condição 2 do bloco de previsão N0 (lista de referência diferente LY, a mesma imagem de referência)
[00182] 3. Determinação de condição 3 do bloco de previsão N0 (a mesma lista de referência LX, imagem de referência diferente)
[00183] 4. Determinação de condição 4 do bloco de previsão N0 (lista de referência diferente LY, imagem de referência diferente)
[00184] 5. Determinação de condição 1 do bloco de previsão N1 (a mesma lista de referência LX, a mesma imagem de referência)
[00185] 6. Determinação de condição 2 do bloco de previsão N1 (lista de referência diferente LY, a mesma imagem de referência)
[00186] 7. Determinação de condição 3 do bloco de previsão N1 (a mesma lista de referência LX, imagem de referência diferente)
[00187] 8. Determinação de condição 4 do bloco de previsão N1 (lista de referência diferente LY, imagem de referência diferente)
[00188] 9. Determinação de condição 1 do bloco de previsão N2 (a mesma lista de referência LX, a mesma imagem de referência) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00189] 10. Determinação de condição 2 do bloco de previsão N2 (lista de referência diferente LY, a mesma imagem de referência) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00190] 11. Determinação de condição 3 do bloco de previsão N2 (a mesma lista de referência LX, imagem de referência diferente) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00191] 12. Determinação de condição 4 do bloco de previsão N2 (lista de referência diferente LY, imagem de referência diferente) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00192] De acordo com o método de varredura 4, uma vez que um máximo do número de rodadas da determinação de condição é 1, quando a implementação de hardware é considerada, o número de acessos à memória para a informação de codificação do bloco de previsão é menor que no método de varredura 1, no método de varredura 2 e no método de varredura 3, e a complexidade é reduzida.
[00193] Método de varredura 5:
[00194] De modo similar ao método de varredura 4, a determinação de condição do mesmo bloco de previsão é preferencialmente executada, as quatro determinações de condição são executadas dentro de um bloco de previsão e quando qualquer uma de todas as condições não é satisfeita, um vetor de movimento que satisfaz uma condição é determinado como não estando presente no bloco de previsão correspondente e a determinação de condição do bloco de previsão seguinte é executada. Aqui, na determinação de condição dentro do bloco de previsão, a mesma imagem de referência é preferencialmente considerada no método de varredura 4, mas a mesma lista de referência é preferencialmente considerada no método de varredura 5.
[00195] Especificamente, a determinação de condição é executada na seguinte ordem de prioridade (aqui, N é A ou B):
[00196] 1. Determinação de condição 1 do bloco de previsão N0 (a mesma lista de referência LX, a mesma imagem de referência)
[00197] 2. Determinação de condição 3 do bloco de previsão N0 (a mesma lista de referência LX, imagem de referência diferente)
[00198] 3. Determinação de condição 2 do bloco de previsão N0 (lista de referência diferente LY, a mesma imagem de referência)
[00199] 4. Determinação de condição 4 do bloco de previsão N0 (lista de referência diferente LY, imagem de referência diferente)
[00200] 5. Determinação de condição 1 do bloco de previsão N1 (a mesma lista de referência LX, a mesma imagem de referência)
[00201] 6. Determinação de condição 3 do bloco de previsão N1 (a mesma lista de referência LX, imagem de referência diferente)
[00202] 7. Determinação de condição 2 do bloco de previsão N1 (lista de referência diferente LY, a mesma imagem de referência)
[00203] 8. Determinação de condição 4 do bloco de previsão N1 (lista de referência diferente LY, imagem de referência diferente)
[00204] 9. Determinação de condição 1 do bloco de previsão N2 (a mesma lista de referência LX, a mesma imagem de referência) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00205] 10. Determinação de condição 3 do bloco de previsão N2 (a mesma lista de referência LX, imagem de referência diferente) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00206] 11. Determinação de condição 2 do bloco de previsão N2 (lista de referência diferente LY, a mesma imagem de referência) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00207] 12. Determinação de condição 4 do bloco de previsão N2 (lista de referência diferente LY, imagem de referência diferente) apenas para o grupo de bloco de previsão adjacente ao lado superior
[00208] De acordo com o método de varredura 5, adicionalmente, é possível reduzir o número de referências à lista de referência do bloco de previsão em comparação com o método de varredura 4 e é possível reduzir a complexidade através da redução do número de acessos a uma memória e uma quantidade de processamento da determinação de condição ou similares. Adicionalmente, de modo similar ao método de varredura 4, uma vez que um máximo do número de rodadas da determinação de condição é 1, quando a implementação de hardware é considerada, o número de acessos à memória para a informação de codificação do bloco de previsão é menor que no método de varredura 1, no método de varredura 2 e no método de varredura 3 e a complexidade é reduzida.
[00209] Então, a unidade de adição de candidato a previsor de vetor de movimento 122 armazena os candidatos a previsor de vetor de movimento derivados mvLXA, mvLXB e mvLXCol na lista de previsor de vetor de movimento mvpListLX.
[00210] Então, a unidade de deleção de candidato a previsor de vetor de movimento redundante 123 determina os candidatos a previsor de vetor de movimento que têm o mesmo valor de vetor de movimento através da comparação dos valores de vetor de movimento dos candidatos a previsor de vetor de movimento armazenados na lista de previsor de vetor de movimento mvpListLX de LX e atualiza a lista de previsor de vetor de movimento mvpListLX de modo que os candidatos a previsor de vetor de movimento não sejam redundantes através da conservação de um dos candidatos a previsor de vetor de movimento determinados como tendo mesmo valor de vetor de movimento enquanto deleta os candidatos a previsor de vetor de movimento remanescentes da lista de previsor de vetor de movimento mvpListLX. Aqui, quando o número de candidato final especificado finalNumMVPCand é 1, o presente processo de determinação de redundância pode ser omitido.
[00211] A unidade de limitação de número de candidato a previsor de vetor de movimento 124 contabiliza o número de candidatos a previsor de vetor de movimento adicionado à lista de previsor de vetor de movimento mvpListLX de LX e define o número de candidato a previsor de vetor de movimento contabilizado como um valor do número de candidato obtido através da contagem do número de candidato a previsor de vetor de movimento numMVPCandLX de LX.
[00212] Adicionalmente, a unidade de limitação de número de candidato a previsor de vetor de movimento 124 limita o número de candidato a previsor de vetor de movimento numMVPCandLX de LX adicionado à lista de previsor de vetor de movimento mvpListLX de LX para o número de candidato final finalNumMVPCand especificado de acordo com o tamanho do bloco de previsão.
[00213] Na presente modalidade, o número de candidato final fi- nalNumMVPCand é especificado de acordo com o tamanho de um bloco de previsão. Isso se deve ao fato de que quando o número de candidatos a previsor de vetor de movimento adicionado à lista de previsor de vetor de movimento varia de acordo com o estado de construção da lista de previsor de vetor de movimento, é difícil executar a decodificação por entropia no índice de previsor de vetor de movimento salvo se a lista de previsor de vetor de movimento for construída no lado de decodificação. Adicionalmente, quando a decodificação por entropia depende do estado de construção da lista de previsor de vetor de movimento que inclui o candidato a previsor de vetor de movimento mvLXCol derivado de um bloco de previsão de uma imagem de um tempo diferente, há um problema em que quando um erro ocorre quando u fluxo de bit de uma outra imagem é decodificado, é difícil continuar normalmente a decodificação por entropia em um fluxo de bit de uma imagem atual devido à influência do erro. Quando um número fixo é especificado como o número de candidato final finalNumMV- PCand de acordo com o tamanho de um bloco de previsão, é possível executar a decodificação por entropia no índice de previsor de vetor de movimento independentemente de construção da lista de previsor de vetor de movimento e mesmo quando ocorre um erro quando um fluxo de bit de uma outra imagem é decodificado, é possível continuar a decodificação por entropia em um fluxo de bit de uma imagem atual sem influência do erro.
[00214] Quando o número de candidato a previsor de vetor de movimento numMVPCandLX de LX é menor que o número de candidato final especificado finalNumMVPCand, a unidade de limitação de número de candidato a previsor de vetor de movimento 124 limita o número de candidato a previsor de vetor de movimento para o valor especificado através da adição do vetor de movimento que tem o valor de (0, 0) (componentes horizontal e vertical são 0) à lista de previsor de vetor de movimento mvpListLX até que o número de candidato a previsor de vetor de movimento numMVPCandLX seja igual ao número de candidato final finalNumMVPCand. Nesse caso, o vetor de movimento que tem o valor de (0, 0) pode ser redundantemente adicionado, mas o lado de decodificação pode decidir o previsor de vetor de movimento independentemente de um valor que o índice de previsor de vetor de movimento tem dentro de uma faixa de 0 (para um número de candidato especificado - 1). Entretanto, quando o número de candidato a previsor de vetor de movimento numMVPCandLX de LX é maior que o número de candidato final especificado finalNumMVPCand, o número de candidato a previsor de vetor de movimento é limitado ao valor especificado através da deleção de todos os elementos adicionados a um índice maior que finalNumMVPCand-1 da lista de previsor de vetor de movimento mvpListLX e fazendo com que o número de candidato a previsor de vetor de movimento numMVPCandLX de LX seja igual ao número de candidato final finalNumMVPCand. A lista de previsor de vetor de movimento atualizada mvpListLX é suprida para a unidade de derivação de candidato a previsor de vetor de movimento redundante 125 e a unidade de seleção de previsor de vetor de movimento 126.
[00215] Nesse ínterim, a unidade de estimação de vetor de movi- mento 102 da Figura 1 detecta o vetor de movimento mvLX de LX (X = 0 ou 1) para cada bloco de previsão. O vetor de movimento mvLX é suprido para a unidade de derivação de candidato a previsor de vetor de movimento redundante 125 junto com o candidato a previsor de vetor de movimento da lista de previsor de vetor de movimento atualizada mvpListLX.
[00216] A unidade de derivação de candidato a previsor de vetor de movimento redundante 125 deriva a diferença de vetor de movimento com o vetor de movimento mvLX para cada um dos candidatos a previsor de vetor de movimento mvpListLX[i] armazenados na lista de previsor de vetor de movimento mvpListLX de LX (X = 0 ou 1), deriva a quantidade de codificação necessária para codificar a diferença de vetor de movimento e supre a quantidade de codificação derivada para a unidade de seleção de previsor de vetor de movimento 126.
[00217] A unidade de seleção de previsor de vetor de movimento 126 seleciona o candidato a previsor de vetor de movimento mvpLis- tLX[i] ou seja menor na quantidade de codificação de cada candidato a previsor de vetor de movimento dentre os elementos adicionados à lista de previsor de vetor de movimento mvpListLX de LX como o previsor de vetor de movimento mvpLX de LX. Quando existe uma pluralidade de candidatos a previsor de vetor de movimento que são menores na quantidade de codificação gerada na lista de previsor de vetor de movimento mvpListLX, o candidato a previsor de vetor de movimento mvpListLX[i] representado por um índice i que tem o menor número na lista de previsor de vetor de movimento mvpListLX é selecionado como o previsor de vetor de movimento ideal mvpLX de LX. O previsor de vetor de movimento selecionado mvpLX é suprido para a unidade de subtração de vetor de movimento 127. Adicionalmente, o índice i na lista de previsor de vetor de movimento correspondente ao previsor de vetor de movimento selecionado mvpLX é emitido como o índice de previsor de vetor de movimento mvpIdxLX de LX.
[00218] Finalmente, uma unidade de subtração de vetor de movimento 127 deriva uma diferença de vetor de movimento mvdLX de LX através da subtração do previsor de vetor de movimento selecionado mvpLX de LX do vetor de movimento mvLX de LX e emite uma diferença de vetor de movimento mvdLX.
Figure img0001
[00219] Referindo-se novamente à Figura 1, a unidade de previsão de compensação de movimento 105 obtém o sinal de imagem de previsão através da execução da compensação de movimento de acordo com o vetor de movimento mvLX de LX (X = 0 ou 1) suprido a partir da unidade de estimação de vetor de movimento 102 em referência ao sinal de imagem da imagem decodificada armazenado na memória de imagem decodificada 115 e supre o sinal de imagem de previsão para a unidade de decisão de método de previsão 106.
[00220] A unidade de decisão de método de previsão 106 decide o método de previsão. A quantidade de codificação e a distorção de codificação são derivadas para cada modo de previsão e um bloco de previsão tamanho e um modo de previsão que são os menores na quantidade de codificação gerada e na distorção de codificação são decididos. A diferença de vetor de movimento mvdLX de LX suprida a partir da unidade de subtração de vetor de movimento 127 da unidade de derivação de diferença de vetor de movimento 103 e o índice de previsor de vetor de movimento mvpIdxLX de LX que representa o previsor de vetor de movimento suprido a partir da unidade de seleção de previsor de vetor de movimento 126 são codificados e a quantidade de codificação de movimento informação é derivada. Adicionalmente, a quantidade de codificação do sinal residual de previsão obtido através da codificação do sinal residual de previsão entre o sinal de imagem de previsão suprido a partir da unidade de previsão de com- pensação de movimento 105 e o sinal de imagem de alvo de codificação suprido a partir da memória de imagem 101 é derivado. Uma quantidade de codificação total gerada é derivada através da adição da quantidade de codificação da informação de movimento à quantidade de codificação do sinal residual de previsão e usada como um primeiro valor de avaliação.
[00221] Adicionalmente, após o sinal residual de previsão ser codificado, o sinal residual de previsão é decodificado a fim de avaliar a quantidade de distorção e a distorção de codificação é derivada como uma razão que representa um erro com um sinal de imagem original que ocorre devido à codificação. A quantidade de codificação total gerada é comparada com a distorção de codificação cada vez que a compensação de movimento é executada e um tamanho de bloco de previsão e um modo de previsão que são menores na quantidade de codificação gerada e na distorção de codificação são decididos. O método de previsão de vetor de movimento descrito acima é executado no vetor de movimento mvLX de acordo com o modo de previsão decidido do tamanho de bloco de previsão e o índice mvpIdxLX que representa o previsor de vetor de movimento é codificado como o elemento de sintaxe mvp_idx_lX[i] representado por um segundo padrão de sintaxe de um bloco de unidade de previsão. Aqui, a quantidade de codificação gerada derivada é de preferência obtida através da simulação do processo de codificação, mas pode ser obtida por aproximação ou estimação. (Previsão de vetor de movimento em decodificação)
[00222] Uma operação do método de previsão de vetor de movimento de acordo com a presente invenção no dispositivo de decodifi- cação de imagem em movimento que decodifica um fluxo de bit de uma imagem codificada em movimento com base na sintaxe descrita acima será descrita.
[00223] Quando o método de previsão de vetor de movimento de acordo com a modalidade é executado, o processo é executado pela unidade de derivação de vetor de movimento 204 do dispositivo de decodificação de imagem em movimento da Figura 2. A Figura 14 é um diagrama que ilustra uma configuração detalhada da unidade de derivação de vetor de movimento 204 do dispositivo de decodificação de imagem em movimento da Figura 2 correspondente ao dispositivo de codificação de imagem em movimento de acordo com a modalidade. Uma porção circundada por uma linha de margem em negrito da Figura 14 ilustra a unidade de derivação de vetor de movimento 204. Adicionalmente, uma porção circundada por uma linha pontilhada em negrito no interior disso ilustra uma unidade de operação do método de previ-são de vetor de movimento que será descrito posteriormente, é de modo similar instalado até mesmo no dispositivo de codificação de imagem em movimento correspondente e configurado para obter o mesmo resultado de determinação, ou seja, consistente em codificação e decodificação. A seguir, o método de previsão de vetor de movimento em decodificação será descrito em referência aos desenhos.
[00224] Na presente modalidade, devido à razão descrita no lado de codificação, de modo similar ao lado codificação, no lado de decodifi- cação, o número de candidato final finalNumMVPCand do previsor de vetor de movimento é definido de acordo com o tamanho de um bloco de previsão de um alvo de decodificação. Na unidade de derivação de vetor de movimento 204, quando o tamanho de um bloco de previsão de um sinal de brilho de um alvo de decodificação é menor que ou igual ao tamanho especificado sizePUNumMVPCand, finalNumMVPCand é definido como um número menor que o último e quando o tamanho de um bloco de previsão de um sinal de brilho de um alvo de decodificação não é menor que nem igual ao tamanho especificado sizePU- NumMVPCand, finalNumMVPCand é definido como a número maior que o anterior. Na presente modalidade, o tamanho especificado si- zePUNumMVPCand é definido como 8x8 e finalNumMVPCand é definido como 1 quando o tamanho de um bloco de previsão de um sinal de brilho de um alvo de decodificação é menor que ou igual ao tamanho especificado sizePUNumMVPCand e finalNumMVPCand é definido como 2 nos outros casos.
[00225] A unidade de derivação de vetor de movimento 204 inclui uma unidade de construção de candidato a previsor de vetor de movimento 221, uma unidade de adição de candidato a previsor de vetor de movimento 222, uma unidade de deleção de candidato a previsor de vetor de movimento redundante 223, uma unidade de limitação de número de candidato a previsor de vetor de movimento 224, uma unidade de seleção de previsor de vetor de movimento 225 e uma unidade de adição de vetor de movimento 226.
[00226] O processo de derivação de vetor de movimento da unidade de derivação de vetor de movimento 204 deriva o vetor de movimento usado na interprevisão para cada um dentre L0 e L1. Especificamente, no caso em que o modo de previsão PredMode do bloco de alvo de decodificação é a interprevisão (MODE_INTER), quando o modo de interprevisão do bloco de alvo de decodificação é a previsão L0 (Pred_L0), a lista de previsor de vetor de movimento mvpListL0 de L0 é derivada, o previsor de vetor de movimento mvpL0 é selecionado e o vetor de movimento mvL0 de L0 é derivado. Quando o modo de interprevisão do bloco de alvo de decodificação é a previsão L1 (Pred_L1), a lista de previsor de vetor de movimento mvpListL1 de L1 é derivada, o previsor de vetor de movimento mvpL1 é selecionado e o vetor de movimento mvL1 de L1 é derivado. Quando o modo de in- terprevisão do bloco de alvo de decodificação é a previsão dupla (Pred_B1), tanto a previsão L0 quanto a previsão L1 são executadas, a lista de previsor de vetor de movimento mvpListL0 de L0 é derivada, o previsor de vetor de movimento mvpL0 de L0 é selecionado e o vetor de movimento mvL0 de L0 é derivado e, adicionalmente, a lista de previsor de vetor de movimento mvpListL1 de L1 é derivada, o previsor de vetor de movimento mvpL1 de L1 é derivado e o vetor de movimento mvL1 de L1 é derivado.
[00227] De modo similar ao lado de codificação, o lado de decodifi- cação executa o processo de derivação de vetor de movimento em cada um dentre L0 e L1, mas é um processo comum para L0 e L1. Dessa forma, na seguinte descrição, L0 e L1 são representados como LX comum a isso. No processo de derivação do vetor de movimento de L0, X é 0 e no processo de derivação do vetor de movimento de L1, X é 1. Adicionalmente, quando a informação da outra lista diferente de LX é referenciada durante o processo de derivação do vetor de movimento de LX, a outra lista é representada como LY.
[00228] A unidade de construção de candidato a previsor de vetor de movimento 221, a unidade de adição de candidato a previsor de vetor de movimento 222, a unidade de deleção de candidato a previsor de vetor de movimento redundante 223 e a unidade de limitação de número de candidato a previsor de vetor de movimento 224 na unidade de derivação de vetor de movimento 204 são configuradas para executar a mesma operação que a unidade de construção de candidato a previsor de vetor de movimento 121, a unidade de adição de candidato a previsor de vetor de movimento 122 e a unidade de deleção de candidato a previsor de vetor de movimento redundante 123, e a unidade de limitação de número de candidato a previsor de vetor de movimento 124 na unidade de derivação de diferença de vetor de movimento 103 no lado de codificação e, dessa forma, o mesmo candidato a previsor de vetor de movimento que é consistente em codificação e decodificação pode ser obtido no lado de codificação e no lado de decodificação.
[00229] A unidade de construção de candidato a previsor de vetor de movimento 221 executa o mesmo processo que a unidade de construção de candidato a previsor de vetor de movimento 121 da Figura 13 no lado de codificação. Os vetores de movimento de um bloco decodificado de previsão adjacente a um bloco de alvo de decodificação na mesma imagem que o bloco de alvo de decodificação e um bloco decodificado de previsão ou similares presente na mesma posição que ou na posição próxima um bloco de alvo de decodificação em uma imagem diferente que são decodificados e armazenados na memória de armazenamento de informação de codificação 209 são lidos a partir da memória de armazenamento de informação de codificação 209. Os candidatos a previsor de vetor de movimento mvLXA, mvLXB e mvLXCol são construídos para cada grupo de bloco de previsão de vetores de movimento de outros blocos decodificados lidos a partir da memória de armazenamento de informação de codificação 209 e, então, supridos para a unidade de adição de candidato a previsor de vetor de movimento 222.
[00230] Os candidatos a previsor de vetor de movimento mvLXA, mvLXB e mvLXCol podem ser derivados através do escalonamento de acordo com um índice de referência. Adicionalmente, uma vez que a unidade de construção de candidato a previsor de vetor de movimento 221 executa o mesmo processo que a unidade de construção de candidato a previsor de vetor de movimento 121 da Figura 13 no lado de codificação, a determinação de condição dos métodos de varreduras 1, 2, 3, 4 e 5 para derivar o previsor de vetor de movimento que é descrito para a unidade de construção de candidato a previsor de vetor de movimento 121 da Figura 13 no lado de codificação pode ser aplicada à unidade de construção de candidato a previsor de vetor de movimento 221 e, dessa forma, uma descrição detalhada da mesma é omitida.
[00231] Então, a unidade de adição de candidato a previsor de vetor de movimento 222 executa o mesmo processo que a unidade de adição de candidato a previsor de vetor de movimento 122 da Figura 13 no lado de codificação. Os candidatos a previsor de vetor de movimento derivados mvLXA, mvLXB e mvLXCol são armazenados na lista de previsor de vetor de movimento mvpListLX de LX.
[00232] Então, a unidade de deleção de candidato a previsor de vetor de movimento redundante 223 executa o mesmo processo que a unidade de deleção de candidato a previsor de vetor de movimento redundante 123 da Figura 13 no lado de codificação. Os candidatos a previsor de vetor de movimento que têm o mesmo valor de vetor de movimento são determinados dentre os candidatos a previsor de vetor de movimento armazenados na lista de previsor de vetor de movimento mvpListLX de LX e a lista de previsor de vetor de movimento mvpListLX é atualizada de modo que os candidatos a previsor de vetor de movimento não sejam redundantes através da conservação de um dos candidatos a previsor de vetor de movimento determinados como tendo o mesmo valor de vetor de movimento enquanto deleta os candidatos a previsor de vetor de movimento remanescentes da lista de previsor de vetor de movimento mvpListLX. Aqui, quando o número de candidato final especificado finalNumMVPCand é 1, o presente processo de determinação de redundância pode ser omitido.
[00233] Então, a unidade de limitação de número de candidato a previsor de vetor de movimento 224 executa o mesmo processo que a unidade de limitação de número de candidato a previsor de vetor de movimento 124 da Figura 13 no lado de codificação. A unidade de limitação de número de candidato a previsor de vetor de movimento 224 conta o número de elementos adicionados à lista de previsor de vetor de movimento mvpListLX e define o número contado como um valor do número de candidato obtido através da contagem do número de candidato a previsor de vetor de movimento numMVPCandLX de LX.
[00234] Adicionalmente, devido à razão descrita no lado de codificação, a unidade de limitação de número de candidato a previsor de vetor de movimento 224 limita o número de candidato a previsor de vetor de movimento numMVPCandLX de LX adicionado à lista de previsor de vetor de movimento mvpListLX ao número de candidato final finalNumMVPCand especificado de acordo com o tamanho do bloco de previsão. Quando o número de candidato a previsor de vetor de movimento numMVPCandLX de LX é menor que o número de candidato final especificado finalNumMVPCand, o número de candidato a previsor de vetor de movimento é limitado ao valor especificado através da adição do vetor de movimento que tem o valor de (0, 0) à lista de previsor de vetor de movimento mvpListLX até que o número de candidato a previsor de vetor de movimento numMVPCandLX seja igual ao número de candidato final finalNumMVPCand. Nesse caso, o vetor de movimento que tem o valor de (0, 0) pode ser redundantemente adicionado, mas o lado de decodificação pode decidir o previsor de vetor de movimento independentemente de um valor que o índice de previsor de vetor de movimento tem dentro de uma faixa de 0 para um valor especificado - 1. Entretanto, quando o número de candidato a previsor de vetor de movimento numMVPCandLX de LX é maior que o número de candidato final especificado finalNumMVPCand, o número de candidato a previsor de vetor de movimento é limitado ao valor especificado através da deleção de todos os elementos adicionados a um índice maior que finalNumMVPCand-1 da lista de previsor de vetor de movimento mvpListLX e fazendo com que o número de candidato a previsor de vetor de movimento numMVPCandLX de LX seja igual ao número de candidato final finalNumMVPCand. A lista de previsor de vetor de movimento atualizada mvpListLX é suprida para a unidade de seleção de previsor de vetor de movimento 225.
[00235] Nesse ínterim, a diferença de vetor de movimento mvdLX de LX (X = 0 ou 1) de cada bloco de previsão decodificado pela unidade de decodificação de primeiro fluxo de bit 202 é suprida para a unidade de adição de vetor de movimento 226. O índice de previsor de vetor de movimento mvpIdxLX do previsor de vetor de movimento de LX decodificado pela unidade de decodificação de primeiro fluxo de bit 202 é suprido para a unidade de seleção de previsor de vetor de movimento 225. Aqui, quando o número de candidato final especificado final- NumMVPCand é 1, o índice de previsor de vetor de movimento mvpIdxLX do previsor de vetor de movimento de LX não é codificado nem suprido para a unidade de seleção de previsor de vetor de movimento 225.
[00236] A unidade de seleção de previsor de vetor de movimento 225 é suprida com o índice de previsor de vetor de movimento mvpIdxLX de LX decodificado pela unidade de decodificação de primeiro fluxo de bit 202 e extrai o candidato a previsor de vetor de movimento mvpListLX[mvpIdxLX] correspondente ao índice suprido mvpIdxLX da lista de previsor de vetor de movimento mvpListLX como o previsor de vetor de movimento mvpLX de LX. Aqui, quando o número de candidato final especificado finalNumMVPCand é 1, um único candidato a previsor de vetor de movimento mvpListLX[0] em que o índice i da lista de previsor de vetor de movimento mvpListLX é adicionado a 0 é extraído. O candidato a previsor de vetor de movimento suprido é suprido para a unidade de adição de vetor de movimento 226 como o previsor de vetor de movimento mvpLX.
[00237] Finalmente, a unidade de adição de vetor de movimento 226 deriva o vetor de movimento mv de LX através da adição da diferença de vetor de movimento mvdLX de LX decodificado e suprido pela unidade de decodificação de primeiro fluxo de bit 202 para o previsor de vetor de movimento mvpLX de LX e emite o vetor de movimento mvLX. mvLX = mvpLX + mvdLX
[00238] Conforme descrito acima, o vetor de movimento mvLX de LX é derivado para cada bloco de previsão. Um sinal de imagem de previsão é construído pela compensação de movimento com o uso do vetor de movimento e um sinal de imagem decodificada é construído através da adição do sinal de imagem de previsão ao sinal residual de previsão decodificado.
[00239] O procedimento de processos da unidade de derivação de diferença de vetor de movimento 103 do dispositivo de codificação de imagem em movimento e da unidade de derivação de vetor de movimento 204 do dispositivo de decodificação de imagem em movimento será descrito em referência aos fluxogramas das Figuras 15 e 16. A Figura 15 é um fluxograma que ilustra uma diferença de processo de procedimento de derivação de vetor de movimento executada pelo dispositivo de codificação de imagem em movimento e a Figura 16 é um fluxograma que ilustra um processo de procedimento de derivação de vetor de movimento executado pelo dispositivo de decodificação de imagem em movimento.
[00240] A diferença de processo de procedimento de derivação de vetor de movimento no lado de codificação será descrita em referência à Figura 15. No lado de codificação, primeiro, a unidade de derivação de diferença de vetor de movimento 103 define o número de candidato final finalNumMVCand dos candidatos a previsor de vetor de movimento (S100). Um procedimento de processo detalhado da etapa S100 será descrito posteriormente em referência a um fluxo- grama da Figura 17.
[00241] Então, a unidade de derivação de diferença de vetor de movimento 103 deriva a diferença de vetor de movimento do vetor de movimento usado na interprevisão selecionada no bloco de alvo de codificação para cada um dentre L0 e L1 (S101 a S106). Especificamente, no caso em que o modo de previsão PredMode do bloco de alvo de codificação é a interprevisão (MODE_INTER), quando o modo de interprevisão é a previsão L0 (Pred_L0), a lista de previsor de vetor de movimento mvpListL0 de L0 é derivada, o previsor de vetor de movimento mvpL0 é selecionado, a diferença de vetor de movimento mvdL0 do vetor de movimento mvL0 de L0 é derivada. Quando o modo de interprevisão do bloco de alvo de codificação é a previsão L1 (Pred_L1), a lista de previsor de vetor de movimento mvpListL1 de L1 é derivada, o previsor de vetor de movimento mvpL1 é selecionado e a diferença de vetor de movimento mvdL1 do vetor de movimento mvL1 de L1 é derivada. Quando o modo de interprevisão do bloco de alvo de codificação é a previsão dupla (Pred_B1), tanto a previsão L0 quanto a previsão L1 são executadas, a lista de previsor de vetor de movimento mvpListL0 de L0 é derivada, o previsor de vetor de movimento mvpL0 de L0 é selecionado e a diferença de vetor de movimento mvdL0 do vetor de movimento mvL0 de L0 é derivada e adicionalmente a lista de previsor de vetor de movimento mvpListL1 de L1 é derivada, o previsor de vetor de movimento mvpL1 de L1 é derivado e a diferença de vetor de mo-vimento mvdL1 do vetor de movimento mvL1 de L1 é derivada.
[00242] A diferença de processo de derivação de vetor de movimento é executada em cada um dentre L0 e L1, mas esse é um processo comum a L0 e L1. Dessa forma, na seguinte descrição, L0 e L1 são representados como LX comum a isso. No processo de derivação da diferença de vetor de movimento de L0, X é 0 e no processo de derivação da diferença de vetor de movimento de L1, X é 1. Adicionalmente, quando a informação da outra lista além de LX é referenciada durante o processo de derivação da diferença de vetor de movimento de LX, a outra lista é representada como LY.
[00243] Quando a diferença de vetor de movimento mvdLX de LX é derivada (SIM em S102), o candidato a previsor de vetor de movimento de LX é derivado para construir a lista de previsor de vetor de movimento mvpListLX de LX (S103). Na unidade de derivação de diferença de vetor de movimento 103, a unidade de construção de candidato a previsor de vetor de movimento 121 deriva uma pluralidade de candidatos a previsor de vetor de movimento, a unidade de adição de candidato a previsor de vetor de movimento 122 adiciona o candidato a previsor de vetor de movimento derivado à lista de previsor de vetor de movimento mvpListLX, a unidade de deleção de candidato a previsor de vetor de movimento redundante 123 deleta um candidato a previsor de vetor de movimento desnecessário e a unidade de limitação de número de candidato a previsor de vetor de movimento 124 define o número de candidato a previsor de vetor de movimento numMVPCandLX de LX adicionado à lista de previsor de vetor de movimento mvpListLX, limita o número de candidato a previsor de vetor de movimento numMVPCandLX de LX adicionado à lista de previsor de vetor de movimento mvpListLX ao número de candidato final especificado finalNumMVPCand e constrói a lista de previsor de vetor de movimento mvpListLX. Um procedimento de processo detalhado da etapa S103 será descrito posteriormente em referência a um fluxograma da Figura 18.
[00244] Então, a unidade de derivação de candidato a previsor de vetor de movimento redundante 125 e a unidade de seleção de previsor de vetor de movimento 126 selecionam o previsor de vetor de movimento mvpLX de LX da lista de previsor de vetor de movimento mvpListLX de LX (S104). Primeiro, a unidade de derivação de candidato a previsor de vetor de movimento redundante 125 deriva cada diferença de vetor de movimento, ou seja, uma diferença entre o vetor de movimento mvLX e cada candidato a previsor de vetor de movimento mvpListLX[i] armazenado na lista de previsor de vetor de movimento mvpListLX e deriva a quantidade de codificação quando a di-ferença de vetor de movimento é codificada para cada elemento da lista de previsor de vetor de movimento mvpListLX e a unidade de seleção de previsor de vetor de movimento 126 seleciona o candidato a previsor de vetor de movimento mvpListLX[i] que é a menor na quantidade de codificação de cada candidato a previsor de vetor de movimento dentre os elementos adicionados à lista de previsor de vetor de movimento mvpListLX como o previsor de vetor de movimento mvpLX. Quando existe uma pluralidade de candidatos a previsor de vetor de movimento que são menores na quantidade de codificação gerada na lista de previsor de vetor de movimento mvpListLX, o candidato a previsor de vetor de movimento mvpListLX[i] representado por um índice i que tem um número pequeno na lista de previsor de vetor de movi-mento mvpListLX é selecionado como o previsor de vetor de movimento ideal mvpLX de LX.
[00245] Então, a unidade de subtração de vetor de movimento 127 deriva a diferença de vetor de movimento mvdLX de LX através da subtração do previsor de vetor de movimento selecionado mvpLX de LX do vetor de movimento mvLX de LX (S105).
Figure img0002
[00246] A seguir, o processo de procedimento de derivação de vetor de movimento no lado de decodificação será descrito em referência à Figura 16. No lado de decodificação, a unidade de derivação de vetor de movimento 204 deriva o vetor de movimento usado na interprevisão para cada um dentre L0 e L1 (S201 a S206). Especificamente, no caso em que o modo de previsão PredMode do bloco de alvo de decodifi- cação é a interprevisão (MODE_INTER), quando o modo de interpre- visão do bloco de alvo de decodificação é a previsão L0 (Pred_L0), a lista de previsor de vetor de movimento mvpListL0 de L0 é derivada, o previsor de vetor de movimento mvpL0 é selecionado e o vetor de movimento mvL0 de L0 é derivado. Quando o modo de interprevisão do bloco de alvo de decodificação é a previsão L1 (Pred_L1), a lista de previsor de vetor de movimento mvpListL1 de L1 é derivada, o previsor de vetor de movimento mvpL1 é selecionado e o vetor de movimento mvL1 de L1 é derivado. Quando o modo de interprevisão do bloco de alvo de decodificação é a previsão dupla (Pred_B1), tanto a previsão L0 quanto a previsão L1 são executadas, a lista de previsor de vetor de movimento mvpListL0 de L0 é derivada, o previsor de vetor de movimento mvpL0 de L0 é selecionado e o vetor de movimento mvL0 de L0 é derivado e adicionalmente a lista de previsor de vetor de movimento mvpListL1 de L1 é derivada, o previsor de vetor de movimento mvpL1 de L1 é derivado e o vetor de movimento mvL1 de L1 é derivado.
[00247] De modo similar ao lado de codificação, o lado de decodifi- cação executa o processo de derivação de vetor de movimento para cada um dentre L0 e L1, mas esse é um processo comum a L0 e L1. Dessa forma, na seguinte descrição, L0 e L1 são representados como LX comum a isso. No processo de derivação do vetor de movimento de L0, X é 0 e no processo de derivação do vetor de movimento de L1, X é 1. Adicionalmente, quando a informação da outra lista além de LX é referenciada durante o processo de derivação do vetor de movimento de LX, a outra lista é representada como LY.
[00248] Quando o vetor de movimento mvLX de LX é derivado (SIM em S202), o candidato a previsor de vetor de movimento de LX é derivado para construir a lista de previsor de vetor de movimento mvpListLX de LX (S203). Na unidade de derivação de vetor de movimento 204, a unidade de construção de candidato a previsor de vetor de movimento 221 deriva uma pluralidade de candidatos a previsor de vetor de movimento, a unidade de adição de candidato a previsor de vetor de movimento 222 adiciona o candidato a previsor de vetor de movimento derivado à lista de previsor de vetor de movimento mvpListLX, a unidade de deleção de candidato a previsor de vetor de movimento redundante 223 deleta um candidato a previsor de vetor de movimento desnecessário, a unidade de limitação de número de candidato a previsor de vetor de movimento 224 define o número de candidato a previsor de vetor de movimento numMVPCandLX de LX adicionado à lista de previsor de vetor de movimento mvpListLX, limita o número de candidato a previsor de vetor de movimento numMVPCan- dLX de LX adicionado à lista de previsor de vetor de movimento mvpListLX ao número de candidato final especificado finalNumMV- PCand e constrói a lista de previsor de vetor de movimento mvpListLX. Um procedimento de processo detalhado da etapa S203 será descrito posteriormente em referência a um fluxograma da Figura 18.
[00249] Então, a unidade de seleção de previsor de vetor de movimento 225 extrai o candidato a previsor de vetor de movimento mvpListLX[mvpIdxLX] correspondente ao índice de previsor de vetor de movimento mvpIdxLX decodificado pela unidade de decodificação de primeiro fluxo de bit 202 da lista de previsor de vetor de movimento mvpListLX como o previsor de vetor de movimento selecionado mvpLX (S204). Aqui, quando o número de candidato máximo finalNumCandLX é 1, um único candidato a previsor de vetor de movimento mvpListLX[0] adicionado à lista de previsor de vetor de movimento mvpListLX é extraído como o previsor de vetor de movimento selecionado mvpLX.
[00250] Então, a unidade de adição de vetor de movimento 226 deriva o vetor de movimento mvLX de LX através da adição da diferença de vetor de movimento mvdLX de LX decodificado e suprido pela unidade de decodificação de primeiro fluxo de bit 202 para o previsor de vetor de movimento mvpLX de LX (S205 da Figura 16).
Figure img0003
[00251] A seguir, um processo de definição do número de candidato final do previsor de vetor de movimento que é comum a S100 da Figura 15 e S200 da Figura 16 será descrito em detalhes.
[00252] A unidade de limitação de número de candidato a previsor de vetor de movimento 124 e a unidade de limitação de número de candidato a previsor de vetor de movimento 224 definem o número de candidato final finalNumMVPCand do previsor de vetor de movimento de acordo com o tamanho do bloco de previsão do alvo de codificação ou decodificação
[00253] A Figura 17 é um fluxograma que ilustra o procedimento de processo de definição do número de candidato final do previsor de vetor de movimento.
[00254] Primeiro, o tamanho do bloco de previsão do alvo de codificação ou decodificação é adquirido (S401). Quando o tamanho do bloco de previsão do alvo de codificação ou decodificação é menor que ou igual ao tamanho especificado sizePUNumMVPCand (SIM em S402), finalNumMVPCand é definido como um número menor que o último (S403) e quando o tamanho do bloco de previsão do alvo de codificação ou decodificação não é menor que nem igual ao tamanho especificado sizePUNumMVPCand, finalNumMVPCand é definido como um número maior que o anterior (S404). Na presente modalidade, o tamanho especificado sizePUNumMVPCand é definido como 8x8 e finalNumMVPCand é definido como 1 quando o tamanho do bloco de previsão do sinal de brilho do alvo de codificação ou decodificação é menor que ou igual ao tamanho especificado sizePUNumMVPCand e finalNumMVPCand é definido como 2 nos outros casos. Adicionalmente, o tamanho especificado sizePUNumMVPCand pode ser um valor fixo ou pode ser definido através da preparação de um elemento de sintaxe em unidades de sequências, imagens ou fatias. Adicionalmente, tamanhos em que valores obtidos através da multiplicação da largura pela altura são iguais entre si tais como 8x4 e 4x8 são relacionados ao mesmo tamanho. Em outras palavras, quando o tamanho especificado sizePUNumMVPCand é definido como 8x4, 4x8 é relacionado também como definido. Adicionalmente, quando se determina na etapa S402 que o tamanho do bloco de previsão do alvo de codificação ou decodificação é menor que o tamanho especificado sizePU- NumMVPCand, finalNumMVPCand pode ser definido como um número menor que o último e quando se determina na etapa S402 que o tamanho do bloco de previsão do alvo de codificação ou decodificação é maior que ou igual ao tamanho especificado sizePUNumMVPCand, finalNumMVPCand pode ser definido como um número maior que o anterior.
[00255] A seguir, um procedimento de processo de derivação do candidato a previsor de vetor de movimento e construção da lista de previsor de vetor de movimento que é comum a S103 da Figura 15 e S203 da Figura 16 será descrito em referência à um fluxograma da Figura 18. (Método de previsão de vetor de movimento)
[00256] A Figura 18 é um fluxograma que ilustra o procedimento de processo das unidades de construção de candidato a previsor de vetor de movimento 121 e 221, das unidades de adição de candidato a previsor de vetor de movimento 122 e 222, das unidades de deleção de redundância de candidato a previsor de vetor de movimento 123 e 223 e as unidades de limitação de número de candidato a previsor de vetor de movimento 124 e 224 que têm a função comum na unidade de derivação de diferença de vetor de movimento 103 do dispositivo de codificação de imagem em movimento e da unidade de derivação de vetor de movimento 204 do dispositivo de decodificação de ima-gem em movimento.
[00257] A unidade de construção de candidato a previsor de vetor de movimento 121 e 221 deriva um candidato a previsor de vetor de movimento de um bloco de previsão adjacente ao lado esquerdo e deriva um sinalizador availableFlagLXA que representa se o candidato a previsor de vetor de movimento do bloco de previsão adjacente ao lado esquerdo pode ser usado, um vetor de movimento mvLXA, um índice de referência refIdxA e uma lista ListA (S301 da Figura 18). Adicionalmente, no caso de L0, X é 0, e no caso de L1, X é 1 (o mesmo se aplica doravante na presente invenção). Então, as unidades de construção de candidato a previsor de vetor de movimento 121 e 221 derivam um candidato a previsor de vetor de movimento de um bloco de previsão adjacente ao lado superior e deriva um sinalizador availableFlagLXB que representa se o candidato a previsor de vetor de movimento do bloco de previsão adjacente ao lado superior pode ser usado, um vetor de movimento mvLXB, um índice de referência refIdxB e uma lista ListB (S302 da Figura 18). As etapas S301 e S302 da Figura 18 são um processo comum, exceto pelo fato de que a posição do bloco adjacente a ser referenciado e o número do blocos adjacentes são diferentes e o procedimento de processo de derivação de derivação comum de um sinalizador availableFlagLXN que representa se o candidato a previsor de vetor de movimento do bloco de previsão pode ser usado, um vetor de movimento mvLXN, um índice de referência refIdxN e ListN (N é A ou B, e o mesmo se aplica doravante na presente invenção) serão descritas posteriormente em detalhes em referência aos fluxogramas das Figuras 19 a 23.
[00258] Então, as unidades de construção de candidato a previsor de vetor de movimento 121 e 221 derivam um candidato a previsor de vetor de movimento de um bloco de previsão de uma imagem de um tempo diferente e derivam um sinalizador availableFlagLXCol que representa se o candidato a previsor de vetor de movimento do bloco de previsão da imagem do tempo diferente pode ser usado, um vetor de movimento mvLXCol, um índice de referência refIdxCol e uma lista ListCol (S303 da Figura 18). O procedimento de processo de derivação da etapa S303 será descrito posteriormente em detalhes em referência aos fluxogramas das Figuras 24 a 30.
[00259] Então, as unidades de adição de candidato a previsor de vetor de movimento 122 e 222 constroem a lista de previsor de vetor de movimento mvpListLX e adicionam candidatos a previsor de vetor mvLXA, mvLXB e mvLXCol de LX (S304 da Figura 18). O procedimento de processo de adição da etapa S304 será descrito posteriormente em detalhes em referência a um fluxograma da Figura 31.
[00260] Então, quando uma pluralidade de candidatos a vetor de movimento tem o mesmo valor ou valores próximos entre si na lista de previsor de vetor de movimento mvpListLX, as unidades de deleção de redundância de candidato a previsor de vetor de movimento 123 e 223 determinam o candidatos a vetor de movimento como o candidato a vetor de movimento redundante e deletam os candidatos a vetor de movimento redundantes exceto o vetor de movimento candidate que tem a ordem mais baixa, ou seja, que tem o menor índice i (S305 da Figura 18). O procedimento de processo de deleção da etapa S305 será descrito posteriormente em detalhes em referência a um fluxo- grama da Figura 32.
[00261] Então, as unidades de limitação de número de candidato a previsor de vetor de movimento 124 e 224 contam o número de elementos adicionados à lista de previsor de vetor de movimento mvpListLX, definem o número como o número de candidato a previsor de vetor de movimento numMVPCandLX de LX e limitam o número de candidato a previsor de vetor de movimento numMVPCandLX de LX adicionado à lista de previsor de vetor de movimento mvpListLX ao número de candidato final especificado finalNumMVPCand (S306 da Figura 18). O procedimento de processo de limitação da etapa S306 será descrito posteriormente em detalhes em referência a um fluxo- grama da Figura 33.
[00262] Um processo de derivação dos candidatos a previsor de vetor de movimento dos blocos de previsão adjacentes ao lado es- querdo e ao lado superior nas etapas S301 e S302 da Figura 18 será descrito em detalhes.
[00263] Os candidatos a previsor de vetor de movimento são derivados de blocos de previsão adjacentes a um bloco de previsão (um bloco de previsão de um alvo de processamento nas Figuras 5, 6, 7 e 8) definido para executar a compensação de movimento no bloco de codificação dentro da mesma imagem conforme ilustrado nas Figuras 5, 6, 7 e 8.
[00264] O candidato a previsor de vetor de movimento é selecionado de cada um dentre um grupo de bloco de previsão A que inclui um bloco de previsão Ak (k = 0, 1), ou seja, A0 e A1, adjacente ao lado esquerdo do bloco de previsão do alvo de processamento e um grupo de bloco de previsão B que inclui um bloco de previsão Bk (k = 0, 1, 2), ou seja, B0, B1 e B2, adjacente ao lado superior do mesmo.
[00265] A seguir, um método de derivação do candidato a previsor de vetor de movimento de um grupo de bloco de previsão N adjacente ao lado esquerdo e ao lado superior que é o procedimento de processo das etapas S301 e S302 da Figura 18 será descrito. A Figura 19 é um fluxograma que ilustra o procedimento de processo de derivação do candidato a previsor de vetor de movimento em S301 e S302 da Figura 18 pelo método de varredura 1. 0 ou 1 que representa uma lista de referência é inserido como um sufixo X e A (o lado esquerdo) ou B (o lado superior) que representa uma região de um grupo de bloco de previsão adjacente é inserido como N.
[00266] A fim de derivar o candidato a previsor de vetor de movimento do bloco de previsão no lado esquerdo (S301 da Figura 18), A é definido como N na Figura 19 e a fim de derivar o candidato a previsor de vetor de movimento dos blocos de previsão A0 e A1 adjacentes ao lado esquerdo do bloco de previsão do alvo de codificação ou decodi- ficação e derivar o candidato a previsor de vetor de movimento do bloco de previsão no lado superior (S302 da Figura 18), B é definido como N na Figura 19 e os candidatos a previsor de vetor de movimento são derivados dos blocos de previsão B0, B1 e B2 adjacentes ao lado superior no seguinte procedimento.
[00267] Primeiro, o bloco de previsão adjacente ao bloco de previsão do alvo de codificação ou decodificação é especificado e quando cada bloco de previsão Nk (k = 0, 1, 2 e aqui, 2 é usado apenas para o grupo de bloco de previsão no lado superior) pode ser usado, a informação de codificação armazenada na memória de armazenamento de informação de codificação 114 ou na memória de armazenamento de informação de codificação 209 é derivada. Aqui, os exemplos da informação de codificação do bloco de previsão adjacente Nk a ser derivado incluem um modo de previsão PredMode, um sinalizador predFlagLX [xNk][yNk] que representa se LX é usado, um índice de referência refIdxLX [xNk][yNk] de LX e um vetor de movimento mvLX [xNk][yNk] de LX. Quando o grupo de bloco de previsão (N = A) se situa adjacente ao lado esquerdo do bloco de previsão do alvo de codificação ou decodificação (SIM em S1101), a informação de codificação que especifica o bloco de previsão A0 adjacente à esquerda inferior e o bloco de previsão A1 adjacente à esquerda é derivado (S1102 e S1103), e quando o grupo de bloco de previsão (N = B) se situa adjacente ao lado superior do bloco de previsão do alvo de codificação ou decodifi- cação (NÃO em S1101), a informação de codificação que especifica o bloco de previsão B0 adjacente à direita superior, o bloco de previsão B1 adjacente ao lado superior e o bloco de previsão B2 adjacente à esquerda superior é derivado (S1104, S1105, e S1106). Adicionalmente, o bloco de previsão adjacente Nk é posicionado dentro da fatia que inclui o bloco de previsão do alvo de codificação ou decodificação, é possível usar o bloco de previsão adjacente Nk e quando o bloco de previsão adjacente Nk é posicionado fora da fatia, é difícil usar o bloco de previsão adjacente Nk.
[00268] Então, um sinalizador availableFlagLXN que representa se o previsor de vetor de movimento é selecionado do grupo de bloco de previsão N é definido como 0 e um vetor de movimento mvLXN que representa um grupo de bloco de previsão N é definido como (0, 0) (S1107).
[00269] Então, o candidato a previsor de vetor de movimento que satisfaz a determinação de condição 1 ou a determinação de condição 2 é derivado (S1108). Dentre os blocos de previsão adjacentes N0, N1 e N2 (N2 é usado apenas para o grupo de bloco de previsão B adjacente ao lado superior) do grupo de bloco de previsão N (N é A ou B), um bloco de previsão que tem um vetor de movimento da mesma imagem de referência é pesquisado através da mesma lista de referência LX que a lista de referência LX definida como um alvo atual no bloco de previsão do alvo de codificação ou decodificação ou na lista de referência LY (Y = !X: quando a lista de referência definida como um alvo atual é L0, a lista de referência oposta é L1 e quando a lista de referência definida como um alvo atual é L1, a lista de referência oposta é L0) oposta à lista de referência LX definida como um alvo atual no bloco de previsão do alvo de codificação ou decodificação e o vetor de movimento correspondente é usado como o candidato a previsor de vetor de movimento.
[00270] A Figura 20 é um fluxograma que ilustra o procedimento de processo de derivação da etapa S1108 da Figura 19. O seguinte processo é executado no bloco de previsão adjacente Nk (k = 0, 1, 2, e aqui, 2 é usado apenas para o grupo de bloco de previsão adjacente ao lado superior) na ordem de 0, 1 e 2 que são k (S1201 a S1207). O seguinte processo é executado na ordem de A0 e A1 de cima para baixo quando N é A e executado na ordem de B0, B1 e B2 da direita para a esquerda quando N é B.
[00271] Quando o bloco de previsão adjacente Nk pode ser usado e o modo de previsão PredMode do bloco de previsão Nk não é intra (MODE_INTRA) (SIM em S1202), a determinação de condição da determinação de condição 1 é executada (S1203). Quando o sinalizador predFlagLX [xNk][yNk] que representa se LX do bloco de previsão adjacente Nk é usado é 1, ou seja, a interprevisão é executada no bloco de previsão adjacente Nk com o uso do mesmo vetor de movimento de LX que o alvo de derivação e o índice de referência refIdxLX[xNk][yNk] de LX do bloco de previsão adjacente Nk é idêntico ao índice refIdxLX do bloco de previsão do alvo de processamento, ou seja, a interprevi- são é executada no bloco de previsão adjacente Nk com o uso da mesma imagem de referência na previsão LX (SIM em S1203), o pro-cesso prossegue para a etapa S1204 e de outro modo (NÃO em S1203), a determinação de condição da etapa S1205 é executada.
[00272] Quando o resultado de determinação da etapa S1203 é SIM, o sinalizador availableFlagLXN é definido como 1, o previsor de vetor de movimento mvLXN do grupo de bloco de previsão N é definido como o mesmo valor do vetor de movimento mvLX[xNk][yNk] de LX do bloco de previsão adjacente Nk, o índice de referência refIdxN do grupo de bloco de previsão N é definido como o mesmo valor que o índice de referência refIdxLX[xNk][yNk] de LX do bloco de previsão adjacente Nk e a lista de referência ListN do grupo de bloco de previsão N é definida como LX (S1204) e o presente candidato a previsor de processo de derivação de vetor de movimento termina.
[00273] Entretanto, quando o resultado de determinação da etapa S1203 é NÃO, a determinação de condição da determinação de condição 2 é executada (S1205). Quando o sinalizador predFlagLY que representa se LY do bloco de previsão adjacente Nk é usado é 1, ou seja, a interprevisão é executada no bloco de previsão adjacente Nk com o uso do vetor de movimento de LY diferente do alvo de derivação e o POC da imagem de referência da lista de referência LY oposta à lista de referência LX definida como um alvo atual no bloco de previsão adjacente Nk é idêntico ao POC da imagem de referência de LX do bloco de previsão do alvo de processamento, ou seja, a interprevisão é executada no bloco de previsão adjacente Nk com o uso da mesma imagem de referência na previsão LY (SIM em S1205), o processo prossegue para a etapa S1206 e o sinalizador availableFlagLXN é definido como 1, o previsor de vetor de movimento mvLXN do grupo de bloco de previsão N é definido como o mesmo valor que o vetor de movimento mvLY[xNk][yNk] de LY do bloco de previsão adjacente Nk, o índice de referência refIdxN do grupo de bloco de previsão N é definido como o mesmo valor do índice de referência refIdxLY[xNk][yNk] de LY do bloco de previsão adjacente Nk e a lista de referência ListN do grupo de bloco de previsão N é definida como LY (S1206) e, então, o presente candidato a previsor de processo de derivação de vetor de movimento termina.
[00274] Quando as condições acima não são satisfeitas, ou seja, quando o resultado de determinação de S1203 é NÃO ou quando o resultado de determinação de S1205 é NÃO, k é aumentado em 1 e, então, o processo (S1201 a S1207) do bloco de previsão adjacente seguinte é executado e repetido até que availableFlagLXN seja 1 ou o processo do bloco adjacente A1 ou B2 termine.
[00275] Então, referindo-se novamente ao fluxograma da Figura 19, quando availableFlagLXN é 0 (SIM em S1109), ou seja, quando o candidato a previsor de vetor de movimento não é derivado na etapa S1108, o candidato a previsor de vetor de movimento que satisfaz a determinação de condição 3 ou a determinação de condição 4 é derivado (S1110). Dentre os blocos adjacentes N0, N1 e N2 (N2 é usado apenas para o grupo de bloco de previsão B adjacente ao lado superior) do grupo de bloco de previsão N (N é A ou B), um bloco de previsão que tem um vetor de movimento da mesma imagem de referência é pesquisado através da mesma lista de referência LX que a lista de referência LX definida como um alvo atual no bloco de previsão do alvo de codificação ou decodificação ou a lista de referência LY (Y = !X: quando uma lista de referência definida como um alvo atual é L0, a lista de referência oposta é L1 e quando uma lista de referência definida como um alvo atual é L1, a lista de referência oposta é L0) oposta à lista de referência LX definida como um alvo atual no bloco de previsão do alvo de codificação ou decodificação e o vetor de movimento correspondente é usado como o candidato a previsor de vetor de movimento.
[00276] A Figura 21 é um fluxograma que ilustra o procedimento de processo de derivação da etapa S1110 da Figura 19. O seguinte processo é executado no bloco de previsão adjacente Nk (k = 0, 1, 2, e aqui, 2 é usado apenas para o grupo de bloco de previsão adjacente ao lado superior) na ordem de 0, 1, e 2 que são k (S1301 a S1307). O seguinte processo é executado na ordem de A0 e A1 de cima ara baixo quando N é A e executado na ordem de B0, B1 e B2 da direita para a esquerda quando N é B.
[00277] Quando o bloco de previsão adjacente Nk pode ser usado e o modo de previsão PredMode do bloco de previsão Nk não é intra (MODE_INTRA) (SIM em S1302), a determinação de condição da determinação de condição 3 é executada (S1303). Quando o sinalizador predFlagLX [xNk][yNk] que representa se LX do bloco de previsão adjacente Nk é usado é 1, ou seja, a interprevisão é executada no bloco de previsão adjacente Nk com o uso do mesmo vetor de movimento de LX que o alvo de derivação, o processo prossegue para a etapa S1304 e de outro modo (NÃO em S1303), a determinação de condição da etapa S1305 é executada.
[00278] Quando o resultado de determinação da etapa S1303 é SIM, o sinalizador availableFlagLXN é definido como 1, mvLXN do grupo de bloco de previsão N é definido como o mesmo valor que o vetor de movimento mvLX[xNk][yNk] de LX do bloco de previsão adjacente Nk, o índice de referência refIdxN do grupo de bloco de previsão N é definido como o mesmo valor que o índice de referência refIdxLX[xNk][yNk] de LX do bloco de previsão adjacente Nk, e a lista de referência ListN do grupo de bloco de previsão N é definida como LX (S1304) e o processo prossegue para etapa S1308.
[00279] Quando o resultado de determinação da etapa S1303 é NÃO, a determinação de condição da determinação de condição 4 é executada (S1305). Quando o sinalizador predFlagLY que representa se LY do bloco de previsão adjacente Nk é usado é 1, ou seja, a inter- previsão é executada no bloco de previsão adjacente Nk com o uso do vetor de movimento de LY diferente do alvo de derivação (SIM em S1305), o sinalizador availableFlagLXN é definido como 1, o previsor de vetor de movimento mvLXN do grupo de bloco de previsão N é definido como o mesmo valor que o vetor de movimento mvLY[xNk][yNk] de LY do bloco de previsão adjacente Nk, o previsor de vetor de movimento mvLXN do grupo de bloco de previsão N é definido como o mesmo valor que o vetor de movimento mvLY[xNk][yNk] de LY do bloco de previsão adjacente Nk, o índice de referência refIdxN do grupo de bloco de previsão N é definido como o mesmo valor que o índice de referência refIdxLY[xNk][yNk] de LY do bloco de previsão adjacente Nk e a lista de referência ListN do grupo de bloco de previsão N é definida como LY (S1306), e o processo prossegue para etapa S1308.
[00280] Entretanto, quando as condições acima não são satisfeitas (NÃO em S1303 ou NÃO em S1305), k é aumentado em 1, o processo (S1301 a S1307) do bloco de previsão adjacente seguinte é executado e repetido até que availableFlagLXN seja 1 ou o processo do bloco adjacente A1 ou B2 termine e, então, o processo prossegue para etapa S1308.
[00281] Então, quando availableFlagLXN é 1 (SIM em S1308), mvLXN é escalonado (S1309). O procedimento de processo de escalonamento do candidato a previsor de vetor de movimento espacial da etapa S1309 será descrito em referência às Figuras 22 e 23.
[00282] A Figura 22 é um fluxograma que ilustra o procedimento de processo de escalonamento do vetor de movimento da etapa S1309 da Figura 21.
[00283] Uma distância interimagem td é derivada através da subtração do POC da imagem de referência referenciada pela lista ListN do bloco de previsão adjacente do POC da imagem de alvo de codificação ou decodificação atual (S1601). Adicionalmente, quando a imagem de referência referenciada pela lista ListN do bloco de previsão adjacente é anterior na ordem de exibição em comparação com a imagem de alvo de codificação ou decodificação atual, a distância inte- rimagem td tem um valor positivo, enquanto que quando a imagem de referência referenciada pela lista de referência ListN do bloco de previsão adjacente é posterior na ordem de exibição em comparação com a imagem de alvo de codificação ou decodificação atual, a distância interimagem td tem um valor negativo. td = POC da imagem de alvo de codificação ou decodifica- ção atual - POC da imagem de referência referenciada pela lista ListN de bloco de previsão adjacente
[00284] Uma distância interimagem tb é derivada através da subtração do POC da imagem de referência referenciada pela lista LX da imagem de alvo de codificação ou decodificação atual do POC da imagem de alvo de codificação ou decodificação atual (S1602). Adicionalmente, quando a imagem de referência referenciada pela lista LX da imagem de alvo de codificação ou decodificação atual é anterior na ordem de exibição em comparação com a imagem de alvo de codificação ou decodificação atual, a distância interimagem tb tem um valor positivo, enquanto que quando a imagem de referência referenciada pela lista LX da imagem de alvo de codificação ou decodificação atual é posterior na ordem de exibição em comparação com a imagem de alvo de codificação ou decodificação atual, a distância interimagem tb tem um valor negativo. tb = POC da imagem de alvo de codificação ou decodifica- ção atual - POC da imagem de referência referenciada pela lista de referência LX da imagem de alvo de codificação ou decodificação atual
[00285] Então, um vetor de movimento escalonado mvLXN é obtido através da execução do processo de operação de escalonamento através da multiplicação de um coeficiente de escalonamento tb/td por mvLXN pela seguinte fórmula (S1603).
Figure img0004
[00286] A Figura 23 ilustra um exemplo de execução da operação de escalonamento da etapa S1603 através de uma operação de precisão de número inteiro. O processo das etapas S1604 a S1606 da Figura 23 corresponde ao processo da etapa S1603 da Figura 22.
[00287] Primeiro, de modo similar ao fluxograma da Figura 22, a distância interimagem td e a distância interimagem tb são derivadas (S1601 e S1602).
[00288] Então, uma variável tx é derivada pela seguinte fórmula (S1604).
Figure img0005
[00289] Então, um coeficiente de escalonamento DistScaleFactor é derivado pela seguinte fórmula (S1605).
Figure img0006
[00290] Então, um vetor de movimento escalonado mvLXN é obtido pela seguinte fórmula (S1606). mvLXN = ClipMv(Sign(DistScaleFactor * mvLXN) * ((Abs (DistScaleFactor * mvLXN) + 127 ) >> 8))
[00291] A seguir, um método de derivação do candidato a previsor de vetor de movimento do bloco de previsão da imagem do tempo diferente em S303 da Figura 18 será descrito em detalhes. A Figura 24 é um fluxograma para descrever o processo de procedimento de derivação de candidato a previsor de vetor de movimento da etapa S303 da Figura 18.
[00292] Primeiro, a imagem colPic do tempo diferente é derivada com base em slice_type e collocated_from_10_flag (S2101 da Figura 24).
[00293] A Figura 25 é um fluxograma para descrever o procedimento de processo de derivação da imagem colPic do tempo diferente na etapa S2101 da Figura 24. Quando slice_type é B e o sinalizador collocated_from_10_flag é 0 (SIM em S2201 e SIM em S2202 na Figura 25), a imagem de RefPicList1[0], ou seja, a imagem em que o índice de referência da lista de referência L1 é 0 é a imagem colPic do tempo diferente (S2203 da Figura 25). De outro modo, ou seja, quando o sinalizador collocated_from_10_flag é 1 (NÃO em S2201, NÃO em S2202, e NÃO em S2204 na Figura 25), a imagem de RefPicList0[0], ou seja, a imagem em que o índice de referência da lista de referência L0 é 0 é a imagem colPic do tempo diferente (S2205 da Figura 25).
[00294] A seguir, referindo-se novamente ao fluxograma da Figura 24, um bloco de previsão colPU do tempo diferente é derivado e a informação de codificação é derivada (S2102 da Figura 24).
[00295] A Figura 26 é um fluxograma para descrever procedimento de processo de derivação do bloco de previsão colPU da imagem col- Pic do tempo diferente na etapa S2102 da Figura 24.
[00296] Primeiro, um bloco de previsão posicionado na direita inferior (o lado externo) da mesma posição que o bloco de previsão do alvo de processamento na imagem colPic do tempo diferente é definido como o bloco de previsão colPU do tempo diferente (S2301 na Figura 26). Esse bloco de previsão corresponde ao bloco de previsão T0 da Figura 9.
[00297] Então, a informação de codificação do bloco de previsão colPU do tempo diferente é derivada (S2302 da Figura 26). Quando PredMode do bloco de previsão colPU do tempo diferente é MO- DE_INTRA ou é difícil usar o bloco de previsão colPU (S2303 ou S2304 da Figura 26), um bloco de previsão posicionado na esquerda superior do centro da mesma posição que o bloco de previsão do alvo de processamento na imagem colPic do tempo diferente é definido como o bloco de previsão colPU do tempo diferente novamente (S2305 da Figura 26). Esse bloco de previsão corresponde ao bloco de previsão T1 da Figura 9.
[00298] Então, referindo-se novamente ao fluxograma da Figura 24, um previsor de vetor de movimento mvLXCol de LX derivado de um bloco de previsão de uma imagem diferente na mesma posição que o bloco de previsão do alvo de codificação ou decodificação e um sinalizador availableFlagLXCol que representa se a informação de codificação de uma lista de referência LX de um grupo de bloco de previsão Col é valida são derivado (S2103 da Figura 24).
[00299] A Figura 27 é um fluxograma para descrever um processo de derivação da informação de interprevisão na etapa S2103 da Figura 24.
[00300] Quando PredMode do bloco de previsão colPU do tempo diferente é MODE_INTRA ou quando é difícil usar o bloco de previsão colPU (NÃO em S2401 ou NÃO em S2402 na Figura 27), available- FlagLXCol é definido como 0, mvLXCol é definido como (0, 0) (S2403 e S2404 da Figura 27), e, então, o processo termina.
[00301] Quando é possível usar o bloco de previsão colPU e Pred- Mode não é MODE_INTRA (SIM em S2401 e SIM em S2402 na Figura 27), mvCol e refIdxCol são derivados pelo seguinte processo.
[00302] Quando um sinalizador PredFlagL0[xPCol][yPCol] que representa se o previsão L0 do bloco de previsão colPU é usado é 0 (SIM em S2405 da Figura 27), uma vez que o modo de previsão do bloco de previsão colPU é Pred_L1, o vetor de movimento mvCol é definido como o mesmo valor que MvL1[xPCol][yPCol] que é o vetor de movimento de L1 do bloco de previsão colPU (S2406 da Figura 27), o índice de referência refIdxCol é definido como o mesmo valor que um índice de referência RefIdxL1[xPCol][yPCol] de L1 (S2407 da Figura 27) e uma lista ListCol é definida como L1 (S2408 da Figura 27).
[00303] Entretanto, quando o sinalizador PredFlagL0[xPCol][yPCol] da previsão L0 do bloco de previsão colPU não é 0 (NÃO em S2405 da Figura 27), é determinado se um sinalizador de previsão L1 PredFlagL1[xPCol][yPCol] do bloco de previsão colPU é 0. Quando o sinalizador de previsão L1 PredFlagL1[xPCol][yPCol] do bloco de previsão colPU é 0 (SIM em S2409 da Figura 27), o vetor de movimento mvCol é definido como o mesmo valor que MvL0[xPCol][yPCol] que é o vetor de movimento de L0 do bloco de previsão colPU (S2410 da Figura 27), o índice de referência refIdxCol é definido como o mesmo valor que um índice de referência RefIdxL0[xPCol][yPCol] de L0 (S2411 da Figura 27) e uma lista ListCol é definida como L0 (S2412 da Figura 27).
[00304] Quando tanto o sinalizador PredFlagL0[xPCol][yPCol] da previsão L0 do bloco de previsão colPU quanto o sinalizador de previsão L1 PredFlagL1[xPCol][yPCol] do bloco de previsão colPU não são 0 (NÃO em S2405 e NÃO em S2409 na Figura 27), uma vez que o modo de interprevisão do bloco de previsão colPU é a previsão dupla (Pred_B1), um dos dois vetores de movimento de L0 e L1 é selecionado (S2413 da Figura 27).
[00305] A Figura 28 é um fluxograma que ilustra o procedimento de processo de derivação da informação de interprevisão do bloco de previsão quando o modo de interprevisão do bloco de previsão colPU é a previsão dupla (Pred_B1).
[00306] Primeiro, é determinado se os POCs de todas as imagens adicionadas a todas as listas de referência são determinados como sendo menores que o POC da imagem de alvo de codificação ou de- codificação atual (S2501). No caso em que os POCs de todas as imagens adicionadas a L0 e L1 que estão em todas as listas de referência do bloco de previsão colPU são menores que o POC da imagem de alvo de codificação ou decodificação atual (SIM em S2501), quando X é 0, ou seja, o candidato a previsor de vetor do vetor de movimento de L0 do bloco de previsão do alvo de codificação ou decodificação é derivado (SIM em S2502), a informação de interprevisão de L0 do bloco de previsão colPU é selecionada, enquanto que quando X é 1, ou seja, quando o candidato a previsor de vetor do vetor de movimento de L1 do bloco de previsão do alvo de codificação ou decodificação é derivado (NÃO em S2502), a informação de interprevisão de L1 do bloco de previsão colPU é selecionada. Entretanto, no caso em que pelo menos um dos POCs das imagens adicionadas a todas as listas de referência L0 e L1 do bloco de previsão colPU é maior que o POC da imagem de alvo de codificação ou decodificação atual (NÃO em S2501), quando o sinalizador collocated_from_10_flag é 0 (SIM em S2503), a informação de interprevisão de L0 do bloco de previsão colPU é selecionada, enquanto que quando o sinalizador collocated_from_10_flag é 1 (NÃO em S2503), a informação de interprevisão de L1 do bloco de previsão colPU é selecionada.
[00307] Quando a informação de interprevisão de L0 do bloco de previsão colPU é selecionada (SIM em S2502 e SIM em S2503), o vetor de movimento mvCol é definido como o mesmo valor que MvL0[xPCol][yPCol] (S2504), o índice de referência refIdxCol é definido como o mesmo valor que RefIdxL0[xPCol][yPCol] (S2505) e a lista ListCol é definida como L0 (S2506).
[00308] Quando a informação de interprevisão de L1 do bloco de previsão colPU é selecionada (NÃO em S2502 e NÃO em S2503), o vetor de movimento mvCol é definido como o mesmo valor que MvL1[xPCol][yPCol] (S2507), o índice de referência refIdxCol é definido como o mesmo valor que RefIdxL1[xPCol][yPCol] (S2508) e a lista ListCol é definida como L1 (S2509).
[00309] Referindo-se novamente à Figura 27, quando é possível derivar a informação de interprevisão do bloco de previsão colPU, availableFlagLXCol é definido como 1 (S2414 da Figura 27).
[00310] Então, referindo-se novamente ao fluxograma da Figura 24, quando availableFlagLXCol é 1 (SIM em S2104 da Figura 24), mvLXCol é escalonado conforme necessário (S2105 da Figura 24). O procedimento de processo de escalonamento do vetor de movimento mvLXCol será descrito em referência às Figuras 29 e 30.
[00311] A Figura 29 é um fluxograma que ilustra o escalonamento procedimento de processo do vetor de movimento na etapa S2105 da Figura 24.
[00312] A distância interimagem td é derivada através da subtração do POC da imagem de referência referenciada pela lista ListCol do bloco de previsão colPU do POC da imagem colPic do tempo diferente (S2601). Adicionalmente, quando o POC da imagem de referência referenciada pela lista ListCol do bloco de previsão colPU é anterior na ordem de exibição em comparação com a imagem colPic do tempo diferente, a distância interimagem td tem um valor positivo, enquanto que quando o POC da imagem de referência referenciada pela lista ListCol do bloco de previsão colPU é posterior na ordem de exibição em comparação com a imagem colPic do tempo diferente, a distância interimagem td tem um valor negativo. td = POC de imagem colPic de tempo diferente - POC de imagem de referência referenciada pela lista ListCol de bloco de previsão colPU
[00313] A distância interimagem tb é derivada através da subtração do POC da imagem de referência referenciada pela lista LX da imagem de alvo de codificação ou decodificação atual do POC da imagem de alvo de codificação ou decodificação atual (S2602). Adicionalmente, quando a imagem de referência referenciada pela lista LX da imagem de alvo de codificação ou decodificação atual é anterior na ordem de exibição em comparação com a imagem de alvo de codificação ou decodificação atual, a distância interimagem tb tem um valor positivo, enquanto que a imagem de referência referenciada pela lista LX da imagem de alvo de codificação ou decodificação atual é later na ordem de exibição em comparação com a imagem de alvo de codificação ou decodificação atual, a distância interimagem tb tem um valor negativo. tb = POC de imagem de alvo de codificação ou decodifica- ção atual - POC de imagem de referência referenciada pela lista de referência LX da imagem de alvo de codificação ou decodificação atual
[00314] Então, a distância interimagem td é comparada com a distância interimagem tb (S2603) e quando a distância interimagem td é igual à distância interimagem tb (SIM em S2603), o presente processo de operação de escalonamento termina. Quando a distância interima- gem td não é igual a uma distância interimagem tb (NÃO em S2603), o vetor de movimento escalonado mvLXCol é obtido através da execução do processo de operação de escalonamento através da multiplicação de mvLXCol pelo coeficiente de escalonamento tb/td através da seguinte fórmula (S2604).
Figure img0007
[00315] A Figura 30 ilustra um exemplo de execução da operação de escalonamento da etapa S2604 através de uma operação de precisão de número inteiro. O processo das etapas S2605 a S2607 da Figura 30 corresponde ao processo de S2604 da Figura 29.
[00316] Primeiro, de modo similar ao fluxograma da Figura 29, a distância interimagem td e a distância interimagem tb são derivadas (S2601 e S2602).
[00317] Então, a distância interimagem td é comparada com a distância interimagem tb (S2603) e quando a distância interimagem td é igual à distância interimagem tb (SIM em S2603), o presente processo de operação de escalonamento termina. Quando a distância interima- gem td não é igual à distância interimagem tb (NÃO em S2603), a variável tx é derivada pela seguinte fórmula (S2605).
Figure img0008
[00318] Então, o coeficiente de escalonamento DistScaleFactor é derivado pela seguinte fórmula (S2606).
Figure img0009
[00319] Então, o vetor de movimento escalonado mvLXN é obtido pela seguinte fórmula (S2607). mvLXN = ClipMv (Sign(DistScaleFactor * mvLXN) * ((Abs(DistScaleFactor * mvLXN) + 127) >> 8))
[00320] O processo de adição do candidato a previsor de vetor de movimento à lista de previsor de vetor de movimento em S304 da Figura 18 será descrito em detalhes.
[00321] Os candidatos a previsor de vetor de movimento mvLXA, mvLXB e mvLXCol de LX derivados em S301, S302 e S303 da Figura 18 são adicionados à lista de previsor de vetor de movimento mvpLis- tLX de LX (S304). Na modalidade da presente invenção, a ordem de prioridade é dada e os elementos que têm a ordem de prioridade alta são dispostos na frente da lista de previsor de vetor de movimento através da adição dos candidatos a previsor de vetor de movimento mvLXA, mvLXB e mvLXCol à lista de previsor de vetor de movimento mvpListLX de LX na ordem descendente das ordens de prioridade. Quando o número de elementos na lista de previsor de vetor de movimento é limitado em S306 da Figura 18, os elementos que têm a ordem de prioridade alta são deixados através da deleção do elemento disposto na traseira da lista de previsor de vetor de movimento da lista de previsor de vetor de movimento.
[00322] A lista de previsor de vetor de movimento mvpListLX tem uma estrutura de lista e é gerenciada pelo índice i que representa a localização na lista de previsor de vetor de movimento e inclui uma região de armazenamento que armazena o candidato a previsor de vetor de movimento correspondente ao índice i como um elemento. Um número do índice i inicia a partir de 0 e o candidato a previsor de vetor de movimento é armazenado na região de armazenamento da lista de previsor de vetor de movimento mvpListLX. No processo subsequente, o candidato a previsor de vetor de movimento que é o elemento do índice i adicionado à lista de previsor de vetor de movimento mvpListLX é representado por mvpListLX[i].
[00323] A seguir, o método de adição de processamento dos candidatos a previsor de vetor de movimento mvLXA, mvLXB e mvLXCol de LX à lista de previsor de vetor de movimento mvpListLX de LX em S304 da Figura 18 será descrito em detalhes. A Figura 31 é um procedimento de processo de adição de fluxograma que ilustra o candidato a previsor de vetor de movimento da etapa S304 da Figura 18.
[00324] Primeiro, o índice i da lista de previsor de vetor de movimento mvpListLX é definido como 0 (S3101). Quando availableFla- gLXA é 1 (SIM em S3102), a atualização é executada através da adição do candidato a previsor de vetor de movimento mvLXA de LX à posição correspondente ao índice i da lista de previsor de vetor de movimento mvpListLX (S3103) e da adição de 1 ao índice i (S3104).
[00325] Então, quando availableFlagLXB é 1 (SIM em S3105), a atualização é executada através da adição de o candidato a previsor de vetor de movimento mvLXB de LX à posição correspondente ao índice i da lista de previsor de vetor de movimento mvpListLXmvpListLX (S3106) e da adição de 1 ao índice i (S3107).
[00326] Então, quando availableFlagLXCol é 1 (SIM em S3108), o candidato a previsor de vetor de movimento mvLXCol de LX é adicionado à posição correspondente ao índice i da lista de previsor de vetor de movimento mvpListLX (S3109) e o processo de adição à lista de previsor de vetor de movimento termina.
[00327] No processo acima, os candidatos a previsor de vetor de movimento de LX são adicionados à lista de previsor de vetor de movimento mvpListLX de LX na ordem de mvLXA, mvLXB e mvLXCol, mas no caso em que o bloco de previsão que tem o tamanho menor que ou igual ao tamanho especificado e o número de candidato é 1, quando o modo de divisão (PartMode) é a divisão 2N x N (PART_2NxN) e o índice de divisão PartIdx é 0 ou quando o modo de divisão (PartMode) é a divisão N x 2N (PART_Nx2N) e o índice de divisão PartIdx é 1, os candidatos a previsor de vetor de movimento de LX são adicionados à lista de previsor de vetor de movimento mvpLis- tLX na ordem de mvLXB, mvLXA e mvLXCol e, dessa forma, na ordem que o previsor de vetor de movimento mvLXB que é propenso a ter um valor próximo ao vetor de movimento do bloco de previsão do alvo de codificação ou decodificação é facilmente selecionado, é adicionado à frente da lista de previsor de vetor de movimento e, dessa forma, a quantidade de codificação da diferença de vetor de movimento pode ser reduzida. Conforme descrito acima, a unidade de limitação de número de candidato a previsor de vetor de movimento 124 define a ordem de prioridade do candidato a previsor de vetor de movimento que permanece na lista de candidato a previsor de vetor de movimento de acordo com o modo de divisão para divisão do bloco de alvo de codificação ou decodificação nos blocos de previsão.
[00328] Quando o modo de divisão (PartMode) é a divisão 2N x N (PART_2NxN) conforme ilustrado na Figura 4B, o vetor de movimento do bloco de previsão no lado superior em que o índice de divisão Par- tIdx é 0 é propenso a ter o valor de vetor de movimento próximo ao previsor de vetor de movimento do grupo de bloco de previsão no lado superior adjacente ao lado longo e, dessa forma, a fim de que o candidato mvLXB do grupo de bloco de previsão no lado superior seja propenso a ser l preferencialmente selecionado, é adicionado à frente da lista de previsor de vetor de movimento e o vetor de movimento do bloco de previsão no lado inferior em que o índice de divisão PartIdx é 1 é propenso a ter o valor de vetor de movimento diferente do bloco de previsão no lado superior e, dessa forma, a fim de que o candidato a previsor de vetor de movimento mvLXA do grupo de bloco de previsão no lado esquerdo seja propenso a ser preferencialmente selecionado, é adicionado à frente da lista de previsor de vetor de movimento.
[00329] Quando o modo de divisão (PartMode) é a divisão N x 2N (PART_Nx2N) conforme ilustrado na Figura 4C, o vetor de movimento do bloco de previsão no lado esquerdo em que o índice de divisão PartIdx é 0 é propenso a ter o valor de vetor de movimento próximo ao previsor de vetor de movimento do grupo de bloco de previsão no lado esquerdo adjacente ao lado longo, e dessa forma a fim de que o candidato mvLXA do grupo de bloco de previsão no lado esquerdo seja propenso a ser preferencialmente selecionado, é adicionado à frente da lista de previsor de vetor de movimento e o vetor de movimento do bloco de previsão no lado direito em que o índice de divisão PartIdx é 1 é propenso a ter o valor de vetor de movimento diferente do bloco de previsão no lado esquerdo e dessa forma a fim de que o candidato a previsor de vetor de movimento mvLXB do grupo de bloco de previsão no lado superior seja propenso a ser preferencialmente selecionado, é adicionado à frente da lista de previsor de vetor de movimento.
[00330] A Figura 34 é um fluxograma que ilustra um procedimento de processo de adição de alteração adaptativa da ordem dos candidatos a previsor de vetor de movimento mvLXA, mvLXB e mvLXCol de LX de acordo com o tamanho do bloco de previsão, o modo de divisão (PartMode) e o índice de divisão PartIdx para adição à lista de previsor de vetor de movimento mvpListLX de LX.
[00331] Primeiro, quando o bloco de previsão tem o tamanho menor que ou igual ao tamanho especificado (SIM em S3201) e o modo de divisão (PartMode) é a divisão 2N x N (PART_2NxN) e o índice de divisão PartIdx é 0 ou o modo de divisão (PartMode) é a divisão N x 2N (PART_Nx2N) e o índice de divisão PartIdx é 1 (SIM em S3202), os candidatos a previsor de vetor de movimento de LX são adicionados à lista de previsor de vetor de movimento mvpListLX de LX na ordem de mvLXB, mvLXA e mvLXCol através do procedimento de processo da Figura 35 (S3203). Quando a condição acima não é satisfeita (NÃO em S3201 ou NÃO em S3202), os candidatos a previsor de vetor de movimento de LX são adicionados à lista de previsor de vetor de movimento mvpListLX de LX na ordem de mvLXA, mvLXB e mvLXCol através do procedimento de processo da Figura 31 (S3204).
[00332] A Figura 35 é um fluxograma que ilustra o procedimento de processo de adição dos candidatos a previsor de vetor de movimento à lista de previsor de vetor de movimento mvpListLX de LX na ordem de mvLXB, mvLXA e mvLXCol de LX de acordo com o tamanho do bloco de previsão, o modo de divisão (PartMode) e o índice de divisão PartIdx.
[00333] Primeiro, o índice i da lista de previsor de vetor de movimento mvpListLX é definido como 0 (S3301). Quando availableFla- gLXB é 1 (SIM em S3302), a atualização é executada através da adição de mvLXB à posição correspondente ao índice i da lista de previsor de vetor de movimento mvpListLX (S3303) e da adição de 1 ao índice i (S3304).
[00334] Então, quando availableFlagLXA é 1 (SIM em S3305), a atualização é executada através da adição de mvLXA à posição correspondente ao índice i da lista de previsor de vetor de movimento mvpListLXmvpListLX (S3306) e da adição de 1 ao índice i (S3307).
[00335] Então, quando availableFlagLXCol é 1 (SIM em S3308), mvLXCol é adicionado à posição correspondente ao índice i da lista de previsor de vetor de movimento mvpListLX (S3309) e o processo de adição à lista de previsor de vetor de movimento termina.
[00336] A seguir, um método de deleção de o candidato a previsor de vetor de movimento redundante na lista de previsor de vetor de movimento em S305 da Figura 18 será descrito em detalhes. A Figura 32 é um fluxograma que ilustra o procedimento de processo de deleção de candidato de redundância de previsor de vetor de movimento de S305 da Figura 18.
[00337] Quando o número de candidato final finalNumMVPCand é maior que 1 (SIM em S4101), as unidades de deleção de redundância de candidato a previsor de vetor de movimento 123 e 223 comparam os candidatos a vetor de movimento adicionados à lista de previsor de vetor de movimento mvpListLX (S4102) e quando existe uma pluralidade de candidatos a vetor de movimento que tem o mesmo valor ou valores próximos (SIM em S4103), os candidatos a vetor de movimento são determinados como sendo candidatos a vetor de movimento redundantes e deletam os candidatos a vetor de movimento redundantes exceto o candidato a vetor de movimento que tem a ordem mais baixa, ou seja, que tem o menor índice i (S4104). Adicionalmente, após os candidatos a vetor de movimento redundantes terem sido deletados, a região de armazenamento dos candidatos a previsor de vetor de movimento deletados na lista de previsor de vetor de movimento mvpLis- tLX está vazia e é preenchida na ordem dos candidatos a previsor de vetor de movimento que têm o menor índice i com base no índice i de 0 (S4105). Por exemplo, quando o candidato a previsor de vetor de movimento mvListLX[0] que tem o índice i de 0 é deletado e os candidatos a previsor de vetor de movimento mvListLX[1] e mvListLX[2] que têm os índices i de 1 e 2 permanecem, o candidato a previsor de vetor de mo- vimento mvListLX[1] que tem o índice i de 1 é alterado para candidato a previsor de vetor de movimento mvListLX[0] que tem o índice i de 0. Adicionalmente, o candidato a previsor de vetor de movimento mvLis- tLX[2] que tem o índice i de 2 é alterado para o candidato a previsor de vetor de movimento mvListLX[1] que tem o índice i de 1. Adicionalmente, o candidato a previsor de vetor de movimento mvListLX[2] que tem o índice i de 2 é definido como não existente.
[00338] Quando o número de candidato final finalNumMVPCand é 1 (NÃO em S4101), o processo de deleção de o candidato a previsor de vetor de movimento redundante em S305 é desnecessário e, dessa forma, o presente processo de deleção de candidato redundante termina. Isso se deve ao fato de que o número de candidato é limitado a 1 através do processo de limitação do número de elementos na etapa S306.
[00339] Quando o tamanho do bloco de previsão é pequeno, uma vez que o número de bloco de previsão por área de unidade é grande, o número de processos de deleção do candidato a previsor de vetor de movimento redundante é grande.
[00340] A esse respeito, na presente modalidade, quando o bloco de previsão do alvo de codificação ou decodificação tem o tamanho menor que ou igual ao tamanho especificado, o número de candidato final finalNumMVPCand é limitado a 1, o processo de deleção do candidato a previsor de vetor de movimento redundante é pulado e, dessa forma, a quantidade de processamento é reduzida.
[00341] Quando o número de candidato final finalNumMVPCand é 2, todos os candidatos a previsor de vetor de movimento mvpLXA, mvpLXB e mvpLXCol são adicionados à lista de previsor de vetor de movimento mvpListLX e, então, o número de candidato é 3, mvpLis- tLX[0] que é um elemento em que o índice de previsor de vetor de movimento da lista de previsor de vetor de movimento mvpListLX é 0 é mvpLXA, mvpListLX[1] que é um elemento em que o índice de previsor de vetor de movimento é 1 é mvpLXB, e mvpListLX[2] que é um elemento em que o índice de previsor de vetor de movimento é 2 é mvpLXCol. Nesse caso, a fim de comparar em rodízio, na etapa S4102, é necessário comparar mvpListLX[0] que é um elemento em que o índice de previsor de vetor de movimento da lista de previsor de vetor de movimento mvpListLX é 0 com mvpListLX[1] que é um elemento em que o índice de previsor de vetor de movimento é 1 e comparar mvpListLX[0] que é um elemento em que o índice de previsor de vetor de movimento da lista de previsor de vetor de movimento mvpListLX é 0 com mvpLis- tLX[2] que é um elemento em que o índice de previsor de vetor de movimento é 2, ou seja, dois processos de comparação são necessários. Entretanto, a fim de reduzir a quantidade de processamento, quando o número de candidato final finalNumMVPCand é 2, na etapa S4102, mvpListLX[0] que é um elemento em que o índice de previsor de vetor de movimento da lista de previsor de vetor de movimento mvpListLX é 0 pode ser comparado apenas com mvpListLX[1] que é um elemento em que o índice de previsor de vetor de movimento é 1, e quando se determina que existem candidatos a vetor de movimento redundantes, o elemento mvpListLX[1] em que o índice de previsor de vetor de movimento é 1 pode ser deletado e quando existe o elemento mvpListLX[2] em que o índice de previsor de vetor de movimento é 2, o índice de previsor de vetor de movimento correspondente pode ser definido como 1 para se tornar o elemento mvpListLX[1] em que o índice de previsor de vetor de movimento é 1, e, então, o presente processo pode terminar. Nesse caso, quando um novo elemento mvpListLX[0] em que o índice de previsor de vetor de movimento é 0 é comparado com o elemento mvpListLX[1] em que o índice de previsor de vetor de movimento é 1, há uma possibilidade de haver redundância, mas se for determinado que há redundância através da comparação dos dois elementos, mesmo quando um elemento é deletado e, então, o número de candidato se torna 1, o vetor de movimento que tem o valor de (0, 0) é adicionado como o elemento mvpListLX[1] em que o índice de previsor de vetor de movimento é 1 na etapa S306 que será descrito posteriormente e, então, o número de candidato se torna 2. Um vez que um mérito obtido através da deleção de um elemento e da adição do vetor de movimento que tem o valor de (0, 0) é considerado como pequeno, a quantidade de processamento pode ser reduzida através da comparação de mvpListLX[0] que é um elemento em que o índice de previsor de vetor de movimento é 0 apenas com mvpListLX[1] que é um elemento em que o índice de previsor de vetor de movimento é 1. Adicionalmente, uma vez que os candidatos a previsor de vetor de movimento espaciais mvpLXA e mvpLXB têm de modo similar a mesma informação de movimento uma vez que os candidatos a previsor de vetor de movimento são derivados dos blocos de previsão da mesma imagem, mas o candidato a previsor de vetor de movimento temporal mvpLXCol é propenso a ter informação de movimento diferente dos candidatos a previsor de vetor de movimento espaciais mvpLXA e mvpLXB uma vez que o candidato a previsor de vetor de movimento é derivado do bloco de previsão da imagem diferente. Dessa forma, mesmo quando uma comparação com o candidato a previsor de vetor de movimento temporal mvpLXCol é omitida, a influência da mesma é considerada pequena. Conforme descrito acima, quando o número de candidato final é 2, o candidato a previsor de vetor de movimento em que o índice de previsor de vetor de movimento é 0 é comparado com o candidato a previsor de vetor de movimento em que o índice de previsor de vetor de movimento é 1 e uma comparação com o candidato a previsor de vetor de movimento em que o índice de previsor de vetor de movimento é 2 é omitida e, dessa forma, o número de processos de determinação de condição para deletar o candidato redundante pode ser reduzido.
[00342] A seguir, um método de limitação do vetor de movimento número de candidato na lista de previsor de vetor de movimento em S306 da Figura 18 será descrito em detalhes. A Figura 33 é um fluxo- grama para descrever um procedimento de processo de limitação de número de candidato a previsor de vetor de movimento de S306 da Figura 18.
[00343] A unidade de limitação de número de candidato a previsor de vetor de movimento 124 e a unidade de limitação de número de candidato a previsor de vetor de movimento 224 limitam o número de candidato a previsor de vetor de movimento numMVPCandLX de LX adicionado à lista de previsor de vetor de movimento mvpListLX de LX ao número de candidato final especificado finalNumMVPCand.
[00344] Primeiro, o número de elementos adicionados à lista de previsor de vetor de movimento mvpListLX de LX é contado e definido como o número de candidato a previsor de vetor de movimento numMVPCandLX de LX (S5101).
[00345] Então, quando o número de candidato a previsor de vetor de movimento numMVPCandLX de LX é menor que o número de candidato final finalNumMVPCand (SIM em S5103), o vetor de movimento que tem o valor de (0, 0) é adicionado à posição na qual o índice i da lista de previsor de vetor de movimento mvpListLX de LX corresponde a numMVPCandLX (S5104) e 1 é adicionado a numMVPCandLX (S5105). Quando numMVPCandLX e finalNumMVPCand têm o mesmo valor (SIM em S5106), o presente processo de limitação termina, enquanto que quando numMVPCandLX é diferente de finalNumMVPCand (NÃO em S5106), o processo das etapas S5104 e S5105 é repetido até que numMVPCandLX seja igual a finalNumMVPCand. Em outras palavras, MV que tem o valor de (0, 0) é adicionado até que o número de candidato a previsor de vetor de movimento numMVPCandLX de LX alcance o número de candidato final finalNumMVPCand. Como MV que tem o valor de (0, 0) é repetidamente adicionado, o previsor de vetor de movimento pode ser decidido embora o índice de previsor de vetor de movimento tenha qualquer valor dentro de uma faixa que é maior que ou igual a 0 e menor que o número de candidato final finalNumMV- PCand.
[00346] Nesse ínterim, quando o número de candidato a previsor de vetor de movimento numMVPCandLX de LX é maior que o número de candidato final finalNumMVPCand (NÃO em S5103 e SIM em S5107), todos os candidatos a previsor de vetor de movimento em que o índice i da lista de previsor de vetor de movimento mvpListLX de LX é maior que (finalNumMVPCand - 1) são deletados (S5108) e o mesmo valor que finalNumMVPCand é definido como numMVPCandLX (S5109), e, então, o presente processo de limitação termina.
[00347] Quando o número de candidato a previsor de vetor de movimento numMVPCandLX de LX é igual ao número de candidato final finalNumMVPCand (NÃO em S5103 e NÃO em S5107), o presente processo de limitação termina sem executar o processo de limitação.
[00348] Na presente modalidade, o número de candidato final fi- nalNumMVPCand é especificado de acordo com o tamanho do bloco de previsão. Isso se deve ao fato de que quando o número de candidato a previsor de vetor de movimento adicionado à lista de previsor de vetor de movimento varia de acordo com o estado de construção da lista de previsor de vetor de movimento, é difícil executar a decodifi- cação por entropia no índice de previsor de vetor de movimento salvo se o lado de decodificação construir a lista de previsor de vetor de movimento. Adicionalmente, quando a decodificação por entropia depende do estado de construção da lista de previsor de vetor de movimento que inclui o candidato a previsor de vetor de movimento mvLXCol derivado de um bloco de previsão de uma imagem de um tempo diferente, há um problema em que quando um erro ocorre quando um fluxo de bit de uma outra imagem é decodificado, é difícil continuar normalmente a decodificação por entropia em um fluxo de bit de uma imagem atual devido à influência do erro. Quando um número fixo é especificado como o número de candidato final finalNumMVPCand de acordo com o tamanho de um bloco de previsão, é possível executar a decodificação por entropia no índice de previsor de vetor de movimento independentemente de construção da lista de previsor de vetor de movimento e mesmo quando um erro ocorre quando um fluxo de bit de uma outra imagem é decodificado, é possível continuar normalmente a decodifi- cação por entropia em um fluxo de bit de uma imagem atual sem influência do erro.
[00349] O fluxo de bit da imagem em movimento emitido pelo dispositivo de codificação de imagem em movimento de acordo com a modalidade tem um formato de dados específico que pode ser decodificado de acordo com um método de codificação usado na modalidade e o dispositivo de decodificação de imagem em movimento correspondente ao dispositivo de codificação de imagem em movimento pode decodificar o fluxo de bit que tem o formato de dados específico.
[00350] Quando uma rede sem fio ou com fio é usada para trocar o fluxo de bit entre o dispositivo de codificação de imagem em movimento e o dispositivo de decodificação de imagem em movimento, o fluxo de bit pode ser convertido para ter um formato de dados apropriado para uma forma de transmissão de uma trajetória de comunicação e, então, transmitido. Nesse caso, são fornecidos um dispositivo de transmissão de imagem em movimento que converte o fluxo de bit emitido pelo dispositivo de codificação de imagem em movimento em dados de codificação que têm o formato de dados apropriado para uma forma de transmissão de uma trajetória de transmissão e, então, transmite os dados de codificação para a rede e um dispositivo de recepção de imagem em movimento que recebe os dados de codificação da rede, reconstrói o fluxo de bit e supre o fluxo de bit reconstruído para o dispositivo de decodificação de imagem em movimento.
[00351] O dispositivo de transmissão de imagem em movimento inclui uma memória que armazena temporariamente o fluxo de bit emitido pelo dispositivo de codificação de imagem em movimento, uma unidade de processamento de pacote que empacota o fluxo de bit e uma unidade de transmissão que transmite os dados de codificação empacotados através da rede. O dispositivo de recepção de imagem em movimento inclui uma unidade de recepção que recebe os dados de codificação empacotados através da rede, uma memória que armazena temporariamente os dados de codificação recebidos e uma unidade de processamento de pacote que executa processamento de pacote nos dados de codificação para construir o fluxo de bit e fornece o construído fluxo de bit para o dispositivo de decodificação de imagem em movimento.
[00352] O processo relacionado a codificação e decodificação descrito acima pode ser implantado como dispositivos de transmissão, acúmulo e recepção com o uso de hardware e pode ser implantado por firmware armazenado em uma memória de somente leitura (ROM), uma memória flash ou similares ou software de um computador ou similares. Um programa de firmware e um programa de software podem ser gravados em meio de registro legível por computador e podem ser fornecidos a partir de um servidor através de uma rede com fio ou sem fio ou podem ser fornecidos como radiodifusão de dados de radiodifusão por satélite ou terrestre digital.
[00353] A modalidade da presente invenção foi descrita acima. A modalidade é um exemplo e um elemento versado na técnica pode considerar várias modificações ou alterações em uma combinação de respectivos componentes ou processos de processamento podem ser feitos, e tais modificações ou alterações se incluem no escopo da invenção.
[00354] 101 memória de imagem, 102 unidade de detecção de vetor de movimento, 103 unidade de cálculo de diferença de vetor de movimento, 104 unidade de estimação de informação de interprevisão, 105 unidade de previsão de compensação de movimento, 106 unidade de decisão de método de previsão, 107 unidade de construção de sinal residual, 108 unidade de quantificação/transformação ortogonal, 109 unidade de construção de primeiro fluxo de bit, 110 unidade de construção de segundo fluxo de bit, 111 unidade de multiplexação, 112 unidade de transformação ortogonal inversa/quantificação inversa, 113 unidade de sobreposição de sinal de imagem decodificada, 114 memória de armazenamento de informação de codificação, 115 memória de imagem decodificada, 121 unidade de construção de candidato a previsor de vetor de movimento, 122 unidade de adição de candidato a previsor de vetor de movimento, 123 unidade de deleção de candidato de redundância de previsor de vetor de movimento, 124 unidade de limitação de número de candidato a previsor de vetor de movimento, 125 unidade de cálculo de candidato a previsor de vetor de movimento quantidade de codificação, 126 unidade de seleção de previsor de vetor de movimento, 127 unidade de subtração de vetor de movimento, 201 unidade de demultiplexação, 202 unidade de decodificação de primeiro fluxo de bit, 203 unidade de decodificação de segundo fluxo de bit, 204 unidade de cálculo de vetor de movimento, 205 unidade de estimação de informação de interprevisão, 206 unidade de previsão de compensação de movimento, 207 unidade de transformação ortogonal inversa/quantificação inversa, 208 unidade de sobreposição de sinal de imagem decodificada, 209 memória de armazenamento de informação de codificação, 210 memória de imagem decodificada, 221 unidade de construção de candidato a previsor de vetor de movimento, 222 unidade de adição de candidato a previsor de vetor de movimento, 223 unidade de deleção de candidato de redundância de previsor de vetor de movimento, 224 unidade de limitação de número de candidato a previsor de vetor de movimento, 225 unidade de seleção de previsor de vetor de movimento, 226 unidade de adição de vetor de movimento.
[00355] A presente invenção pode ser usada em técnicas de codificação e decodificação de imagem em movimento, particularmente, em técnicas de codificação e decodificação de imagem em movimento que usam previsão de compensação de movimento.

Claims (4)

1. Dispositivo de codificação de imagem em movimento que codifica uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos dividindo-se cada imagem que compreende: uma unidade de construção de candidato a previsor de vetor de movimento que deriva primeiro e segundo candidatos a previsor de vetor de movimento do vetor de movimento de um dos blocos codificados adjacentes ao bloco-alvo de codificação na mesma imagem como o bloco-alvo de codificação e deriva um terceiro candidato a previsor de vetor de movimento de um vetor de movimento de um dos blocos de uma imagem codificada diferente do bloco-alvo de codificação; e uma unidade de adição de candidato a previsor de vetor de movimento que adiciona os primeiro a terceiro candidatos a previsor de vetor de movimento que satisfazem uma certa condição a uma lista de candidatos a previsor de vetor de movimento, uma unidade de determinação de candidato a previsor de vetor de movimento redundante que deleta o segundo candidato a previsor de vetor de movimento da lista de candidato a previsor de vetor de movimento quando os primeiro e segundo candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento pela unidade de adição de candidato a previsor de vetor de movimento têm os mesmos valores; uma unidade de limitação de candidato a previsor de vetor de movimento que adiciona um quarto candidato a previsor de vetor de movimento; uma unidade de seleção de previsor de vetor de movimento que decide um previsor de vetor de movimento do bloco-alvo de codificação com base na lista de candidatos a previsor de vetor de movimento; e uma unidade de codificação que codifica informações que representam o índice de previsor de vetor de movimento decidido na lista de candidatos a previsor de vetor de movimento, caracterizado pelo fato de que a unidade de limitação de candidato a previsor de vetor de movimento que adiciona repetidamente o quarto candidato a previsor de vetor de movimento tendo um mesmo valor à lista de candidatos a previsor de vetor de movimento até que o número de candidatos a previsor de vetor de movimento atinja um determinado número quando o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidatos a previsor de vetor de movimento é menor do que o determinado número (um número natural maior ou igual a 2).
2. Método de codificação de imagem em movimento de codificação de uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos dividindo-se cada imagem, que compreende: uma etapa de construção de candidato a previsor de vetor de movimento de derivação de primeiro e segundo candidatos a previsor de vetor de movimento do vetor de movimento de um dos blocos codificados adjacentes ao bloco-alvo de codificação na mesma imagem que o bloco-alvo de codificação e deriva um terceiro candidato a previsor de vetor de movimento de um vetor de movimento de um dos blocos de uma imagem codificada diferente do bloco-alvo de codificação; uma etapa de adição de candidato a previsor de vetor de movimento de adição dos primeiro a terceiro candidatos a previsor de vetor de movimento que satisfazem uma certa condição a uma lista de candidatos a previsor de vetor de movimento; uma unidade de determinação de candidato a previsor de vetor de movimento redundante que deleta o segundo candidato a previsor de vetor de movimento da lista de candidato a previsor de ve- tor de movimento quando os primeiro e segundo candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento pela unidade de adição de candidato a previsor de vetor de movimento têm os mesmos valores; uma etapa de limitação de candidato a previsor de vetor de movimento de adição de um quarto candidato a previsor de vetor de movimento; uma etapa de seleção de previsor de vetor de movimento de decisão de um previsor de vetor de movimento do bloco-alvo de codificação com base na lista de candidatos a previsor de vetor de movimento; e uma unidade de decodificação de informações de codificação que representam o índice de previsor de vetor de movimento decidido na lista de candidatos a previsor de vetor de movimento, caracterizado pelo fato de que a etapa de limitação de candidato a previsor de vetor de movimento de repetidamente adicionar o quarto candidato a previsor de vetor de movimento tendo um mesmo valor à lista de candidatos a previsor de vetor de movimento até que o número de candidatos a previsor de vetor de movimento atinja um determinado número quando o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidatos a previsor de vetor de movimento é menor do que o determinado número (um número natural maior ou igual a 2).
3. Dispositivo de decodificação de imagem em movimento que decodifica um fluxo de bit obtido através da codificação de uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos dividindo-se cada imagem que compreende: uma unidade de decodificação que decodifica informação que representa um índice de previsor de vetor de movimento a ser selecionado em uma lista de candidato a previsor de vetor de movimento; uma unidade de construção de candidato a previsor de vetor de movimento que deriva primeiro e segundo candidatos a previsor de vetor de movimento do vetor de movimento de um dos blocos decodificados adjacentes ao bloco-alvo de decodificação em uma mesma imagem que o bloco-alvo de decodificação e deriva um terceiro candidato a previsor de vetor de movimento de um vetor de movimento de um dos blocos de uma imagem decodificada diferente do bloco-alvo de decodificação; uma unidade de adição de candidato a previsor de vetor de movimento que adiciona primeiro a terceiro candidatos a previsor de vetor de movimento que satisfazem uma certa condição a uma lista de candidatos a previsor de vetor de movimento; uma unidade de determinação de candidato a previsor de vetor de movimento redundante que deleta o segundo candidato a previsor de vetor de movimento da lista de candidato a previsor de vetor de movimento quando os primeiro e segundo candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento pela unidade de adição de candidato a previsor de vetor de movimento têm os mesmos valores; uma unidade de limitação de candidato a previsor de vetor de movimento que adiciona um quarto candidato a previsor de vetor de movimento; e uma unidade de seleção de previsor de vetor de movimento de seleção de um previsor de vetor de movimento do bloco-alvo de decodificação da lista candidato de previsor de vetor de movimento com base na informação decodificada que representa um índice de previsor de vetor de movimento a ser selecionado, caracterizado pelo fato de que a unidade de limitação de candidato a previsor de vetor de movimento que adiciona repetidamente o quarto candidato a previsor de vetor de movimento tendo um mesmo valor à lista de candidatos a previsor de vetor de movimento até que o número de candidatos a previsor de vetor de movimento atinja um determinado número quando o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidatos a previsor de vetor de movimento é menor do que o determinado número (um número natural maior ou igual a 2).
4. Método de decodificação de imagem em movimento que decodifica um fluxo de bit obtido através da codificação de uma imagem em movimento com o uso de um vetor de movimento em unidades de blocos obtidos dividindo-se cada imagem que compreende: uma etapa de decodificação que decodifica informação que representa um índice de previsor de vetor de movimento a ser selecionado em uma lista de candidato a previsor de vetor de movimento; uma etapa de construção de candidato a previsor de vetor de movimento de derivação de primeiro e segundo candidatos a previsor de vetor de movimento do vetor de movimento de um dos blocos decodificados adjacentes ao bloco-alvo de decodificação em uma mesma imagem que o bloco-alvo de decodificação e derivação de um terceiro candidato a previsor de vetor de movimento de um vetor de movimento de um dos blocos de uma imagem decodificada diferente do bloco-alvo de decodificação; uma etapa de adição de candidato a previsor de vetor de movimento de adição de primeiro a terceiro candidatos a previsor de vetor de movimento que satisfazem uma certa condição a uma lista de candidatos a previsor de vetor de movimento; uma etapa de determinação de candidato a previsor de vetor de movimento redundante de deleção do segundo candidato a previsor de vetor de movimento da lista de candidato a previsor de vetor de movimento quando os primeiro e segundo candidatos a previsor de vetor de movimento adicionados à lista de candidato a previsor de vetor de movimento pela unidade de adição de candidato a previsor de vetor de movimento têm os mesmos valores; uma etapa de limitação de candidato a previsor de vetor de movimento que adiciona um quarto candidato a previsor de vetor de movimento; e uma etapa de seleção de previsor de vetor de movimento de decisão de um previsor de vetor de movimento do bloco-alvo de decodificação com base na lista de candidatos a previsor de vetor de movimento, caracterizado pelo fato de que a etapa de limitação de candidato a previsor de vetor de movimento de repetidamente adicionar o quarto candidato a previsor de vetor de movimento tendo um mesmo valor à lista de candidatos a previsor de vetor de movimento até que o número de candidatos a previsor de vetor de movimento atinja um determinado número quando o número dos candidatos a previsor de vetor de movimento adicionados à lista de candidatos a previsor de vetor de movimento é menor do que o determinado número (um número natural maior ou igual a 2).
BR112014007492-5A 2011-09-28 2012-09-28 Dispositivo de codificação de imagem em movimento, método de codificação de imagem em movimento, dispositivo de decodificação de imagem em movimento e método de decodificação de imagem em movimento BR112014007492B1 (pt)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
JP2011-212015 2011-09-28
JP2011-212014 2011-09-28
JP2011212014 2011-09-28
JP2011212015 2011-09-28
JP2012-214685 2012-09-27
JP2012214684A JP5884697B2 (ja) 2011-09-28 2012-09-27 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP2012214685A JP5488666B2 (ja) 2011-09-28 2012-09-27 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
JP2012-214684 2012-09-27
PCT/JP2012/006225 WO2013046707A1 (ja) 2011-09-28 2012-09-28 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム

Publications (2)

Publication Number Publication Date
BR112014007492A2 BR112014007492A2 (pt) 2017-04-04
BR112014007492B1 true BR112014007492B1 (pt) 2023-01-10

Family

ID=49032585

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014007492-5A BR112014007492B1 (pt) 2011-09-28 2012-09-28 Dispositivo de codificação de imagem em movimento, método de codificação de imagem em movimento, dispositivo de decodificação de imagem em movimento e método de decodificação de imagem em movimento

Country Status (4)

Country Link
US (5) US9674549B2 (pt)
KR (5) KR101711355B1 (pt)
BR (1) BR112014007492B1 (pt)
TW (5) TW201626802A (pt)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012111325A1 (ja) * 2011-02-17 2012-08-23 パナソニック株式会社 映像符号化装置、映像符号化方法、映像符号化プログラム、映像再生装置、映像再生方法及び映像再生プログラム
EP3937497B1 (en) * 2011-03-21 2023-02-22 LG Electronics, Inc. Motion vector predictor selection
PL2847996T3 (pl) 2012-05-09 2021-04-19 Sun Patent Trust Sposoby wykonywania predykcji wektora ruchu, sposoby kodowania i dekodowania oraz służące do tego urządzenia
US9247271B2 (en) * 2012-10-08 2016-01-26 Inria Institut National De Recherche En Informatique Et En Automatique Method and device for motion information prediction in multi-view video coding
JP2014093602A (ja) * 2012-11-01 2014-05-19 Toshiba Corp 画像処理装置、画像処理方法、画像処理プログラム、および立体画像表示装置
WO2016068685A1 (ko) * 2014-10-31 2016-05-06 삼성전자 주식회사 고정밀 스킵 부호화를 이용한 비디오 부호화 장치 및 비디오 복호화 장치 및 그 방법
WO2016137149A1 (ko) * 2015-02-24 2016-09-01 엘지전자(주) 폴리곤 유닛 기반 영상 처리 방법 및 이를 위한 장치
WO2017195608A1 (ja) * 2016-05-13 2017-11-16 シャープ株式会社 動画像復号装置
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
AU2016425069B2 (en) * 2016-09-30 2022-03-03 Huawei Technologies Co., Ltd. Method and apparatus for image coding and decoding through inter prediction
US10735758B2 (en) * 2017-12-07 2020-08-04 Tencent America LLC Method and apparatus for video coding
WO2019147067A1 (ko) * 2018-01-26 2019-08-01 한국전자통신연구원 시간적 움직임 정보를 이용하는 영상 부호화 및 영상 복호화를 위한 방법 및 장치
US11425390B2 (en) * 2018-01-26 2022-08-23 Electronics And Telecommunications Research Institute Method and apparatus for image encoding and image decoding using temporal motion information
WO2019151093A1 (en) * 2018-01-30 2019-08-08 Sharp Kabushiki Kaisha Systems and methods for performing motion vector prediction for video coding using motion vector predictor origins
US11470346B2 (en) * 2018-05-09 2022-10-11 Sharp Kabushiki Kaisha Systems and methods for performing motion vector prediction using a derived set of motion vectors
WO2019221103A1 (ja) 2018-05-17 2019-11-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
CN110662072B (zh) * 2018-06-29 2022-04-26 杭州海康威视数字技术股份有限公司 运动信息候选者列表构建方法、装置及可读存储介质
US10715812B2 (en) * 2018-07-13 2020-07-14 Tencent America LLC Method and apparatus for video coding
EP3855738A4 (en) * 2018-09-17 2022-07-20 Samsung Electronics Co., Ltd. METHOD FOR ENCODING AND DECODING MOTION INFORMATION AND APPARATUS FOR ENCODING AND DECODING MOTION INFORMATION
US11758164B2 (en) * 2018-10-23 2023-09-12 Tencent America LLC Method and apparatus for video coding
WO2020117016A1 (ko) * 2018-12-06 2020-06-11 엘지전자 주식회사 인터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
CA3190343A1 (en) * 2018-12-12 2020-06-18 Lg Electronics Inc. Method and apparatus for processing video signal based on history based motion vector prediction
US11196988B2 (en) 2018-12-17 2021-12-07 Apple Inc. Reference picture management and list construction
CN112470476A (zh) * 2018-12-28 2021-03-09 Jvc建伍株式会社 图像编码装置、图像编码方法、图像编码程序、图像解码装置、图像解码方法及图像解码程序
WO2020139184A1 (en) * 2018-12-28 2020-07-02 Telefonaktiebolaget Lm Ericsson (Publ) Generating a motion vector predictor list
US11032574B2 (en) 2018-12-31 2021-06-08 Tencent America LLC Method and apparatus for video coding
WO2020187062A1 (zh) * 2019-03-18 2020-09-24 华为技术有限公司 用于融合运动矢量差技术的优化方法、装置及编解码器
CN111726617B (zh) * 2019-03-18 2024-03-15 华为技术有限公司 用于融合运动矢量差技术的优化方法、装置及编解码器
US11528504B2 (en) * 2019-07-11 2022-12-13 Qualcomm Incorporated Motion vector prediction with motion information collecting buffer

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3621742B2 (ja) * 1995-03-20 2005-02-16 新日本製鐵株式会社 加熱硬化型塗料の加熱鋼管への塗装方法
JP4150742B2 (ja) 2002-01-09 2008-09-17 松下電器産業株式会社 動きベクトル復号化方法
JP2004007379A (ja) * 2002-04-10 2004-01-08 Toshiba Corp 動画像符号化方法及び動画像復号化方法
WO2004008775A1 (ja) * 2002-07-15 2004-01-22 Hitachi, Ltd. 動画像符号化方法及び復号化方法
JP3879741B2 (ja) * 2004-02-25 2007-02-14 ソニー株式会社 画像情報符号化装置および画像情報符号化方法
US8761259B2 (en) * 2005-09-22 2014-06-24 Qualcomm Incorporated Multi-dimensional neighboring block prediction for video encoding
EP2079242A4 (en) * 2006-10-30 2010-11-03 Nippon Telegraph & Telephone METHOD FOR GENERATING PREDICTIVE REFERENCE INFORMATION, DYNAMIC IMAGE ENCODING AND DECODING METHOD, DEVICE THEREOF, PROGRAM THEREOF, AND STORAGE MEDIUM CONTAINING THE PROGRAM
JP2009164880A (ja) * 2008-01-07 2009-07-23 Mitsubishi Electric Corp トランスコーダ及び受信機
JP5422168B2 (ja) * 2008-09-29 2014-02-19 株式会社日立製作所 動画像符号化方法および動画像復号化方法
TW201130311A (en) * 2009-06-10 2011-09-01 Panasonic Corp Image encoding method, image decoding method, and devices therefor
KR101452859B1 (ko) * 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
KR101768207B1 (ko) * 2010-01-19 2017-08-16 삼성전자주식회사 축소된 예측 움직임 벡터의 후보들에 기초해 움직임 벡터를 부호화, 복호화하는 방법 및 장치
US9485518B2 (en) 2011-05-27 2016-11-01 Sun Patent Trust Decoding method and apparatus with candidate motion vectors
CA2834191C (en) * 2011-05-31 2019-04-09 Panasonic Corporation Video encoding method, video encoding device, video decoding method, video decoding device, and video encoding/decoding device
EP2723076A4 (en) * 2011-06-14 2015-03-04 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR ENCODING MOVEMENT INFORMATION, AND METHOD AND APPARATUS FOR DECODING THE SAME
JP5488666B2 (ja) 2011-09-28 2014-05-14 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
WO2013108613A1 (ja) 2012-01-17 2013-07-25 パナソニック株式会社 動画像符号化方法、動画像復号化方法、動画像符号化装置、動画像復号化装置および動画像符号化復号化装置

Also Published As

Publication number Publication date
TWI577184B (zh) 2017-04-01
KR101617974B1 (ko) 2016-05-03
US9661343B2 (en) 2017-05-23
BR112014007492A2 (pt) 2017-04-04
TW201626802A (zh) 2016-07-16
US20140205014A1 (en) 2014-07-24
TWI586155B (zh) 2017-06-01
TWI562616B (pt) 2016-12-11
KR101809881B1 (ko) 2017-12-15
TW201703532A (zh) 2017-01-16
US9924194B2 (en) 2018-03-20
TWI575945B (zh) 2017-03-21
US9866865B2 (en) 2018-01-09
US20170230683A1 (en) 2017-08-10
TWI523496B (zh) 2016-02-21
KR20170021922A (ko) 2017-02-28
US20160269744A1 (en) 2016-09-15
KR101809879B1 (ko) 2017-12-15
US20170230682A1 (en) 2017-08-10
TW201322773A (zh) 2013-06-01
US20170238006A1 (en) 2017-08-17
KR101711355B1 (ko) 2017-02-28
US9866864B2 (en) 2018-01-09
KR20160054021A (ko) 2016-05-13
TW201703534A (zh) 2017-01-16
TW201703533A (zh) 2017-01-16
US9674549B2 (en) 2017-06-06
KR20170023204A (ko) 2017-03-02
KR20170023203A (ko) 2017-03-02
KR101809880B1 (ko) 2017-12-15
KR20140065013A (ko) 2014-05-28

Similar Documents

Publication Publication Date Title
BR112014007492B1 (pt) Dispositivo de codificação de imagem em movimento, método de codificação de imagem em movimento, dispositivo de decodificação de imagem em movimento e método de decodificação de imagem em movimento
JP5884936B1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法、及び送信プログラム
BR112014013969B1 (pt) Dispositivo de codificação de vídeo, método de codificação de vídeo, programa de codificação de vídeo, dispositivo de decodificação de vídeo, método de decodificação de vídeo, programa de decodificação de vídeo
JP5488666B2 (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
JP5747816B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP5962877B1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
BR122020015070B1 (pt) Dispositivo de decodificação de imagem em movimento e método de decodificação de imagem em movimento
JP2013131918A (ja) 動画像復号装置、動画像復号方法及び動画像復号プログラム
JP5617834B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5962875B1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP5962876B1 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP2013131917A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2013192081A (ja) 動画像復号装置、動画像復号方法及び動画像復号プログラム
JP2013192080A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2013132047A (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法、及び送信プログラム

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Ipc: H04N 19/52 (2014.01), H04N 19/105 (2014.01), H04N

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
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 28/09/2012, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.