BR112021004690A2 - dispositivo de conversão em código de imagem em movimento, método de conversão em código 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 conversão em código de imagem em movimento, método de conversão em código 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
BR112021004690A2
BR112021004690A2 BR112021004690-9A BR112021004690A BR112021004690A2 BR 112021004690 A2 BR112021004690 A2 BR 112021004690A2 BR 112021004690 A BR112021004690 A BR 112021004690A BR 112021004690 A2 BR112021004690 A2 BR 112021004690A2
Authority
BR
Brazil
Prior art keywords
motion vector
merge candidate
mode
merge
vector predictor
Prior art date
Application number
BR112021004690-9A
Other languages
English (en)
Other versions
BR112021004690B1 (pt
Inventor
Shigeru Fukushima
Toru Kumakura
Hideki Takehara
Hiroya Nakamura
Satoru Sakazume
Hiroyuki Kurashige
Original Assignee
Jvckenwood 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
Application filed by Jvckenwood Corporation filed Critical Jvckenwood Corporation
Publication of BR112021004690A2 publication Critical patent/BR112021004690A2/pt
Publication of BR112021004690B1 publication Critical patent/BR112021004690B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/583Motion compensation with overlapping blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

"DISPOSITIVO DE CONVERSÃO EM CÓDIGO DE IMAGEM EM MOVIMENTO, MÉTODO DE CONVERSÃO EM CÓDIGO DE IMAGEM EM MOVIMENTO, DISPOSITIVO DE DECODIFICAÇÃO DE IMAGEM EM MOVIMENTO E MÉTODO DEDECODIFICAÇÃO DE IMAGEM EM MOVIMENTO". A presente invenção é dotada de: uma unidade de construção de lista de candidato de mesclagem triangular que constrói uma lista de candidato de mesclagem triangular que inclui candidatos de mesclagem espacial; uma primeira unidade de seleção de candidato de mesclagem triangular que seleciona um primeiro candidato de mesclagem triangular submetido à uniprevisão a partir de uma lista de candidato de mesclagem triangular; e uma segunda unidade de seleção de candidato de mesclagem triangular que seleciona um segundo candidato de mesclagem triangular submetido à uniprevisão a partir da lista de candidato de mesclagem triangular, em que, para uma região na qual a compensação de movimento é realizada através de uma média ponderada do primeiro candidato de mesclagem triangular e do segundo candidato de mesclagem triangular, o armazenamento é realizado com uso de informações de movimento de uniprevisão do primeiro candidato de mesclagem triangular ou do segundo candidato de mesclagem triangular.

Description

Relatório Descritivo da Patente de Invenção para "DISPO- SITIVO DE CONVERSÃO EM CÓDIGO DE IMAGEM EM MOVIMEN- TO, MÉTODO DE CONVERSÃO EM CÓDIGO DE IMAGEM EM MO- VIMENTO, DISPOSITIVO DE DECODIFICAÇÃO DE IMAGEM EM
MOVIMENTO E MÉTODO DE DECODIFICAÇÃO DE IMAGEM EM MOVIMENTO". ANTECEDENTES
[0001] A presente invenção refere-se a técnicas de conversão em código e decodificação de imagem, em que uma imagem é dividida em blocos e é realizada a previsão.
[0002] Na conversão em código e decodificação de uma imagem, uma imagem-alvo é dividida em blocos, sendo que cada um é um gru- po de um número predeterminado de amostras, e o processamento é realizado em unidades de blocos. Dividir uma imagem em blocos apropriados com configurações apropriadas de intraprevisão e inter- previsão permite melhorar a eficiência de conversão em código.
[0003] A conversão em código/decodificação de uma imagem em movimento usa a interprevisão que realiza a previsão a partir de uma imagem de convertida em código/decodificada, o que melhora, desse modo, a eficiência de conversão em código. A Literatura de Patentes 1 descreve uma técnica de aplicação de uma transformada afim no mo- mento da interprevisão. As imagens em movimento frequentemente envolvem deformação de objeto, como ampliação/ redução ou rotação, e, desse modo, a aplicação da técnica, no Documento de Patente 1, permite uma conversão em código eficiente. [Documento de Patente 1] JP 9-172644 A.
SUMÁRIO
[0004] Infelizmente, no entanto, a técnica do Documento de Paten- te 1 envolve transformação de imagem, o que leva a um problema de carga de processamento pesada. A presente invenção foi produzida tendo em vista o problema acima, e fornece uma carga baixa e uma técnica de conversão em código eficiente.
[0005] Em um aspecto da presente invenção para solucionar o problema acima, é fornecida uma técnica que inclui: um construtor de lista de candidato de mesclagem triangular estruturado para construir uma lista de candidato de mesclagem triangular que inclui os candida- tos de mesclagem espacial; um primeiro seletor de candidato de mes- clagem triangular estruturado para selecionar, a partir da lista de can- didato de mesclagem triangular, um primeiro candidato de mesclagem triangular que seja uniprevisão; e um segundo seletor de candidato de mesclagem triangular estruturado para selecionar, a partir da lista de candidato de mesclagem triangular, um segundo candidato de mes- clagem triangular que seja uniprevisão, em que, em uma região na qual a compensação de movimento pela média ponderada pelo primei- ro candidato de mesclagem triangular e pelo segundo candidato de mesclagem triangular é realizada, as informações de movimento de uniprevisão de um dentre o primeiro candidato de mesclagem triangu- lar ou o segundo candidato de mesclagem triangular são salvas.
[0006] De acordo com a presente invenção, é possível alcançar o processo de conversão em código/decodificação de imagem de carga altamente eficiente e baixa.
BREVE DESCRIÇÃO DOS DESENHOS
[0007] A Figura 1 é um diagrama de blocos de um dispositivo de conversão em código de imagem, de acordo com uma modalidade da presente invenção.
[0008] A Figura 2 é um diagrama de blocos de um dispositivo de decodificação de imagem, de acordo com uma modalidade da presen- te invenção.
[0009] A Figura 3 é um fluxograma que ilustra a operação de divi- são de um bloco de árvore.
[0010] A Figura 4 é um diagrama que ilustra um estado de divisão de uma imagem de entrada em blocos de árvore.
[0011] A Figura 5 é um diagrama que ilustra a varredura em z.
[0012] A Figura 6A é um diagrama que ilustra um formato dividido de um bloco.
[0013] A Figura 6B é um diagrama que ilustra um formato dividido de um bloco.
[0014] A Figura 6C é um diagrama que ilustra um formato dividido de um bloco.
[0015] A Figura 6D é um diagrama que ilustra um formato dividido de um bloco.
[0016] A Figura 6E é um diagrama que ilustra um formato dividido de um bloco.
[0017] A Figura 7 é um fluxograma que ilustra a operação de divi- dir um bloco em quatro.
[0018] A Figura 8 é um fluxograma que ilustra a operação de divi- dir um bloco em dois ou três.
[0019] A Figura 9 é a sintaxe para expressar o formato de divisão de blocos.
[0020] A Figura 10A é um diagrama que ilustra a intraprevisão.
[0021] A Figura 10B é um diagrama que ilustra a intraprevisão.
[0022] A Figura 11 é um diagrama que ilustra blocos de referência para interprevisão.
[0023] A Figura 12A é a sintaxe para expressar um modo de previ- são de bloco de conversão em código.
[0024] A Figura 12B é a sintaxe para expressar o modo de previ- são do bloco de conversão em código.
[0025] A Figura 13 é um diagrama que ilustra uma correspondên- cia entre os elementos de sintaxe e os modos relacionados à interpre- visão.
[0026] A Figura 14 é um diagrama que ilustra a compensação de movimento afim em dois pontos de controle.
[0027] A Figura 15 é um diagrama que ilustra a compensação de movimento afim em três pontos de controle.
[0028] A Figura 16 é um diagrama de blocos de uma configuração detalhada de uma unidade de interprevisão 102, na Figura 1.
[0029] A Figura 17 é um diagrama de blocos de uma configuração detalhada de uma unidade de derivação do modo de previsor de vetor de movimento normal 301, na Figura 16.
[0030] A Figura 18 é um diagrama de blocos de uma configuração detalhada de uma unidade de derivação de modo de mesclagem nor- mal 302, na Figura 16.
[0031] A Figura 19 é um fluxograma que ilustra um processo de derivação de modo de previsor de vetor de movimento normal da uni- dade de derivação de modo de previsor de vetor de movimento normal 301, na Figura 16.
[0032] A Figura 20 é um fluxograma que ilustra um procedimento de processamento do processo de derivação de modo de previsor de vetor de movimento normal.
[0033] A Figura 21 é um fluxograma que ilustra um procedimento de processamento de um processo de derivação de modo de mescla- gem normal.
[0034] A Figura 22 é um diagrama de blocos de uma configuração detalhada de uma unidade interprevisão 203, na Figura 2.
[0035] A Figura 23 é um diagrama de blocos de uma configuração detalhada de uma unidade de derivação de modo de previsão de vetor de movimento normal 401, na Figura 22.
[0036] A Figura 24 é um diagrama de blocos de uma configuração detalhada de uma unidade de derivação de modo de mesclagem nor- mal 402, na Figura 22.
[0037] A Figura 25 é um fluxograma que ilustra um processo de derivação de modo de previsor de vetor de movimento normal de uma unidade de derivação de modo de previsor de vetor de movimento normal 401, na Figura 22.
[0038] A Figura 26 é um diagrama que ilustra um procedimento de processamento de inicialização/ atualização de lista de candidato de previsor de vetor de movimento baseado em histórico.
[0039] A Figura 27 é um fluxograma de um procedimento de pro- cessamento de confirmação de elemento idêntico, no procedimento de processamento de inicialização/ atualização de lista de candidato de previsor de vetor de movimento baseado em histórico.
[0040] A Figura 28 é um fluxograma de um procedimento de pro- cessamento de deslocamento de elemento no procedimento de pro- cessamento de inicialização/ atualização da lista de candidato de pre- visor de vetor de movimento baseado em histórico.
[0041] A Figura 29 é um fluxograma que ilustra um procedimento de processamento de derivação de candidato de previsor de vetor de movimento baseado em histórico.
[0042] A Figura 30 é um fluxograma que ilustra um procedimento de processamento de derivação de candidato de mesclagem baseado em histórico.
[0043] A Figura 31A é um diagrama que ilustra um exemplo de um processo de atualização de lista de candidato de previsor de vetor de movimento baseado em histórico.
[0044] A Figura 31B é um diagrama que ilustra um exemplo de um processo de atualização de lista de candidato de previsor de vetor de movimento baseado em histórico.
[0045] A Figura 31C é um diagrama que ilustra um exemplo de um processo de atualização de lista candidato de previsor de vetor de mo- vimento baseado em histórico.
[0046] A Figura 32 é um diagrama que ilustra a previsão de com- pensação de movimento em um caso em que a previsão L0 é realiza- da, e uma imagem de referência (RefL0Pic) de L0 está, em um mo- mento, antes de uma imagem-alvo (CurPic).
[0047] A Figura 33 é um diagrama que ilustra a previsão da com- pensação de movimento em um caso em que a previsão L0 é realiza- da, e uma imagem de referência da previsão L0 está, em um momen- to, depois da imagem-alvo.
[0048] A Figura 34 é um diagrama que ilustra uma direção de pre- visão da previsão de compensação de movimento em biprevisão, em que uma imagem de referência de previsão L0 está, em um momento, antes da imagem-alvo, e uma imagem de referência de previsão L1 está, em um momento, depois da imagem-alvo.
[0049] A Figura 35 é um diagrama que ilustra uma direção de pre- visão da previsão de compensação de movimento na biprevisão, em que uma imagem de referência de previsão L0 e uma imagem de refe- rência de previsão L1 estão, em um momento, antes da imagem-alvo.
[0050] A Figura 36 é um diagrama que ilustra uma direção de pre- visão da previsão da compensação de movimento na biprevisão, em que uma imagem de referência de previsão L0 e uma imagem de refe- rência de previsão L1 estão, em um momento, depois da imagem-alvo.
[0051] A Figura 37 é um diagrama que ilustra um exemplo de uma configuração de hardware de um dispositivo de conversão em código e de decodificação, de acordo com uma modalidade da presente inven- ção.
[0052] A Figura 38A é um diagrama que ilustra a previsão de um modo de mesclagem triangular.
[0053] A Figura 38B é um diagrama que ilustra a previsão do mo- do de mesclagem triangular.
[0054] A Figura 39 é um fluxograma que ilustra um procedimento de processamento de derivação de candidato de mesclagem média.
[0055] A Figura 40 é um fluxograma que ilustra a derivação de candidato de mesclagem triangular.
[0056] A Figura 41 é um fluxograma que ilustra a derivação das informações de movimento uniprevisão de um fracionamento triangular de mesclagem 0, de acordo com a presente modalidade.
[0057] A Figura 42 é um fluxograma que ilustra a derivação de in- formações de movimento de uniprevisão de um fracionamento triangu- lar de mesclagem 1, na modalidade da presente invenção.
[0058] A Figura 43A é um diagrama que ilustra a ponderação no modo de mesclagem triangular.
[0059] A Figura 43B é um diagrama que ilustra a ponderação no modo de mesclagem triangular.
[0060] A Figura 44A é um diagrama que ilustra fracionamentos no modo de mesclagem triangular.
[0061] A Figura 44B é um diagrama que ilustra fracionamentos no modo de mesclagem triangular.
[0062] A Figura 44C é um diagrama que ilustra fracionamentos no modo de mesclagem triangular.
[0063] A Figura 44D é um diagrama que ilustra fracionamentos no modo de mesclagem triangular.
[0064] A Figura 44E é um diagrama que ilustra fracionamentos no modo de mesclagem triangular.
[0065] A Figura 44F é um diagrama que ilustra fracionamentos no modo de mesclagem triangular.
[0066] A Figura 45A é um diagrama que ilustra as informações armazenadas no modo de mesclagem triangular.
[0067] A Figura 45B é um diagrama que ilustra informações arma- zenadas no modo de mesclagem triangular.
[0068] A Figura 46A é um diagrama que ilustra as informações armazenadas no modo de mesclagem triangular.
[0069] A Figura 46B é um diagrama que ilustra as informações armazenadas no modo de mesclagem triangular.
[0070] A Figura 47A é um diagrama que ilustra as informações armazenadas no modo de mesclagem triangular.
[0071] A Figura 47B é um diagrama que ilustra as informações armazenadas no modo de mesclagem triangular.
[0072] A Figura 48A é um diagrama que ilustra as informações armazenadas no modo de mesclagem triangular.
[0073] A Figura 48B é um diagrama que ilustra as informações armazenadas no modo de mesclagem triangular.
DESCRIÇÃO DETALHADA
[0074] As tecnologias e os termos técnicos usados na presente modalidade serão definidos.
BLOCO DE ÁRVORE
[0075] Na modalidade, uma imagem-alvo de processo de conver- são em código/ decodificação (imagem-alvo de processamento) é igualmente dividida em um tamanho predeterminado. Essa unidade é definida como um bloco de árvore. Embora a Figura 4 configure o ta- manho do bloco de árvore em amostras de 128 × 128, o tamanho do bloco de árvore não se limita a isso, e pode ser configurado para qual- quer tamanho. O bloco-alvo de árvore (que corresponde a um alvo de conversão em código, no processo de conversão em código, e a um alvo de decodificação, no processo de decodificação) é alternado em ordem de varredura matricial, ou seja, da esquerda para a direita e de cima para baixo. O interior de cada bloco de árvore pode ser adicio- nalmente dividido de modo recursivo. Um bloco de conversão em có- digo/ decodificação, como resultado da divisão recursiva do bloco de árvore, é definido como um bloco de conversão em código. Um bloco de árvore e um bloco de conversão em código são definidos coletiva-
mente como um bloco. A execução da divisão de blocos apropriada permite a conversão em código eficiente. O tamanho do bloco de árvo- re pode ser um valor fixo determinado antecipadamente pelo dispositi- vo de conversão em código e pelo dispositivo de decodificação, ou é possível adotar uma configuração, na qual o tamanho do bloco de ár- vore determinado pelo dispositivo de conversão em código é transmiti- do ao dispositivo de decodificação. No presente documento, o tama- nho máximo do bloco de árvore é de amostras de 128 × 128, e o ta- manho mínimo do bloco de árvore é de amostras de 16 × 16. O tama- nho máximo do bloco de conversão em código é de amostras de 64 × 64 e o tamanho mínimo do bloco de conversão em código é de amos- tras de 4 × 4.
MODO DE PREVISÃO
[0076] A alternância é realizada entre a intraprevisão (MODE_IN- TRA) da previsão de desempenho a partir de um sinal de imagem pro- cessado de uma imagem-alvo e uma interprevisão (MODE_INTER) de previsão de desempenho a partir de um sinal de imagem de uma ima- gem processado em unidades de blocos-alvo de conversão em código.
[0077] A imagem processada é usada, no processo de conversão em código, para uma imagem obtida decodificando-se um sinal con- vertido em código, um sinal de imagem, um bloco de árvore, um bloco, um bloco de conversão em código ou similares. A imagem processada é usada, no processo de decodificação, para uma imagem decodifica- da, um sinal de imagem, um bloco de árvore, um bloco, um bloco de conversão em código ou similares.
[0078] Um modo de identificação da intraprevisão (MODE_INTRA) e da interprevisão (MODE_INTER) é definido como um modo de previ- são (PredMode). O modo de previsão (PredMode) tem intraprevisão (MODE_INTRA) ou interprevisão (MODE_INTER) como um valor.
INTERPREVISÃO
[0079] Na interprevisão, em que a previsão é realizada a partir de um sinal de imagem de uma imagem processada, é possível usar uma pluralidade de imagens processadas como imagens de referência. A fim de gerenciar uma pluralidade de imagens de referência, dois tipos de listas de referência L0 (lista de referência 0) e L1 (lista de referência 1) são definidos. Uma imagem de referência é especificada com uso de um índice de referência em cada uma das listas. Na fatia P, a pre- visão L0 (Pred_L0) é usável. Na fatia B, a previsão L0 (Pred_L0), a previsão L1 (Pred_L1) e a biprevisão (pred_bi) são usáveis. A previsão L0 (Pred_L0) é interprevisão que se refere a uma imagem de referên- cia gerenciada pela L0, enquanto a previsão L1 (Pred_L1) é interprevi- são que se refere a uma imagem de referência gerenciada por L1. A biprevisão (pred_bi) é uma interprevisão na qual tanto a previsão L0 quanto a previsão L1 são realizadas, e é feita referência a uma ima- gem de referência gerenciada em cada uma das L0 e L1. As informa- ções que especificam a previsão L0, a previsão L1 e a biprevisão são definidas como um modo de interprevisão. No processamento a se- guir, supõe-se que o processamento será realizado para cada uma das L0 e L1 para constantes e variáveis, o que inclui um sufixo LX em uma saída.
MODO DE PREVISOR DE VETOR DE MOVIMENTO
[0080] O modo de previsor de vetor de movimento é um modo de transmissão de um índice para especificar um previsor de vetor de movimento, uma diferença de vetor de movimento, um modo de inter- previsão e um índice de referência, e para determinar as informações de interprevisão de um bloco-alvo. O previsor de vetor de movimento é derivado de um candidato de previsor de vetor de movimento derivado de um bloco processado nas proximidades do bloco-alvo ou de um bloco que pertence à imagem processada e localizado na mesma po- sição ou na proximidade (vizinhança) do bloco-alvo, e a partir de um índice para especificar o previsor de vetor de movimento.
MODO DE MESCLAGEM
[0081] O modo de mesclagem é um modo que deriva informações de interprevisão do bloco-alvo a partir de informações de interprevisão de um bloco processado nas proximidades do bloco-alvo, ou um bloco que pertence a uma imagem processada e localizado na mesma posi- ção que o bloco-alvo ou nas proximidades (vizinhança) do bloco-alvo, sem transmitir uma diferença de vetor de movimento ou um índice de referência.
[0082] Um bloco processado nas proximidades do bloco-alvo e as informações de interprevisão do bloco processado são definidos como candidatos de mesclagem espacial. Os blocos que pertencem à ima- gem processada e localizados na mesma posição que o bloco-alvo, ou nas proximidades (vizinhança) do bloco-alvo, e as informações de in- terprevisão derivadas a partir das informações de interprevisão do blo- co são definidos como candidatos de mesclagem temporal. Cada um dos candidatos de mesclagem é registrado em uma lista de candidato de mesclagem. Um candidato de mesclagem a ser usado para previ- são de um bloco-alvo é especificado por um índice de mesclagem.
BLOCO PRÓXIMO
[0083] A Figura 11 é um diagrama que ilustra os blocos de refe- rência a serem referenciados para derivar informações de interprevi- são no modo de previsor de vetor de movimento e no modo de mes- clagem. A0, A1, A2, B0, B1, B2 e B3 são blocos processados nas pro- ximidades do bloco-alvo. T0 é um bloco pertencente à imagem pro- cessada e localizado na mesma posição que o bloco-alvo ou nas pro- ximidades (vizinhança) do bloco-alvo, na imagem-alvo.
[0084] A1 e A2 são blocos localizados no lado esquerdo do bloco- alvo de conversão em código e nas proximidades do bloco-alvo de conversão em código. B1 e B3 são blocos localizados acima do bloco-
alvo de conversão em código e nas proximidades do bloco-alvo de conversão em código. A0, B0 e B2 são blocos respectivamente locali- zados no canto inferior esquerdo, superior direito e superior esquerdo do bloco-alvo de conversão em código.
[0085] Os detalhes de como os blocos próximos são manipulados no modo de previsor de vetor de movimento e no modo de mesclagem serão descritos abaixo.
COMPENSAÇÃO DE MOVIMENTO AFIM
[0086] A compensação de movimento afim divide primeiro um blo- co de conversão em código em sub-blocos de uma unidade predeter- minada e, em seguida, determina individualmente um vetor de movi- mento para cada um dos sub-blocos divididos para realizar a compen- sação de movimento. O vetor de movimento de cada um dos sub- blocos é derivado com base em um ou mais pontos de controle deri- vados de informações de interprevisão de um bloco processado nas proximidades do bloco-alvo, ou um bloco que pertence à imagem pro- cessada e localizado na mesma posição, ou nas proximidades (vizi- nhança) do bloco-alvo. Embora a presente modalidade configure o ta- manho do sub-bloco em amostras de 4 × 4, o tamanho do sub-bloco não se limita a isso, e um vetor de movimento pode ser derivado em unidades de amostras.
[0087] A Figura 14 ilustra um exemplo de compensação de movi- mento afim em um caso em que há dois pontos de controle. Nesse ca- so, cada um dos dois pontos de controle tem dois parâmetros, ou seja, um componente horizontal e um componente vertical. Consequente- mente, a transformada afim que tem dois pontos de controle é deno- minada transformada afim de quatro parâmetros. CP1 e CP2, na Figu- ra 14, são pontos de controle.
[0088] A Figura 15 ilustra um exemplo de compensação de movi- mento afim em um caso em que há três pontos de controle. Nesse ca-
so, cada um dos três pontos de controle tem dois parâmetros, ou seja, um componente horizontal e um componente vertical. Consequente- mente, a transformada afim que tem três pontos de controle é denomi- nada transformada afim de seis parâmetros. CP1, CP2 e CP3, na Fi- gura 15, são pontos de controle.
[0089] A compensação de movimento afim é usável em qualquer um dentre o modo de previsor de vetor de movimento e o modo de mesclagem. Um modo de aplicação da compensação de movimento afim, no modo de previsor de vetor de movimento, é definido como um modo de previsor de vetor de movimento de sub-bloco. Um modo de aplicação da compensação de movimento afim, no modo de mescla- gem, é definido como um modo de mesclagem de sub-bloco.
SINTAXE DO BLOCO DE CONVERSÃO EM CÓDIGO
[0090] A sintaxe para expressar o modo de previsão do bloco de conversão em código será descrita em referência às Figuras 12A, 12B e 13. O pred_mode_flag na Figura 12A é uma sinalização que indica se o modo é interprevisão. A configuração de pred_mode_flag 0 indica interprevisão, enquanto a configuração de pred_mode_flag 1 indica intraprevisão. As informações de intra_pred_mode intraprevisão são transmitidas no caso de intraprevisão, enquanto a merge_flag é transmi- tida no caso de interprevisão. A merge_flag é uma sinalização que indica se o modo a ser usado é o modo de mesclagem ou o modo de previsor de vetor de movimento. No caso do modo de previsor de vetor de movi- mento (merge_flag = 0), uma sinalização inter_affine_flag que indica se deve aplicar o modo de previsor de vetor de movimento de sub-bloco é transmitido. No caso de aplicar o modo de previsor de vetor de movi- mento de sub-bloco (inter_affine_flag = 1), A cu_affine_type_flag é transmitida. A cu_affine_type_flag é uma sinalização para determinar o número de pontos de controle no modo de previsor de vetor de movi- mento de sub-bloco.
[0091] Em contrapartida, no caso do modo de mesclagem (mer- ge_flag = 1), a merge_subblock_flag da Figura 12B é transmitida. A merge_subblock_flag é uma sinalização que indica se deve aplicar o mo- do de mesclagem de sub-bloco. No caso do modo de mesclagem de sub-bloco (merge_subblock_flag = 1), um índice de mesclagem mer- ge_subblock_idx é transmitido. Por outro lado, em um caso em que o modo não é o modo de mesclagem de sub-bloco (merge_subblock_flag = 0), uma sinalização merge_triangle_flag que indica se deve aplicar o modo de mesclagem triangular é transmitido. No caso de aplicação do modo de mesclagem triangular (merge_triangle_flag = 1), os índices de mesclagem triangulares merge_triangle_idx0 e merge_triangle_idx1 são transmitidos para cada uma das direções de divisão de blocos merge_triangle_split_dir e para cada um dos dois fracionamentos divi- didos. No caso de não aplicar o modo de mesclagem triangular, (mer- ge_triangle_flag = 0), um índice de mesclagem merge_idx é transmiti- do.
[0092] A Figura 13 ilustra o valor de cada um dos elementos de sintaxe e o modo de previsão correspondente. merge_flag = 0 e in- ter_affine_flag = 0 correspondem ao modo de previsor de vetor de mo- vimento normal (Modo de Interprevisão). merge_flag = 0 e in- ter_affine_flag = 1 correspondem a um modo de previsor de vetor de movimento de sub-bloco (Moto Interafim). merge_flag = 1, mer- ge_subblock_flag = 0 e merge_trianlge_flag = 0 correspondem a um modo de mesclagem normal (Modo de mesclagem). merge_flag = 1, merge_subblock_flag = 0 e merge_trianlge_flag = 1 correspondem a um modo de mesclagem triangular (Modo de Mesclagem Triangular). merge_flag = 1, merge_subblock_flag = 1 correspondem a um modo de mesclagem de sub-bloco (Modo de Mesclagem Afim).
POC
[0093] Uma Contagem de Ordem de Imagem (POC) é uma variá-
vel associada à imagem a ser convertida em código, e é configurada como um valor que aumenta em um, de acordo com a ordem de saída de imagem. O valor de POC permite discriminar se as imagens são as mesmas, discriminar a relação sequencial interimagem na ordem de saída, ou derivar a distância entre as imagens. Por exemplo, é possí- vel determinar que duas imagens que tenham um mesmo valor de POC são imagens idênticas. Em um caso em que as POCs das duas imagens têm valores diferentes, a imagem com o valor de POC menor pode ser determinada como a imagem que é emitida anteriormente. A diferença entre as POCs das duas imagens indica a distância entre as imagens na direção do eixo geométrico de tempo.
PRIMEIRA MODALIDADE
[0094] Um dispositivo de conversão em código de imagem 100 e um dispositivo de decodificação de imagem 200, de acordo com uma primeira modalidade da presente invenção, será descrito.
[0095] A Figura 1 é um diagrama de blocos do dispositivo de con- versão em código de imagem 100, de acordo com a primeira modali- dade. O dispositivo de conversão em código de imagem 100, de acor- do com uma modalidade, inclui uma unidade de divisão bloco 101, uma unidade de interprevisão 102, uma unidade de intraprevisão 103, memória de imagem decodificada 104, um determinador método de previsão 105, uma unidade de geração de resíduo 106, um transfor- mador/ quantizador ortogonal 107, uma unidade de conversão em có- digo de sequências de bit 108, um quantizador inverso/ transformador ortogonal inverso 109, um sobrepositor de sinal de imagem decodifi- cada 110 e memória de armazenamento de informações de conversão em código 111.
[0096] A unidade dividida em bloco 101 divide recursivamente uma imagem de entrada para construir um bloco de conversão em código. A unidade de divisão de bloco 101 inclui: uma unidade de divisão quá-
drupla que divide um bloco-alvo dividido tanto na direção horizontal quanto na direção vertical; e uma unidade de divisão binário-ternária que divide um bloco-alvo dividido na direção horizontal ou na direção vertical. A unidade de divisão de bloco 101 configura o bloco de con- versão em código, construído como um bloco-alvo de conversão em código, e fornece um sinal de imagem do bloco-alvo de conversão em código à unidade de interprevisão 102, à unidade de intraprevisão 103 e à unidade de geração de resíduo 106. Além disso, a unidade de divi- são de bloco 101 fornece informações que indicam a estrutura dividida recursiva determinada para a unidade de conversão em código de se- quências de bit 108. A operação detalhada da unidade de divisão de blocos 101 será descrita abaixo.
[0097] A unidade interprevisão 102 realiza a interprevisão do blo- co-alvo de conversão em código. A unidade interprevisão 102 deriva uma pluralidade de candidatos de informações de interprevisão a partir das informações de interprevisão armazenadas na memória de arma- zenamento de informações de conversão em código 111 e do sinal de imagem decodificada armazenado na memória de imagem decodifica- da 104, seleciona um modo de interprevisão adequado a partir da plu- ralidade de candidatos derivados e fornece o modo de interprevisão selecionado e um sinal de imagem previsto que corresponde ao modo de interprevisão selecionado para o determinador de método de previ- são 105. A configuração e a operação detalhadas da unidade de inter- previsão 102 serão descritas abaixo.
[0098] A unidade de intraprevisão 103 realiza intraprevisão no blo- co-alvo de conversão em código. A unidade de intraprevisão 103 refe- re-se ao sinal de imagem decodificada armazenado na memória de imagem decodificada 104 como uma amostra de referência, e realiza a intraprevisão com base nas informações de conversão em código, co- mo um modo de intraprevisão armazenado na memória de armazena-
mento de informações de conversão em código 111 e, desse modo, gera um sinal de imagem previsto. Na intraprevisão, a unidade de in- traprevisão 103 seleciona um modo de intraprevisão adequado a partir de uma pluralidade de modos de intraprevisão e fornece o modo de intraprevisão selecionado e o sinal de imagem previsto selecionado que corresponde ao modo de intraprevisão selecionado para o deter- minador de método de previsão 105.
[0099] As Figuras 10A e 10B ilustram os exemplos de intraprevi- são. A Figura 10A ilustra uma correspondência entre a direção de pre- visão de intraprevisão e o número de modo de intraprevisão. Por exemplo, um modo de intraprevisão 50 copia amostras de referência na direção vertical e, desse modo, constrói uma imagem de intraprevi- são. O modo de intraprevisão 1 é um modo de CC no qual todos os valores amostrais de um bloco-alvo são configurados com um valor médio de amostras de referência. O modo de intraprevisão 0 é um modo Plano, no qual uma imagem de intraprevisão bidimensional é criada a partir de amostras de referência nas direções vertical e hori- zontal. A Figura 10B é um exemplo de construção de uma imagem de intraprevisão, no caso de um modo de intraprevisão 40. A unidade de intraprevisão 103 copia, para cada uma das amostras do bloco-alvo, o valor da amostra de referência na direção indicada pelo modo de in- traprevisão. Em um caso em que a amostra de referência, no modo de intraprevisão, não está em uma posição de número inteiro, a unidade de intraprevisão 103 determina um valor amostral de referência por interpolação a partir de valores amostrais de referência em posições de número inteiro próximas.
[00100] A memória de imagem decodificada 104 armazena a ima- gem decodificada construída pelo sobrepositor de sinal de imagem de- codificada 110. A memória de imagem decodificada 104 fornece a imagem decodificada armazenada para a unidade interprevisão 102 e a unidade de intraprevisão 103.
[00101] O determinador de método de previsão 105 avalia cada uma dentre a intraprevisão e a interprevisão com uso das informações de conversão em código, da quantidade de código do resíduo, da quantidade de distorção entre o sinal de imagem previsto e o sinal de imagem-alvo, ou similares, e, desse modo, determina um modo de previsão ideal. No caso de intraprevisão, o determinador de método de previsão 105 fornece informações de intraprevisão, como um modo de intraprevisão, para a unidade de conversão em código de sequências de bits 108 como informações de conversão em código. No caso do modo de mesclagem da interprevisão, o determinador de método de previsão 105 fornece informações de interprevisão, como um índice de mesclagem e informações (sinalização de mesclagem de sub-bloco) que indicam se o modo é o modo de mesclagem de sub-bloco para a unidade de conversão em código de sequências de bits 108 como in- formações de conversão em código. No caso do modo de previsor de vetor de movimento da interprevisão, o determinador de método de previsão 105 fornece informações de interprevisão, como o modo in- terprevisão, o índice de previsor de vetor de movimento, o índice de referência de L0 ou L1, a diferença de vetor de movimento ou informa- ções que indicam se o modo é um modo de previsor de vetor de mo- vimento de sub-bloco (sinalização de previsor de vetor de movimento de sub-bloco) para a unidade de conversão em código de sequências de bits 108 como informações de conversão em código. O determina- dor de método de previsão 105 fornece adicionalmente as informações de conversão em código determinadas para a memória de armazena- mento de informações de conversão em código 111. O determinador do método de previsão 105 fornece o sinal de imagem previsto para a unidade de geração de resíduo 106 e o sobrepositor de sinal de ima- gem decodificada 110.
[00102] A unidade de geração de resíduo 106 constrói um resíduo subtraindo-se o sinal de imagem previsto a partir do sinal de imagem- alvo, e fornece o resíduo construído para o transformador/quantizador ortogonal 107.
[00103] O transformador/quantizador ortogonal 107 realiza trans- formação e quantização ortogonal no resíduo, de acordo com o parâ- metro de quantização, e constrói, desse modo, um resíduo ortogonal- mente transformado e quantizado, e, em seguida, fornece o resíduo construído para a unidade de conversão em código de sequências de bits 108 e o quantizador inverso/ transformador ortogonal inverso 109.
[00104] A unidade de conversão em código de sequências de bits 108 converte em código, além das sequências, as imagens, fatias e informações em unidades de blocos de conversão em código, a unida- de de conversão em código de sequências de bits 108 codifica as in- formações de conversão em código correspondentes ao método de previsão determinado pelo determinador de método de previsão 105 para cada um dos blocos de conversão em código. Especificamente, a unidade de conversão em código de sequências de bits 108 codifica um modo de previsão PredMode para cada um dos blocos de conver- são em código. Em um caso em que o modo de previsão é interprevi- são (MODE_INTER), a unidade de conversão em código de sequên- cias de bits 108 codifica informações de conversão em código (infor- mações interprevisão), como uma sinalização para determinar se o modo é o modo de mesclagem, uma sinalização de mesclagem de sub-bloco, um índice de mesclagem, no caso do modo de mesclagem, um modo de interprevisão, no caso dos modos de não mesclagem, um índice de previsor de vetor de movimento, informações relacionadas às diferenças de vetor de movimento e uma sinalização de previsor de vetor de movimento de sub-bloco, com base em uma sintaxe prescrita (regras de sintaxe de sequência de bits) e, desse modo, constrói uma primeira sequência de bit. Em um caso em que o modo de previsão é intraprevisão (MODE_INTRA), as informações de conversão em códi- go (informações de intraprevisão), como o modo de intraprevisão, são convertidas em código de acordo com uma sintaxe prescrita (regras de sintaxe de sequência de bits) para construir uma primeira sequência de bits. Além disso, a unidade de conversão em código de sequências de bits 108 realiza conversão em código de entropia no resíduo orto- gonalmente transformado e quantizado, com base em uma sintaxe prescrita e, desse modo, constrói uma segunda sequência de bits. A unidade de conversão em código de sequências de bits 108 multiple- xam a primeira sequência de bits e a segunda sequência de bits com base em uma sintaxe prescrita, e emite o fluxo de bits.
[00105] O quantizador inverso/ transformador ortogonal inverso 109 realiza quantização inversa e transformação ortogonal inversa sobre o resíduo ortogonalmente transformado/ quantizado fornecido a partir do transformador ortogonal/ quantizador 107 e, desse modo, calcula o resíduo, e, em seguida, fornece o resíduo calculado para o sobreposi- tor de sinal de imagem decodificada 110.
[00106] O sobrepositor de sinal de imagem decodificada 110 sobre- põe o sinal de imagem previsto, de acordo com a determinação do de- terminador de método de previsão 105, com o resíduo que sofreu a quantização inversa/ transformação ortogonal inversa pelo quantizador inverso/ transformador ortogonal inverso 109, desse modo, constrói uma imagem decodificada e armazena a imagem decodificada cons- truída na memória de imagem decodificada 104. O sobrepositor de si- nal de imagem decodificada 110 pode realizar o processamento de filtragem de redução da distorção, como distorção de bloco, devido à conversão em código na imagem decodificada e pode, depois disso, armazenar a imagem decodificada na memória de imagem decodifica- da 104.
[00107] A memória de armazenamento de informações de conver- são em código 111 armazena informações de conversão em código, como um modo de previsão (interprevisão ou intraprevisão) determi- nado pelo determinador de método de previsão 105. No caso de inter- previsão, as informações de conversão em código armazenadas na memória de armazenamento de informações de conversão em código 111 incluem informações de interprevisão, como o vetor de movimento determinado, os índices de referência das listas de referência L0 e L1 e uma lista de candidato de previsor de vetor de movimento baseada em histórico. No caso do modo de mesclagem de interprevisão, as in- formações de conversão em código armazenadas na memória de ar- mazenamento de informações de conversão em código 111 incluem, além das informações descritas acima, um índice de mesclagem e in- formações de interprevisão, o que inclui informações que indicam se o modo é um modo de mesclagem de sub-blocos (uma sinalização de mesclagem de sub-bloco). No caso do modo de previsor de vetor de movimento da interprevisão, as informações de conversão em código armazenadas na memória de armazenamento de informações de con- versão em código 111 incluem, além das informações acima, informa- ções de interprevisão, como um modo de interprevisão, um índice de previsor de vetor de movimento, uma diferença de vetor de movimento e informações que indicam se o modo é um modo de previsor de vetor de movimento de sub-bloco (sinalização de previsor de vetor de movi- mento de sub-bloco). No caso de intraprevisão, as informações de conversão em código armazenadas na memória de armazenamento de informações de conversão em código 111 incluem informações de intraprevisão, como o modo de intraprevisão determinado.
[00108] A Figura 2 é um diagrama de blocos que ilustra uma confi- guração de um dispositivo de decodificação de imagem, de acordo com uma modalidade da presente invenção, que corresponde ao dis-
positivo de conversão em código de imagem da Figura 1. O dispositivo de decodificação de imagem, de acordo com a modalidade, inclui uma unidade de decodificação de sequência de bits 201, uma unidade de divisão de bloco 202, uma unidade de interprevisão 203, uma unidade de intraprevisão 204, memória de armazenamento de informações de conversão em código 205, um quantizador inverso/ transformador or- togonal inverso 206 e um sobrepositor de sinal de imagem decodifica- da 207 e memória de imagem decodificada 208.
[00109] Visto que o processo de decodificação do dispositivo de decodificação de imagem, na Figura 2, corresponde ao processo de decodificação fornecido dentro do dispositivo de conversão em código de imagem na Figura 1. Consequentemente, cada uma das configura- ções da memória de armazenamento de informações de conversão em código 205, do quantizador inverso/ transformador ortogonal inver- so 206, do sobrepositor de sinal de imagem decodificada 207 e da memória de imagem decodificada 208, na Figura 2, respectivamente, tem uma função que corresponde a cada uma das configurações da memória de armazenamento de informações de conversão em código 111, do quantizador inverso/ transformador ortogonal inverso 109, do sobrepositor de sinal de imagem decodificada 110 e da memória de imagem decodificada 104 do dispositivo de conversão em código de imagem, na Figura 1.
[00110] O fluxo de bits fornecido à unidade de decodificação de se- quências de bits 201 é separado com base em uma regra de sintaxe prescrita. A unidade de decodificação de sequências de bits 201 deco- difica a primeira sequência de bits separada e, desse modo, obtém a sequência, uma imagem, uma fatia, informações em unidades de blo- cos de conversão em código e informações de conversão em código em unidades de blocos de conversão em código. Especificamente, a unidade de decodificação de sequências de bits 201 decodifica um modo de previsão PredMode que discrimina se a previsão é interprevi- são (MODE_INTER) ou intraprevisão (MODE_INTRA) em unidades de bloco de conversão em código. Em um caso em que o modo de previ- são é a interprevisão (MODE_INTER), a unidade de decodificação de sequências de bits 201 decodifica informações de conversão em códi- go (informações interprevisão) relacionadas à sinalização que discri- mina se o modo é o modo de mesclagem, o índice de mesclagem, no caso do modo de mesclagem, a sinalização de mesclagem de sub- bloco, e o modo de interprevisão, no caso do modo de previsor de ve- tor de movimento, o índice de previsor de vetor de movimento, a dife- rença de vetor de movimento, a sinalização de previsor de vetor de movimento de sub-bloco ou similares, de acordo com uma sintaxe prescrita, e, em seguida, fornece as informações de conversão em có- digo (informações interprevisão) para a memória de armazenamento de informações de conversão em código 205 através da unidade de interprevisão 203 e da unidade de divisão de bloco 202. Em um caso em que o modo de previsão é intraprevisão (MODE_INTRA), a unida- de de decodificação de sequências de bits 201 decodifica informações de conversão em código (informações de intraprevisão), como o modo de intraprevisão, de acordo com uma sintaxe prescrita, e, em seguida, fornece as informações de conversão em código decodificadas (infor- mações de intraprevisão) para a memória de armazenamento de in- formações de conversão em código 205 através da unidade interprevi- são 203 ou da unidade de intraprevisão 204 e através de unidade de divisão de bloco 202. A unidade de decodificação de sequências de bits 201 decodifica a segunda sequência de bits separada e calcula um resíduo ortogonalmente transformado/ quantizado e, em seguida, fornece o resíduo ortogonalmente transformado/ quantizado ao quanti- zador inverso/ transformador ortogonal inverso 206.
[00111] Quando o modo de previsão PredMode do bloco-alvo de conversão em código é o interprevisão (MODE_INTER) e o modo de previsor de vetor de movimento, a unidade interprevisão 203 usa as informações de conversão em código do sinal de imagem já decodifi- cado armazenado na memória de armazenamento de informações de conversão em código 205 para derivar uma pluralidade de candidatos de previsor de vetor de movimento.
A unidade de interprevisão 203 registra, em seguida, a pluralidade de candidatos de previsor de vetor de movimento derivados para uma lista de candidato de previsor de vetor de movimento descrita abaixo.
A unidade de interprevisão 203 seleciona um previsor de vetor de movimento que corresponde ao ín- dice de previsor de vetor de movimento a ser decodificado e fornecido pela unidade de decodificação de sequências de bits 201 entre a plu- ralidade de candidatos de previsor de vetor de movimento registrados na lista de candidato de previsor de vetor de movimento.
A unidade de interprevisão 203 calcula, em seguida, um vetor de movimento com base na diferença de vetor de movimento decodificado pela unidade de decodificação de sequências de bits 201 e pelo previsor de vetor de movimento selecionado, e armazena o vetor de movimento calculado na memória de armazenamento de informações de conversão em có- digo 205, juntamente com outras informações de conversão em códi- go.
No presente documento, as informações de conversão em código do bloco de conversão em código a ser fornecido e armazenado inclui o modo de previsão PredMode, sinalizações PredFlagL0 [xP] [yP] e PredFlagL1 [xP] [yP] que indicam se deve usar previsão L0 e a previ- são L1, os índices de referência RefiDxL0 [xP] [yP] e RefiDXL1 [xP] [yP] de L0 e L1; e vetores de movimento mVL0 [xP] [yP] e mvL1 [xP] [yP] de L0 e L1, ou similares.
No presente documento, xP e yP são índices que indicam a posição da amostra superior esquerda do bloco de conversão em código dentro da imagem.
Em um caso em que o modo de previsão PredMode é interprevisão (MODE_INTER) e o mo-
do interprevisão é previsão L0 (Pred_L0), a sinalização predFlagl0 que indica se deve usar previsão L0 está configurada como 1 e a sinaliza- ção predFlagl1 que indica se deve usar a previsão L1 está configurada como 0. Em um caso em que o modo interprevisão é previsão L1 (Pred_L1), uma sinalização predFlagL0 que indica se deve usar previ- são L0 está configurada como 0 e uma sinalização predFlagL1 que indica se deve usar a previsão L1 está configurada como 1. Em um caso em que o modo interprevisão é biprevisão (Pred_BI), tanto a si- nalização PredFlagL0 que indica se deve usar a previsão L0 quanto a sinalização PredFlagL1 que indica se deve usar a previsão L1 são configuradas como 1. Além disso, quando o modo de previsão Pred- Mode do bloco-alvo de conversão em código está na interprevisão (MODE_INTER) e no modo de mesclagem, um candidato de mescla- gem é derivado.
Com uso das informações de conversão em código do bloco de conversão em código já decodificado armazenado na memória de armazenamento de informações de conversão em código 205, uma pluralidade de candidatos de mesclagem é derivada e regis- trada em uma lista de candidato de mesclagem descrita abaixo.
Sub- sequentemente, um candidato de mesclagem que corresponde ao ín- dice de mesclagem que é decodificado pela unidade de decodificação de sequências de bits 201 e fornecido é selecionado entre a pluralida- de de candidato de mesclagem registrados na lista de candidato de mesclagem e, em seguida, as informações de interprevisão, como as sinalizações PredFlagL0 [xP] [yP] e PredFlagl1 [xP] [yP] que indicam se devem usar a previsão L0 e a previsão L1 do candidato de mescla- gem selecionado, os índices de referência RefIdxL0 [xP] [yP] e Re- fIdxL1 [xP] [yP] de L0 e L1, e vetores de movimento mvL0 [xP] [yP] e mvL1 [xP] [yP] de 0 e L1 devem ser armazenados na memória de ar- mazenamento de informações de conversão em código 205. No pre- sente documento, xP e yP são índices que indicam a posição da amostra superior esquerda do bloco de conversão em código dentro da imagem. A configuração detalhada e a operação da unidade inter- previsão 203 serão descritas abaixo.
[00112] A unidade de intraprevisão 204 realiza intraprevisão, quan- do o modo de previsão PredMode do bloco-alvo de conversão em có- digo é a intraprevisão (MODE_INTRA). As informações de conversão em código decodificadas pela unidade de decodificação de sequências de bits 201 incluem um modo de intraprevisão. A unidade de intrapre- visão 204 gera um sinal de imagem previsto por intraprevisão a partir do sinal de imagem decodificada armazenado na memória de imagem decodificada 208, de acordo com o modo de intraprevisão incluído nas informações de conversão em código decodificada pela unidade de decodificação de sequências de bits 201. A unidade de intraprevisão 204 fornece, em seguida, o sinal de imagem previsto gerado para o sobrepositor de sinal de imagem decodificada 207. A unidade de intra- previsão 204 corresponde à unidade de intraprevisão 103 do dispositi- vo de conversão em código de imagem 100 e, desse modo, realiza o processamento similar ao processamento da unidade de intraprevisão
103.
[00113] O quantizador inverso/ transformador ortogonal inverso 206 realiza a quantização inversa/ transformação ortogonal/inversa no re- síduo ortogonal transformado/ quantizado decodificado na unidade de decodificação de sequências de bits 201, e obtém, desse modo, o re- síduo ortogonal e inversamente transformado/ inversamente quantiza- do.
[00114] O sobrepositor de sinal de imagem decodificada 207 sobre- põe um sinal de imagem previsto interprevisto pela unidade interprevi- são 203, ou um sinal de imagem de previsão intraprevisto pela unida- de de intraprevisão 204 com o resíduo que foi ortogonal e inversamen- te transformado/ inversamente quantizado pelo quantizador inverso/
transformador ortogonal inverso 206, decodificando, desse modo, o sinal de imagem decodificada. O sobrepositor de sinal de imagem de- codificada 207 armazena, em seguida, o sinal de imagem decodifica- da, que foi decodificado, na memória de imagem decodificada 208. Ao armazenar a imagem decodificada na memória de imagem decodifica- da 208, o sobrepositor de sinal de imagem decodificada 207 pode rea- lizar o processamento de filtragem na imagem decodificada para redu- zir a distorção de bloco, ou similar, devido à conversão em código, e pode, posteriormente, armazenar a imagem decodificada na memória de imagem decodificada 208.
[00115] Em seguida, a operação da unidade de divisão de bloco 101 no dispositivo de conversão em código de imagem 100 será des- crita. A Figura 3 é um fluxograma que ilustra a operação de divisão de uma imagem em blocos de árvore e divisão adicional de cada um dos blocos de árvore. Primeiro, uma imagem de entrada é dividida em blo- cos de árvore de um tamanho predeterminado (etapa S1001). Cada um dos blocos de árvore é varrido em uma ordem predeterminada, ou seja, em uma ordem de varredura matricial (etapa S1002), e um bloco- alvo de árvore é dividido internamente (etapa S1003).
[00116] A Figura 7 é um fluxograma que ilustra a operação detalha- da do processo de divisão na etapa S1003. Primeiro, é determinado se deve dividir o bloco-alvo em quatro (etapa S1101).
[00117] Em um caso em que é determinado que o bloco-alvo deve ser dividido em quatro, o bloco-alvo será dividido em quatro (etapa S1102). Cada um dos blocos obtidos dividindo-se o bloco-alvo é digita- lizado na ordem de varredura em Z, ou seja, na ordem superior es- querda, superior direita, inferior esquerda e inferior direita (etapa S1103). A Figura 5 ilustra um exemplo da ordem de varredura em Z, e 601, na Figura 6A, ilustra um exemplo no qual o bloco-alvo é dividido em quatro. Os números 0 a 3 de 601 na Figura 6A indicam a ordem de processamento. Subsequentemente, o processo de divisão da Figura 7 é executado recursivamente para cada um dos blocos divididos na etapa S1101 (etapa S1104).
[00118] Em um caso em que é determinado que o bloco-alvo não deve ser dividido em quatro, o bloco-alvo será dividido em dois ou três, ou seja, divisão binário-ternária (etapa S1105).
[00119] A Figura 8 é um fluxograma que ilustra a operação detalha- da do processo de divisão binário-ternária na etapa S1105. Primeiro, é determinado se a divisão binário-ternária será executada no bloco- alvo, ou seja, se alguma divisão binária ou divisão ternária deve ser realizada (etapa S1201).
[00120] Em um caso em que não é determinado que a divisão biná- rio-ternária deve ser realizada no bloco-alvo, ou seja, em um caso em que é determinado não dividir o bloco-alvo, a divisão é concluída (eta- pa S1211). Ou seja, o processo de divisão recursiva adicional não de- ve ser realizado no bloco que foi dividido pelo processo de divisão re- cursiva.
[00121] Em um caso em que é determinado que a divisão binário- ternária será realizada no bloco-alvo, é adicionalmente determinado se deve dividir o bloco-alvo em dois (etapa S1202).
[00122] Em um caso em que é determinado que o bloco-alvo deve ser dividido em dois, é adicionalmente determinado se deve dividir o bloco-alvo na direção superior inferior (vertical) (etapa S1203) e, em seguida, com base no resultado, o bloco-alvo será divisão binária na direção superior inferior (vertical) (etapa S1204), ou o bloco-alvo será divisão binária na direção da esquerda para a direita (horizontal) (eta- pa S1205). Como resultado da etapa S1204, o bloco-alvo tem divisão binária na direção superior e inferior (direção vertical), conforme ilus- trado em 602 da Figura 6B. Como resultado da etapa S1205, o bloco- alvo tem divisão binária na direita e esquerda (direção horizontal), co-
mo ilustrado em 604 da Figura 6D.
[00123] Na etapa S1202, em um caso em que não seja determina- do que o bloco-alvo deve ser dividido em dois, ou seja, em um caso em que é determinado que o bloco-alvo deve ser dividido em três, é adicionalmente determinado se deve dividir o bloco-alvo em três como porções superior, média e inferior (direção vertical) (etapa S1206). Com base no resultado, o bloco-alvo é dividido em três como partes superior, média e inferior (direção vertical) (etapa S1207), ou porções esquerda, média e direita (direção horizontal) (etapa S1208). Como resultado da etapa S1207, o bloco-alvo é dividido em três como partes superior, média e inferior (direção vertical), conforme ilustrado em 603 da Figura 6C. Como resultado da etapa S1208, o bloco-alvo é dividido em três como esquerda, média e direita (direção horizontal), conforme ilustrado em 605 da Figura 6E.
[00124] Após a execução de uma das etapas S1204, S1205, S1207 ou S1208, cada um dos blocos obtidos pela divisão do bloco-alvo é digitalizado na ordem da esquerda para a direita e de cima para baixo (etapa S1209). Os números 0 a 2 de 602 a 605, nas Figuras 6B a 6E, indicam a ordem de processamento. Para cada um dos blocos dividi- dos, o processo de divisão binário-ternária, na Figura 8, é realizado recursivamente (etapa S1210).
[00125] Na divisão de bloco recursiva descrita no presente docu- mento, a propriedade de divisão pode ser limitada com base no núme- ro de divisões, no tamanho do bloco-alvo ou similares. As informações que restringem a propriedade da divisão podem ser realizadas em uma configuração na qual as informações não são transmitidas fazen- do-se um acordo preliminar entre o dispositivo de conversão em códi- go e o dispositivo de decodificação, ou em uma configuração na qual o dispositivo de conversão em código determina as informações para restringir a propriedade de divisão e registrar as informações para se-
quências de bits, transmitindo, desse modo, as informações para o dispositivo de decodificação.
[00126] Quando um determinado bloco é dividido, um bloco antes da divisão é denominado um bloco pai, e cada um dos blocos, após a divisão, é denominado um bloco filho.
[00127] Em seguida, a operação da unidade de divisão de bloco 202, no dispositivo de decodificação de imagem 200, será descrita. A unidade dividida em bloco 202 divide um bloco de árvore com uso de um procedimento de processamento similar ao do caso da unidade de divisão de blocos 101 do dispositivo de conversão em código de ima- gem 100. Deve-se observar que há uma diferença de que, embora a unidade de divisão de blocos 101 do dispositivo de conversão em có- digo de imagem 100 determine uma forma de divisão de bloco ideal aplicando-se um método de otimização, como estimativa de um forma- to ideal por meio de reconhecimento de imagem ou otimização da taxa de distorção, a unidade de divisão de bloco 202 da imagem dispositivo de decodificação 200 determina o formato de divisão bloco decodifi- cando-se as informações de divisão de bloco registradas na sequência de bits.
[00128] A Figura 9 ilustra a sintaxe (regras de sintaxe de sequência de bits) relacionada à divisão de blocos, de acordo com a primeira modalidade. coding_quadtree () representa a sintaxe para o processo de divisão quádrupla do bloco. multi_type_tree () representa a sintaxe para o processo de divisão do bloco em dois ou três. qt_split é uma sinalização que indica se deve dividir um bloco em quatro. No caso de divisão do bloco em quatro, a configuração seria qt_split = 1. No caso de não divisão do bloco em quatro, a configuração seria qt_split = 0. No caso de divisão do bloco em quatro (qt_split = 1), o processo de divisão quádrupla será realizado recursivamente em cada um dos blo- cos divididos em quatro (coding_quadtree (0), coding_quadtree (1),
coding_quadtree (2) e coding_quadtree (3), nos quais os argumentos 0 a 3 correspondem a números de 601 na Figura 6A). Em um caso em que a divisão quádrupla não deve ser realizada (qt_split = 0), a divisão subsequente é determinada de acordo com multi_type_tree (). mtt_split é uma sinalização que indica se deve realizar divisão adicio- nal. No caso em que a divisão adicional deve ser realizada (mtt_split = 1), a transmissão de mtt_split_vertical, que é uma sinalização que indi- ca se deve realizar divisão na direção vertical ou horizontal, e de mtt_split_binary, que é uma sinalização que determina se deve dividir o bloco em dois ou três, será realizada. mtt_split_vertical = 1 indica divisão na direção vertical, e mtt_split_vertical = 0 indica divisão na di- reção horizontal. mtt_split_binary = 1 indica que o bloco é divisão biná- ria e mtt_split_binary = 0 indica que o bloco é divisão ternária. Em um caso em que o bloco deve ter divisão binária (mtt_split_binary = 1), o processo de divisão é realizado recursivamente em cada um dos dois blocos divididos (multi_type_tree (0) e multi_type_tree (1), em que os argumentos 0 a 1 correspondem a números em 602 ou 604 de Figuras 6B a 6D). No caso em que o bloco deve ter divisão ternária (mtt_split_binary = 0), o processo de divisão é realizado recursivamen- te em cada um dos três blocos divididos (multi_type_tree (0), mul- ti_type_tree (1) e multi_type_tree (2), em que 0 a 2 correspondem a números em 603 da Figura 6B ou 65 da Figura E). O chamado recursi- vo de multi_type_tree até mtt_split = 0 alcançará a divisão hierárquica de bloco.
INTERPREVISÃO
[00129] O método interprevisão, de acordo com uma modalidade, é implementado na unidade interprevisão 102 do dispositivo de conver- são em código de imagem na Figura 1 e na unidade interprevisão 203 do dispositivo de decodificação de imagem na Figura 2.
[00130] Um método de interprevisão, de acordo com uma modali-
dade, será descrito em referência aos desenhos. O método interprevi- são é implementado em qualquer um dos processos de conversão em código e decodificação em unidades de blocos de conversão em códi- go. UNIDADE DE INTERPREVISÃO 102 NO LADO DA CONVERSÃO
EM CÓDIGO
[00131] A Figura 16 é um diagrama que ilustra uma configuração detalhada da unidade interprevisão 102 do dispositivo de conversão em código de imagem na Figura 1. A unidade de derivação de modo de previsor de vetor de movimento normal 301 deriva uma pluralidade de candidatos de previsor de vetor de movimento normal, seleciona um previsor de vetor de movimento e calcula uma diferença de vetor de movimento entre o previsor de vetor de movimento selecionado e o vetor de movimento detectado. O modo interprevisão detectado, o ín- dice de referência, o vetor de movimento e a diferença de vetor de movimento calculada serão informações de interprevisão do modo de previsor de vetor de movimento normal. Essas informações de inter- previsão são fornecidas ao determinador de modo de interprevisão
305. A configuração e o processamento detalhados da unidade de de- rivação de modo de previsor vetor de movimento normal 301 serão descritos abaixo.
[00132] A unidade de derivação de modo de mesclagem normal 302 deriva uma pluralidade de candidatos de mesclagem normais, se- leciona um candidato de mesclagem normal e obtém informações de interprevisão de modo de mesclagem normal. Essas informações de interprevisão são fornecidas ao determinador de modo de interprevi- são 305. A configuração e o processamento detalhados da unidade de derivação de modo de mesclagem normal 302 serão descritos abaixo.
[00133] A unidade de derivação de modo de previsor de vetor de movimento de sub-bloco 303 deriva uma pluralidade de candidatos de previsor de vetor de movimento sub-bloco, seleciona um previsor de vetor de movimento sub-bloco e calcula uma diferença de vetor de movimento entre o previsor de vetor de movimento de sub-bloco sele- cionado e o vetor de movimento detectado. O modo de interprevisão detectado, o índice de referência, o vetor de movimento e a diferença de vetor de movimento calculada serão informações de interprevisão do modo de previsor de vetor de movimento de sub-bloco. Essas in- formações de interprevisão são fornecidas ao determinador de modo de interprevisão 305.
[00134] A unidade de derivação de modo de mesclagem de sub- bloco 304 deriva uma pluralidade de candidatos de mesclagem de sub-bloco, seleciona um candidato de mesclagem de sub-bloco e ob- tém informações de interpredições do modo de mesclagem de sub- bloco. Essas informações de interprevisão são fornecidas ao determi- nador de modo de interprevisão 305.
[00135] No determinador de modo de interprevisão 305 determi- nam-se informações de interprevisão com base nas informações de interprevisão fornecidas a partir da unidade de derivação de modo de previsor de vetor de movimento normal 301, da unidade de derivação de modo de mesclagem normal 302, da unidade de derivação de mo- do de previsor de vetor de movimento de sub-bloco 303 e da unidade de derivação de modo de mesclagem de sub-bloco 304. As informa- ções de interprevisão, de acordo com o resultado da determinação, são fornecidas a partir do determinador de modo de interprevisão 305 para uma unidade de previsão de compensação de movimento 306.
[00136] A unidade de previsão de compensação de movimento 306 realiza a interprevisão sobre o sinal de imagem de referência armaze- nado na memória de imagem decodificada 104, com base nas infor- mações de interprevisão determinada. A configuração detalhada e o processamento da unidade de previsão de compensação de movimen-
to 306 serão descritos abaixo. UNIDADE DE INTERPREVISÃO 203 NO LADO DE DECODIFICA-
ÇÃO
[00137] A Figura 22 é um diagrama que ilustra uma configuração detalhada da unidade de interprevisão 203 do dispositivo de decodifi- cação de imagem na Figura 2.
[00138] A unidade de derivação de modo de previsor de vetor de movimento normal 401 deriva uma pluralidade de candidatos de previ- sor de vetor de movimento normal, seleciona um previsor de vetor de movimento, calcula um valor adicionado obtido adicionando-se o pre- visor de vetor de movimento selecionado e a diferença de vetor de movimento decodificado, e configura esse valor adicionado como um vetor de movimento. O modo de interprevisão decodificado, o índice de referência, o vetor de movimento serão informações de interprevi- são do modo de previsor de vetor de movimento normal. Essas infor- mações de interprevisão são fornecidas à unidade de previsão de compensação de movimento 406 através do comutador 408. A confi- guração e o processamento detalhados da unidade de derivação de modo de previsor de vetor de movimento normal 401 serão descritos abaixo.
[00139] A unidade de derivação do modo de mesclagem normal 402 deriva uma pluralidade de candidatos de mesclagem normais, se- leciona um candidato de mesclagem normal e obtém informações de interprevisão do modo de mesclagem normal. Essas informações de interprevisão são fornecidas à unidade de previsão de compensação de movimento 406 através do comutador 408. A configuração e o pro- cessamento detalhados da unidade de derivação de modo de mescla- gem normal 402 serão descritos abaixo.
[00140] Uma unidade de derivação de modo de previsor de vetor de movimento de sub-bloco 403 deriva uma pluralidade de candidatos de previsor de vetor de movimento de sub-bloco, seleciona um previsor de vetor de movimento de sub-bloco e calcula um valor adicionado ob- tido adicionando-se o previsor de vetor de movimento de sub-bloco selecionado e a diferença de vetor de movimento decodificado, e con- figura esse valor adicionado como um vetor de movimento. O modo de interprevisão decodificado, o índice de referência e o vetor de movi- mento serão as informações de interprevisão do modo previsor de mo- vimento de sub-bloco. Essas informações de interprevisão são forne- cidas à unidade de previsão de compensação de movimento 406 atra- vés do comutador 408.
[00141] Uma unidade de derivação de modo de mesclagem de sub- bloco 404 deriva uma pluralidade de candidatos de mesclagem de sub-bloco, seleciona um candidato de mesclagem de sub-bloco e ob- tém informações de interprevisão do modo de mesclagem de sub- bloco. Essas informações de interprevisão são fornecidas à unidade de previsão de compensação de movimento 406 através do comutador
408.
[00142] A unidade de previsão de compensação de movimento 406 realiza interprevisão sobre o sinal de imagem de referência armazena- do na memória de imagem decodificada 208, com base nas informa- ções de interprevisão determinada. A configuração detalhada e o pro- cessamento da unidade de previsão de compensação de movimento 406 são similares aos da unidade de previsão de compensação de movimento 306, no lado da conversão em código.
UNIDADE DE DERIVAÇÃO DE MODO DE PREVISOR DE VETOR DE MOVIMENTO NORMAL (AMVP NORMAL)
[00143] A unidade de derivação de modo de previsor de vetor de movimento normal 301, da Figura 17, inclui uma unidade de derivação de candidato de previsor de vetor de movimento espacial 321, uma unidade de derivação de candidato de previsor de vetor de movimento temporal 322, uma unidade de derivação de candidato de previsor de vetor de movimento baseado em histórico 323, um reabastecedor de candidato de previsor de vetor de movimento 325, um detector de ve- tor de movimento normal 326, um seletor de candidato de previsor de vetor de movimento 327 e um subtrator de vetor de movimento 328.
[00144] A unidade de derivação de modo de previsor de vetor de movimento normal 401, na Figura 23, inclui uma unidade de derivação de candidato de previsor de vetor de movimento espacial 421, uma unidade de derivação de candidato de vetor de movimento temporal 422, uma unidade de derivação de candidato de previsor de vetor de movimento baseado em histórico 423, um reabastecedor de candidato de previsor de vetor de movimento 425, um seletor de candidato de previsor de vetor de movimento 426 e um adicionador de vetor de mo- vimento 427.
[00145] Os procedimentos de processamento da unidade de deri- vação de modo de previsor de vetor de movimento normal 301, no la- do de conversão em código e na unidade de derivação de modo de previsor de vetor de movimento normal 401, no lado de decodificação, serão descritos com referência aos fluxogramas nas Figuras 19 e 25, respectivamente. A Figura 19 é um fluxograma que ilustra um proce- dimento de processamento de derivação de modo de previsor de vetor de movimento normal realizado pela unidade de derivação de modo de vetor de movimento normal 301, no lado da conversão em código. A Figura 25 é um fluxograma que ilustra um procedimento de processa- mento de derivação de modo de previsor de movimento normal reali- zado pela unidade de derivação de modo de vetor de movimento nor- mal 401, no lado de decodificação.
UNIDADE DE DERIVAÇÃO DO MODO DE PREVISOR DE VETOR DE MOVIMENTO NORMAL (AMVP NORMAL): LADO De CONVER-
SÃO EM CÓDIGO
[00146] O procedimento de processamento de derivação de modo de previsor de vetor de movimento normal no lado de conversão em código será descrito com referência à Figura 19. Na descrição do pro- cedimento de processamento na Figura 19, a palavra “normal”, ilustra- da na Figura 19, será omitida em alguns casos.
[00147] Primeiro, o detector de vetor de movimento normal 326 de- tecta um vetor de movimento normal para cada um dos modos de in- terprevisão e índices de referência (etapa S100 na Figura 19).
[00148] Subsequentemente, uma diferença de vetor de movimento de um vetor de movimento usado na interprevisão no modo de previ- sor de vetor de movimento normal é calculada para cada um dentre L0 e L1 (etapas S101 a S106 na Figura 19) na unidade de derivação de candidato de previsor de vetor de movimento espacial 321, na unidade de derivação de candidato de previsor de vetor de movimento temporal 322, na unidade de derivação de candidato de previsor de vetor de movimento baseado em histórico 323, no reabastecedor de candidato de previsor de vetor de movimento 325, no seletor de candidato de previsor de vetor de movimento 327 e no subtrator de vetor de movi- mento 328. Especificamente, em um caso em que o modo de previsão PredMode do bloco-alvo é interprevisão (MODE_INTER) e o modo de interprevisão é previsão L0 (Pred_L0), a lista de candidato de previsor de vetor de movimento mvpListL0 de L0 é calculada. Subsequente- mente, o previsor de vetor de movimento mvpL0 é selecionado e, em seguida, uma diferença de vetor de movimento mvdL0 do vetor de mo- vimento mvL0 de L0 é calculada. Em um caso em que o modo inter- previsão do bloco-alvo é previsão L1 (Pred_L1), é calculada uma lista de candidato de previsor de movimento mvpListL1 de L1. Subsequen- temente, um previsor de vetor de movimento MvPL1 é selecionado e, em seguida, uma diferença de vetor de movimento mvdL1 de um vetor de movimento mvL1 de L1 é calculada. Em um caso em que o modo interprevisão do bloco-alvo é biprevisão (pred_bi), tanto a previsão L0 quanto a previsão L1 são realizadas. Uma lista de candidato de previ- sor de vetor de movimento mvpListL0 de L0 é calculada, e um previsor de vetor de movimento mvpL0 de L0 é selecionado e, em seguida, uma diferença de vetor de movimento mvdL0 do vetor de movimento mvL0 de L0 é calculada. Junto com esse cálculo, uma lista de candida- to de previsor de vetor de movimento mvpListL1 de L1 é calculada, e um previsor de vetor de movimento mvpL1 de L1 é calculado e, em seguida, uma diferença de vetor de movimento mvdL1 de um vetor de movimento mvL1 de L1 é calculada.
[00149] O processo de cálculo de diferença de vetor de movimento é realizado para cada uma das L0 e L1, em que o processo de cálculo é um processo comum tanto em L0 quanto em L1. Consequentemen- te, L0 e L1 serão denotados como LX, como um procedimento comum. No processo de cálculo da diferença de vetor de movimento de L0, X de LX é configurado como 0, enquanto no processo de cálculo da dife- rença de vetor de movimento de L1, X de LX é configurado como 1. Além disso, em um caso em que as informações na outra lista são re- feridas, em vez de uma LX, durante o processo de cálculo da diferença de vetor de movimento de uma LX, a outra lista será representada co- mo LY.
[00150] Em um caso em que um vetor de movimento mvLX de LX é usado (etapa S102 na Figura 19: SIM), os candidatos de previsor de vetor de movimento de LX são calculados, construindo, desse modo, uma lista de candidato de previsor de vetor de movimento mvpListLX de LX (etapa S103 na Figura 19). Na unidade de derivação de modo de previsor de vetor de movimento normal 301, a unidade de deriva- ção de candidato de previsor de vetor de movimento espacial 321, a unidade de derivação de candidato de previsor de vetor de movimento temporal 322, a unidade de derivação de candidato de previsor de ve-
tor de movimento baseado em histórico 323 e o reabastecedor de candidato de previsor de vetor de movimento 325 derivam uma plurali- dade de candidatos de previsor de vetor de movimento e, desse modo, constroem a lista de candidato de previsor de vetor de movimento mvpListLX. O procedimento de processamento detalhado da etapa S103, na Figura 19, será descrito a seguir com uso do fluxograma da Figura 20.
[00151] Subsequentemente, o seletor de candidato de previsor de vetor de movimento 327 seleciona um previsor de vetor de movimento mvpLX de LX a partir da lista de candidato de previsor de vetor de mo- vimento mvpListLX de LX (etapa S104 na Figura 19). No presente do- cumento, um elemento (o i-ésimo elemento contado a partir de 0) na lista de candidato de previsor de vetor de movimento mvpListLX é re- presentado como mvpListLX [i]. A diferença de vetor de movimento, que é uma diferença entre o vetor de movimento mvLx e cada um den- tre os candidatos de previsor de vetor de movimento mvpListLX [i] ar- mazenados na lista de candidato de previsor de vetor de movimento mvpListLX, é, cada uma, calculada. Uma quantidade de código, no momento da conversão em código dessas diferenças de vetor de mo- vimento, é calculada para cada um dos elementos (candidatos de pre- visor de vetor de movimento) da lista de candidato de previsor de mo- vimento mvpListLX. Subsequentemente, o candidato de previsor de vetor de movimento mvpListLX [i] que minimiza a quantidade de códi- go para cada um dos candidatos de previsor de vetor de movimento entre os elementos individuais registrados na lista de candidatos de previsor de vetor de movimento mvpListLX é selecionado como o pre- visor de vetor de movimento mvpLX, e seu índice i é obtido. Em um caso em que há uma pluralidade dos candidatos de previsor de vetor de movimento que têm a quantidade mínima de código gerado na lista de candidato de previsor de vetor de movimento mvpListLX, o candida-
to de previsor de vetor de movimento mvpListLX [i] que tem o índice i na lista de candidato de previsor de vetor de movimento mvpListLX representado por um pequeno número é selecionado como o previsor de vetor de movimento ideal mvpLX, e seu índice i é obtido.
[00152] Subsequentemente, o subtrator de vetor de movimento 328 subtrai o previsor de vetor de movimento mvLx selecionado de LX a partir do vetor de movimento mvLx de LX e calcula uma diferença de vetor de movimento mvdLx de LX como em: mvdLx=mvLX-mvLX (eta- pa S105 na Figura 19).
UNIDADE DE DERIVAÇÃO DE MODO DE PREVISOR DE VETOR DE MOVIMENTO NORMAL (AMVP NORMAL): LADO DE DECODI- FICAÇÃO
[00153] Em seguida, será descrito um procedimento de processa- mento de modo de previsor de movimento normal no lado da decodifi- cação, em referência à Figura 25. No lado de decodificação, a unidade de derivação de candidato de previsor de vetor de movimento espacial 421, a unidade de derivação de candidato de previsor de vetor de mo- vimento temporal 422, a unidade de derivação de candidato de previ- sor de vetor de movimento baseado em histórico 423 e o reabastece- dor de candidato de previsor de vetor de movimento 425 calculam in- dividualmente os vetores de movimento usados na interprevisão do modo de previsor de vetor de movimento normal para cada uma dentre a L0 e a L1 (etapas S201 a S206 na Figura 25). Especificamente, em um caso em que o modo de previsão PredMode do bloco-alvo é inter- previsão (MODE_INTER) e o modo de interprevisão do bloco-alvo é previsão L0 (Pred_L0), a lista de candidato de previsor de vetor de movimento mvpListL0 de L0 é calculada. Subsequentemente, o previ- sor de vetor de movimento mvpL0 é selecionado e, em seguida, o ve- tor de movimento mvL0 de L0 é calculado. Em um caso em que o mo- do interprevisão do bloco-alvo é previsão L1 (Pred_L1), a lista de can-
didato de previsor de movimento L1 mvpListL1 é calculada. Subse- quentemente, o previsor de vetor de movimento mvpL1 é selecionado, e o vetor de movimento L1 mvL1 é calculado. Em um caso em que o modo interprevisão do bloco-alvo é biprevisão (pred_bi), tanto a previ- são L0 quanto a previsão L1 são realizadas. Uma lista de candidato de previsor de vetor de movimento mvpListL0 de L0 é calculada, e um previsor de vetor de movimento mvpL0 de L0 é selecionado e, em se- guida, o vetor de movimento mvL0 de L0 é calculado. Junto com esse cálculo, uma lista de candidato de previsor de vetor de movimento mvpListL1 de L1 é calculada, e um previsor de vetor de movimento mvpL1 de L1 é calculado e, em seguida, o vetor de movimento mvL1 de L1 é calculado.
[00154] Da mesma forma que o lado de conversão em código, o lado de decodificação realiza o processamento de cálculo de vetor de movimento para cada um dentre a L0 e a L1, em que o processamento é um processo comum tanto em L0 quanto em L1. Consequentemen- te, L0 e L1 serão denotados como LX, como um procedimento comum. LX representa um modo interprevisão usado para a interprevisão de um bloco-alvo de conversão em código. X é 0 no processo de cálculo do vetor de movimento de L0, e X é 1 no processo de cálculo do vetor de movimento de L1. Além disso, no caso em que as informações con- tidas na outra lista de referência são referidas, em vez da mesma lista de referência que a LX a ser calculada durante o processo de cálculo do vetor de movimento da LX, a outra lista de referência será repre- sentada como LY.
[00155] Em um caso em que o vetor de movimento mvLX de LX é usado (etapa S202 na Figura 25: SIM), os candidatos de previsor de vetor de movimento de LX são calculados para construir uma lista de candidato de previsor de vetor de movimento mvpListLX de LX (etapa S203 na Figura 25). Na unidade de derivação de modo de previsor de vetor de movimento normal 401, a unidade de derivação de candidato de previsor de vetor de movimento espacial 421, a unidade de deriva- ção de candidato de previsor de vetor de movimento temporal 422, a unidade de derivação de candidato de previsor de vetor de movimento baseado na histórico 423 e o reabastecedor de candidato de previsor de vetor de movimento 425 calculam uma pluralidade de candidatos de previsor de vetor de movimento e, desse modo, constroem a lista de candidato de previsor de vetor de movimento mvpListLX. O proce- dimento de processamento detalhado da etapa S203, na Figura 25, será descrito abaixo com uso do fluxograma da Figura 20.
[00156] Subsequentemente, o seletor de candidato de previsor de vetor de movimento 426 extrai um candidato de previsor de vetor de movimento mvpListLX [mvpldxLX] que corresponde ao índice de previ- sor de vetor de movimento mvpldxLX decodificado e fornecido pela unidade de decodificação de sequências de bits 201 da lista de candi- dato de previsor de vetor de movimento mvpListLX, como o previsor de vetor de movimento selecionado mvpLX (etapa S204 na Figura 25).
[00157] Subsequentemente, o adicionador de vetor de movimento 427 adiciona a diferença de vetor de movimento mvdLX de LX decodi- ficada e fornecida pela unidade de decodificação de sequências de bits 201 e pelo previsor de vetor de movimento mvLX de LX e calcula um vetor de movimento mvLX de LX, como em: mvLX = mvpLX+mvdLX (etapa S205 na Figura 25).
UNIDADE DE DERIVAÇÃO DE MODO DE PREVISOR DE VETOR DE MOVIMENTO NORMAL (AMVP NORMAL): MÉTODO DE PREVI- SÃO DE VETOR DE MOVIMENTO
[00158] A Figura 20 é um fluxograma que ilustra um procedimento de processamento do processo de derivação de modo de previsor de vetor de movimento normal, que tem uma função comum à unidade de derivação de modo de previsor de vetor de movimento normal 301 do dispositivo de conversão em código de imagem e à unidade de deriva- ção de modo de previsor de vetor de movimento normal 401 do dispo- sitivo de decodificação imagem, de acordo com a modalidade da pre- sente invenção.
[00159] Cada uma dentre a unidade de derivação de modo de pre- visor de vetor de movimento normal 301 e a unidade de derivação de modo de previsor de vetor de movimento normal 401 inclui uma lista de candidato de previsor de vetor de movimento mvpListLX. A lista de candidato de previsor de vetor de movimento mvpListLX tem uma es- trutura de lista e inclui uma região de armazenamento que armazena, como elementos, um índice de previsor de vetor de movimento que indica um local na lista de candidato de previsor de vetor de movimen- to e um candidato de previsor de vetor de movimento que corresponde ao índice. O número do índice de previsor de vetor de movimento co- meça a partir de 0, e os candidatos de previsor de vetor de movimento devem ser armazenados na região de armazenamento da lista de candidato de previsor de vetor de movimento mvpListLX. Na presente modalidade, presume-se que a lista de candidato de previsor de vetor de movimento mvpListLX possa registrar pelo menos dois candidatos de previsor de vetor de movimento (como as informações de interpre- visão). Além disso, uma variável numCurrMvpCand que indica o núme- ro de candidatos de previsor de vetor de movimento registrados na lis- ta de candidatos de previsor de vetor de movimento mvpListLx é confi- gurado como 0.
[00160] Cada uma das unidades de derivação de candidato de pre- visor de vetor de movimento espacial 321 e 421 deriva um candidato de previsor de vetor de movimento a partir de blocos nas proximidades do lado esquerdo. Esse processo deriva um previsor de vetor de mo- vimento mvLXA, em referência às informações interprevisão do bloco nas proximidades do lado esquerdo (A0 ou A1 na Figura 11), ou seja,
uma sinalização que indica se um candidato de previsor de vetor de movimento é usável, um vetor de movimento, um índice de referência, ou similar, e adiciona o MVLXa derivado à lista de candidato de previ- sor de vetor de movimento mvpListLX (etapa S301 na Figura 20). De- ve-se observar que X é 0 na previsão L0, e X é 1 na previsão L1 (o mesmo se aplica a seguir). Subsequentemente, as unidades de deri- vação de candidato de previsor de vetor de movimento espacial 321 e 421 derivam os candidatos de previsor de vetor de movimento de um bloco próximo superior. Esse processo deriva um previsor de vetor de movimento mvLXB, em referência às informações de interprevisão do bloco próximo superior (B0, B1 ou B2 na Figura 11), ou seja, uma sina- lização que indica se um candidato de previsor de vetor de movimento é usável, um vetor de movimento, um índice de referência, ou similar, quando o mvLXA derivado e o mvLXB derivado não são iguais, o mvLXB é adicionado à lista de candidatos de previsor de vetor de mo- vimento mvpListLX (etapa S302 na Figura 20). Os processos nas eta- pas S301 e S302, na Figura 20, são fornecidos como um processo comum, exceto que as posições e números de blocos próximos de re- ferência são diferentes, e uma sinalização availableFlagLXN que indi- ca se um candidato de previsor de vetor de movimento de um bloco de conversão em código é usável, e um vetor de movimento mvLXN, um índice de referência refldxN (N indica A ou B, o que se aplica de modo similar doravante) será derivado nesses processos.
[00161] Subsequentemente, cada uma das unidades de derivação de candidato de previsor do vetor de movimento temporal 322 e 422 deriva um candidato de previsor de vetor de movimento a partir de um bloco em uma imagem que tem uma diferença temporal a partir da imagem-alvo. Esse processo deriva uma sinalização availableFla- gLXCol que indica se um candidato de previsor de vetor de movimento de um bloco de conversão em código de uma imagem que tem uma diferença temporal é usável, e um vetor de movimento mvLXCol, um índice de referência refIdxCol e uma lista de referência listCol, e adici- ona mvLXCol à lista de candidato de previsor de vetor de movimento mvpListLX (etapa S303 na Figura 20).
[00162] Deve-se observar que se supõe que os processos das uni- dades de derivação de candidato de previsor de vetor de movimento temporal 322 e 422 podem ser omitidas em unidades de uma sequên- cia (SPS), uma imagem (PPS) ou uma fatia.
[00163] Subsequentemente, as unidades de derivação de candidato de previsor de vetor de movimento baseado em histórico 323 e 423 adicionam os candidatos de previsor de vetor de movimento baseados em histórico registrados em uma lista de candidato de previsor de ve- tor de movimento baseada em histórico HmvpCandList à lista de can- didato de previsor de vetor de movimento mvpListLX. (etapa S304 na Figura 20). Os detalhes do processo de processamento de registo na etapa S304 serão descritos a seguir, em referência ao fluxograma da Figura 29.
[00164] Subsequentemente, os reabastecedores de candidato de previsor de vetor de movimento 325 e 425 adicionam um candidato de previsor de vetor de movimento que tem um valor predeterminado, como (0, 0) até que a lista de candidato de previsor de vetor de movi- mento mvpListLX seja satisfeita (S305 na Figura 20).
UNIDADE DE DERIVAÇÃO DO MODO DE MESCLAGEM NORMAL (MESCLAGEM NORMAL)
[00165] A unidade de derivação do modo de mesclagem normal 302, na Figura 18, inclui uma unidade de derivação de candidato de mesclagem espacial 341, uma unidade de derivação de candidato de mesclagem temporal 342, uma unidade de derivação de candidato de mesclagem de média 344, uma unidade de derivação de candidato de mesclagem baseada em histórico 345, um reabastecedor de candidato de mesclagem 346 e um seletor de candidato de mesclagem 347.
[00166] A unidade de derivação de modo de mesclagem normal 402, na Figura 24, inclui uma unidade de derivação de candidato de mesclagem espacial 441, uma unidade de derivação de candidato de mesclagem temporal 442, uma unidade de derivação de candidato de mesclagem de média 444, uma unidade de derivação de candidato de mesclagem baseada em histórico 445, um reabastecedor de candidato de mesclagem 446 e um seletor de candidato de mesclagem 447.
[00167] A Figura 21 é um fluxograma que ilustra um procedimento de um processo de derivação de modo de mesclagem normal que tem uma função comum à unidade de derivação de modo de mesclagem normal 302 do dispositivo de conversão em código de imagem e a uni- dade de derivação de modo de mesclagem normal 402 do dispositivo de decodificação de imagem, de acordo com a modalidade da presen- te invenção.
[00168] Doravante, vários processos serão descritos passo a pas- so. A descrição a seguir é um caso em que o tipo de fatia slice_type é fatia B, a menos que especificado de outro modo. No entanto, a pre- sente invenção também pode ser aplicada ao caso de fatia P. Deve ser observado que há apenas a previsão L0 (Pred_L0) como o modo de interprevisão, sem a previsão L1 (Pred_L1) ou a biprevisão (pred_bi), no caso em que o tipo de fatia slice_type é a fatia P. Conse- quentemente, é possível omitir o processo relacionado à L1, nesse ca- so.
[00169] A unidade de derivação de modo de mesclagem normal 302 e a unidade de derivação de modo de mesclagem normal 402 in- cluem uma lista de candidato de mesclagem mergeCandList. A lista de candidato de mesclagem mergeCandList tem uma estrutura de lista e inclui uma região de armazenamento que armazena, como elementos, um índice de mesclagem que indica um local na lista de candidato de mesclagem e um candidato de mesclagem que corresponde ao índice. O número do índice de mesclagem começa a partir de 0, e o candidato de mesclagem é armazenado na região de armazenamento da lista de candidato de mesclagem mergeCandList. No processamento subse- quente, o candidato de mesclagem do índice de mesclagem i registra- do na lista de candidato de mesclagem mergeCandList será represen- tado por mergeCandList[i]. Na presente modalidade, presume-se que a lista de candidato de mesclagem mergeCandList pode registar pelo menos seis candidatos de mesclagem (como informações de interpre- visão). Além disso, uma variável numCurrMergeCand que indica o número de candidatos de mesclagem registrados na lista de candidato de mesclagem mergeCandList é configurado como 0.
[00170] A unidade de derivação de candidato de mesclagem espa- cial 341 e a unidade de derivação de candidato de mesclagem espaci- al 441 derivam um candidato de mesclagem espacial de cada um dos blocos (B1, A1, B0, A0, B2 na Figura 11) nas proximidades do bloco- alvo, na ordem de B1, A1, B0, A0 e B2, a partir das informações de conversão em código armazenadas na memória de armazenamento de informações de conversão em código 111 do dispositivo de conver- são em código de imagem ou na memória de armazenamento de in- formações de conversão em código 205 do dispositivo de decodifica- ção de imagem, e, em seguida, registram os candidatos derivados de mesclagem espacial na lista de candidato de mesclagem mergeCan- dList (etapa S401 na Figura 21). No presente documento, N que indica um dentre B1, A1, B0, A0, B2 ou o candidato de mesclagem temporal Col será definido. Os itens a serem derivados incluem uma sinalização availableFlagN que indica se as informações de interprevisão do bloco N são usáveis como candidato de mesclagem espacial, um índice de referência refIdxL0N de L0 e um índice de referência refIdxL1N de L1 do candidato de mesclagem espacial N, uma sinalização de previsão
L0 PredFlagL0N que indica se a previsão L0 deve ser realizada, uma sinalização de previsão L1 predFlagL1N que indica se a previsão L1 deve ser realizada, um vetor de movimento mvL0N de L0 e um vetor de movimento mvL1N de L1. No entanto, uma vez que o candidato de mesclagem, na presente modalidade, é derivado sem referência às informações de interprevisão do bloco incluído no bloco-alvo de con- versão em código, o candidato de mesclagem espacial que usa as in- formações de interprevisão do bloco incluído no bloco-alvo de conver- são em código não será derivado.
[00171] Subsequentemente, a unidade de derivação de candidato de mesclagem temporal 342 e a unidade de derivação de candidato de mesclagem temporal 442 derivam os candidatos de mesclagem tem- poral a partir de imagens que têm uma diferença temporal, e registram os candidatos de mesclagem temporal derivados em uma lista de can- didato de mesclagem mergeCandList (etapa S402 na Figura 21). Os itens a serem derivados incluem uma sinalização availableFlagCol que indica se o candidato de mesclagem temporal é usável, uma sinaliza- ção de previsão L0 predFlagL0Col que indica se a previsão L0 do can- didato de mesclagem de tempo deve ser executada, uma sinalização L1 predFlagL1Col que indica se a previsão L1 deve ser realizada, e um vetor de movimento mvL0Col de L0, e um vetor de movimento mvL1Col de L1.
[00172] Deve ser observado que se supõe que os processos das unidades de derivação de candidato de mesclagem temporal 342 e 442 podem ser omitidos em unidades de uma sequência (SPS), uma imagem (PPS) ou uma fatia.
[00173] Subsequentemente, a unidade de derivação de candidato de mesclagem baseada em histórico 345 e a unidade de derivação de candidato de mesclagem baseada em histórico 445 registram os can- didatos de previsor de vetor de movimento baseados em histórico re-
gistrados na lista de candidatos de previsor de vetor de movimento ba- seado em histórico HmvpCandList, para a lista de candidato de mes- clagem mergeCandList (etapa S403 na Figura 21).
[00174] Em um caso em que o número de candidatos de mescla- gem numCurrMergeCand registrado na lista de candidato de mescla- gem mergeCandList é menor do que o número máximo de candidatos de mesclagem MaxNumMergeCand, o candidato de mesclagem base- ado em histórico é derivado com o número de candidatos de mescla- gem numCurrMergeCand registrado na lista de candidato de mescla- gem MergeCandList que se limita ao número máximo de candidatos de mesclagem MaxNumMergeCand e, em seguida, registrado na lista de candidato de mesclagem MergeCandList.
[00175] Subsequentemente, a unidade de derivação de candidato de mesclagem de média 344 e a unidade de derivação de candidato de mesclagem de média 444 derivam um candidato de mesclagem de média a partir da lista de candidato de mesclagem MergeCandList e adicionam o candidato de mesclagem de média derivada à lista de candidato de mesclagem MergeCandList (etapa S404 na Figura 21).
[00176] Em um caso em que o número de candidatos de mescla- gem numCurrMergeCand registrado na lista de candidato de mescla- gem mergeCandList é menor do que o número máximo de candidatos de mesclagem MaxNumMergeCand, o candidato de mesclagem de média é derivado com o número de candidatos de mesclagem numCurrMergeCand registrado na lista de candidato de mesclagem MergeCandList que se limita ao número máximo de candidatos de mesclagem MaxNumMergeCand e, em seguida, registrado na lista de candidato de mesclagem MergeCandList.
[00177] No presente documento, o candidato de mesclagem de média é um novo candidato de mesclagem, o que inclui um vetor de movimento obtido promediando-se os vetores de movimento do primei-
ro candidato de mesclagem e do segundo candidato de mesclagem registrado na lista de candidato de mesclagem MergeCandList para cada uma dentre a previsão L0 e a previsão L1.
[00178] Subsequentemente, no reabastecedor de candidato de mesclagem 346 e no reabastecedor de candidato de mesclagem 446, em um caso em que o número de candidatos de mesclagem numCurrMergeCand registrado na lista de candidato de mesclagem MergeCandList é menor do que o número máximo de candidatos de mescalgem MaxNumMergeCand, um candidato de mesclagem adicio- nal é derivado com o número de candidatos de mesclagem numCurr- MergeCand registrado na lista de candidato de mesclagem Merge- CandList que se limita ao número máximo de candidatos de mescla- gem MaxNumMergeCand, e, em seguida, registrado na lista de candi- dato de mesclagem MergeCandList (etapa S405 na Figura 21). Na fa- tia P, um candidato de mesclagem que tem o vetor de movimento de um valor (0, 0) e o modo de previsão de previsão L0 (Pred_L0) é adi- cionado com o número máximo de candidatos de mesclagem Max- NumMergeCand como o limite superior. Na fatia B, um candidato de mesclagem que tem o modo de previsão de biprevisão (pred_bi) e o vetor de movimento de um valor (0, 0) é adicionado. O índice de refe- rência no momento da adição de um candidato de mesclagem é dife- rente do índice de referência que já foi adicionado.
[00179] Subsequentemente, o seletor de candidato de mesclagem 347 e o seletor de candidato de mesclagem 447 selecionam um candi- dato de mesclagem entre os candidatos de mesclagem registrados na lista de candidato de mesclagem MergeCandList. O seletor de candi- dato de mesclagem 347 no lado de conversão em código calcula a quantidade de código e a quantidade de distorção e, desse modo, se- leciona um candidato de mesclagem e, em seguida, fornece um índice de mesclagem que indica o candidato de mesclagem selecionado e as informações de interprevisão do candidato de mesclagem para a uni- dade de previsão de compensação de movimento 306 através do de- terminador de modo de interprevisão 305. Em contrapartida, o seletor de candidato de mesclagem 447 no lado de decodificação seleciona um candidato de mesclagem com base no índice de mesclagem deco- dificado e fornece o candidato de mesclagem selecionado para a uni- dade de previsão de compensação de movimento 406.
LISTA DE CANDIDATO DE PREVISOR DE VETOR DE MOVIMENTO BASEADO EM HISTÓRICO DE ATUALIZAÇÃO
[00180] Em seguida, um método de inicialização e atualização da lista de candidato de previsor de vetor de movimento baseada em his- tórico HmvpCandList fornecido na memória de armazenamento de in- formações de conversão em código 111, no lado de conversão em có- digo, e na memória de armazenamento de informações de conversão em código 205, no lado da decodificação, serão descritos em detalhes. A Figura 26 é um fluxograma que ilustra o procedimento de processa- mento de inicialização/ atualização de lista de candidato de previsor de vetor de movimento baseado em histórico.
[00181] Na presente modalidade, a lista de candidato de previsor de vetor de movimento baseado em histórico HmvpCandList é atualizada na memória de armazenamento de informações de conversão em có- digo 111 e na memória de armazenamento de informações de conver- são em código 205. Alternativamente, uma unidade de atualização de lista de candidato de previsor de vetor de movimento baseada em his- tórico pode ser fornecida na unidade de interprevisão 102 e na unida- de de interprevisão 203 para atualizar a lista de candidato de previsor de vetor de movimento baseada em histórico HmvpCandList.
[00182] As configurações iniciais da lista de candidato de previsor de vetor de movimento baseada em histórico HmvpCandList são reali- zadas na cabeça da fatia. No lado de conversão em código, a lista de candidato de previsor de vetor de movimento baseada em histórico HmvpCandList é atualizada em um caso em que o modo de previsor de vetor de movimento normal ou o modo de mesclagem normal é se- lecionado pelo determinador de método de previsão 105. No lado de decodificação, a lista de candidato de previsor de vetor de movimento baseada em histórico HmvpCandList é atualizada em um caso em que as informações de previsão decodificadas pela unidade de decodifica- ção de sequências de bits 201 são o modo de previsor de vetor de movimento normal ou o modo de mesclagem normal.
[00183] As informações de interprevisão usadas no momento de realização da interprevisão no modo de previsor de vetor de movimen- to normal ou no modo de mesclagem normal devem ser registradas na lista de candidato de previsor de vetor de movimento baseado em his- tórico HmvpCandList, como um candidato de informações de interpre- visão hMvpCand. O candidato de informações de interprevisão hMv- pCand inclui o índice de referência RefIdxL0 de L0 e o índice de refe- rência RefIdxL1 de L1, o indicador previsão L0 predFlagL0 que indica se a previsão L0 deve ser realizada, o indicador previsão L1 predFlagL1 que indica se a previsão L1 deve ser realizada, o vetor de movimento mvL0 de L0 e o vetor de movimento mvL1 de L1.
[00184] Em um caso em que há informações de interprevisão que têm o mesmo valor que o candidato de informações de interprevisão hMvpCand entre os elementos (isto é, informações de interprevisão) registrados na lista de candidato de previsor de vetor de movimento baseado em histórico hMvpCandList fornecido na memória de arma- zenamento de informações de conversão em código 111, no lado de conversão em código e na memória de armazenamento de informa- ções de conversão em código 205, no lado da decodificação, o ele- mento será excluído da lista de candidato de previsor de vetor de mo- vimento baseada em histórico hMvpCandList. Em contrapartida, em um caso em que não há nenhuma informação de interprevisão que tenha o mesmo valor que o candidato de informações de interprevisão hMvpCand, o elemento principal da lista de candidato de previsor de vetor de movimento baseado em histórico hMvpCandList será excluí- do, e as informações de interprevisão de candidato hMvpCand serão adicionadas ao final da lista de candidato de previsor de vetor de mo- vimento baseada em histórico hMvpCandList.
[00185] O número de elementos da lista de candidato de previsor de vetor de movimento baseado em histórico hMvpCandList fornecida na memória de armazenamento de informações de conversão em có- digo 111, no lado da conversão em código e na memória de armaze- namento de informações de conversão em código 205, no lado de de- codificação da presente invenção, é configurado para seis.
[00186] Primeiro, a lista de candidato de previsor de vetor de movi- mento baseada em histórico hMvpCandList é inicializada em unidades de fatias (etapa S2101 na Figura 26). Todos os elementos da lista de candidato de previsor de vetor de movimento baseada em histórico hMvpCandList são esvaziados na cabeça da fatia, e o número numH- mvpCand (número atual de candidatos) de candidatos de previsor de vetor de movimento baseados em histórico registrados na lista de can- didato de previsor de vetor de movimento baseado em histórico hMv- pCandList é configurado como 0.
[00187] Embora a inicialização da lista de candidato de previsor de vetor de movimento baseada em histórico hMvpCandList seja realiza- da em unidades de fatias (primeiro bloco de conversão em código de uma fatia), a inicialização pode ser realizada em unidades de imagens, lado a lado ou em linhas de blocos de árvore.
[00188] Subsequentemente, o seguinte processo de atualização da lista de candidato de previsor de vetor de movimento baseada em his- tórico hMvpCandList é repetidamente realizado para cada um dos blo-
cos de conversão em código na fatia (etapas S2102 a S2107 na Figura 26).
[00189] Primeiro, as configurações iniciais são realizadas em uni- dades de blocos de conversão em código. Uma sinalização Identical- CandExist que indica se existe um candidato idêntico é configurado como um valor de FALSE (false), um índice-alvo de exclusão remo- veIdx que indica que o candidato-alvo de exclusão é configurado como 0 (etapa S2103 na Figura 26).
[00190] É determinado se há um candidato de informações de in- terprevisão hMvpCand para ser registrado (etapa S2104 na Figura 26). Em um caso em que o determinador do método de previsão 105 no lado de conversão em código determina o modo de previsor de vetor de movimento normal ou o modo de mesclagem normal, ou em que a unidade de decodificação de sequências de bits 201 no lado de deco- dificação realiza a decodificação como o modo de previsor de vetor de movimento normal ou o modo de mesclagem normal, as informações de interprevisão correspondentes são configuradas como um candida- to de informações de interprevisão hMvpCand a ser registrado. Em um caso em que o determinador de método de previsão 105 no lado de conversão em código determina o modo de intraprevisão, o modo de previsor de vetor de movimento de sub-bloco ou o modo de mescla- gem de sub-bloco, ou em um caso em que a unidade de decodificação de sequências de bits 201 no lado da decodificação realiza a decodifi- cação como o modo de intraprevisão, o sub-bloco de modo de previsor de vetor de movimento, ou o modo de mesclagem de sub-bloco, o pro- cesso de atualização da lista de candidato de previsor de vetor de mo- vimento baseado em histórico hMvpCandList não será realizado, e não haverá candidato de informações de interprevisão hMvpCand para ser registrado. Em um caso em que não há nenhum candidato de informa- ções de interprevisão hMvpCand para ser registrado, as etapas S2105 a S2106 serão ignoradas (etapa S2104 na Figura 26: NÃO). Em um caso em que há um candidato de informações de interprevisão hMv- pCand para ser registrado, o processo de etapa S2105 em diante será realizado (etapa S2104 na Figura 26: SIM).
[00191] Subsequentemente, é determinado se os elementos indivi- duais da lista de candidatos de previsor de vetor de movimento basea- do em histórico HMVPCandList incluem um elemento (informações interprevisão) com o mesmo valor que o candidato de informações de interprevisão HmvpCand a ser registrado, isto é, se existe o elemento idêntico (etapa S2105 na Figura 26). A Figura 27 é um fluxograma do procedimento de processamento de confirmação de elementos idênti- cos. Em um caso em que o valor do número de candidatos de previsor de vetor de movimento baseado em histórico NumHMvPCand é 0 (etapa S2121: NÃO na Figura 27), a lista de candidato de previsor de vetor de movimento baseada em histórico HMVPCandList está vazia e o candidato idêntico não existe. Consequentemente, as etapas S2122 a S2125 na Figura 27 serão ignoradas, terminando o procedimento de processamento de confirmação do elemento idêntico. Em um caso em que o valor do número numhMvpCand dos candidatos de previsor de movimento baseados em histórico é maior que 0 (SIM na etapa S2121 na Figura 27), o processo da etapa S2123 será repetido a partir de um índice de previsor de vetor de movimento baseado em histórico HMV- Pidx de 0 para NumHMvPCand-1 (etapas S2122 a S2125 na Figura 27). Primeiro, a comparação é feita sobre se o elemento HMVPidx- ésimo HMvPCandList [HMVPidx] contado a partir de 0, na lista de candidato de previsor de vetor de movimento baseado em histórico é idêntico ao candidato de informações de interprevisão HMVPCand (etapa S2123 na Figura 27). Em um caso em que os mesmos são idênticos (etapa S2123 na Figura 27: SIM), a sinalização IdenticalCan- dExist que indica se o candidato idêntico existe é configurada como um valor TRUE, e o índice-alvo de exclusão removeIdx que indica a posição do elemento a ser excluído é configurado como um valor atual do índice de previsor de vetor de movimento baseado em histórico hMvpIdx, e o processamento de confirmação de elemento idêntico se- rá concluído. Em um caso em que os mesmos não são idênticos (eta- pa S2123 na Figura 27: NÃO), HMVPidx é aumentado em um. Em um caso em que o índice previsor de vetor de movimento baseado em his- tórico HMVPidx é menor ou igual a NumHMvPCand-1, o processamen- to da etapa S2123 e é realizado depois.
[00192] Retornando ao fluxograma da Figura 26, é realizado o pro- cesso de deslocamento e adição de elementos da lista de candidato de previsor de movimento baseada em histórico HMVPCandList (etapa S2106 na Figura 26). A Figura 28 é um fluxograma do procedimento de processamento de deslocamento/adição de elementos da lista de candidato de previsor de vetor de movimento baseada em histórico HMVPCandList na etapa S2106 na Figura 26. Primeiro, é determinado se deve adicionar um novo elemento depois de remover o elemento armazenado na lista de candidato de previsor de vetor de movimento baseada em histórico HMVPCandList, ou para adicionar um novo ele- mento, sem remover o elemento. Especificamente, uma comparação é feita sobre se a sinalização identicalcandexist que indica se o candida- to idêntico existe é TRUE, ou se NumhMVPCand é 6 (etapa S2141 na Figura 28). Em um caso em que uma das condições que a sinalização identicalCandExist que indica se o candidato idêntico existe é TRUE ou que o número de candidato atual NumHmvpCand é 6 é satisfeito (etapa S2141: SIM na Figura 28), o elemento armazenado na lista de candidato de previsor de vetor de movimento baseado em histórico HmvpCandList é removido e, posteriormente, um novo elemento será adicionado. Um valor inicial do índice i é definido como um valor de RemoveIDX + 1. O processo de deslocamento de elemento da etapa
S2143 é repetido a partir desse valor inicial para NumhMVPCand. (etapas S2142 a S2144 na Figura 28). Ao copiar os elementos de HMVPCandList[i] para HMVPCandList[i-1], os elementos são desloca- dos para frente (etapa S2143 na Figura 28) e i é aumentado em um (etapas S2142 a S2144 na Figura 28). Subsequentemente, o candida- to de informações de interprevisão HMVPCand é adicionado ao (NumhMvPCand-1)-ésimo HMvPCandList [NumhMvPCand-1] contan- do a partir de 0, que corresponde ao fim da lista de candidato de previ- sor de vetor de movimento baseado em histórico (etapa S2145 na Fi- gura 28), e o processo de deslocamento/ adição de elemento da lista de candidato de previsor de vetor de movimento baseado em histórico HMVPCandList será concluído. Em contrapartida, em um caso em que nenhuma das condições que a sinalização identicalcandexist que indi- ca se o candidato idêntico existe é VERDADEIRO e que NumhMV- PCand é 6 são satisfeitas (etapa S2141: NÃO na Figura 28), o candi- dato de informações interprevisão HMVPCand será adicionado ao final da lista de candidato de previsor de vetor de movimento baseada em histórico, sem remover o elemento armazenado na lista de candidato de previsor de vetor de movimento baseada em histórico HMVPCan- dlist (etapa S2146 na Figura 28). No presente documento, o fim da lis- ta de candidato de previsor de vetor de movimento baseada em histó- rico é o NumhMVPCand-ésimo HMVPCandList [NumhMvPCand] con- tado a partir de 0. Além disso, NumhMVPCand é aumentado em um, e o processo de deslocamento de elemento e adição da lista de candida- tos de previsor de movimento baseado em histórico HMVPCandList estão concluídos.
[00193] A Figura 31 é uma vista que ilustra um exemplo de um pro- cesso de atualização da lista de candidatos de previsor de vetor de movimento baseada em histórico. Em um caso em que um novo ele- mento deve ser adicionado à lista de candidato de previsor de vetor de movimento baseada em histórico HMVPCandList, em que seis ele- mentos (informações de interprevisão) já foram registrados, a lista de candidato de previsor de vetor de movimento baseada em histórico HMVPCandList é comparada com as novas informações de interprevi- são, em ordem, a partir do elemento principal (Figura 31A). Quando o novo elemento tem o mesmo valor que o terceiro elemento HMVP2 da cabeça da lista de candidato de previsor de vetor de movimento base- ada em histórico HMVPCandList, o elemento HMVP2 é excluído da lista de candidato de previsor de vetor de movimento baseada em his- tórico HMVPCandList, e os seguintes elementos HMVP3 para HMVP5 são deslocados (copiados), um a um em diante, e um novo elemento é adicionado ao final da lista de candidato de previsor de vetor de movi- mento baseado em histórico HMVPCandList (Figura31B) para concluir a atualização da lista de candidato de previsor de vetor de movimento baseado em histórico HMVPCandlist (Figura 31C).
PROCESSO DE DERIVAÇÃO DE CANDIDATO DE PREVISOR DE VETOR DE MOVIMENTO BASEADO EM HISTÓRICO
[00194] Em seguida, um método de derivação de um candidato de previsor de vetor de movimento baseado em histórico da lista de can- didato de previsor de movimento baseada em histórico HMVPCandList será descrito em detalhes. Isso corresponde a um procedimento de processamento da etapa S304 na Figura 20 referente ao processa- mento comum realizado pela unidade de derivação de candidato de previsor de vetor de movimento baseado em histórico 323 da unidade de derivação modo de previsor de vetor de movimento normal 301 no lado de conversão em código e na unidade de derivação de candidato de previsor de vetor de movimento baseado na histórico 423 da unida- de de derivação de modo de previsor de vetor de movimento normal 401 no lado de decodificação. A Figura 29 é um fluxograma que ilustra um procedimento de processamento de derivação de candidato de previsor de vetor de movimento baseado em histórico.
[00195] Em um caso em que o número atual de candidatos de pre- visor de vetor de movimento NumCurrmVPCand é maior ou igual ao número máximo de elementos da lista de candidato de previsor de ve- tor de movimento MVPListlx (no presente documento, 2), ou o número de candidatos de previsor de vetor de movimento baseados em histó- rico numhmvpcand é 0 (etapa S2201: NO in Figura 29), o processo de etapas S2202 a S2209 da Figura 29 será omitido, e o procedimento de processamento de derivação de candidato de previsor de vetor de mo- vimento baseado em histórico será concluído. Em um caso em que o número numCurrmVPCand dos candidatos de previsor de vetor de movimento atual é menor do que 2, que é o número máximo de ele- mentos da lista candidato de previsor de vetor de movimento MVPLis- tlX, e em um caso em que o valor do número numhMvpCand do previ- sor de vetor de movimento baseado em histórico candidato é maior que 0 (etapa S2201: SIM na Figura 29), será realizado o processo das etapas S2202 a S2209 na Figura 29.
[00196] Subsequentemente, o processo das etapas S2203 a S2208 na Figura 29 é repetido, até que o índice i seja a partir de 1 até um va- lor menor do que 4 ou o número de candidatos de previsor de vetor de movimento baseados em histórico numCheckedHMVPCand (etapas S2202 a S2209 na Figura 29). Em um caso em que o número atual de candidatos de previsor de vetor de movimento NumCurrmVPCand é maior ou igual a 2, que é o número máximo de elementos da lista de candidatos de previsor de vetor de movimento mvpListLX (etapa S2203: NÃO na Figura 29), o processo das etapas S2204 a S2209 na Figura 29 será omitido, e o procedimento de processamento de deri- vação de candidato de previsor de vetor de movimento baseado em histórico será concluído. Em um caso em que o número atual de can- didatos de previsor de vetor de movimento numCurrmVPCand é menor do que 2, que é o número máximo de elementos na lista candidato de previsor vetor movimento mvpListLX (etapa S2203 na Figura 29: SIM), o processo na etapa S2204 e, mais tarde, na Figura 29, será realizado.
[00197] Subsequentemente, o processo nas etapas S2205 a S2207 é realizado para casos em que Y é 0 e Y é 1 (L0 e L1) (etapas S2204 a S2208 na Figura 29). Em um caso em que o número atual de candi- datos de previsor de vetor de movimento NumCurrmVPCand é maior ou igual a 2, que é o número máximo de elementos da lista de candi- datos de previsor de vetor de movimento mvpListLX (etapa S2205: NÃO na Figura 29), o processo das etapas S2206 a S2209, na Figura 29, será omitido, e o procedimento de processamento de derivação de candidato de previsor de vetor de movimento baseado em histórico será concluído. Em um caso em que o número atual de candidatos de previ- sor de vetor de movimento numCurrmVPCand é menor do que 2, que é o número máximo de elementos na lista de candidato de previsor de vetor de movimento mvpListLX (etapa S2205: SIM na Figura 29), o processo na etapa S2206 e, mais tarde, na Figura 29, será realizado.
[00198] Em seguida, em um caso em que a lista de candidato de previsor de vetor de movimento baseada em histórico HMVPCandList inclui um elemento com o mesmo índice de referência que o índice de referência RefidXLx do vetor-alvo de movimento de conversão em có- digo/decodificação e que é diferente de qualquer elemento da lista de previsor de vetor de movimento MVPlistLx (etapa S2206 : SIM na Figu- ra 29), um vetor de movimento de LY do candidato de previsor de ve- tor de movimento baseado em histórico HMvPCandList [NumhMV- PCand-i] é adicionado ao numCurrMvpCand-ésimo elemento MVPLis- tlx [NumcurrmVPCand], contando a partir de 0 na lista de candidato de previsor de vetor de movimento (etapa S2207 na Figura 29), e o núme- ro numcurrmvpcand RMVPCand dos candidatos de previsor de vetor de movimento atual é aumentado em um. Em um caso em que não há nenhum elemento na lista de candidatos de previsor de vetor de mo- vimento baseada em histórico HMVPCandList que tenha o mesmo ín- dice de referência que o índice de referência RefidXLx do vetor-alvo de movimento de conversão em código/decodificação e que seja diferente de qualquer elemento da lista previsor de vetor de movimento mvpLis- tlx (etapa S2206: NÃO na Figura 29), o processo adicional na etapa S2207 será ignorado.
[00199] O processo de etapas S2205 a S2207 na Figura 29 é reali- zado para L0 e L1 (etapas S2204 a S2208 na Figura 29). O índice i é aumentado em um, e quando o índice i é menor ou igual a qualquer um de menor valor de 4 ou o número de candidato de previsor de vetor de movimento baseado em histórico NumHMVPCand, o processo da etapa S2203 e posterior será realizado novamente (etapas S2202 a S2209 na Figura 29).
PROCESSO DE DERIVAÇÃO DE CANDIDATO DE MESCLAGEM BASEADO EM HISTÓRICO
[00200] A seguir, uma descrição detalhada de um método de deri- vação de um candidato de mesclagem baseado em histórico da lista de candidato de mesclagem baseada em histórico HMVPCandlist, um procedimento do processo da etapa S404 na Figura 21, que é um pro- cesso comum da unidade de derivação de candidato de mesclagem baseada em histórico 345 da unidade de derivação de modo de mes- clagem normal 302 no lado de conversão em código e da unidade de derivação de candidato de mesclagem baseada em histórico 445 da unidade de derivação de modo de mesclagem normal 402 no lado da decodificação. A Figura 30 é um fluxograma que ilustra um procedi- mento de processamento de derivação de candidato de mesclagem baseado em histórico.
[00201] Primeiro, um processo de inicialização é executado (etapa S2301 na Figura 30). Cada um dos elementos de 0 a (numCurrMerge-
cand -1) de isPruned[i] é configurado como o valor de FALSE, e a va- riável numOrigMergeCand é configurada como o número numCurr- Mergecand do número de elementos registrados na lista de candidato de mesclagem atual.
[00202] Subsequentemente, o valor inicial do índice HMVPidx é configurado como 1, e o processo adicional da etapa S2303 à etapa S2310 na Figura 30 é repetido a partir desse valor inicial até numH- MvPCand (etapas S2302 a S2311 na Figura 30). Quando o número numCurrMergeCand dos elementos registrados na lista de candidato de mesclagem atual não é menor ou igual a (o número máximo de candidato de mesclagem MaxNummergeCand-1), os candidatos de mesclagem foram adicionados a todos os elementos da lista de candi- dato de mesclagem. Consequentemente, o processo de derivação de candidato de mesclagem baseado no histórico será concluído (etapa S2303: NÃO na Figura 30). Em um caso em que o número numCurr- Mergecand dos elementos registrados na lista de candidato de mes- clagem atual é menor ou igual a (o número máximo de candidato de mesclagem maxNummergeCand-1), o processo da etapa S2304 e posterior será realizado. sameMotion é configurado como um valor de FALSE (etapa S2304 na Figura 30). Subsequentemente, o valor inicial do índice i é configurado como 0, e o processo das etapas S2306 e S2307 na Figura 30 é realizado a partir desse valor inicial para NumO- rigeCand-1 (S2305 a S2308 na Figura 30). A comparação é realizada sobre se o (numhmvpcand-HMVPidx)-ésimo elemento HMvPCandList [numhmVpcand-HMVPidx] que conta a partir de 0 na lista de candidato de previsão de vetor de movimento baseada em histórico é o mesmo valor que o i-ésimo elemento MergecandList [i] que conta a partir de 0 na lista de candidato de mesclagem (etapa S2306 na Figura 30).
[00203] Os candidatos de mesclagem são determinados para ter o mesmo valor em um caso em que todos os elementos constituintes
(modo de interprevisão, índice de referência, vetor de movimento) do candidato de mesclagem têm o mesmo valor. Em um caso em que os candidatos de mesclagem têm o mesmo valor e isPruned[i] é definido como FALSE (etapa S2306: SIM na Figura 30), tanto SameMotion quanto isPruned[i] serão definidos como TRUE (etapa S2307 na Figu- ra 30). Em um caso em que os valores não são os mesmos (etapa S2306: NÃO na Figura 30), o processo na etapa S2307 será ignorado. Após a conclusão do processamento de repetição a partir da etapa S2305 até a etapa S2308 na Figura 30, é feita comparação sobre se a SameMotion é FALSE (etapa S2309 na Figura 30). Em um caso em que o sameMotion é FALSE (etapa S2309: YES na Figura 30), ou se- ja, o (numhmvpcand-HMVPidx)-ésimo elemento HMvPCandList [numhmvPCand - HMVPidx] que conta a partir de 0 na lista de candi- datos de previsor de vetor de movimento baseada em histórico não existe em MergeCandlist e, por isso, o elemento HMVPidx MVPCan- dlist [NumhMvPCand - HMVPidx], isto é, (NumhMvPCand - HMVPidx)- ésimo elemento contado a partir de 0 da lista de candidato de previsor de vetor de movimento baseado em histórico é adicionado à Merge- candList [NumcurrMergecand], que é numCurrMergecand-ésimo na lista de candidato de mesclagem, e NumcurrMergecand é aumentada em um (etapa S2310 na Figura 30). O índice HMVPidx é aumentado em um (etapa S2302 na Figura 30), e o processo de etapas S2302 a S2311 na Figura 30 é repetido.
[00204] Após a conclusão da confirmação de todos os elementos na lista de candidato de previsor de vetor de movimento baseado em histórico ou conclusão da adição de candidatos de mesclagem a todos os elementos da lista de candidato de mesclagem, o processo de deri- vação de candidato de mesclagem baseado em histórico é concluído.
PROCESSO DE DERIVAÇÃO DE CANDIDATO DE MESCLAGEM DE MÉDIA
[00205] Segue-se uma descrição detalhada de um método de deri- vação de um candidato de mesclagem de média, um procedimento do processo da etapa S403 na Figura 21, que é um processo comum da unidade de derivação de candidato de mesclagem de média 344 da unidade de derivação de modo de mesclagem normal 302, no lado de conversão em código e da unidade de derivação de candidato de mesclagem de média 444 da unidade de derivação de modo de mes- clagem normal 402, no lado da decodificação. A Figura 39 é um fluxo- grama que ilustra um procedimento de processamento de derivação de candidato de mesclagem de média
[00206] Primeiro, um processo de inicialização é realizado (etapa S1301 na Figura 39). A variável numOrigMergeCand é definida como o número de elementos numCurrMergecand registrados na lista de can- didato de mesclagem atual.
[00207] Subsequentemente, a varredura é realizada sequencial- mente a partir do topo da lista de candidato de mesclagem para de- terminar duas informações de movimento. O índice i que indica as in- formações do primeiro movimento é configurado de modo que o índice i = 0, e o índice j que indica as segundas informações de movimento é configurado de modo que o índice j = 1. (etapas S1302 a S1303 na Figura 39). Quando o número numCurrMergeCand dos elementos re- gistrados na lista de candidato de mesclagem atual não é menor ou igual a (o número máximo de candidato de mesclagem MaxNummer- geCand-1), os candidatos de mesclagem foram adicionados a todos os elementos da lista de candidato de mesclagem. Consequentemente, o processo de derivação do candidato de mesclagem baseado no histó- rico será concluído (etapa S1304 na Figura 39). Em um caso em que o número numCurrMergecand dos elementos registrados na lista de candidato de mesclagem atual é menor ou igual a (o número máximo de candidato de mesclagem MaxNummergeCand-1), o processo de etapa S1305 e posterior será realizado.
[00208] Determina-se se tanto as i-ésimas informações de movi- mento MergeCandList[i] da lista de candidato de mesclagem e as j- ésimas informações de movimento MergeCandlist[j] da lista de candi- dato de mesclagem são inválidos (etapa S1305 na Figura 39). Em um caso em que ambos são inválidos, o processo prossegue para o pró- ximo elemento, sem derivar um candidato de mesclagem de média de MergeCandList[i] e MergeCandList[j]. Em um caso em que a condição de que tanto MergeCandList[i] quanto MergeCandList[j] são inválidos não é satisfeita, o seguinte processo é repetido com X configurado como 0 e 1 (etapas S1306 a S1314 na Figura 39).
[00209] Determina-se se a previsão LX de MergecandList[i] é válida (etapa S1307 na Figura 39). Em um caso em que a previsão LX de MergeCandList[i] é válida, determina-se se a previsão LX de Merge- CandList[j] é válida (etapa S1308 na Figura 39). Em um caso em que a previsão LX de MergeCandList[j] é válida, isto é, em um caso em que tanto a previsão LX de MergeCandList[i] quanto a previsão LX de Mer- geCandList[j] são válidas, um vetor de movimento da previsão LX obti- do promediando-se o vetor de movimento da previsão LX de Merge- CandList[i] e o vetor de movimento de previsão LX de MergeCan- dList[j] será derivado, e um candidato de mesclagem de média da pre- visão LX que tem um índice de referência de previsão LX de Merge- CandList[i] será derivado, de modo a ser configurado como previsão LX de AverageCand, e a previsão LX de AverageCand será validada (etapa S1309 na Figura 39). Na etapa S1308 da Figura 39, em um ca- so em que a previsão LX de MergeCandList[j] não é válida, isto é, em um caso em que a previsão LX de MergeCandList[i] é válida e a previ- são LX de MergeCandList[j] é inválida, um vetor de movimento da pre- visão LX de MergeCandList[i] e um candidato de mesclagem de média de previsão LX que tem um índice de referência será derivado, de mo-
do a ser configurado como previsão LX de AverageCand, e a previsão LX de AverageCand será validada (etapa S1310 na Figura 39). Em um caso em que a previsão LX de MergecandList[i] não é válida na etapa S1307 da Figura 39, determina-se se a previsão LX de Mergecan- dList[j] seja válida (etapa S1311 da Figura 39). Em um caso em que a previsão LX de MergeCandList[j] é válida, isto é, em um caso em que a previsão LX de MergeCandList[i] é inválida e a previsão LX de Mer- geCandList[j] é válida, um vetor de movimento da previsão LX de Mer- geCandList[j] e um candidato de mesclagem de média da previsão LX que tem um índice de referência será derivado, de modo a ser configu- rado como previsão LX de AverageCand, e a previsão LX de Avera- geCand será validada (etapa S1312 na Figura 39). Na etapa S1311 da Figura 39, em um caso em que a previsão LX de MergeCandList[j] não é válida, isto é, em um caso em que tanto a previsão LX de Merge- CandList[i] quanto a previsão LX de MergeCandList[j] são inválidas, a previsão LX de AverageCand será invalidada. (etapa S1312 na Figura 39).
[00210] O candidato de mesclagem de média AverageCand de pre- visão L0, previsão L1 ou previsão BI construído conforme descrito acima é adicionado ao NumcurrMergecand-ésimo Mergecan- dList[NumCurrMergecand] da lista de candidato de mesclagem, e NumCurrMergecand é aumentado em um (etapa S1315 na Figura39). Isso completa o processo de derivação de candidato de mesclagem de média.
[00211] O candidato de mesclagem de média é obtido promedian- do-se em cada um dos componentes horizontais do vetor de movimen- to e no componente vertical do vetor de movimento.
PROCESSO DE PREVISÃO DE COMPENSAÇÃO DE MOVIMENTO
[00212] A unidade de previsão de compensação de movimento 306 adquire a posição e o tamanho de um bloco que está atualmente sujei-
to ao processamento de previsão na conversão em código. Além dis- so, a unidade de previsão de compensação de movimento 306 adquire informações de interprevisão do determinador de modo interprevisão
305. Um índice de referência e um vetor de movimento são derivados a partir das informações de interprevisão adquirida, e a imagem de re- ferência especificada pelo índice de referência na memória de imagem decodificada 104 é deslocada da mesma posição que um sinal de imagem do bloco que é submetido ao processamento de previsão pela quantidade do vetor de movimento. O sinal de imagem dessa posição, após o deslocamento, é adquirido e, posteriormente, um sinal de pre- visão é gerado.
[00213] Em um caso em que a previsão é feita a partir de uma úni- ca imagem de referência, como quando o modo de interprevisão na interprevisão é previsão L0 ou previsão L1, um sinal de previsão ad- quirido a partir de uma imagem de referência é configurado como um sinal de previsão de compensação de movimento. Em um caso em que o modo de previsão é feito a partir de duas imagens de referência, como quando o modo de interprevisão é a previsão BI, uma promedia- ção ponderada dos sinais de previsão adquiridos a partir das duas imagens de referência é configurada como o sinal de previsão de compensação de movimento. O sinal de previsão de compensação de movimento adquirido é fornecido ao determinador de método de previ- são 105. No presente documento, a razão de média ponderada na bi- previsão é configurada como 1:1. Alternativamente, a promediação ponderada pode usar outra razão. Por exemplo, a taxa de ponderação pode ser configurada de modo que quanto menor for o intervalo de imagem entre a imagem-alvo de previsão e a imagem de referência, maior a taxa de ponderação. O cálculo da razão de ponderação tam- bém pode ser realizado com uso de uma tabela de correspondência entre a combinação dos intervalos de imagem e as razões de ponde-
ração.
[00214] A unidade de previsão de compensação de movimento 406 tem função similar à unidade de previsão de compensação de movi- mento 306, no lado de conversão em código. A unidade de previsão de compensação de movimento 406 adquire informações de interpre- visão a partir da unidade de derivação de modo de previsor de vetor de movimento normal 401, da unidade de derivação de modo de mes- clagem normal 402, da unidade de derivação de modo de previsor de vetor de movimento de sub-bloco 403 e da unidade de derivação de modo de mesclagem de sub-bloco 404, através do comutador 408. A unidade de previsão de compensação de movimento 406 fornece o sinal de previsão de compensação de movimento obtido para o sobre- positor de sinal de imagem decodificada 207.
MODO DE INTERPREVISÃO
[00215] O processo de realização de previsão, a partir de uma úni- ca imagem de referência, é definido como uniprevisão. A uniprevisão realiza a previsão de previsão L0 ou previsão L1 com uso de uma das duas imagens de referência registradas nas listas de referência L0 ou L1.
[00216] A Figura 32 ilustra um caso de uniprevisão, em que a ima- gem de referência (Refl0PIC) de L0 está em um momento antes da imagem-alvo (CurPIC). A Figura 33 ilustra um caso de uniprevisão, em que a imagem de referência da previsão L0 está em um momento após a imagem-alvo. Da mesma forma, a uniprevisão pode ser reali- zada substituindo-se a imagem de referência de previsão L0 nas Figu- ras 32 e 33 por uma imagem de referência de previsão L1 (Refl1PIC).
[00217] O processo de realização de previsão a partir de duas figu- ras de referência é configurado como biprevisão. A biprevisão realiza previsão, expressa como previsão de BI, com uso tanto da previsão L0 quanto da previsão L1. A Figura 34 ilustra um caso de biprevisão em que uma imagem de referência de previsão L0 está em um momento antes da imagem-alvo, e uma imagem de referência de previsão L1 está em um momento após a imagem-alvo. A Figura 35 ilustra um ca- so de biprevisão em que a imagem de referência para a previsão L0 e a imagem de referência para a previsão L1 estão em um momento an- tes da imagem-alvo. A Figura 36 ilustra um caso de biprevisão em que a imagem de referência para a previsão L0 e a imagem de referência para a previsão L1 estão em um momento após a imagem-alvo.
[00218] Desta forma, é possível usar a previsão, sem limitar a rela- ção entre o tipo de previsão de L0/L1 e o tempo, de modo que L0 para a direção passada e L1 para a direção futura. Além disso, a biprevisão pode realizar cada uma das previsões L0 e L1 com uso de uma mes- ma imagem de referência. A determinação se deve realizar a previsão de compensação de movimento na uniprevisão ou na biprevisão é feita com base em informações (por exemplo, uma sinalização) que indica se deve usar a previsão L0 e se deve usar a previsão L1, por exemplo.
ÍNDICE DE REFERÊNCIA
[00219] Na modalidade da presente invenção, é possível selecionar uma imagem de referência ideal a partir de uma pluralidade de ima- gens de referência na previsão de compensação de movimento, a fim de melhorar a precisão da previsão de compensação de movimento. Por isso, a imagem de referência usada na previsão de compensação de movimento deve ser usada como um índice de referência, e o índi- ce de referência é codificado em um fluxo de bits juntamente com a diferença do vetor de movimento.
PROCESSO DE COMPENSAÇÃO DE MOVIMENTO BASEADO NO MODO DE PREVISOR DE VETOR DE MOVIMENTO NORMAL
[00220] Conforme ilustrado na unidade interprevisão 102 do lado de conversão em código da Figura 16, em um caso em que a unidade de derivação de modo de previsor de vetor de movimento normal 301 te-
nha sido selecionada no determinador de modo de interprevisão 305, a unidade de previsão de compensação de movimento 306 adquire in- formações de previsão a partir do determinador de modo interprevisão 305, e deriva um modo de interprevisão, um índice de referência e um vetor de movimento de um bloco-alvo e, desse modo, gera um sinal de previsão de compensação de movimento. O sinal de previsão de com- pensação de movimento construído é fornecido ao determinador do método de previsão 105.
[00221] Da mesma forma, conforme ilustrado na unidade de inter- previsão 203, no lado da decodificação na Figura 22, em um caso em que o interruptor 408 é conectado à unidade de derivação de modo de previsor de vetor de movimento normal 401, durante o processo de decodificação, a unidade de previsão de compensação de movimento 406 adquire informações de interprevisão pela unidade de derivação de modo de previsor de vetor de movimento normal 401, e deriva um modo interprevisão, um índice de referência e um vetor de movimento do bloco-alvo atual e, desse modo, gera um sinal de previsão de com- pensação de movimento. O sinal de previsão de compensação de mo- vimento construído é fornecido ao sobrepositor de sinal de imagem decodificada 207.
PROCESSAMENTO DE COMPENSAÇÃO DE MOVIMENTO COM BASE NO MODO DE MESCLAGEM NORMAL
[00222] Conforme ilustrado na unidade interprevisão 102 do lado da conversão em código da Figura 16, em um caso em que as informa- ções interprevisão pela unidade de derivação do modo de mesclagem normal 302 tenha sido selecionada no determinador do modo interpre- visão 305, a unidade de previsão de compensação de movimento 306 adquire essa informações de interprevisão a partir do determinador de modo de interprevisão 305 e deriva um modo de interprevisão, um ín- dice de referência e um vetor de movimento do bloco-alvo atual, ge-
rando, desse modo, um sinal de previsão de compensação de movi- mento. O sinal de previsão de compensação de movimento construído é fornecido ao determinador do método de previsão 105.
[00223] Da mesma forma, conforme ilustrado na unidade de inter- previsão 203, no lado de decodificação, na Figura 22, em um caso em que o comutador 408 está conectado à unidade de derivação de modo de mesclagem normal 402, durante o processo de decodificação, a unidade de previsão de vetor de compensação de movimento 406 ad- quire informações de interprevisão pela unidade de derivação de modo de mesclagem normal 402, e deriva um modo de interprevisão, um ín- dice de referência e um vetor de movimento de bloco-alvo atual, ge- rando, desse modo, um sinal de previsão de compensação de movi- mento. O sinal de previsão de compensação de movimento construído é fornecido ao sobrepositor de sinal de imagem decodificada 207.
PROCESSO DE COMPENSAÇÃO DE MOVIMENTO BASEADO NO MODO DE PREVISOR DE VETOR DE MOVIMENTO DE SUB- BLOCO
[00224] Conforme ilustrado na unidade de interprevisão 102 do lado de conversão em código, na Figura 16, em um caso em que as infor- mações de interprevisão pela unidade de derivação de modo de previ- sor de vetor de movimento de sub-bloco 303 tenha sido selecionada no determinador de modo de interprevisão 305, a unidade de previsão de compensação de movimento 306 adquire informações de interpre- visão a partir do determinador de modo de interprevisão 305 e deriva um modo de interprevisão, um índice de referência e um vetor de mo- vimento do bloco-alvo atual, gerando, desse modo, um sinal de previ- são de compensação de movimento. O sinal de previsão de compen- sação de movimento construído é fornecido ao determinador do méto- do de previsão 105.
[00225] Da mesma forma, conforme ilustrado na unidade interprevi-
são 203 no lado de decodificação, na Figura 22, em um caso em que o comutador 408 está conectado à unidade de derivação de modo de previsor de vetor de movimento de sub-bloco 403, durante o processo de decodificação, a unidade de previsão de compensação de movi- mento 406 adquire informações de interprevisão pela unidade de deri- vação de modo de previsor de vetor de movimento de sub-bloco 403, e deriva um modo de interprevisão, um índice de referência e um vetor de movimento de um bloco-alvo, gerando, desse modo, um sinal de previsão de compensação de movimento. O sinal de previsão de com- pensação de movimento construído é fornecido ao sobrepositor de si- nal de imagem decodificada 207.
PROCESSO DE COMPENSAÇÃO DE MOVIMENTO BASEADO NO MODO DE MESCLAGEM DE SUB-BLOCOS
[00226] Conforme ilustrado na unidade de interprevisão 102 do lado de conversão em código da Figura 16, em um caso em que as infor- mações de interprevisão pela unidade de derivação do modo de mes- clagem de sub-bloco 304 tenham sido selecionadas no determinador de modo de interprevisão 305, a unidade de previsão de compensação de movimento 306 adquire essas informações de interprevisão a partir do determinador de modo de interprevisão 305, e deriva um modo in- terprevisão, um índice de referência e um vetor de movimento do blo- co-alvo atual, gerando, desse modo, um sinal de previsão de compen- sação de movimento. O sinal de previsão de compensação de movi- mento construído é fornecido ao determinador do método de previsão
105.
[00227] Da mesma forma, conforme ilustrado na unidade de inter- previsão 203, no lado de decodificação, na Figura 22, em um caso em que o interruptor 408 está ligado à unidade de derivação de modo de mesclagem de sub-bloco 404, durante o processo de decodificação, a unidade de previsão de compensação de movimento 406 adquire as informações de interprevisão pela unidade de derivação de modo de mesclagem de sub-bloco 404 e deriva um modo de interprevisão, um índice de referência e um vetor de movimento de bloco-alvo atual, ge- rando, desse modo, um sinal de previsão de compensação de movi- mento. O sinal de previsão de compensação de movimento construído é fornecido ao sobrepositor de sinal de imagem decodificada 207.
PROCESSO DE COMPENSAÇÃO DE MOVIMENTO BASEADO NA PREVISÃO DE TRANSFORMADA AFIM
[00228] No modo de previsor de vetor de movimento normal e no modo de mesclagem normal, a compensação de movimento que usa um modelo afim é usável com base nas sinalizações a seguir. As se- guintes sinalizações são refletidas nas seguintes sinalizações, com base em condições de interprevisão determinadas pelo determinador de modo de interprevisão 305, no processo de conversão em código, e são codificadas no fluxo de bits. No processo de decodificação, é es- pecificado se deve realizar compensação de movimento com uso do modelo afim, com base nas seguintes sinalizações no fluxo de bits.
[00229] sps_affine_enabled_flag indica se a compensação de movi- mento com uso de um modelo afim é usável na interprevisão. Quando sps_affine_enabled_flag é 0, o processo é suprimido, de modo a não executar a compensação de movimento pelo modelo afim em unidades de sequência. Além disso, inter_affine_flag e cu_affine_type_flag não são transmitidas na sintaxe do bloco de conversão em código (CU) de uma sequência de vídeo de conversão em código. Quando sps_ affi- ne_enabled_flag é 1, a compensação de movimento por um modelo afim é usável na sequência de vídeo de conversão em código.
[00230] sps_affine_type_flag indica se a compensação de movi- mento com uso de um modelo afim de 6 parâmetros é usável em in- terprevisão. Quando sps_affine_type_flag é 0, o processo é suprimido para não realizar a compensação de movimento com uso de um mo-
delo afim de 6 parâmetros. Além disso, cu_affine_type_flag não é transmitido na sintaxe CU da sequência de vídeo de conversão em código. Quando sps_affine_type_flag é 1, a compensação de movi- mento baseada em um modelo afim de 6 parâmetros é usável em uma sequência de vídeo de conversão em código. Em um caso em que sps_affine_type_flag não existir, a mesma deve ser 0.
[00231] Em um caso de decodificação de uma fatia P ou B, quando inter_affine_flag é 1 na CU-alvo atual, uma compensação de movimen- to com uso de um modelo afim é usada para gerar um sinal de previ- são de compensação de movimento da CU-alvo atual. Quando in- ter_affine_flag é 0, o modelo afim não é usado para a CU-alvo atual. Em um caso em que inter_affine_flag não existe, deve ser 0.
[00232] Em um caso de decodificação de uma fatia P ou B, quando cu_affine_type_flag é 1 na CU atual, uma compensação de movimento com uso de um modelo afim de 6 parâmetros é usada para gerar um sinal de previsão de compensação de movimento da CU atual. Quan- do cu_affine_type_flag é 0, a compensação de movimento com uso de um modelo afim de quatro parâmetros é usada para gerar um sinal de previsão de compensação de movimento da UC que atualmente é pro- cessada.
[00233] Um índice de referência e um vetor de movimento são deri- vados em unidades de sub-blocos na compensação de movimento com base no modelo afim. Consequentemente, um sinal de previsão de compensação de movimento é gerado com uso do índice de refe- rência e do vetor de movimento a ser processado em unidades de sub- bloco.
[00234] O modelo afim de quatro parâmetros é um modo no qual um vetor de movimento de um sub-bloco é derivado de quatro parâme- tros de um componente horizontal e um componente vertical de cada um dos vetores de movimento de dois pontos de controle, e a com-
pensação de movimento é realizada em unidades de sub-blocos.
MODO DE MESCLAGEM TRIANGULAR
[00235] O modo de mesclagem triangular é um tipo de modo de mesclagem, no qual o bloco de conversão em código/decodificação é dividido em fracionamentos diagonais para realizar a previsão de com- pensação de movimento. O modo de mesclagem triangular é um tipo de modo de mesclagem de divisão geométrica no qual o bloco de con- versão em código/decodificação é dividido em blocos com um formato não retangular. No modo de mesclagem de divisão geométrica, isso corresponde a um modo no qual o bloco de conversão em códi- go/decodificação é dividido em dois triângulos retos por uma linha dia- gonal.
[00236] O modo de mesclagem de divisão geométrica é expresso por uma combinação de dois parâmetros, por exemplo, um índice (An- gleIDX) que indica um ângulo de divisão e um índice (distanceIDX) que indica uma distância a partir do centro do bloco de conversão em código. Como um exemplo, 64 padrões são definidos como o modo de mesclagem de divisão geométrica, e a codificação de comprimento fixo é realizada. Dos 64 padrões, dois modos, nos quais o índice que indica um ângulo de divisão indica um ângulo que forma uma linha di- agonal do bloco de conversão em código (por exemplo, 45 graus (An- gleIDX = 4 em uma configuração em que 360 graus são representados por 32 divisões) ou 135 graus (AngleIDX = 12 em uma configuração em que 360 graus são representados por 32 divisões)) e o índice que indica uma distância do centro do bloco de conversão em código é mí- nimo (distanceIDX = 0, que indica que o limite da divisão passa pelo centro do bloco de conversão em código), indica que o bloco de con- versão em código é dividido por uma linha diagonal e corresponde ao modo de mesclagem triangular.
[00237] O modo de mesclagem triangular será descrito em referên-
cia às Figuras 38A e 38B. As Figuras 38A e 38B ilustram um exemplo de previsão de blocos de conversão em código/decodificação 16 × 16 do modo de mesclagem triangular. O bloco de conversão em códi- go/decodificação do modo de mesclagem triangular é dividido em sub- blocos 4 × 4, e cada um dos sub-blocos é atribuído a três fracionamen- tos, a saber, fracionamento de uniprevisão 0 (UNI0), fracionamento de uniprevisão 1 (UNI1) e fracionamento de biprevisão 2 (BI). No presente documento, o sub-blocos acima de uma linha diagonal são atribuídos ao fracionamento 0, sub-blocos abaixo da linha diagonal são atribuídos ao fracionamento 1 e sub-blocos na linha diagonal são atribuídos ao fracionamento 2. Quando merge_triangle_split_dir é 0, os fraciona- mentos são atribuídos conforme ilustrado na Figura 38A, e quando merge_triangle_split_dir é 1, os fracionamentos são atribuídos confor- me ilustrado na Figura 38B.
[00238] As informações de movimento de uniprevisão designadas pelo índice triangular de mesclagem 0 são usadas para a previsão de compensação de movimento do fracionamento 0. As informações do movimento da uniprevisão designada pelo índice triangular de mescla- gem 1 é usada para a previsão de compensação de movimento do fra- cionamento 1. As informações de movimento biprevisão que combi- nam informações de movimento de uniprevisão designadas pelo índice triangular de mesclagem 0 e as informações de movimento de unipre- visão designadas pelo índice triangular de mesclagem 1 são usadas para previsão de compensação de movimento do fracionamento 2.
[00239] No presente documento, as informações de movimento uniprevisão são um conjunto de um vetor de movimento e um índice de referência, enquanto as informações de movimento biprevisão são formadas com dois conjuntos de um vetor de movimento e um índice de referência. As informações de movimento representam informações de movimento de uniprevisão ou informações de movimento de bipre-
visão.
[00240] Os seletores de candidato de mesclagem 347 e 447 usam a lista de candidato de mesclagem derivada MergecandList como uma lista de candidato de mesclagem triangular TriangleMergecandlist.
[00241] O fluxograma da Figura 40 relacionado à derivação de can- didato de mesclagem triangular será descrito.
[00242] Primeiro, uma lista de candidato de mesclagem MergeCan- dList é usada como uma lista de candidato triangleMergecandList (etapa S3501).
[00243] Subsequentemente, um candidato de mesclagem com uma lista de informações de movimento L0 é priorizado, e as informações de movimento de uniprevisão de um fracionamento triangular de mes- clagem 0 são derivadas (etapa S3502).
[00244] Subsequentemente, um candidato de mesclagem que tem uma lista de informações de movimento L1 é priorizada, e as informa- ções de movimento de uniprevisão de um fracionamento triangular de mesclagem 1 são derivadas (etapa S3503).
[00245] Observe que a etapa S3502 e a etapa S3503 podem ser derivadas em ordem aleatória e também podem ser processadas para- lelamente.
[00246] A Figura 41 é um fluxograma que ilustra a derivação das informações de movimento uniprevisão de um fracionamento triangular de mesclagem 0, de acordo com a presente modalidade.
[00247] Primeiro, para um M-ésimo candidato na lista de candidato de mesclagem derivada Mergecandlist, a determinação é feita sobre se um candidato M tem informações de movimento da lista de infor- mações de movimento L0 (etapa S3601). Em um caso em que o can- didato M tem as informações de movimento da lista de informações de movimento L0, as informações de movimento da lista de informações de movimento L0 do candidato M é definida como um candidato de mesclagem triangular (etapa S3602). Para os candidatos M (M = 0, 1,..., NummergeCand-1), as etapas S3601 e a etapa S3602 são exe- cutadas em ordem crescente, e os candidatos de mesclagem triangu- lar são adicionalmente derivados.
[00248] Subsequentemente, para o M-ésimo candidato na lista de candidato de mesclagem derivada Mergecandlist, determina-se se o candidato M tem informações de movimento da lista de informações de movimento L1 (etapa S3603). Em um caso em que o candidato M tem as informações de movimento da lista de informações de movi- mento L1, as informações de movimento da lista de informações de movimento L1 do candidato M são definidas como um candidato de mesclagem triangular (etapa S3604). Para os candidatos M (M = NumMergeCand-1,..., 1, 0), as etapas S3603 e a etapa S3604 são executadas em ordem decrescente, e os candidatos de mesclagem triangular são adicionalmente derivados.
[00249] A Figura 42 é um fluxograma que ilustra a derivação das informações de movimento uniprevisão de um fracionamento triangular de mesclagem 1, de acordo com a presente modalidade.
[00250] Primeiro, para um M-ésimo candidato na lista de candidato de mesclagem derivada Mergecandlist, é feita determinação sobre se um candidato M tem informações de movimento da lista de informa- ções de movimento L1 (etapa S3701). Em um caso em que o candida- to M tem as informações de movimento da lista de informações de movimento L1, as informações de movimento da lista de informações de movimento L1 do candidato M são configuradas como um candida- to de mesclagem triangular (etapa S3702). Para os candidatos M (M = 0, 1,..., NummergeCand-1), as etapas S3701 e a etapa S3702 são executadas em ordem crescente, e os candidatos de mesclagem tri- angular são adicionalmente derivados.
[00251] Subsequentemente, para o M-ésimo candidato na lista de candidato de mesclagem derivada Mergecandlist, determina-se se o candidato M tem informações de movimento da lista de informações de movimento L0 (etapa S3703). Em um caso em que o candidato M tem as informações de movimento da lista de informações de movi- mento L0, as informações de movimento da lista de informações de movimento L0 do candidato M são configuradas como um candidato de mesclagem triangular (etapa S3704). Para os candidatos M (M =NummergeCand-1,..., 1, 0), as etapas S3703 e a etapa S3704 são realizadas em ordem decrescente, e os candidatos de mesclagem tri- angular são adicionalmente derivados.
[00252] O seletor de candidato de mesclagem 347 no lado de con- versão em código adquire informações de movimento da lista de can- didato derivada triangleMergecandList e calcula valores de código e valores de distorção.
[00253] O seletor de candidato de mesclagem 347 compara plurali- dades calculadas de valores de código e valores de distorção, selecio- nando, desse modo, direções de divisão de blocos de conversão em código e candidatos de mesclagem triangular de fracionamentos divi- didos. Em um caso em que a codificação é realizada com uso do mo- do de mesclagem triangular, o seletor candidato de mesclagem 347 fornece informações selecionadas (o bloco de conversão em código que divide as direções merge_triangle_split_dir e índices triangulares de mesclagem merge_triangle_idx0, merge_triangle_idx1 que indicam os candidatos de mesclagem triangular dos fracionamentos divididos) e as informações de interprevisor dos candidatos de mesclagem trian- gular à unidade de previsão de compensação de movimento 306. A unidade de conversão em código de sequências de bits 108 codifica as informações selecionadas.
[00254] Por outro lado, no caso do modo de mesclagem triangular, o seletor candidato de mesclagem 447 no lado da decodificação sele-
ciona o candidato de mesclagem triangular com base em informações decodificadas (o bloco de conversão em código que divide as direções merge_triangle_split_dir e os índices triangulares de mesclagem mer- ge_triangle_idx0 e merge_triangle_ idx1 que indicam os candidatos de mesclagem triangular dos fracionamentos divididos) e fornece infor- mações de interprevisão do candidato de mesclagem triangular seleci- onado para a unidade de previsão de compensação de movimento
406.
[00255] No caso do modo de mesclagem triangular, as unidades de previsão de compensação de movimento 306 e 406 realizam a prome- diação ponderada descrita abaixo. No caso da luminância, as unida- des de previsão de compensação de movimento 306 e 406 calculam nCbR = (NcBW > NcBh)? (BCnW/BCN): (BCnH/BCn) no que diz res- peito aos nCbW de largura e nCbH de altura do bloco de conversão em código. Em seguida, em uma posição (x, y) no bloco de conversão em código, wValue em peso no caso da Figura 38A é calculado como wValue = (NcBW > NcBh)?
[00256] (Clip3 (0, 8, x/nCBR - y + 4)):
[00257] (Clip3 (0, 8, y/nCBR - x + 4)). Por outro lado, o peso wValue no caso da Figura 38B é calculado como wValue = (NcBW > NcBh)?
[00258] (Clip3 (0, 8, NCbH - 1 - x/nCbr - y + 4)):
[00259] (Clip3 (0, 8, NcBw - 1 - y/nCBR - x + 4)). Além disso, as unidades de previsão de compensação de movimento 306 e 406 cal- culam shift1 = max (5, 17 - BitDepth)
[00260] offset1 = 1 << (shift1 - 1) em relação a um número de bit BitDepth. Em seguida, um resultado PBSamples da média ponderada é calculado como PBSamples = Clip3 (0, (1 << BitDepth) - 1,
[00261] (PredSampleSLA * wValue + PredSampleSLB * (8 - wValue) + offset1) >> shift1). Aqui, PredSampleSla é um valor de pixel compensado por movimento que usa um vetor de movimento MVLA, e
PredSamplesLB é um valor de pixel compensado por movimento que usa MVlB. PROCESSO DE ARMAZENAMENTO NA MEMÓRIA DE ARMAZE-
NAMENTO DE INFORMAÇÕES DE CONVERSÃO EM CÓDIGO
[00262] A informações de interprevisão obtidas no modo de mes- clagem triangular são armazenadas na memória de armazenamento de informações de conversão em código, de modo que as informações de interprevisão possam ser denominadas informações de interprevi- são próximas a um bloco-alvo, quando a conversão em código e a de- codificação são executadas. Um processo de armazenamento na me- mória de armazenamento de informações de conversão em código é realizado em unidades de sub-bloco 4x4, e as informações de inter- previsão especificadas pelos fracionamentos são armazenadas.
[00263] A informações de interprevisão especificadas são informa- ções de interprevisão de um fracionamento 0 (UNI0) da previsão de unidade e um fracionamento 1 (UNI1) da uniprevisão. Um fraciona- mento 2 (BI) de biprevisão é obtido com uso das informações de inter- previsão de UNI0 e UNI1.
[00264] Para sub-blocos em linhas diagonais divididos como os fra- cionamentos, em um caso em que a ponderação ilustrada na Figura 43 é realizada, um fracionamento 2 ilustrado na Figura 44 é concebí- vel. A Figura 44A ilustra um caso em que uma região em que a ponde- ração ilustrada na Figura 43A é realizada é configurada como o fracio- namento 2. Da mesma forma, a Figura 44B corresponde à Figura 43B. A Figura 44C ilustra um caso em que sub-blocos para os quais a pon- deração é realizada na Figura 43A é configurada como o fracionamen- to 2. Da mesma forma, a Figura 44D corresponde à Figura 43B. A Fi- gura 44E ilustra um caso em que sub-blocos para a totalidade dos quais a ponderação é realizada na Figura 43A são configurados como o fracionamento 2. Da mesma forma, a Figura 44F corresponde à Fi-
gura 43B.
[00265] Uma região do fracionamento 2 ilustrada na Figura 44 tam- bém pode ser armazenada como BI, conforme ilustrado na Figura 45. No entanto, nesta modalidade, para sub-blocos para uma parte da qual a ponderação é realizada, conforme ilustrado na Figura 46, as informações de interprevisão pertencentes a um fracionamento com um valor de ponderação maior são armazenadas como uniprevisão (UNIY). Aqui, Y é 0 ou 1.
[00266] Além disso, conforme ilustrado na Figura 47 e na Figura 48, os sub-blocos originalmente armazenados como BI são armazenados como uniprevisão com uso de informações de interprevisão de um fra- cionamento predeterminado. A Figura 47A e a Figura 47B são um ca- so em que UNI0 é o fracionamento predeterminado. A Figura 48A e a Figura 48B são um caso em que UNI1 é o fracionamento predetermi- nado.
[00267] Conforme descrito nesta modalidade, armazenando-se um fracionamento 2 (BI) de biprevisão na memória de armazenamento de informações de conversão em código, como UNIY de uniprevisão, é possível reduzir uma quantidade de memória para armazenamento. Além disso, uma vez que as informações de movimento da lista de in- formações de movimento L0 e da lista de informações de movimento L1 são armazenadas na memória de armazenamento de informações de conversão em código, sem ser convertidas em previsão BI, é pos- sível reduzir uma quantidade de processamento. Além disso, é possí- vel reduzir uma quantidade de processamento em um caso em que as informações de interprevisão especificadas pelo modo de mesclagem triangular são referidas e usadas na conversão em código e decodifi- cação posteriormente.
[00268] Ao selecionar UNI1 como o fracionamento predeterminado, conforme ilustrado na Figura 48A e Figura 48B, em um caso em que um bloco nas proximidades da direita de um modo de mesclagem tri- angular ilustrado na Figura 48B está em um modo de mesclagem tri- angular ilustrado na Figura 48A, a continuidade das informações de movimento a serem armazenadas também pode ser mantida em uma região na qual os dois modos de mesclagem triangular continuam. Por isso, a eficiência da conversão em código é melhorada, em compara- ção com a seleção do UNI0, como o fracionamento predeterminado, conforme ilustrado na Figura 47A e na Figura 47B.
[00269] Selecionar UNI1 como o fracionamento predeterminado, conforme ilustrado na Figura 48A e Figura 48B, também pode manter a continuidade do processamento porque as informações de movimen- to dos fracionamentos são acumuladas após a conversão em códi- go/decodificação. Por isso, uma quantidade de processamento é redu- zida em comparação com a seleção do UNI0 como o fracionamento predeterminado, conforme ilustrado na Figura 47A e na Figura 47B.
[00270] Ao corrigir, como previsão L0, a uniprevisão a ser salva como UNI1, uma vez que a previsão L0 pode ser tratada da mesma maneira que a fatia P, uma quantidade de processamento é reduzida em comparação com um caso em que uniprevisão salva como previ- são L1.
[00271] Em todas as modalidades descritas acima, uma pluralidade de tecnologias pode ser combinada entre si.
[00272] Em todas as modalidades descritas acima, a saída de fluxo de bits a partir do dispositivo de conversão em código de imagem tem um formato de dados específico, de modo a ser decodificada seguindo o método de conversão em código usado na modalidade. Além disso, o dispositivo de decodificação de imagem correspondente ao dispositi- vo de conversão em código de imagem tem capacidade de decodificar o fluxo de bits do formato de dados específico.
[00273] Em um caso em que uma rede com ou sem fios é usada para trocar um fluxo de bits entre o dispositivo de conversão em códi- go de imagem e o dispositivo de decodificação de imagem, o fluxo de bits pode ser convertido em um formato de dados adequado para o formato de transmissão do canal de comunicação em transmissão. Nesse caso, é fornecido um dispositivo de transmissão que converte a saída de fluxo de bits do dispositivo de conversão em código de ima- gem em dados codificados em um formato de dados adequado para o formato de transmissão do canal de comunicação e transmite os da- dos convertidos em código para a rede, e um dispositivo de recepção que recebe os dados convertidos em código a partir da rede a ser res- taurada para o fluxo de bits e fornece o fluxo de bits para o dispositivo de decodificação de imagem. O dispositivo de transmissão inclui me- mória que armazena temporariamente uma saída de fluxo de bits do dispositivo de conversão em código de imagem, uma unidade de pro- cessamento de pacotes que empacota o fluxo de bits e um transmissor que transmite dados convertidos em código empacotados através de uma rede. O dispositivo de recepção inclui um receptor que recebe dados convertidos em código empacotados através de uma rede, me- mória que armazena temporariamente os dados convertidos em códi- go recebidos, e uma unidade de processamento de pacotes que em- pacota dados convertidos em código para construir um fluxo de bits e fornece o fluxo de bits construído para o dispositivo de decodificação de imagem.
[00274] Além disso, uma unidade de exibição que exibe uma imagem decodificada pelo dispositivo de decodificação de imagem pode ser adi- cionada, como um dispositivo de exibição, à configuração. Nesse caso, a unidade de exibição lê um sinal de imagem decodificada construído pelo sobrepositor sinal de imagem decodificada 207 e armazenado na memó- ria de imagem decodificada 208, e exibe o sinal na tela.
[00275] Além disso, uma unidade de imagem pode ser adicionada à configuração de modo a funcionar como um dispositivo de imagem, introduzindo uma imagem capturada no dispositivo de conversão em código de imagem. Nesse caso, a unidade de imagem introduz o sinal de imagem capturado para a unidade dividida em bloco 101.
[00276] A Figura 37 ilustra um exemplo de uma configuração de hardware do dispositivo de conversão em código de decodificação, de acordo com a presente modalidade. O dispositivo de conversão em código de decodificação inclui as configurações do dispositivo de con- versão em código de imagem e o dispositivo de decodificação de ima- gem, de acordo com as modalidades da presente invenção. Um dispo- sitivo 9000 de conversão em código de decodificação inclui uma CPU 9001, um codec IC 9002, uma interface de I/O 9003, memória 9004, uma unidade de disco óptico 9005, uma interface de rede 9006 e uma interface de vídeo 9009, em que unidades individuais são conectadas por um barramento 9010.
[00277] Um codificador de imagem 9007 e um decodificador de imagem 9008 são tipicamente implementados como um codec IC
9002. O processo de conversão em código de imagem do dispositivo de conversão em código de imagem, de acordo com as modalidades da presente invenção, é executado pelo codificador de imagem 9007. O processo de decodificação de imagem no dispositivo de decodifica- ção imagem, de acordo com a modalidade da presente invenção, é executado pelo decodificador de imagem 9008. A interface de I/O 9003 é implementada por uma interface USB, por exemplo, e se conecta a um teclado externo 9104, mouse 9105 ou similares. A CPU 9001 con- trola o dispositivo 9000 de conversão em código de decodificação com base na entrada de operação do usuário através da interface de I/O 9003 para executar a operação desejada pelo usuário. As operações do usuário no teclado 9104, no mouse 9105, ou similares incluem se- leção de qual função de conversão em código ou decodificação deve ser executada, configuração de qualidade de conversão em código, destino de entrada/saída de um fluxo de bits, destino de entrada/saída de uma imagem, ou similares.
[00278] Em um caso em que o usuário deseja a operação de repro- duzir uma imagem gravada em uma mídia de gravação de disco 9100, a unidade de disco óptico 9005 lê um fluxo de bits do meio de grava- ção de disco inserido 9100, e transmite o fluxo de bits de leitura para o decodificador de imagem 9008 do codec IC 9002 através do barra- mento 9010. O decodificador de imagem 9008 executa um processo de decodificação de imagem no dispositivo de decodificação de ima- gem, de acordo com as modalidades da presente invenção, no fluxo de bits de entrada, e transmite a imagem decodificada para o monitor externo 9103 através da interface de vídeo 9009. O dispositivo de con- versão em código de decodificação 9000 possui uma interface de rede 9006, e pode ser conectado a um servidor de distribuição externo 9106 e a um terminal móvel 9107 através de uma rede 9101. Em um caso em que o usuário deseja reproduzir uma imagem gravada no servidor de distribuição 9106 ou no terminal móvel 9107 em vez da imagem gravada no meio de gravação de disco 9100, a interface de rede 9006 obtém um fluxo de bits da rede 9101 em vez de ler um fluxo de bits a partir da mídia de gravação de disco de entrada 9100. Em um caso em que o usuário deseja reproduzir a imagem gravada na memória 9004, o processamento de decodificação de imagem é realizado pelo dispo- sitivo de decodificação de imagem, de acordo com as modalidades da presente invenção, no fluxo de bits gravado na memória 9004.
[00279] Em um caso em que o usuário deseja executar a operação de conversão em código de uma imagem capturada por uma câmera externa 9102 e gravar a imagem na memória 9004, a interface de ví- deo 9009 introduz a imagem da câmera 9102, e transmite a imagem para o codificador de imagem 9007 do codec IC 9002 através do bar-
ramento 9010. O codificador de imagem 9007 executa o processo de conversão em código de imagem pelo dispositivo de conversão em códi- go de imagem, de acordo com a modalidade da presente invenção, em uma entrada de imagem através da interface de vídeo 9009 e, assim, cria um fluxo de bits. Subsequentemente, o fluxo de bits é transmitido para a memória 9004 através do barramento 9010. Em um caso em que o usuá- rio deseja gravar um fluxo de bits na mídia de gravação de disco 9100 em vez da memória 9004, a unidade de disco óptico 9005 grava o fluxo de bits na mídia de gravação de disco inserida 9100.
[00280] Também é possível implementar uma configuração de hardware com um dispositivo de conversão em código de imagem e não ter um dispositivo de decodificação de imagem, ou uma configura- ção de hardware com um dispositivo de decodificação de imagem e não ter um dispositivo de conversão em código de imagem. Tal confi- guração de hardware é implementada substituindo-se o codec IC 9002 pelo codificador de imagem 9007 ou o decodificador de imagem 9008.
[00281] O processo acima descrito relacionado à conversão em có- digo e decodificação pode naturalmente ser implementado como um dispositivo de transmissão, armazenamento e recepção com uso de hardware e, alternativamente, o processo pode ser implementado por firmware armazenado em memória somente leitura (ROM), memória flash ou similares, ou por software fornecido para um computador ou afins. O programa de firmware e o programa de software podem ser fornecidos sendo gravados em uma mídia de gravação legível por um computador ou similares, podem ser fornecidos a partir de um servidor através de uma rede com ou sem fio, ou podem ser fornecidos através de transmissão de dados por radiodifusão digital terrestre ou por satélite.
[00282] A presente invenção foi descrita em referência às presentes modalidades. A modalidade acima descrita foi descrita apenas a título de exemplo. Em vez disso, pode ser facilmente concebido por aqueles versados na técnica que vários exemplos de modificação podem ser feitos fazendo várias combinações dos componentes ou processos acima descritos, que também estão abrangidos no escopo da técnica da presente invenção.
[00283] A presente invenção pode ser usada para técnicas de con- versão em código e decodificação de imagem que dividem uma ima- gem em blocos para realizar a previsão. 100 Dispositivo de conversão em código de imagem 101 Unidade de divisão de bloco 102 Unidade de interprevisão 103 Unidade de intraprevisão 104 Memória de imagem decodificada 105 Determinador do método de previsão 106 Unidade de geração de resíduo 107 Transformador/quantizador ortogonal 108 Unidade de conversão em código de sequências de bits 109 Quantizador inverso/transformador ortogonal inverso 110 Sobrepositor de sinal de imagem decodificada 111 Memória de armazenamento de informações de con- versão em código 200 Dispositivo de decodificação de imagem 201 Unidade de decodificação de sequências de bits 202 Unidade de divisão de bloco 203 Unidade de interprevisão 204 Unidade de intraprevisão 205 Memória de armazenamento de informações de con- versão em código 206 Quantizador inverso/ Transformador ortogonal inverso 207 Sobrepositor de sinal de imagem decodificada 208 Memória de imagem decodificada

Claims (4)

REIVINDICAÇÕES
1. Dispositivo de conversão em código de imagem (100) em movimento que usa um modo de mesclagem triangular, caracterizado pelo fato de que compreende: um construtor de lista de candidato de mesclagem triangu- lar estruturado para construir uma lista de candidato de mesclagem triangular que inclui os candidatos de mesclagem espacial; um primeiro seletor de candidato de mesclagem triangular (347) estruturado para selecionar, a partir da lista de candidato de mesclagem triangular, um primeiro candidato de mesclagem triangular que seja uniprevisão; e um segundo seletor de candidato de mesclagem triangular (447) estruturado para selecionar, a partir da lista de candidato de mesclagem triangular, um segundo candidato de mesclagem triangular que seja uniprevisão, em que em uma região na qual uma compensação de movimento pela média ponderada, pelo primeiro candidato de mesclagem triangu- lar e pelo segundo candidato de mesclagem triangular, é realizada, informações de movimento de uniprevisão de um dentre o primeiro candidato de mesclagem triangular ou o segundo candidato de mes- clagem triangular são salvas.
2. Método de conversão em código de imagem em movi- mento que usa um modo de mesclagem triangular, caracterizado pe- lo fato de que compreende: uma etapa de construção de lista de candidato de mescla- gem triangular para construir uma lista de candidato de mesclagem triangular que inclui os candidatos de mesclagem espacial; uma primeira etapa de seleção de candidato de mesclagem triangular para selecionar, a partir da lista de candidato de mesclagem triangular, um primeiro candidato de mesclagem triangular que seja uniprevisão; e uma segunda etapa de seleção de candidato de mescla- gem triangular para selecionar, a partir da lista de candidato de mes- clagem triangular, um segundo candidato de mesclagem triangular que é uniprevisão, em que em uma região na qual uma compensação de movimento pela média ponderada, pelo primeiro candidato de mesclagem triangu- lar e pelo segundo candidato de mesclagem triangular, é realizada, informações de movimento de uniprevisão de um dentre o primeiro candidato de mesclagem triangular ou o segundo candidato de mes- clagem triangular são salvas.
3. Dispositivo de decodificação de imagem (200) em movi- mento que usa um modo de mesclagem triangular, caracterizado pe- lo fato de que compreende: um construtor de lista de candidato de mesclagem triangu- lar estruturado para construir uma lista de candidato de mesclagem triangular que inclui os candidatos de mesclagem espacial; um primeiro seletor de candidato de mesclagem triangular (347) estruturado para selecionar, a partir da lista de candidato de mesclagem triangular, um primeiro candidato de mesclagem triangular que seja uniprevisão; e um segundo seletor de candidato de mesclagem triangular (447) estruturado para selecionar, a partir da lista de candidato de mesclagem triangular, um segundo candidato de mesclagem triangular que seja uniprevisão, em que em uma região na qual uma compensação de movimento pela média ponderada, pelo primeiro candidato de mesclagem triangu- lar e pelo segundo candidato de mesclagem triangular, é realizada, informações de movimento de uniprevisão de um dentre o primeiro candidato de mesclagem triangular ou o segundo candidato de mes-
clagem triangular são salvas.
4. Método de decodificação de imagem em movimento que usa um modo de mesclagem triangular, caracterizado pelo fato de que compreende: uma etapa de construção de lista de candidato de mescla- gem triangular para construir uma lista de candidato de mesclagem triangular que inclui os candidatos de mesclagem espacial; uma primeira etapa de seleção de candidato de mesclagem triangular para selecionar, a partir da lista de candidato de mesclagem triangular, um primeiro candidato de mesclagem triangular que seja uniprevisão; e uma segunda etapa de seleção de candidato de mescla- gem triangular para selecionar, a partir da lista de candidato de mes- clagem triangular, um segundo candidato de mesclagem triangular que é uniprevisão, em que em uma região na qual uma compensação de movimento pela média ponderada, pelo primeiro candidato de mesclagem triangu- lar e pelo segundo candidato de mesclagem triangular, é realizada, informações de movimento de uniprevisão de um dentre o primeiro candidato de mesclagem triangular ou o segundo candidato de mes- clagem triangular são salvas.
BR112021004690-9A 2019-03-08 2020-03-06 Dispositivo de conversão em código de imagem em movimento, método de conversão em código de imagem em movimento, dispositivo de decodificação de imagem em movimento e método de decodificação de imagem em movimento BR112021004690B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019-042575 2019-03-08
JP2019042575 2019-03-08
PCT/JP2020/009765 WO2020184456A1 (ja) 2019-03-08 2020-03-06 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム

Publications (2)

Publication Number Publication Date
BR112021004690A2 true BR112021004690A2 (pt) 2021-06-01
BR112021004690B1 BR112021004690B1 (pt) 2021-10-26

Family

ID=72426080

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021004690-9A BR112021004690B1 (pt) 2019-03-08 2020-03-06 Dispositivo de conversão em código de imagem em movimento, método de conversão em código de imagem em movimento, dispositivo de decodificação de imagem em movimento e método de decodificação de imagem em movimento

Country Status (12)

Country Link
US (2) US11800087B2 (pt)
EP (2) EP4351145A3 (pt)
JP (6) JP6801830B1 (pt)
KR (3) KR20240027886A (pt)
CN (2) CN112954362A (pt)
BR (1) BR112021004690B1 (pt)
CA (1) CA3119653A1 (pt)
CL (1) CL2021002138A1 (pt)
MX (1) MX2021003465A (pt)
RU (1) RU2767973C1 (pt)
WO (1) WO2020184456A1 (pt)
ZA (1) ZA202102035B (pt)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2767973C1 (ru) * 2019-03-08 2022-03-22 ДжейВиСиКЕНВУД Корпорейшн Устройство для кодирования видео, способ кодирования видео, устройство для декодирования видео и способ декодирования видео

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3277111B2 (ja) 1995-10-18 2002-04-22 シャープ株式会社 動画像符号化装置および動画像復号化装置
EP1274252A3 (en) * 1995-08-29 2005-10-05 Sharp Kabushiki Kaisha Video coding device and video decoding device with a motion compensated interframe prediction
JP4373702B2 (ja) 2003-05-07 2009-11-25 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム
JP2007043651A (ja) 2005-07-05 2007-02-15 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
WO2011111341A1 (ja) 2010-03-09 2011-09-15 パナソニック株式会社 動画像復号装置、動画像符号化装置、動画像復号回路及び動画像復号方法
US8737480B2 (en) * 2011-01-14 2014-05-27 Motorola Mobility Llc Joint spatial and temporal block merge mode for HEVC
CN103430547B (zh) 2011-03-08 2017-03-29 Jvc建伍株式会社 动图像解码装置、动图像解码方法
KR102015674B1 (ko) * 2011-05-24 2019-08-28 벨로스 미디어 인터내셔널 리미티드 화상 부호화 방법, 화상 부호화 장치, 화상 복호 방법, 화상 복호 장치, 및, 화상 부호화 복호 장치
CN108632608B (zh) * 2011-09-29 2022-07-29 夏普株式会社 图像解码装置、图像解码方法、图像编码装置及图像编码方法
CN103650507B (zh) * 2011-12-16 2018-01-02 太阳专利托管公司 运动图像编码方法及装置、运动图像解码方法及装置
US9838710B2 (en) * 2014-12-23 2017-12-05 Intel Corporation Motion estimation for arbitrary shapes
US11638027B2 (en) * 2016-08-08 2023-04-25 Hfi Innovation, Inc. Pattern-based motion vector derivation for video coding
WO2018141416A1 (en) * 2017-02-06 2018-08-09 Huawei Technologies Co., Ltd. Video encoder and decoder for predictive partitioning
CN118214853A (zh) * 2017-10-26 2024-06-18 英迪股份有限公司 用于基于非对称子块的图像编码/解码的方法及装置
US10965951B2 (en) * 2018-06-22 2021-03-30 Avago Technologies International Sales Pte. Limited Memory latency management for decoder-side motion refinement
CN110662043B (zh) * 2018-06-29 2021-12-21 北京字节跳动网络技术有限公司 一种用于处理视频数据的方法、装置和计算机可读介质
JP7328328B2 (ja) * 2018-10-08 2023-08-16 ホアウェイ・テクノロジーズ・カンパニー・リミテッド コーディングブロックの三角形パーティションのインター予測のための装置および方法
CN115695785B (zh) * 2018-10-27 2023-06-06 华为技术有限公司 图像预测方法及装置
CN111418205B (zh) * 2018-11-06 2024-06-21 北京字节跳动网络技术有限公司 用于帧间预测的运动候选
WO2020098810A1 (en) * 2018-11-17 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Merge with motion vector difference in video processing
US10778977B2 (en) * 2018-12-05 2020-09-15 Qualcomm Incorporated Triangle motion information for video coding
JP7209092B2 (ja) * 2018-12-21 2023-01-19 北京字節跳動網絡技術有限公司 動きベクトル差分によるマージ(mmvd)モードにおける動きベクトル予測
WO2020143824A1 (en) * 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
US11032560B2 (en) * 2019-01-17 2021-06-08 Tencent America LLC Method and apparatus for video coding without updating the HMVP table
US11570436B2 (en) * 2019-01-28 2023-01-31 Apple Inc. Video signal encoding/decoding method and device therefor
RU2767973C1 (ru) * 2019-03-08 2022-03-22 ДжейВиСиКЕНВУД Корпорейшн Устройство для кодирования видео, способ кодирования видео, устройство для декодирования видео и способ декодирования видео
US20200402546A1 (en) * 2019-06-24 2020-12-24 Seagate Technology Llc Reducing base deck porosity
US11336900B2 (en) * 2019-06-26 2022-05-17 Qualcomm Incorporated Combined inter and intra prediction mode for video coding
US11212523B2 (en) * 2020-01-12 2021-12-28 Mediatek Inc. Video processing methods and apparatuses of merge number signaling in video coding systems

Also Published As

Publication number Publication date
JP2024053073A (ja) 2024-04-12
JP6801830B1 (ja) 2020-12-16
JP2022036092A (ja) 2022-03-04
JP7318700B2 (ja) 2023-08-01
CL2021002138A1 (es) 2022-04-08
KR102641302B1 (ko) 2024-02-27
KR20230054483A (ko) 2023-04-24
US11800087B2 (en) 2023-10-24
EP4351145A2 (en) 2024-04-10
WO2020184456A1 (ja) 2020-09-17
JP2021036725A (ja) 2021-03-04
MX2021003465A (es) 2021-06-18
ZA202102035B (en) 2022-09-28
EP4351145A3 (en) 2024-05-22
JPWO2020184456A1 (ja) 2021-03-18
KR102521261B1 (ko) 2023-04-12
EP3937495A1 (en) 2022-01-12
JP2023126510A (ja) 2023-09-07
CN112954362A (zh) 2021-06-11
BR112021004690B1 (pt) 2021-10-26
US20210203924A1 (en) 2021-07-01
RU2022105478A (ru) 2022-05-04
CN112369033A (zh) 2021-02-12
KR20210011453A (ko) 2021-02-01
JP2022003778A (ja) 2022-01-11
EP3937495B1 (en) 2024-03-27
RU2767973C1 (ru) 2022-03-22
US20240015283A1 (en) 2024-01-11
CA3119653A1 (en) 2020-09-17
EP3937495A4 (en) 2022-08-10
KR20240027886A (ko) 2024-03-04

Similar Documents

Publication Publication Date Title
JP7445936B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
JP7209801B2 (ja) 画像符号化装置、画像符号化方法、及び画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
JP6911912B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
JP2022082617A (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法、動画像復号プログラム、及びデータ構造
JP6866919B2 (ja) 動画像復号装置、動画像復号方法、動画像復号プログラム、動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2024053073A (ja) 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
JP7060773B2 (ja) 画像復号装置、画像復号方法及び画像復号プログラム
KR102583807B1 (ko) 화상 부호화 장치, 화상 부호화 방법, 화상 부호화 프로그램, 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램
JP7147926B2 (ja) 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
BR112021015535A2 (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 e programa de decodificação de vídeo
RU2783841C2 (ru) Устройство для кодирования видео, способ кодирования видео, устройство для декодирования видео и способ декодирования видео
WO2020137857A1 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム

Legal Events

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

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 06/03/2020, OBSERVADAS AS CONDICOES LEGAIS.