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

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

Info

Publication number
BR112021012479A2
BR112021012479A2 BR112021012479-9A BR112021012479A BR112021012479A2 BR 112021012479 A2 BR112021012479 A2 BR 112021012479A2 BR 112021012479 A BR112021012479 A BR 112021012479A BR 112021012479 A2 BR112021012479 A2 BR 112021012479A2
Authority
BR
Brazil
Prior art keywords
affine
motion vector
merge candidate
block
vector predictor
Prior art date
Application number
BR112021012479-9A
Other languages
English (en)
Inventor
Shigeru Fukushima
Hiroya Nakamura
Toru Kumakura
Hideki Takehara
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 BR112021012479A2 publication Critical patent/BR112021012479A2/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
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • 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
    • 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/46Embedding additional information in the video signal during the compression process

Landscapes

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

Abstract

dispositivo de codificação de imagem em movimento, método de codificação de imagem em movimento, programa de codificação de imagem em movimento, dispositivo de decodificação de imagem em movimento, método de decodificação de imagem em movimento e programa de decodificação de imagem em movimento. tecnologia para melhorar eficiência de codificação ao desempenhar uma separação de blocos adequada para codificação e decodificação de imagem é provida. um dispositivo de codificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de codificação inclui uma unidade de derivação de candidato a mesclagem de herança afim configurada para derivar um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de codificação em um domínio do espaço, uma unidade de derivação de candidato a mesclagem de construção afim configurada para derivar um candidato a mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de codificação em um domínio do espaço ou do tempo, e uma unidade de derivação de candidato a mesclagem de fixação afim configurada para derivar um candidato a mesclagem de fixação afim em que as informações de movimento de um ponto de controle afim são fixadas. um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato a mesclagem de fixação afim.

Description

DISPOSITIVO DE CODIFICAÇÃO DE IMAGEM EM MOVIMENTO, MÉTODO DE CODIFICAÇÃO DE IMAGEM EM MOVIMENTO, PROGRAMA DE CODIFICAÇÃO DE IMAGEM EM MOVIMENTO, DISPOSITIVO DE DECODIFICAÇÃO DE IMAGEM EM MOVIMENTO, MÉTODO DE DECODIFICAÇÃO DE IMAGEM EM MOVIMENTO E PROGRAMA DE DECODIFICAÇÃO DE IMAGEM EM
MOVIMENTO Campo da Invenção
[001] A presente invenção diz respeito à tecnologia de codificação e decodificação de imagem para dividir uma imagem em blocos e desempenhar predição. Descrição do Estado da Técnica
[002] Na codificação e decodificação de imagem, uma imagem alvo é dividida em blocos, cada um dos quais é um conjunto de um número prescrito de amostras, e um processo é desempenhado em unidades de blocos. A eficiência da codificação é melhorada ao dividir uma imagem em blocos apropriados e definir apropriadamente a intrapredição de imagens (intrapredição) e interpredição de imagens (interpredição).
[003] Na codificação/decodificação de imagem em movimento, a eficiência da codificação é melhorada pela interpredição para desempenhar a predição a partir de uma imagem codificada/decodificada. O Documento de Patente 1 descreve a tecnologia para aplicar uma transformada afim no momento da interpredição. Não é incomum que um objeto cause deformação, tal como ampliação/redução e rotação em imagens em movimento, e a codificação eficiente é habilitada ao aplicar a tecnologia do Documento de Patente 1. [Documentos de Estado da Técnica] [Documentos de Patentes]
[Documento de Patente 1]
[004] Pedido de Patente Japonesa Não Examinado, Primeira Publicação Nº. H9-172644.
SUMÁRIO DA INVENÇÃO
[005] Entretanto, visto que a tecnologia do Documento de Patente 1 envolve uma transformada de imagem, há um problema de que a carga de processamento é grande. Tendo em vista o problema acima, a presente invenção provê tecnologia de codificação eficiente com uma carga baixa.
[006] Por exemplo, modalidades a serem descritas abaixo podem ser associadas aos seguintes aspectos.
[007] De acordo com um primeiro aspecto, provê-se um dispositivo de codificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de codificação, o dispositivo de codificação de imagem em movimento incluindo: uma unidade de derivação de candidato de mesclagem de herança afim configurada para derivar um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de codificação em um domínio do espaço; uma unidade de derivação de candidato de mesclagem de construção afim configurada para derivar um candidato de mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de codificação em um domínio do espaço ou do tempo, e uma unidade de derivação de candidato de mesclagem de fixação afim configurada para derivar um candidato de mesclagem de fixação afim em que as informações de movimento de um ponto de controle afim são fixadas; em que um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato de mesclagem de fixação afim.
[008] De acordo com um segundo aspecto, provê-se um método de codificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de codificação, o método de codificação de imagem em movimento incluindo: uma etapa de derivação de candidato de mesclagem de herança afim para derivação de um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de codificação em um domínio do espaço; uma etapa de derivação de candidato de mesclagem de construção afim de derivação de um candidato de mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de codificação em um domínio do espaço ou do tempo; e uma etapa de derivação de candidato de mesclagem de fixação afim de derivação de um candidato de mesclagem de fixação afim em que as informações de movimento de um ponto de controle afim são fixadas, em que um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato de mesclagem de fixação afim.
[009] De acordo com um terceiro aspecto, provê-se um programa de codificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de codificação armazenados em um meio de gravação não transitório legível por computador, o programa de codificação de imagem em movimento fazendo com que um computador execute: etapa de derivação de candidato de mesclagem de herança afim de derivação de um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de codificação em um domínio do espaço; uma etapa de derivação de candidato de mesclagem de construção afim de derivação de um candidato de mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de codificação em um domínio do espaço ou do tempo; e uma etapa de derivação de candidato de mesclagem de fixação afim de derivação de candidato de mesclagem de fixação afim, em que as informações de movimento de um ponto de controle afim são fixadas, em que um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato de mesclagem de fixação afim.
[010] De acordo com um quarto aspecto, provê-se um dispositivo de decodificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de decodificação, o dispositivo de decodificação de imagem em movimento incluindo: uma unidade de derivação de candidato de mesclagem de herança afim configurada para derivar um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de decodificação em um domínio do espaço; uma unidade de derivação de candidato de mesclagem de construção afim configurada para derivar um candidato de mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de decodificação em um domínio do espaço ou do tempo, e uma unidade de derivação de candidato de mesclagem de fixação afim configurada para derivar um candidato de mesclagem de fixação afim em que as informações de movimento de um ponto de controle afim são fixadas; em que um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato de mesclagem de fixação afim.
[011] De acordo com um quinto aspecto, provê-se um método de decodificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de decodificação, o método de decodificação de imagem em movimento incluindo: uma etapa de derivação de candidato de mesclagem de herança afim de derivação de um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de decodificação em um domínio do espaço; uma etapa de derivação de candidato de mesclagem de construção afim de derivação de um candidato de mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de decodificação em um domínio do espaço ou do tempo; e uma etapa de derivação de candidato de mesclagem de fixação afim de derivação de um candidato de mesclagem de fixação afim em que as informações de movimento de um ponto de controle afim são fixadas, em que um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato de mesclagem de fixação afim.
[012] De acordo com um sexto aspecto, provê-se um programa de decodificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de decodificação armazenados em um meio de gravação não transitório legível por computador, o programa de decodificação de imagem em movimento fazendo com que um computador execute: etapa de derivação de candidato de mesclagem de herança afim de derivação de um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de decodificação em um domínio do espaço; uma etapa de derivação de candidato de mesclagem de construção afim de derivação de um candidato de mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de decodificação em um domínio do espaço ou do tempo; e uma etapa de derivação de candidato de mesclagem de fixação afim de derivação de um candidato de mesclagem de fixação afim em que as informações de movimento de um ponto de controle afim são fixadas, em que um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato de mesclagem de fixação afim. Além disso, essas descrições são exemplos. O escopo do presente pedido e da presente invenção não se limita ou restringe a essas descrições. Além disso, deve ser entendido que a descrição da "presente invenção" no presente relatório descritivo não limita o escopo da presente invenção ou do presente pedido, mas é usada como um exemplo. [Efeitos Vantajosos da Invenção]
[013] De acordo com a presente invenção, é possível implementar um processo de codificação/decodificação de imagem altamente eficiente com uma carga baixa.
BREVE DESCRIÇÃO DOS DESENHOS
[014] A Figura 1 é um diagrama em blocos de um dispositivo de codificação de imagem de acordo com uma modalidade da presente invenção.
[015] A Figura 2 é um diagrama em blocos de um dispositivo de codificação de imagem de acordo com uma modalidade da presente invenção.
[016] A Figura 3 é um fluxograma explicativo mostrando uma operação de divisão de um bloco de árvore.
[017] A Figura 4 é um diagrama mostrando um estado no qual uma imagem de entrada é dividida em blocos de árvore.
[018] A Figura 5 é um diagrama explicativo mostrando a varredura-Z.
[019] A Figura 6A é um diagrama mostrando um formato dividido de um bloco.
[020] A Figura 6B é um diagrama mostrando um formato dividido de um bloco.
[021] A Figura 6C é um diagrama mostrando um formato dividido de um bloco.
[022] A Figura 6D é um diagrama mostrando um formato dividido de um bloco.
[023] A Figura 6E é um diagrama mostrando um formato dividido de um bloco.
[024] A Figura 7 é um fluxograma explicativo mostrando uma operação de divisão de um bloco em quatro partes.
[025] A Figura 8 é um fluxograma explicativo mostrando uma operação de divisão de um bloco em duas ou três partes.
[026] A Figura 9 é a sintaxe para expressar um formato de separação de bloco.
[027] A Figura 10A é um diagrama explicativo mostrando intrapredição.
[028] A Figura 10B é um diagrama explicativo mostrando intrapredição.
[029] A Figura 11 é um diagrama explicativo mostrando um bloco de referência de interpredição.
[030] A Figura 12 é a sintaxe para expressar um modo de predição de bloco de codificação.
[031] A Figura 13 é um diagrama mostrando a correspondência entre um elemento de sintaxe relacionado à interpredição e um modo.
[032] A Figura 14 é um diagrama explicativo mostrando a compensação de movimento afim de dois pontos de controle.
[033] A Figura 15 é um diagrama explicativo mostrando a compensação de movimento afim de três pontos de controle.
[034] A Figura 16 é um diagrama em blocos de uma configuração detalhada de uma unidade de interpredição 102 da Figura 1.
[035] A Figura 17 é um diagrama em blocos de uma configuração detalhada de uma unidade de derivação de modo de preditor de vetor de movimento normal 301 da Figura 16.
[036] A Figura 18 é um diagrama em blocos de uma configuração detalhada de uma unidade de derivação de modo de mesclagem normal 302 da Figura 16.
[037] A Figura 19 é um fluxograma explicativo mostrando um processo de derivação de modo de preditor de vetor de movimento normal da unidade de derivação de modo de preditor de vetor de movimento normal 301 da Figura 16.
[038] A Figura 20 é um fluxograma mostrando um procedimento de processamento do processo de derivação do modo de preditor de vetor de movimento normal.
[039] A Figura 21 é um fluxograma explicativo mostrando um procedimento de processamento de um processo de derivação de modo de mesclagem normal.
[040] A Figura 22 é um diagrama em blocos de uma configuração detalhada de uma unidade de interpredição 203 da Figura 2.
[041] A Figura 23 é um diagrama em blocos de uma configuração detalhada de uma unidade de derivação de modo de preditor de vetor de movimento normal 401 da Figura 22.
[042] A Figura 24 é um diagrama em blocos de uma configuração detalhada de uma unidade de derivação de modo de mesclagem normal 402 da Figura 22.
[043] A Figura 25 é um fluxograma explicativo mostrando um processo de derivação de modo de preditor de vetor de movimento normal da unidade de derivação de modo de preditor de vetor de movimento normal 401 da Figura 22.
[044] A Figura 26 é um diagrama explicativo mostrando um procedimento de processamento de inicialização/atualização de uma lista de candidatos de preditor de vetor de movimento com base em histórico.
[045] A Figura 27 é um fluxograma de um procedimento de processamento de verificação de elemento idêntico no procedimento de processamento de inicialização/atualização de uma lista de candidatos de preditor de vetor de movimento com base em histórico.
[046] A Figura 28 é um fluxograma de um procedimento de processamento de deslocamento de elemento no procedimento de processamento de inicialização/atualização de uma lista de candidatos de preditor de vetor de movimento com base em histórico.
[047] A Figura 29 é um fluxograma explicativo mostrando um procedimento de processamento de derivação de candidato de preditor de vetor de movimento com base em histórico.
[048] A Figura 30 é um fluxograma explicativo mostrando um procedimento de processamento de derivação de candidato de mesclagem com base em histórico.
[049] A Figura 31A é um diagrama explicativo mostrando um exemplo de um processo de atualização de lista de candidatos de preditor de vetor de movimento com base em histórico.
[050] A Figura 31B é um diagrama explicativo mostrando um exemplo de um processo de atualização de lista de candidatos de preditor de vetor de movimento com base em histórico.
[051] A Figura 31C é um diagrama explicativo mostrando um exemplo de um processo de atualização de lista de candidatos de preditor de vetor de movimento com base em histórico.
[052] A Figura 32 é um diagrama explicativo mostrando a predição de movimento compensado quando um tempo de relógio de uma imagem de referência (RefL0Pic) de L0 é anterior àquele de uma imagem alvo (CurPic) como predição L0.
[053] A Figura 33 é um diagrama explicativo mostrando a predição de movimento compensado quando um tempo de relógio de uma imagem de referência de predição L0 é posterior àquele de uma imagem alvo como predição L0.
[054] A Figura 34 é um diagrama explicativo mostrando uma direção de predição de predição de movimento compensado quando um tempo de relógio de uma imagem de referência de predição L0 é anterior àquele de uma imagem alvo e um tempo de relógio de uma imagem de referência de predição L1 é posterior àquele de uma imagem alvo como bipredição.
[055] A Figura 35 é um diagrama explicativo mostrando uma direção de predição de predição de movimento compensado quando um tempo de relógio de uma imagem de referência de predição L0 e um tempo de relógio de uma imagem de referência de predição L1 são anteriores àqueles de uma imagem alvo como bipredição.
[056] A Figura 36 é um diagrama explicativo mostrando uma direção de predição de predição de movimento compensado quando um tempo de relógio de uma imagem de referência de predição L0 e um tempo de relógio de uma imagem de referência de predição L1 são posteriores àqueles de uma imagem alvo como bipredição.
[057] A Figura 37 é um diagrama explicativo mostrando um exemplo de uma configuração de hardware de um dispositivo de codificação/decodificação de acordo com uma modalidade da presente invenção.
[058] A Figura 38 é um diagrama em blocos de uma unidade de derivação de modo de preditor de vetor de movimento com base em sub-bloco 303 no dispositivo de codificação do presente pedido.
[059] A Figura 39 é um diagrama em blocos de uma unidade de derivação de modo de preditor de vetor de movimento com base em sub-bloco 403 no dispositivo de decodificação do presente pedido.
[060] A Figura 40 é um diagrama em blocos de uma unidade de derivação de modo de mesclagem com base em sub-bloco 304 no dispositivo de codificação do presente pedido.
[061] A Figura 41 é um diagrama em blocos de uma unidade de derivação de modo de mesclagem com base em sub-bloco 404 no dispositivo de decodificação do presente pedido.
[062] A Figura 42 é um diagrama explicativo mostrando derivação de candidato de preditor de vetor de movimento de herança afim.
[063] A Figura 43 é um diagrama explicativo mostrando derivação de candidato de preditor de vetor de movimento de construção afim.
[064] A Figura 44 é um diagrama explicativo mostrando derivação de candidato de mesclagem de herança afim.
[065] A Figura 45 é um diagrama mostrando derivação de candidato de mesclagem de construção afim.
[066] A Figura 46 é um fluxograma para descrever a derivação de candidato de preditor de vetor de movimento de herança afim.
[067] A Figura 47 é um fluxograma para descrever derivação de candidato de preditor de vetor de movimento de construção afim.
[068] A Figura 48 é um fluxograma para descrever derivação de candidato de mesclagem de herança afim.
[069] A Figura 49 é um fluxograma para descrever derivação de candidato de mesclagem de construção afim.
[070] A Figura 50 é um fluxograma para descrever uma operação de uma unidade de derivação de candidato de mesclagem temporal com base em sub- bloco 381.
[071] A Figura 51 é um fluxograma para descrever um processo para derivar informações de movimento vizinho de blocos.
[072] A Figura 52 é um fluxograma para descrever um processo de derivação de vetor de movimento temporal.
[073] A Figura 53 é um fluxograma para descrever a derivação de informações de interpredição.
[074] A Figura 54 é um fluxograma para descrever um processo de derivação de informações de movimento de sub-bloco.
[075] A Figura 55 é um diagrama explicativo mostrando uma relação de contexto temporal entre imagens.
[076] A Figura 56 é um fluxograma para descrever um processo de derivação de candidato de preditor de vetor de movimento temporal de uma unidade de derivação de modo de preditor de vetor de movimento normal 301.
[077] A Figura 57 é um fluxograma para descrever um processo de derivação ColPic no processo de derivação candidato de preditor de vetor de movimento temporal da unidade de derivação do modo de preditor de vetor de movimento normal 301.
[078] A Figura 58 é um fluxograma para descrever um processo de derivação de informações de codificação ColPic no processo de derivação de candidato de preditor de vetor de movimento temporal da unidade de derivação de modo de preditor de vetor de movimento normal 301.
[079] A Figura 59 é um fluxograma para descrever um processo de derivação de informações de interpredição.
[080] A Figura 60 é um fluxograma mostrando um procedimento de processamento para derivar informações de interpredição de um bloco codificado quando o modo de interpredição de um bloco de codificação colCb é bipredição (Pred_BI).
[081] A Figura 61 é um fluxograma para descrever um procedimento de processamento de operação de escalonamento de vetor de movimento.
[082] A Figura 62 é um fluxograma para descrever um processo de derivação de candidato de mesclagem temporal.
[083] A Figura 63 é um diagrama mostrando alvos comparativos de informações de movimento em derivação de candidato de mesclagem de construção afim.
DESCRIÇÃO DETALHADA DA INVENÇÃO
[084] A tecnologia e os termos técnicos usados na modalidade serão definidos. <Bloco de árvore>
[085] Na modalidade, uma imagem alvo de codificação/decodificação é igualmente dividida em unidades com um tamanho predeterminado. Esta unidade é definida como um bloco de árvore. Embora o tamanho do bloco de árvore seja de amostras de 128×128 na Figura 4, o tamanho do bloco de árvore não se limita a tal e qualquer tamanho pode ser definido. O bloco de árvore de um alvo (correspondendo a um alvo de codificação em um processo de codificação ou um alvo de decodificação no processo de decodificação) é comutado em uma ordem de varredura raster, isto é, da esquerda à direita e de cima para baixo. O interior de cada bloco de árvore pode ser adicionalmente dividido recursivamente. Um bloco que é um alvo de codificação/decodificação após o bloco de árvore ser dividido recursivamente é definido como um bloco de codificação. Além disso, um bloco de árvore e um bloco de codificação são definidos coletivamente como blocos. A codificação eficiente é habilitada ao desempenhar separação de blocos apropriada. O tamanho do bloco de árvore pode ser um valor fixo predeterminado pelo dispositivo de codificação e o dispositivo de decodificação ou o tamanho do bloco de árvore determinado pelo dispositivo de codificação pode ser configurado para ser transmitido ao dispositivo de decodificação. Na presente divulgação, um tamanho máximo do bloco de árvore é de amostras de 128×128 e um tamanho mínimo do bloco de árvore é amostras 16×16. Além disso, um tamanho máximo do bloco de codificação é de amostras de 64×64 e um tamanho mínimo do bloco de codificação é de amostras de 4×4. <Modo de predição>
[086] A comutação é desempenhada entre a intrapredição
(MODE_INTRA), na qual a predição é desempenhada a partir de um sinal de imagem processado da imagem alvo, e a interpredição (MODE_INTER), na qual a predição é desempenhada a partir de um sinal de imagem de uma imagem processada em unidades de blocos de codificação alvo.
[087] A imagem processada é usada para uma imagem, um sinal de imagem, um bloco de árvore, um bloco, um bloco de codificação e afins obtidos ao decodificar um sinal completamente codificado no processo de codificação e é usado para uma imagem, um sinal de imagem, um bloco de árvore, um bloco, um bloco de codificação e afins obtidos ao completar a decodificação em um processo de decodificação.
[088] O modo no qual a intrapredição (MODE_INTRA) e a interpredição (MODE_INTER) são identificadas é definido como o modo de predição (PredMode). O modo de predição (PredMode) tem intrapredição (MODE_INTRA) ou interpredição (MODE_INTER) como um valor. <Interpredição>
[089] Na interpredição, na qual a predição é desempenhada a partir de um sinal de imagem de uma imagem processada, uma pluralidade de imagens processadas pode ser usada como imagens de referência. Para gerenciar uma pluralidade de imagens de referência, dois tipos de listas de referência de L0 (lista de referência 0) e L1 (lista de referência 1) são definidas e uma imagem de referência é identificada usando cada índice de referência. Em uma fatia P, a predição L0 (Pred_L0) pode ser usada. Em uma fatia B, a predição L0 (Pred_L0), a predição L1 (Pred_L1) e a bipredição (Pred_BI) podem ser usadas. A predição L0 (Pred_L0) é uma interpredição que se refere a uma imagem de referência gerenciada em L0 e a predição L1 (Pred_L1) é uma interpredição que se refere a uma imagem de referência gerenciada em L1. A bipredição (Pred_BI) é interpredição na qual tanto a predição L0 como a predição L1 são desempenhadas e uma imagem de referência gerenciada em cada um de L0 e L1 é referida. As informações para identificar a predição L0, a predição L1 e a bipredição são definidas como um modo de interpredição. No processamento subsequente, constantes e variáveis com o subscrito LX na saída são assumidas como sendo processadas para cada um de L0 e L1. <Modo de preditor de vetor de movimento>
[090] O modo de preditor de vetor de movimento é um modo para transmitir um índice para identificar um preditor de vetor de movimento, uma diferença de vetor de movimento, um modo de interpredição e um índice de referência e determinar informações de predição a um bloco alvo. O preditor de vetor de movimento é derivado a partir de um candidato de preditor de vetor de movimento derivado a partir de um bloco processado vizinho do bloco alvo ou um bloco localizado na mesma posição ou na vizinhança (perto) do bloco alvo dentre os blocos pertencentes à imagem processada e um índice para identificar um preditor de vetor de movimento. <Modo de mesclagem>
[091] O modo de mesclagem é um modo no qual as informações de interpredição a um bloco alvo são derivadas a partir das informações de interpredição de um bloco processado vizinho a um bloco alvo ou um bloco localizado na mesma posição ou na vizinhança (perto) do bloco alvo dentre blocos pertencentes à imagem processada sem transmitir uma diferença de vetor de movimento e um índice de referência.
[092] O bloco processado vizinho do bloco alvo e as informações de interpredição do bloco processado são definidos como candidatos de mesclagem espacial. O bloco localizado na mesma posição ou na vizinhança (perto) do bloco alvo dentre os blocos pertencentes à imagem processada e as informações de interpredição derivadas a partir das informações de interpredição do bloco são definidos como candidatos de mesclagem temporal. Cada candidato de mesclagem é registrado em uma lista de candidatos de mesclagem e um candidato de mesclagem usado para predição a um bloco alvo é identificado por um índice de mesclagem. <Bloco vizinho>
[093] A Figura 11 é um diagrama explicativo mostrando um bloco de referência que é referido na derivação de informações de interpredição no modo de preditor de vetor de movimento e no modo de mesclagem. A0, A1, A2, B0, B1, B2 e B3 são blocos processados próximos ao bloco alvo. T0 é um bloco localizado na mesma posição ou na vizinhança (perto) do bloco alvo na imagem alvo dentre os blocos pertencentes à imagem processada.
[094] A1 e A2 são blocos localizados no lado esquerdo do bloco de codificação alvo e vizinhos do bloco de codificação alvo. B1 e B3 são blocos localizados no lado superior do bloco de codificação alvo e vizinhos do bloco de codificação alvo. A0, B0 e B2 são blocos localizados na parte inferior esquerda, superior direita e superior esquerda do bloco de codificação alvo, respectivamente.
[095] Detalhes de como lidar com blocos vizinhos no modo de preditor de vetor de movimento e no modo de mesclagem serão descritos abaixo. <Compensação de movimento afim>
[096] A compensação de movimento afim é um processo de desempenhar compensação de movimento ao dividir um bloco de codificação em sub-blocos de uma unidade predeterminada e determinar individualmente um vetor de movimento para cada um dos sub-blocos nos quais o bloco de codificação é dividido. O vetor de movimento de cada sub-bloco é derivado com base em um ou mais pontos de controle derivados a partir de informações de interpredição de um bloco processado vizinho do bloco alvo ou um bloco localizado na mesma posição ou na vizinhança (perto) do bloco alvo dentre os blocos pertencentes à imagem processada. Embora o tamanho do sub-bloco seja de amostras de 4×4 na presente modalidade, o tamanho do sub-bloco não é limitado a tal e um vetor de movimento pode ser derivado em unidades de amostras.
[097] Um exemplo de compensação de movimento afim no caso de dois pontos de controle é mostrado na Figura 14. Neste caso, os dois pontos de controle têm dois parâmetros de um componente de direção horizontal e um componente de direção vertical. Assim, uma transformada afim no caso de dois pontos de controle é referida como uma transformada afim de quatro parâmetros. CP1 e CP2 da Figura 14 são pontos de controle.
[098] Um exemplo de compensação de movimento afim no caso de três pontos de controle é mostrado na Figura 15. Neste caso, os três pontos de controle têm dois parâmetros de um componente de direção horizontal e um componente de direção vertical. Assim, uma transformada afim no caso de três pontos de controle é referida como uma transformada afim de seis parâmetros. CP1, CP2 e CP3 da Figura 15 são pontos de controle.
[099] A compensação de movimento afim pode ser usada tanto no modo de preditor de vetor de movimento quanto no modo de mesclagem. Um modo no qual a compensação de movimento afim é aplicada no modo de preditor de vetor de movimento é definido como um modo de preditor de vetor de movimento com base em sub-bloco e um modo no qual a compensação de movimento afim é aplicada no modo de mesclagem é definido como com base em sub-bloco modo de mesclagem. <Sintaxe de interpredição>
[100] A sintaxe relacionada à interpredição será descrita usando as Figuras 12 e 13.
[101] O flag merge_flag na Figura 12 indica se o bloco de codificação alvo está definido para o modo de mesclagem ou o modo de preditor de vetor de movimento. O flag merge_affine_flag indica se o modo de mesclagem com base em sub-bloco é aplicado ou não ao bloco de codificação alvo do modo de mesclagem. O flag inter_affine_flag indica se deve ou não aplicar o modo de preditor de vetor de movimento com base em sub-bloco ao bloco de codificação alvo do modo de preditor de vetor de movimento. O flag cu_affine_type_flag é usada para determinar o número de pontos de controle no modo de preditor de vetor de movimento com base em sub-bloco.
[102] A Figura 13 mostra um valor de cada elemento de sintaxe e um método de predição correspondente a tal. O modo de mesclagem normal corresponde a merge_flag = 1 e merge_affine_flag = 0 e não é um modo de mesclagem com base em sub-bloco. O modo de mesclagem com base em sub- bloco corresponde a merge_flag = 1 e merge_affine_flag = 1. O modo de preditor de vetor de movimento normal corresponde a merge_flag = 0 e inter_affine_flag = 0. O modo de preditor de vetor de movimento normal é um modo de mesclagem de preditor de vetor de movimento que não é um modo de preditor de vetor de movimento com base em sub-bloco. O modo de preditor de vetor de movimento com base em sub-bloco corresponde a merge_flag = 0 e inter_affine_flag = 1. Quando merge_flag = 0 e inter_affine_flag = 1, cu_affine_type_flag é adicionalmente transmitido para determinar o número de pontos de controle. <POC>
[103] Uma contagem de ordem de imagem (POC) é uma variável associada a uma imagem a ser codificada e é definida para um valor que é incrementado em 1 de acordo com uma ordem de saída de imagens. De acordo com o valor POC, é possível discriminar se as imagens são iguais, discriminar uma relação ântero-posterior entre as imagens na ordem de saída ou derivar a distância entre as imagens. Por exemplo, se as POCs de duas imagens têm o mesmo valor, pode ser determinado que são a mesma imagem. Quando as POCs de duas imagens têm valores diferentes, pode ser determinado que a imagem com o menor valor de POC é a imagem a ser emitida primeiro. Uma diferença entre as POCs das duas imagens indica uma distância interimagens na direção do eixo do tempo. (Primeira modalidade)
[104] O dispositivo de codificação de imagem 100 e o dispositivo de decodificação de imagem de 200 serão descritos acordo com a primeira modalidade da presente invenção.
[105] A Figura 1 é um diagrama em blocos de um dispositivo de codificação de imagem 100 de acordo com a primeira modalidade. O dispositivo de codificação de imagem 100 de acordo com a modalidade, inclui uma unidade de separação de bloco 101, uma unidade de interpredição 102, uma unidade de intrapredição 103, uma memória de imagem decodificada 104, uma unidade de determinação de método de predição 105, uma unidade de geração residual 106, uma unidade de transformada ortogonal/quantização 107, uma unidade de codificação de bit strings 108, uma unidade de quantização inversa/transformada ortogonal inversa 109, uma unidade de sobreposição de sinal de imagem de decodificação 110 e uma memória de armazenamento de informações de codificação 111.
[106] A unidade de separação de bloco 101 divide recursivamente a imagem de entrada para gerar um bloco de codificação. A unidade de separação de bloco 101 inclui uma unidade de separação quádrupla que divide um bloco alvo de separação na direção horizontal e na direção vertical e uma unidade de separação binária ternária que divide o bloco alvo de separação na direção horizontal ou na direção vertical. A unidade de separação de bloco 101 define o bloco de codificação gerado como um bloco de codificação alvo e fornece um sinal de imagem do bloco alvo de codificação à unidade de interpredição 102, a unidade de intrapredição 103 e a unidade de geração residual 106. Além disso, a unidade de separação de bloco 101 fornece informações que indicam uma determinada estrutura de separação recursiva à unidade de codificação de bit strings 108. A operação detalhada da unidade de separação de bloco 101 será descrita abaixo.
[107] A unidade de interpredição 102 desempenha interpredição do bloco de codificação alvo. A unidade de interpredição 102 deriva uma pluralidade de candidatos de informações de interpredição a partir das informações de interpredição armazenadas na memória de armazenamento de informações de codificação 111 e o sinal de imagem decodificado armazenado na memória de imagem decodificada 104 seleciona um modo de interpredição adequado a partir da pluralidade de candidatos derivados e fornece o modo de interpredição selecionado e um sinal de imagem predito de acordo com o modo de interpredição selecionado à unidade de determinação de método de predição
105. Uma configuração e operação detalhadas da unidade de interpredição 102 serão descritas abaixo.
[108] A unidade de intrapredição 103 desempenha intrapredição do bloco de codificação alvo. A unidade de intrapredição 103 refere-se a um sinal de imagem decodificado armazenado na memória de imagem decodificada 104 como uma amostra de referência e gera um sinal de imagem predito de acordo com a intrapredição com base nas informações de codificação, tal como um modo de intrapredição armazenado na memória de armazenamento de informações de codificação 111. Na intrapredição, a unidade de intrapredição 103 seleciona um modo de intrapredição adequado a partir de uma pluralidade de modos de intrapredição e fornece um modo de intrapredição selecionado e um sinal de imagem predito de acordo com o modo de intrapredição selecionado à unidade de determinação de método de predição 105.
[109] Exemplos de intrapredição são mostrados nas Figuras 10A e 10B. A Figura 10A mostra a correspondência entre uma direção de predição de intrapredição e um número de modo de intrapredição. Por exemplo, no modo de intrapredição 50, uma imagem de intrapredição é gerada ao copiar amostras de referência na direção vertical. O modo de intrapredição 1 é um modo DC e é um modo no qual todos os valores de amostra do bloco alvo são um valor médio de amostras de referência. O modo de intrapredição 0 é um modo planar e é um modo para criar uma imagem de intrapredição bidimensional a partir de amostras de referência nas direções vertical e horizontal. A Figura 10B é um exemplo em que uma imagem intrapredição é gerada no caso do modo de intrapredição 40. A unidade de intrapredição 103 copia o valor da amostra de referência na direção indicada pelo modo de intrapredição a respeito a cada amostra do bloco alvo. Quando a amostra de referência do modo de intrapredição não está em uma posição de número inteiro, a unidade de intrapredição 103 determina um valor de amostra de referência de acordo com uma interpolação de valores de amostra de referência de posições de número inteiro vizinhas.
[110] A memória de imagem decodificada 104 armazena uma imagem decodificada gerada pela unidade de sobreposição de sinal de imagem de decodificação 110. A memória de imagem decodificada 104 fornece a imagem decodificada armazenada à unidade de interpredição 102 e a unidade de intrapredição 103.
[111] A unidade de determinação de método de predição 105 determina o modo de predição ótimo ao avaliar cada uma dentre intrapredição e interpredição usando informações de codificação, uma quantidade de código residual, uma quantidade de distorção entre um sinal de imagem predito e um sinal de imagem alvo e afins. No caso de intrapredição, a unidade de determinação de método de predição 105 fornece informações de intrapredição, tais como um modo de intrapredição, como as informações de codificação à unidade de codificação de bit strings 108. No caso do modo de mesclagem de interpredição, a unidade de determinação de método de predição 105 fornece informações de interpredição, como um índice de mesclagem e informações indicando se o modo é ou não um modo de mesclagem com base em sub-bloco (um flag de mesclagem com base em sub-bloco) como informações de codificação para a unidade de codificação de bit strings 108. No caso do modo de preditor de vetor de movimento de interpredição, a unidade de determinação de método de predição 105 fornece informações de interpredição, tal como o modo de interpredição, um índice de preditor de vetor de movimento, índices de referência de L0 e L1, uma diferença de vetor de movimento e informações indicando se o modo é ou não um modo de preditor de vetor de movimento com base em sub-bloco (um flag de preditor de vetor de movimento com base em sub-bloco) como as informações de codificação à unidade de codificação de bit strings 108. Além disso, a unidade de determinação de método de predição 105 fornece as informações de codificação determinadas à memória de armazenamento de informações de codificação 111. A unidade de determinação de método de predição 105 fornece um sinal de imagem predito à unidade de geração residual 106 e a unidade de sobreposição do sinal de imagem de de codificação 110.
[112] A unidade de geração residual 106 gera um residual subtraindo o sinal de imagem predito do sinal de imagem alvo e fornece o residual à unidade de transformada ortogonal/quantização 107.
[113] A unidade de transformada ortogonal/quantização 107 desempenha uma transformação e quantização ortogonal no residual de acordo com o parâmetro de quantização para gerar um residual ortogonalmente transformado/quantizado e fornece o residual gerado à unidade de codificação de bit strings 108 e unidade de quantização inversa/transformada ortogonal inversa 109.
[114] A unidade de codificação de bit strings 108 codifica as informações de codificação de acordo com o método de predição determinado pela unidade de determinação de método de predição 105 para cada bloco de codificação, além das informações de unidades de sequências, imagens, fatias e blocos de codificação. Especificamente, a unidade de codificação de bit strings 108 codifica o modo PredMode de predição para cada bloco de codificação. Quando o modo de predição é interpredição (MODE_INTER), a unidade de codificação de bit strings 108 codifica as informações de codificação (informações de interpredição), tal como um flag para discriminar se o modo é ou não um modo de mesclagem, um flag de mesclagem com base em sub-bloco, índice quando o modo é o modo de mesclagem, um modo de interpredição quando o modo não é o modo de mesclagem, um índice de preditor de vetor de movimento, informações sobre uma diferença de vetor de movimento e um flag de preditor de vetor de movimento com base em sub-bloco de acordo com a sintaxe especificada (uma regra de sintaxe de bit strings) e gera primeiras bit strings. Quando o modo de predição é intrapredição (MODE_INTRA), as informações de codificação (informações de intrapredição), tal como o modo intrapredição, são codificadas de acordo com a sintaxe especificada (uma regra de sintaxe de bit strings) e as primeiras bit strings são geradas. Além disso, a unidade de codificação de bit strings 108 codifica por entropia o residual ortogonalmente transformado e quantizado de acordo com a sintaxe especificada para gerar segundas bit strings. A unidade de codificação de bit strings 108 multiplexa as primeiras bit strings e as segundas bit strings de acordo com a sintaxe especificada e emite um bitstream.
[115] A unidade de quantização inversa/transformada ortogonal inversa 109 calcula o residual ao desempenhar quantização inversa e uma transformada ortogonal inversa no residual ortogonalmente transformado/quantizado fornecido a partir da unidade de transformada ortogonal/quantização 107 e fornece o residual calculado à unidade de sobreposição de sinal de imagem de decodificação 110.
[116] A unidade de sobreposição de sinal de imagem de decodificação 110 sobrepõe o sinal de imagem predito de acordo com a determinação da unidade de determinação de método de predição 105 e o residual quantizado inversamente e transformado inversa e ortogonalmente pela unidade de quantização inversa/transformada ortogonal inversa 109 para gerar uma imagem decodificada e armazena a imagem decodificada na memória de imagem decodificada 104. Além disso, a unidade de sobreposição de sinal de imagem de decodificação 110 pode armazenar a imagem decodificada na memória de imagem decodificada 104 após desempenhar um processo de filtragem de redução da distorção, tal como a distorção de bloco devido à codificação na imagem decodificada.
[117] A memória de armazenamento de informações de codificação 111 armazena informações de codificação, tal como um modo de predição (interpredição ou intrapredição) determinado pela unidade de determinação de método de predição 105. No caso da interpredição, as informações de codificação armazenadas na memória de armazenamento de informações de codificação 111 incluem informações de interpredição, tal como um determinado vetor de movimento, índices de referência de listas de referência L0 e L1 e uma lista de candidatos de preditor de vetor de movimento com base em histórico. Além disso, no caso do modo de mesclagem de interpredição, as informações de codificação armazenadas na memória de armazenamento de informações de codificação 111 incluem informações de interpredição, tais como um índice de mesclagem, e informações indicando se o modo é ou não o modo de mesclagem com base em sub-bloco (um sub-bloco com base no flag de mesclagem), além das informações descritas acima. Além disso, no caso do modo de preditor de vetor de movimento da interpredição, as informações de codificação armazenadas na memória de armazenamento de informações de codificação 111 incluem informações de interpredição, tal como um modo de interpredição, um índice preditor de vetor de movimento, uma diferença de vetor de movimento e informações que indica se o modo é ou não o modo de preditor de vetor de movimento com base em sub-bloco (um flag de preditor de vetor de movimento com base em sub-bloco), além das informações descritas acima. No caso da intrapredição, informações de codificação armazenada na memória de armazenamento de informações de codificação 111 inclui informações de intrapredição, tal como o modo de intrapredição determinado.
[118] A Figura 2 é um diagrama em blocos mostrando uma configuração do dispositivo de decodificação de imagem de acordo com a modalidade da presente invenção correspondente ao dispositivo de codificação de imagem da Figura 1. O dispositivo de decodificação de imagem de acordo com a modalidade inclui uma unidade de decodificação de bit strings 201, uma unidade de separação de bloco 202, uma unidade de interpredição 203, uma unidade intrapredição 204, uma memória de armazenamento de informações de codificação 205, uma unidade de quantização inversa/transformada ortogonal inversa 206, uma unidade de sobreposição de sinal de imagem de decodificação 207 e uma memória de imagem decodificada 208.
[119] Visto que um processo de decodificação do dispositivo de decodificação de imagem da Figura 2 corresponde a um processo de decodificação provido no dispositivo de codificação de imagem da Figura 1, os componentes da memória de armazenamento de informações de codificação 205, a unidade de quantização inversa/transformada ortogonal inversa 206, a unidade de sobreposição de sinal de imagem de decodificação 207 e a memória de imagem decodificada 208 da Figura 2 têm funções correspondentes aos componentes da memória de armazenamento de informações de codificação 111, a unidade de quantização inversa/transformada ortogonal inversa 109, a unidade de sobreposição de sinal de imagem de decodificação 110 e a memória de imagem decodificada 104 do dispositivo de codificação de imagem da Figura
1.
[120] Um bitstream fornecido à unidade de decodificação de bit strings 201 é separado de acordo com uma regra de sintaxe especificada. A unidade de decodificação de bit strings 201 decodifica uma primeira bit string separada e obtém informações de unidades de sequências, imagens, fatias, blocos de codificação e informações de codificação de unidades de blocos de codificação. Especificamente, a unidade de decodificação de bit strings 201 decodifica um modo de predição PredMode para discriminar interpredição (MODE_INTER) ou intrapredição (MODE_INTRA) em unidades de blocos de codificação. Quando o modo de predição é interpredição (MODE_INTER), a unidade de decodificação de bit strings 201 decodifica informações de codificação (informações de interpredição) sobre um flag para discriminar se o modo é ou não um modo de mesclagem, um índice de mesclagem quando o modo é o modo de mesclagem, um flag de mesclagem com base em sub-bloco, um modo de interpredição quando o modo é um modo de preditor de vetor de movimento, um índice preditor de vetor de movimento, uma diferença de vetor de movimento, um flag de preditor de vetor de movimento com base em sub-bloco e afins de acordo com a sintaxe especificada e fornece as informações de codificação (as informações de interpredição) à memória de armazenamento de informações de codificação 205 via unidade de interpredição 203 e da unidade de separação de bloco 202. Quando o modo de predição é intrapredição (MODE_INTRA), as informações de codificação (informações de intrapredição), tal como o modo intrapredição, são decodificadas de acordo com a sintaxe especificada e informações de codificação (as informações de intrapredição) são fornecidas à memória de armazenamento de informações de codificação 205 via unidade de interpredição 203 ou da unidade de intrapredição 204 e da unidade de separação de bloco 202. A unidade de decodificação de bit strings 201 decodifica as segundas bit strings separadas para calcular um residual quantizado/transformado ortogonalmente e fornece o residual quantizado/transformado ortogonalmente à unidade de quantização inversa/transformada ortogonal inversa 206.
[121] Quando o modo de predição PredMode do bloco de codificação alvo é o modo de preditor de vetor de movimento na interpredição (MODE_INTER), a unidade de interpredição 203 deriva uma pluralidade de candidatos de preditor de vetor de movimento usando informações de codificação do sinal de imagem anteriormente decodificado armazenado na memória de armazenamento de informações de codificação 205 e registra a pluralidade de candidatos de preditor de vetor de movimento derivados na lista de candidatos de preditor de vetor de movimento a ser descrita abaixo. A unidade de interpredição 203 seleciona um preditor de vetor de movimento de acordo com o índice do preditor de vetor de movimento decodificado e fornecido pela unidade de decodificação de bit strings 201 a partir da pluralidade de candidatos de preditor de vetor de movimento registrados na lista de candidatos de preditor de vetor de movimento, calcula um vetor de movimento a partir da diferença de vetor de movimento decodificada pela unidade de decodificação de bit strings 201 e o preditor de vetor de movimento selecionado e armazena o vetor de movimento calculado na memória de armazenamento de informações de codificação 205 em conjunto com outras informações de codificação.
As informações de codificação do bloco de codificação fornecido/armazenado na presente divulgação são um modo de predição PredMode, flags predFlagL0[xP][yP] e predFlagL1[xP][yP] indicando se deve ou não usar predição L0 e predição L1, índices de referência refIdxL0[xP][yP] e refIdxL1[xP][yP] de L0 e L1, vetores de movimento mvL0[xP][yP] e mvL1[xP][yP] de L0 e L1 e afins.
Na presente divulgação, xP e yP são índices que indicam uma posição de uma amostra superior esquerda do bloco de codificação dentro da imagem.
Quando o modo de predição PredMode é interpredição (MODE_INTER) e o modo de interpredição é predição L0 (Pred_L0), o flag predFlagL0 indicando se deve ou não usar predição L0 é 1 e o flag predFlagL1 indicando se deve ou não usar predição L1 é 0. Quando o modo de interpredição é predição L1 (Pred_L1), o flag predFlagL0 indicando se deve ou não usar predição L0 é 0 e o flag predFlagL1 indicando se deve ou não usar predição L1 é 1. Quando o modo de interpredição é bipredição (Pred_BI), tanto o flag predFlagL0 indicando se deve ou não usar a predição L0 como o flag predFlagL1 indicando se deve ou não usar a predição L1 são 1. Além disso, os candidatos de mesclagem são derivados no modo de mesclagem em que o modo de predição PredMode do bloco de codificação alvo é interpredição (MODE_INTER). Uma pluralidade de candidatos de mesclagem são derivados usando as informações de codificação dos blocos de codificação previamente decodificados armazenados na memória de armazenamento de informações de codificação 205 e são registrados em uma lista de candidatos de mesclagem a ser descrita abaixo, um candidato de mesclagem correspondendo a um índice de mesclagem a ser decodificado e fornecida pela unidade de decodificação de bit strings 201 é selecionada a partir da pluralidade de candidatos de mesclagem registrados na lista de candidatos de mesclagem e informações de interpredição, tal como as flags predFlagL0[xP][yP] e predFlagL1[xP][yP] indicando se usar ou não predição L0 e predição L1 do candidato de mesclagem selecionado, os índices de referência refIdxL0[xP][yP] e refIdxL1[xP][yP] de L0 e L1, e os vetores de movimento mvL0[xP][yP] e mvL1[xP][yP] de L0 e L1 é armazenado na memória de armazenamento de informações de codificação 205. Na presente divulgação, xP e yP são índices que indicam a posição da amostra superior esquerda do bloco de codificação na imagem. Uma configuração e operação detalhadas da unidade de interpredição 203 serão descritas abaixo.
[122] A unidade de intrapredição 204 desempenha intrapredição quando o modo de predição PredMode do bloco de codificação alvo é intrapredição (MODE_INTRA). As informações de codificação decodificada pela unidade de decodificação de bit strings 201 incluem um modo de intrapredição. A unidade de intrapredição 204 gera um sinal de imagem predito de acordo com a intrapredição a partir do sinal de imagem decodificado armazenado na memória de imagem decodificada 208 de acordo com o modo de intrapredição incluído nas informações de codificação decodificadas pela unidade de decodificação de bit strings 201 e fornece o sinal de imagem predito à unidade de sobreposição de sinal de imagem de decodificação 207. Visto que a unidade de intrapredição 204 corresponde à unidade de intrapredição 103 do dispositivo de codificação de imagem 100, um processo semelhante àquele da unidade de intrapredição 103 é desempenhado.
[123] A unidade de quantização inversa/transformada ortogonal inversa 206 desempenha uma transformada ortogonal inversa e quantização inversa no residual quantizado/transformado ortogonalmente decodificado pela unidade de decodificação de bit strings 201 e obtém o residual inversa e ortogonalmente transformado/inversamente quantizado.
[124] A unidade de sobreposição de sinal de imagem de decodificação 207 decodifica um sinal de imagem de decodificação pela sobreposição um sinal de imagem predito interpredito pela unidade de interpredição 203 ou um sinal de imagem predito intrapredito pela unidade de intrapredição 204 e o residual inversa e ortogonalmente transformado/inversamente quantizado pela unidade de quantização inversa/transformada ortogonal inversa 206 e armazena o sinal de imagem de decodificação decodificado na memória de imagem decodificada
208. No momento do armazenamento na memória de imagem decodificada 208, a unidade de sobreposição de sinal de imagem de decodificação 207 pode armazenar uma imagem decodificada na memória de imagem decodificada 208 após um processo de filtragem para reduzir a distorção de bloco ou afins devido à codificação ser desempenhada na imagem decodificada.
[125] A seguir, uma operação da unidade de separação de blocos 101 no dispositivo de codificação de imagem 100 será descrita. A Figura 3 é um fluxograma mostrando uma operação de dividir uma imagem em blocos de árvore e dividir adicionalmente cada bloco de árvore. Primeiro, uma imagem de entrada é dividida em blocos de árvore com um tamanho predeterminado (etapa S1001). Cada bloco de árvore é varrido em uma ordem predeterminada, isto é, ordem de varredura raster (etapa S1002), e o interior do bloco de árvore de um alvo é dividido (etapa S1003).
[126] A Figura 7 é um fluxograma mostrando uma operação detalhada de um processo de separação da etapa S1003. Primeiramente, determina-se se um bloco alvo será ou não dividido em quatro partes (etapa S1101).
[127] Quando se determina que o bloco alvo será dividido em quatro partes, o bloco alvo será dividido em quatro partes (etapa S1102). Cada bloco obtido ao dividir o bloco alvo é varrido em uma ordem de varredura-Z, isto é, na ordem superior esquerdo, superior direito, inferior esquerdo e inferior direito
(etapa S1103). A Figura 5 mostra um exemplo da ordem de varredura-Z e o numeral de referência 601 da Figura 6A demonstra um exemplo no qual o bloco alvo é dividido em quatro partes. Os números 0 a 3 do numeral de referência 601 da Figura 6A indicam a ordem de processamento. Em seguida, o processo de separação da Figura 7 é executado recursivamente para cada bloco da divisão na etapa S1101 (etapa S1104).
[128] Quando se determina que o bloco alvo não será dividido em quatro partes, uma separação binária-ternária é desempenhada (etapa S1105).
[129] A Figura 8 é um fluxograma mostrando a operação detalhada de um processo de separação binário-ternário da etapa S1105. Primeiramente, determina-se se um bloco alvo será ou não dividido em duas ou três partes, isto é, se uma separação binária ou ternária será desempenhada ou não (etapa S1201).
[130] Quando não se determina que o bloco alvo será dividido em duas ou três partes, isto é, quando se determina que o bloco alvo não será dividido, a separação termina (etapa S1211). Isto é, um processo de separação recursiva não é adicionalmente desempenhado em blocos divididos de acordo com o processo de separação recursiva.
[131] Quando se determinado que o bloco alvo será dividido em duas ou três partes, determina-se adicionalmente se o bloco alvo será ou não dividido em duas partes (etapa S1202).
[132] Quando se determina que o bloco alvo será dividido em duas partes, determina-se se o bloco alvo será ou não dividido em partes superior e inferior (na direção vertical) (etapa S1203). Com base em um resultado da determinação, o bloco alvo é dividido em duas partes que são partes superior e inferior (na direção vertical) (etapa S1204) ou o bloco alvo é dividido em duas partes que são partes esquerda e direita (em uma direção horizontal) (etapa S1205). Como resultado da etapa S1204, o bloco alvo é dividido em duas partes que são partes superior e inferior (na direção vertical), conforme indicado pelo numeral de referência 602 na Figura 6B. Como resultado da etapa S1205, o bloco alvo é dividido em duas partes que são as partes esquerda e direita (na direção horizontal), conforme indicado pelo número de referência 604 da Figura 6D.
[133] Quando não se determina que o bloco alvo será dividido em duas partes, isto é, quando se determina que o bloco alvo será dividido em três partes, na etapa S1202, determina-se se o bloco alvo será ou não dividido em partes superior, intermediária e inferior (na direção vertical) (etapa S1206). Com base em um resultado da determinação, o bloco alvo é dividido em três partes que são partes superior, intermediária e inferior (na direção vertical) (etapa S1207) ou o bloco alvo é dividido em três partes que são esquerda, meio e partes direitas (na direção horizontal) (etapa S1208). Como resultado da etapa S1207, o bloco alvo é dividido em três partes que são partes superior, intermediária e inferior (na direção vertical), conforme indicado pelo numeral de referência 603 da Figura 6C. Como resultado da etapa S1208, o bloco alvo é dividido em três partes que são as partes esquerda, intermediária e direita (na direção horizontal), conforme indicado pelo número de referência 605 da Figura 6E.
[134] Após qualquer uma das etapas S1204, S1205, S1207 e S1208 ser executada, cada um dos blocos no quais o bloco alvo é dividido é varrido da esquerda à direita e de cima para baixo (etapa S1209). Os números 0 a 2 dos números de referência 602 a 605 das Figuras 6B a 6E indicam a ordem de processamento. Para cada um dos blocos nos quais o bloco alvo é dividido, um processo de separação binário-ternário da Figura 8 é executado recursivamente (etapa S1210).
[135] A separação de bloco recursiva descrita na presente divulgação pode limitar a necessidade de uma separação de acordo com o número de separações ou um tamanho do bloco alvo ou afins. As informações que limitam a necessidade de uma separação podem ser implementadas por uma configuração na qual as informações não são distribuídas ao fazer um acordo entre o dispositivo de codificação e o dispositivo de decodificação antecipadamente ou implementadas por uma configuração na qual o dispositivo de codificação determina as informações que limitam a necessidade de uma separação, registra as informações em uma bit string e as distribui ao dispositivo de decodificação.
[136] Quando um certo bloco é dividido, um bloco antes da separação é referido como bloco pai e cada bloco após a separação é referido como bloco filho.
[137] A seguir, uma operação da unidade de separação de bloco 202 no dispositivo de decodificação de imagem 200 será descrita. A unidade de separação de bloco 202 divide o bloco de árvore de acordo com um procedimento de processamento semelhante àquele da unidade de separação de bloco 101 do dispositivo de codificação de imagem 100. Entretanto, há uma diferença na qual a unidade de separação de bloco 101 do dispositivo de codificação de imagem 100 aplica uma técnica de otimização, tal como estimativa de um formato ótimo com base na otimização de taxa de distorção ou reconhecimento para determinar um formato de separação de bloco ótimo, sendo que a separação de bloco a unidade 202 do dispositivo de decodificação de imagem 200 determina um formato de separação de bloco ao decodificar as informações de separação de bloco gravadas na sequência de bits.
[138] A sintaxe (uma regra de sintaxe de bit strings) relacionada a uma separação de bloco de acordo com a primeira modalidade é mostrada na Figura
9. coding_quadtree() representa a sintaxe relacionada a um processo de separação quádrupla no bloco. multi_type_tree() representa a sintaxe relacionada a um processo binário ou ternário de separação em um bloco.
qt_split é um flag indicando se um bloco está ou não dividido em quatro partes. qt_split=1 quando o bloco é dividido em quatro partes e qt_split=0 quando o bloco não é dividido em quatro partes.
Quando o bloco é dividido em quatro partes (qt_split=1), um processo de separação quádrupla é desempenhado recursivamente em blocos, cada um dos quais foi dividido em quatro partes (coding_quadtree(0), coding_quadtree(1), coding_quadtree(2), coding_quadtree(3) e os argumentos de 0 a 3 correspondem aos números indicados pelo numeral de referência 601 da Figura 6A). Quando o bloco não é dividido em quatro partes (qt_split=0), a separação subsequente é determinada de acordo com multi_type_tree(). mtt_split é um flag indicando se uma separação se é ou não adicionalmente desempenhada.
Quando uma separação é adicionalmente desempenhada (mtt_split=1), mtt_split_vertical que é um flag que indica se o bloco está dividido verticalmente ou horizontalmente e mtt_split_binary que é um flag para determinar se uma separação binária ou ternária é desempenhada são transmitidos. mtt_split_vertical=1 indica uma separação na direção vertical e mtt_split_vertical=0 indica uma separação na direção horizontal. mtt_split_binary=1 indica uma separação binária e mtt_split_binary=0 indica uma separação ternária.
Na separação binária (mtt_split_binary=1), um processo de separação é desempenhado recursivamente em blocos, cada um dos quais é dividido em duas partes (multi_type_tree(0), multi_type_tree(1) e os argumentos 0 a 1 correspondem aos números indicados pelo numeral de referência 602 ou 604 nas Figuras 6B a 6D). No caso da separação ternária (mtt_split_binary=0), um processo de separação é desempenhado recursivamente em blocos, cada um dos quais é dividido em três partes (multi_type_tree(0), multi_type_tree(1), multi_type_tree(2) e argumentos 0 a 2 correspondem aos números indicados pelo numeral de referência 603 da Figura 6B ou aos números indicados pelo numeral de referência 605 da Figura 6E). Até que mtt_split=0 seja alcançado, uma separação de bloco hierárquico é desempenhada ao chamar recursivamente multi_type_tree. <Interpredição>
[139] Um método de interpredição de acordo com a modalidade é desempenhado na unidade de interpredição 102 do dispositivo de codificação de imagem da Figura 1 e a unidade de interpredição 203 do dispositivo de decodificação de imagem da Figura 2.
[140] Um método de interpredição de acordo com a modalidade será descrito abaixo em detalhes com referência aos desenhos. O método de interpredição é desempenhado em ambos os processos de codificação como de decodificação em unidades de blocos de codificação. <Descrição da unidade de interpredição 102 do lado de codificação>
[141] A Figura 16 é um diagrama mostrando uma configuração detalhada da unidade de interpredição 102 do dispositivo de codificação de imagem na Figura 1. A unidade de derivação de modo de preditor de vetor de movimento normal 301 deriva uma pluralidade de candidatos de preditor de vetor de movimento normal para selecionar um preditor de vetor de movimento e calcula uma diferença de vetor de movimento entre o preditor de vetor de movimento selecionado e um vetor de movimento detectado. Um modo de interpredição detectado, índice de referência e vetor de movimento e a diferença vetor de movimento calculada tornam-se informações de interpredição do modo de preditor de vetor de movimento normal. Estas informações de interpredição são fornecidas à unidade de determinação de modo de interpredição 305. Uma configuração detalhada e um processo da unidade de derivação de modo de preditor de vetor de movimento normal 301 serão descritos abaixo.
[142] A unidade de derivação de modo de mesclagem normal 302 deriva uma pluralidade de candidatos de mesclagem normais para selecionar um candidato de mesclagem normal e obtém informações de interpredição do modo de mesclagem normal. Estas informações de interpredição são fornecidas à unidade de determinação de modo de interpredição 305. Uma configuração detalhada e um processo da unidade de derivação de modo de mesclagem normal 302 serão descritos abaixo.
[143] Uma unidade de derivação de modo de preditor de vetor de movimento com base em sub-bloco 303 deriva uma pluralidade de candidatos de preditor de vetor de movimento com base em sub-bloco para selecionar um preditor de vetor de movimento com base em sub-bloco e calcula uma diferença de vetor de movimento entre o preditor de vetor de movimento com base em sub-bloco selecionado e o detectado vetor de movimento. Um modo de interpredição detectado, índice de referência e vetor de movimento e a diferença de vetor de movimento calculada tornam-se as informações de interpredição do modo de preditor de vetor de movimento com base em sub-bloco. Estas informações de interpredição são fornecidas à unidade de determinação de modo de interpredição 305.
[144] A unidade de derivação de modo de mesclagem com base em sub- bloco 304 deriva uma pluralidade de candidatos de mesclagem com base em sub- bloco para selecionar um candidato de mesclagem com base em sub-bloco e obtém informações de interpredição do modo de mesclagem com base em sub- bloco. Estas informações de interpredição são fornecidas à unidade de determinação de modo de interpredição 305.
[145] A unidade de determinação de modo de interpredição 305 determina informações de interpredição com base nas informações de interpredição fornecidas a partir da unidade de derivação de modo de preditor de vetor de movimento normal 301, a unidade de derivação de modo de mesclagem normal 302, a unidade de derivação de modo de preditor de vetor de movimento com base em sub-bloco 303 e a unidade de derivação de modo de mesclagem com base em sub-bloco 304. As informações de interpredição de acordo com o resultado da determinação são fornecidas a partir da unidade de determinação de modo de interpredição 305 à unidade de predição de movimento compensado 306.
[146] A unidade de predição com compensação de movimento 306 desempenha interpredição no sinal de imagem de referência armazenado na memória de imagem decodificada 104 com base nas informações de interpredição determinada. Uma configuração detalhada e um processo da unidade de predição de movimento compensado 306 serão descritos abaixo. <Descrição da unidade de interpredição 203 do lado de codificação>
[147] A Figura 22 é um diagrama mostrando uma configuração detalhada da unidade de interpredição 203 do dispositivo de decodificação de imagem da Figura 2.
[148] Uma unidade de derivação de modo de preditor de vetor de movimento normal 401 deriva uma pluralidade de candidatos de preditor de vetor de movimento normal para selecionar um preditor de vetor de movimento, calcula uma soma do preditor de vetor de movimento selecionado e a diferença do vetor de movimento decodificado e define a soma calculada como um vetor de movimento. Um modo de interpredição decodificado, índice de referência e vetor de movimento tornam-se informações de interpredição do modo de preditor de vetor de movimento normal. Estas informações de interpredição são fornecidas a uma unidade de predição de movimento compensado 406 via comutador 408. Uma configuração detalhada e um processo da unidade de derivação de modo de preditor de vetor de movimento normal 401 serão descritos abaixo.
[149] Uma unidade de derivação de modo de mesclagem normal 402 deriva uma pluralidade de candidatos de mesclagem normais para selecionar um candidato de mesclagem normal e obtém informações de interpredição do modo de mesclagem normal. Estas informações de interpredição são fornecidas à unidade de predição de movimento compensado 406 via comutador 408. Uma configuração detalhada e um processo da unidade de derivação de modo de mesclagem normal 402 serão descritos abaixo.
[150] Uma unidade de derivação de modo de preditor de vetor de movimento com base em sub-bloco 403 deriva uma pluralidade de candidatos de preditor de vetor de movimento com base em sub-bloco para selecionar um preditor de vetor de movimento com base em sub-bloco, calcula uma soma do preditor de vetor de movimento com base em sub-bloco selecionado e a diferença de vetor de movimento decodificado e define a soma calculada como um vetor de movimento. Um modo de interpredição decodificado, índice de referência e vetor de movimento tornam-se as informações de interpredição do modo de preditor de vetor de movimento com base em sub-bloco. Estas informações de interpredição são fornecidas à unidade de predição de movimento compensado 406 via comutador 408.
[151] Uma unidade de derivação de modo de mesclagem com base em sub-bloco 404 deriva uma pluralidade de candidatos de mesclagem com base em sub-bloco para selecionar um candidato de mesclagem com base em sub-bloco e obtém informações de interpredição do modo de mesclagem com base em sub-bloco. Estas informações de interpredição são fornecidas à unidade de predição de movimento compensado 406 via comutador 408.
[152] A unidade de predição com compensação de movimento 406 desempenha interpredição no sinal de imagem de referência armazenado na memória de imagem decodificada 208 com base nas informações de interpredição determinada. Uma configuração detalhada e um processo da unidade de predição de movimento compensado 406 são semelhantes àqueles da unidade de predição de movimento compensado 306 do lado de codificação. <Unidade de derivação de modo de preditor de vetor de movimento normal (AMVP normal)>
[153] A unidade de derivação de modo de preditor de vetor de movimento normal 301 da Figura 17 inclui uma unidade de derivação de candidato de preditor de vetor de movimento espacial 321, uma unidade de derivação de candidato de preditor de vetor de movimento temporal 322, uma unidade de derivação de candidato de preditor de vetor de movimento com base em histórico 323, uma unidade de reabastecimento de candidato de preditor de vetor de movimento 325, uma unidade de detecção de vetor de movimento normal 326, uma unidade de seleção de candidato de preditor de vetor de movimento 327 e uma unidade de subtração de vetor de movimento 328.
[154] A unidade de derivação de modo de preditor de vetor de movimento normal 401 da Figura 23 inclui uma unidade de derivação de candidato de preditor de vetor de movimento espacial 421, uma unidade de derivação de candidato de preditor de vetor de movimento temporal 422, uma unidade de derivação de candidato de preditor de vetor de movimento com base em histórico 423, uma unidade de reabastecimento de candidato de preditor de vetor de movimento 425, uma unidade de seleção de candidato de preditor de vetor de movimento 426 e uma unidade de adição de vetor de movimento 427.
[155] Os procedimentos de processamento da unidade de derivação de modo de preditor de vetor de movimento normal 301 do lado de codificação e a unidade de derivação de modo de preditor de vetor de movimento normal 401 do lado de decodificação serão descritos usando os fluxogramas das Figuras 19 e 25, respectivamente. A Figura 19 é um fluxograma mostrando um procedimento de processamento de derivação de modo de preditor de vetor de movimento normal da unidade de derivação de modo de preditor de vetor de movimento normal 301 do lado de codificação e a Figura 25 é um fluxograma mostrando um procedimento de processamento de derivação de modo de preditor de vetor de movimento normal da unidade de derivação de modo de preditor de vetor de movimento normal 401 do lado de decodificação. <Unidade de derivação de modo de preditor de vetor de movimento normal (AMVP normal): descrição do lado de codificação>
[156] O procedimento de processamento de derivação de modo de preditor de vetor de movimento normal do lado da codificação será descrito com referência à Figura 19. Na descrição do procedimento de processamento da Figura 19, o termo "normal" mostrado na Figura 19 pode ser omitido.
[157] Em primeiro lugar, a unidade de detecção de vetor de movimento normal 326 detecta um vetor de movimento normal para cada modo de interpredição e cada índice de referência (etapa S100 da Figura 19).
[158] Subsequentemente, na unidade de derivação de candidato de preditor de vetor de movimento espacial 321, a unidade de derivação de candidato de preditor de vetor de movimento temporal 322, a unidade de derivação de candidato de preditor de vetor de movimento com base em histórico 323, a unidade de reabastecimento candidato de preditor de vetor de movimento 325, a unidade de seleção de candidato de preditor de vetor de movimento 327 e a unidade de subtração de vetor de movimento 328, uma diferença de vetor de movimento de um vetor de movimento usada para interpredição do modo de preditor de vetor de movimento normal é calculada para cada um de L0 e L1 (etapas S101 a S106 da Figura 19). Especificamente, quando o modo de predição PredMode do bloco alvo é interpredição (MODE_INTER) e o modo de interpredição é predição L0 (Pred_L0), a lista de candidatos de preditor de vetor de movimento mvpListL0 de L0 é calculada para selecionar o preditor de vetor de movimento mvpL0 e o a diferença do vetor de movimento mvdL0 do vetor de movimento mvL0 de L0 é calculada. Quando o modo de interpredição do bloco alvo é predição L1 (Pred_L1), a lista de candidatos de preditor de vetor de movimento mvpListL1 de L1 é calculada para selecionar o preditor de vetor de movimento mvpL1 e a diferença de vetor de movimento mvdL1 do vetor de movimento mvL1 de L1 é calculada. Quando o modo de interpredição do bloco alvo é bipredição (Pred_BI), tanto a predição L0 como a predição L1 são desempenhadas, a lista de candidatos de preditor de vetor de movimento mvpListL0 de L0 é calculada para selecionar um preditor de vetor de movimento mvpL0 de L0, a diferença de vetor de movimento mvdL0 de um vetor de movimento mvL0 de L0 é calculada, a lista de candidatos de preditor de vetor de movimento mvpListL1 de L1 é calculada para selecionar um preditor de vetor de movimento mvpL1 de L1 e uma diferença de vetor de movimento mvdL1 de um vetor de movimento mvL1 de L1 é calculada.
[159] Embora um processo de cálculo da diferença do vetor de movimento seja desempenhado para cada um de L0 e L1, o processo de cálculo de diferença de vetor de movimento torna-se um processo comum para L0 e L1. Portanto, na descrição a seguir, L0 e L1 são representados como LX comum. X de LX é 0 no processo de calcular a diferença de vetor de movimento de L0 e X de LX é 1 no processo de cálculo da diferença do vetor de movimento de L1. Além disso, quando informações de outra lista em vez de LX são referidas durante o processo de calcular a diferença de vetor de movimento de LX, a outra lista é representada como LY.
[160] Quando o vetor de movimento mvLX de LX é usado (etapa S102 da Figura 19: SIM), os candidatos de preditor de vetor de movimento de LX são calculados para construir a lista de candidatos de preditor de vetor de movimento mvpListLX de LX (etapa S103 da Figura 19). Na unidade de derivação de candidato de preditor de vetor de movimento espacial 321, a unidade de derivação de candidato de preditor de vetor de movimento temporal 322, a unidade de derivação de candidato de preditor de vetor de movimento com base em histórico 323 e a unidade de reabastecimento de candidato de preditor de vetor de movimento 325 da derivação de modo de preditor de vetor de movimento normal unidade 301, uma pluralidade de candidatos de preditor de vetor de movimento são derivados para construir a lista de candidatos de preditor de vetor de movimento mvpListLX. O procedimento de processamento detalhado da etapa S103 da Figura 19 será descrito abaixo usando o fluxograma da Figura 20.
[161] Subsequentemente, a unidade de seleção de candidato de preditor de vetor de movimento 327 seleciona um preditor de vetor de movimento mvpLX de LX da lista de candidatos de preditor de vetor de movimento mvpListLX de LX (etapa S104 da Figura 19). Na presente divulgação, um elemento (um i-ésimo elemento quando contado a partir do elemento 0-ésimo) na lista de candidatos de preditor de vetor de movimento, mvpListLX, é representado como mvpListLX[i]. Cada diferença de vetor de movimento que é uma diferença entre o vetor de movimento mvLX e cada candidato de preditor de vetor de movimento mvpListLX[i] armazenado na lista de candidatos de preditor de vetor de movimento mvpListLX é calculado. Uma quantidade de código quando as diferenças do vetor de movimento são codificadas é calculada para cada elemento (candidato de preditor de vetor de movimento) da lista de candidatos de preditor de vetor de movimento mvpListLX. Em seguida, um candidato de preditor de vetor de movimento mvpListLX[i] que minimiza a quantidade de código para cada candidato de preditor de vetor de movimento entre os elementos registrados na lista de candidatos de preditor de vetor de movimento mvpListLX é selecionado como o preditor de vetor de movimento mvpLX e seu índice i é adquirido. Quando há uma pluralidade de candidatos de preditor de vetor de movimento com a menor quantidade de código gerado na lista de candidatos de preditor de vetor de movimento mvpListLX, um candidato de preditor de vetor de movimento mvpListLX[i] representado por um número menor no índice i na lista de candidatos de preditor de vetor de movimento mvpListLX é selecionado como um preditor de vetor de movimento ótimo mvpLX e seu índice i é adquirido.
[162] Subsequentemente, a unidade de subtração de vetor de movimento 328 subtrai o preditor de vetor de movimento selecionado mvpLX de LX do vetor de movimento mvLX de LX e calcula uma diferença de vetor de movimento mvdLX de LX como mvdLX=mvLX-mvpLX (etapa S105 da Figura 19). <Unidade de derivação de modo de preditor de vetor de movimento normal (AMVP normal): descrição do lado de decodificação>
[163] A seguir, o procedimento de processamento de modo de preditor de vetor de movimento normal do lado de decodificação será descrito com referência à Figura 25. No lado de decodificação, na unidade de derivação de candidato de preditor de vetor de movimento espacial 421, a unidade de derivação de candidato de preditor de vetor de movimento temporal 422, a unidade de derivação de candidato de preditor de vetor de movimento com base em histórico 423 e a unidade de reabastecimento de candidato de preditor de vetor de movimento 425, um vetor de movimento para uso na interpredição do modo de preditor de vetor de movimento normal é calculado para cada um de L0 e L1 (etapas S201 a S206 da Figura 25). Especificamente, quando o modo de predição PredMode do bloco alvo é interpredição (MODE_INTER) e o modo interpredição do bloco alvo é predição L0 (Pred_L0), a lista de candidatos de preditor de vetor de movimento mvpListL0 de L0 é calculada para selecionar o preditor de vetor de movimento mvpL0 e um vetor de movimento mvL0 de L0 é calculado. Quando o modo de interpredição do bloco alvo é predição L1 (Pred_L1), a lista de candidatos de preditor de vetor de movimento mvpListL1 de L1 é calculada para selecionar o preditor de vetor de movimento mvpL1 e o vetor de movimento mvL1 de L1 é calculado. Quando o modo de interpredição do bloco alvo é bipredição (Pred_BI), tanto a predição L0 como a predição L1 são desempenhadas, a lista de candidatos de preditor de vetor de movimento mvpListL0 de L0 é calculada para selecionar um preditor de vetor de movimento mvpL0 de L0, um o vetor de movimento mvL0 de L0 é calculado, a lista de candidatos de preditor de vetor de movimento mvpListL1 de L1 é calculada para selecionar um vetor de movimento preditor mvpL1 de L1 e cada vetor de movimento mvL1 de L1 é calculado.
[164] Embora um processo de cálculo do vetor de movimento seja desempenhado para cada um de L0 e L1 no lado de decodificação conforme no lado de codificação, o processo de cálculo do vetor de movimento torna-se um processo comum para L0 e L1. Portanto, na descrição a seguir, L0 e L1 são representados como LX comum. LX representa um modo de interpredição para uso na interpredição a um bloco alvo de codificação. 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, quando as informações de outra lista de referência são referidas durante o processo de cálculo do vetor de movimento de LX em vez de uma lista de referência idêntica àquela de LX de um alvo de cálculo, a outra lista de referência é representada como LY.
[165] Quando o vetor de movimento mvLX de LX é usado (etapa S202 da Figura 25: SIM), os candidatos de preditor de vetor de movimento de LX são calculados para construir a lista de candidatos de preditor de vetor de movimento mvpListLX de LX (etapa S203 da Figura 25). Na unidade de derivação de candidato de preditor de vetor de movimento espacial 421, a unidade de derivação de candidato de preditor de vetor de movimento temporal 422, a unidade de derivação de candidato de preditor de vetor de movimento com base em histórico 423 e a unidade de reabastecimento de candidato de preditor de vetor de movimento 425 da derivação de modo de preditor de vetor de movimento normal unidade 401, uma pluralidade de candidatos de preditor de vetor de movimento são calculados para construir uma lista de candidatos de preditor de vetor de movimento mvpListLX. Um procedimento de processamento detalhado da etapa S203 da Figura 25 será descrito abaixo usando o fluxograma da Figura 20.
[166] Subsequentemente, o candidato de preditor de vetor de movimento mvpListLX[mvpIdxLX] correspondente ao índice mvpIdxLX do preditor de vetor de movimento decodificado e fornecido pela unidade de decodificação de bit strings 201 a partir da lista de candidatos de preditor de vetor de movimento mvpListLX é extraído como um preditor de vetor de movimento selecionado mvpLX na unidade de seleção de candidato de preditor de vetor de movimento 426 (etapa S204 da Figura 25).
[167] Subsequentemente, a unidade de adição de vetor de movimento 427 soma a diferença de vetor de movimento mvdLX de LX que é decodificada e fornecida pela unidade de decodificação de bit strings 201 e o preditor de vetor de movimento mvpLX de LX e calcula o vetor de movimento mvLX de LX como mvLX=mvpLX+mvdLX (etapa S205 da Figura 25). <Unidade de derivação de modo de preditor de vetor de movimento normal (AMVP normal): método de predição de vetor de movimento>
[168] A Figura 20 é um fluxograma mostrando um procedimento de processamento de um processo de derivação de modo de preditor de vetor de movimento normal com uma função comum à unidade de derivação de modo de preditor de vetor de movimento normal 301 do dispositivo de codificação de imagem e a unidade de derivação de modo de preditor de vetor de movimento normal 401 do dispositivo de decodificação de imagem de acordo com a modalidade da presente invenção.
[169] A unidade de derivação de modo de preditor de vetor de movimento normal 301 e a unidade de derivação de modo de preditor de vetor de movimento normal 401 incluem uma lista de candidatos de preditor de vetor de movimento mvpListLX. A lista de candidatos de preditor de vetor de movimento mvpListLX tem uma estrutura de lista e é provida com uma área de armazenamento onde um índice de preditor de vetor de movimento indicando a localização dentro da lista de candidatos de preditor de vetor de movimento e um candidato de preditor de vetor de movimento correspondente ao índice são armazenados como elementos. O número do índice de preditor de vetor de movimento começa em 0 e os candidatos de preditor de vetor de movimento são armazenados na área de armazenamento da lista de candidatos de preditor de vetor de movimento mvpListLX. Na presente modalidade, assume-se que pelo menos dois candidatos de preditor de vetor de movimento (informações de interpredição) podem ser registrados na lista de candidatos de preditor de vetor de movimento mvpListLX. Além disso, uma variável numCurrMvpCand indicando o número de candidatos de preditor de vetor de movimento registrados na lista de candidatos de preditor de vetor de movimento mvpListLX é definida como 0.
[170] As unidades de derivação de candidato de preditor de vetor de movimento espacial 321 e 421 derivam candidatos de preditor de vetor de movimento a partir de blocos vizinhos no lado esquerdo. Neste processo, um preditor de vetor de movimento mvLXA é derivado com referência às informações de interpredição do bloco vizinho no lado esquerdo (A0 ou A1 da Figura 11), isto é, um flag indicando se um candidato de preditor de vetor de movimento pode ou não ser usado, um vetor de movimento, um índice de referência e afins e o mvLXA derivado é adicionado à lista de candidatos de preditor de vetor de movimento mvpListLX (etapa S301 da Figura 20). Além disso, X é 0 no momento da predição L0 e X é 1 no momento da predição L1 (o mesmo é verdadeiro a seguir). Subsequentemente, as unidades de derivação de candidato de preditor de vetor de movimento espacial 321 e 421 derivam um preditor de vetor de movimento candidato de um bloco vizinho no lado superior. Neste processo, o preditor de vetor de movimento mvLXB é derivado com referência às informações de interpredição de um bloco vizinho no lado superior (B0, B1 ou B2 da Figura 11), isto é, um flag indicando se um candidato de preditor de vetor de movimento pode ou não ser usado, um vetor de movimento, um índice de referência e afins e mvLXB é adicionado à lista de candidatos de preditor de vetor de movimento mvpListLX se o mvLXA derivado não for igual ao mvLXB derivado (etapa S302 da Figura 20). O processamento das etapas S301 e S302 da Figura 20 é comum, exceto que as posições dos blocos vizinhos a serem referidos e o número de blocos vizinhos a serem referidos são diferentes e um flag availableFlagLXN indicando se um candidato de preditor de vetor de movimento do bloco de codificação pode ou não ser usado, um vetor de movimento mvLXN e um índice de referência refIdxN (N representa A ou B e o mesmo é verdadeiro a seguir) são derivados.
[171] Subsequentemente, as unidades de derivação de candidato de preditor de vetor de movimento temporal 322 e 422 derivam candidatos de preditor de vetor de movimento a partir de blocos em uma imagem cujo tempo é diferente daquele da imagem alvo atual. Neste processo, um flag availableFlagLXCol indicando se um candidato de preditor de vetor de movimento de um bloco de codificação de uma imagem de tempo diferente pode ou não ser usado, um vetor de movimento mvLXCol, um índice de referência refIdxCol e uma lista de referência listCol são derivados e mvLXCol é adicionado à lista de candidatos de preditor de vetor de movimento mvpListLX (etapa S303 da Figura 20).
[172] Além disso, assume-se que os processos das unidades de derivação de candidato de preditor de vetor de movimento temporal 322 e 422 podem ser omitidos em unidades de sequências (SPS), imagens (PPS) ou fatias.
[173] Subsequentemente, as unidades de derivação de candidato de preditor de vetor de movimento com base em histórico 323 e 423 adicionam os candidatos de preditor de vetor de movimento com base em histórico registrados na lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList à lista de candidatos de preditor de vetor de movimento mvpListLX (etapa S304 da Figura 20). Detalhes do procedimento de processamento de registro da etapa S304 serão descritos abaixo usando o fluxograma da Figura 29.
[174] Subsequentemente, as unidades de reabastecimento de candidato de preditor de vetor de movimento 325 e 425 adicionam candidatos de preditor de vetor de movimento com um valor predeterminado, tal como (0, 0) até que a lista de candidatos de preditor de vetor de movimento mvpListLX seja satisfeita (S305 da Figura 20). <Unidade de derivação de modo de mesclagem normal (mesclagem normal)>
[175] A unidade de derivação de modo de mesclagem normal 302 da 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 média 344, uma unidade de derivação de candidato de mesclagem com base em histórico 345, uma unidade de reabastecimento de candidato de mesclagem 346 e uma unidade de seleção de candidato de mesclagem 347.
[176] A unidade de derivação de modo de mesclagem normal 402 da 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 média 444, uma unidade de derivação de candidato de mesclagem com base em histórico 445, uma unidade de reabastecimento de candidato de mesclagem 446 e uma unidade de seleção de candidato de mesclagem 447.
[177] A Figura 21 é um fluxograma explicativo mostrando um procedimento de um processo de derivação de modo de mesclagem normal com uma função comum à unidade de derivação de modo de mesclagem normal 302 do dispositivo de codificação de imagem e a unidade de derivação de modo de mesclagem normal 402 do dispositivo de decodificação de imagem de acordo com a modalidade de a presente invenção.
[178] A seguir, vários processos serão descritos etapa a etapa Embora seja descrito um caso no qual um tipo de fatia slice_type é uma fatia B, a menos que especificado de outra maneira na descrição a seguir, a presente invenção também pode ser aplicada ao caso de uma fatia P. Entretanto, quando o tipo de fatia slice_type é uma fatia P, porque apenas a predição L0 (Pred_L0) é provida como o modo de interpredição e predição L1 (Pred_L1) e bipredição (Pred_BI) estão ausentes, um processo relacionado a L1 pode ser omitido.
[179] A unidade de derivação de modo de mesclagem normal 302 e a unidade de derivação de modo de mesclagem normal 402 têm uma lista de candidatos de mesclagem mergeCandList. A lista de candidatos de mesclagem mergeCandList tem uma estrutura de lista e é provida com um índice de mesclagem indicando o local dentro da lista de candidatos de mesclagem e uma área de armazenamento no qual os candidatos de mesclagem correspondentes ao índice são armazenados como elementos. O número do índice de mesclagem começa em 0 e os candidatos de mesclagem são armazenados na área de armazenamento da lista de candidatos de mesclagem mergeCandList. No processo subsequente, o candidato de mesclagem do índice de mesclagem i registrado na lista de candidatos de mesclagem mergeCandList é representado por mergeCandList[i]. Na presente modalidade, assume-se que pelo menos seis candidatos de mesclagem (informações de interpredição) podem ser registrados na lista de candidatos de mesclagem mergeCandList. Além disso, uma variável numCurrMergeCand indicando o número de candidatos de mesclagem registrados na lista de candidatos de mesclagem mergeCandList é definida como
0.
[180] Uma unidade de derivação de candidato de mesclagem espacial 341 e uma unidade de derivação de candidato de mesclagem espacial 441 derivam candidatos de mesclagem espacial a partir de blocos (B1, A1, B0, A0 e B2 da Figura 11) vizinhos a um bloco alvo na ordem de B1, A1, B0 , A0 e B2 a partir das informações de codificação armazenada na memória de armazenamento de informações de codificação 111 do dispositivo decodificação de imagem ou a memória de armazenamento de informações de codificação 205 do dispositivo de decodificação de imagem e registrar os candidatos de mesclagem espacial derivados na lista de candidatos de mesclagem mergeCandList (etapa S401 da Figura 21). Na presente divulgação, N indica qualquer um de B1, A1, B0, A0, B2 e o candidato de mesclagem temporal Col é definido. Um flag availableFlagN indicando se as informações de interpredição do bloco N estão disponíveis ou não como um 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, um flag de predição L0 predFlagL0N indicando se a predição L0 deve ser desempenhada, um flag de predição L1 predFlagL1N indicando se a predição L1 deve ou não ser desempenhada, um vetor de movimento mvL0N de L0 e um vetor de movimento mvL1N de L1 são derivados. Entretanto, na presente modalidade, visto que o candidato de mesclagem é derivado sem referência às informações de interpredição de um bloco incluído em um bloco de codificação que serve como um alvo, um candidato de mesclagem espacial usando as informações de interpredição do bloco incluído no bloco de codificação alvo não é derivado.
[181] 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 candidatos de mesclagem temporal a partir de imagens de tempos diferentes e registram os candidatos de mesclagem temporal derivados na lista de candidatos de mesclagem mergeCandList (etapa S402 da Figura 21). Um flag availableFlagCol indicando se o candidato de mesclagem temporal pode ou não ser usado, um flag de predição L0 predFlagL0Col indicando se a predição L0 do candidato de mesclagem temporal é ou não desempenhada, um flag de predição L1 predFlagL1Col indicando se a predição L1 é ou não desempenhada, um vetor de movimento mvL0Col de L0 e um vetor de movimento mvL1Col de L1 são derivados.
[182] Além disso, assume-se que os processos da unidade de derivação de candidato de mesclagem temporal 342 e a unidade de derivação de candidato de mesclagem temporal 442 podem ser omitidos em unidades de sequências (SPS), imagens (PPS) ou fatias.
[183] Subsequentemente, a unidade de derivação de candidato de mesclagem com base em histórico 345 e a unidade de derivação de candidato de mesclagem com base em histórico 445 registram candidatos de preditor de vetor de movimento com base em histórico registrados na lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList na lista de candidatos de mesclagem mergeCandList (etapa S403 da Figura 21).
[184] Além disso, quando o número de candidatos de mesclagem numCurrMergeCand registrados na lista de candidatos de mesclagem mergeCandList for menor que o número máximo de candidatos MaxNumMergeCand, o número máximo de candidatos MaxNumMergeCand é definido como um limite superior do número de candidatos de mesclagem numCurrMergeCand registrados no lista de candidatos de mesclagem mergeCandList e os candidatos de mesclagem com base em histórico são derivados e registrados na lista de candidatos de mesclagem mergeCandList.
[185] Subsequentemente, a unidade de derivação de candidato de mesclagem média 344 e a unidade de derivação de candidato de mesclagem média 444 derivam um candidato de mesclagem médio da lista de candidatos de mesclagem mergeCandList e adiciona o candidato de mesclagem médio derivado à lista de candidatos de mesclagem mergeCandList (etapa S404 da Figura 21).
[186] Além disso, quando o número de candidatos de mesclagem numCurrMergeCand registrados dentro da lista de candidatos de mesclagem mergeCandList for menor que o número máximo de candidatos MaxNumMergeCand, o número máximo de candidatos MaxNumMergeCand é definido como um limite superior do número de candidatos de mesclagem numCurrMergeCand registrados no lista de candidatos de mesclagem mergeCandList e os candidatos de mesclagem médios são derivados e registrados na lista de candidatos de mesclagem mergeCandList.
[187] Na presente divulgação, o candidato de mesclagem médio é um novo candidato de mesclagem tendo um vetor de movimento obtido pela média de vetores de movimento de um primeiro candidato de mesclagem e um segundo candidato de mesclagem registrado na lista de candidatos de mesclagem mergeCandList para cada uma das predições L0 e L1.
[188] Subsequentemente, na unidade de reabastecimento do candidato de mesclagem 346 e na unidade de reabastecimento do candidato de mesclagem 446, quando o número de candidatos de mesclagem numCurrMergeCand registrados na lista de candidatos de mesclagem mergeCandList for menor do que o número máximo de candidatos de mesclagem MaxNumMergeCand, o número máximo de candidatos de mesclagem MaxNumMergeCand é definido como um limite superior do número de candidatos de mesclagem numCurrMergeCand registrados na lista de candidatos de mesclagem mergeCandList e um candidato de mesclagem adicional é derivado e registrado na lista de candidatos de mesclagem mergeCandList (etapa S405 da Figura 21). Na fatia P, um candidato de mesclagem para o qual um vetor de movimento tem um valor de (0, 0) e o modo de predição é predição L0 (Pred_L0) é adicionado usando o número máximo de candidatos de mesclagem MaxNumMergeCand como o limite superior. Na fatia B, um candidato de mesclagem para o qual um vetor de movimento tem um valor de (0, 0) e o modo de predição é bipredição (Pred_BI) é adicionado. Um índice de referência quando o candidato de mesclagem é adicionado é diferente do índice de referência adicionado anteriormente.
[189] Subsequentemente, a unidade de seleção de candidato de mesclagem 347 e a unidade de seleção de candidato de mesclagem 447 selecionam candidatos de mesclagem a partir dos candidatos de mesclagem registrados dentro da lista de candidatos de mesclagem mergeCandList. A unidade de seleção de candidato de mesclagem 347 do lado da codificação seleciona um candidato de mesclagem calculando uma quantidade de código e uma quantidade de distorção, e fornece um índice de mesclagem indicando o candidato de mesclagem selecionado e informações de interpredição do candidato de mesclagem à unidade de predição de movimento compensado 306 via unidade de determinação de modo de interpredição 305. Por outro lado, a unidade de seleção de candidato de mesclagem 447 do lado de decodificação seleciona um candidato de mesclagem com base em um índice de mesclagem decodificado e fornece o candidato de mesclagem selecionado à unidade de predição de movimento compensado 406. <Derivação de modo de preditor de vetor de movimento com base em sub- bloco>
[190] A derivação do modo de preditor de vetor de movimento com base em sub-blocos será descrita.
[191] A Figura 38 é um diagrama em blocos da unidade de derivação de modo de preditor de vetor de movimento com base em sub-bloco 303 no dispositivo de codificação do presente pedido.
[192] Em primeiro lugar, uma unidade de derivação de candidato de preditor de vetor de movimento de herança afim 361 deriva um candidato de preditor de vetor de movimento de herança afim. Os detalhes da derivação de candidato de preditor de vetor de movimento de herança afim serão descritos abaixo.
[193] Subsequentemente, uma unidade de derivação de candidato de preditor de vetor de movimento de construção afim 362 deriva um candidato de preditor de vetor de movimento de construção afim. Os detalhes da derivação de candidato de preditor de vetor de movimento de construção afim serão descritos abaixo.
[194] Subsequentemente, uma unidade de derivação de candidato de preditor de vetor de movimento afim idêntica 363 deriva um candidato de preditor de vetor de movimento afim idêntico. Detalhes da derivação de candidato de preditor de vetor de movimento afim idêntica serão descritos abaixo.
[195] A unidade de detecção de vetor de movimento com base em sub- bloco 366 detecta um vetor de movimento com base em sub-bloco adequado para o modo de preditor de vetor de movimento com base em sub-bloco e fornece o vetor detectado para uma unidade de seleção de candidato de preditor de vetor de movimento com base em sub-bloco 367 e uma unidade de cálculo de diferença 368.
[196] A unidade de seleção do candidato de preditor de vetor de movimento com base em sub-bloco 367 seleciona um candidato de preditor de vetor de movimento com base em sub-bloco entre os candidatos de preditor de vetor de movimento com base em sub-bloco derivados pela unidade de derivação de candidato de preditor de vetor de movimento de herança afim 361, a unidade de derivação de candidato de preditor de vetor de movimento de construção afim 362, e a unidade de derivação de candidato de preditor de vetor de movimento afim idêntica 363 com base no vetor de movimento fornecido a partir da unidade de detecção de vetor de movimento com base em sub-bloco 366 e fornece informações sobre o preditor de vetor de movimento com base em sub-bloco selecionado candidato de unidade de determinação de modo de interpredição 305 e a unidade de cálculo de diferença 368.
[197] A unidade de cálculo de diferença 368 fornece uma diferença de preditor de vetor de movimento obtida subtraindo o preditor de vetor de movimento com base em sub-bloco selecionado pela unidade de seleção de candidato de preditor de vetor de movimento com base em sub-bloco 367 do vetor de movimento fornecido a partir da unidade de detecção de vetor de movimento com base em sub-bloco 366 à unidade de determinação de modo de interpredição 305.
[198] A Figura 39 é um diagrama em blocos da unidade de derivação de modo de preditor de vetor de movimento com base em sub-bloco 403 no dispositivo de decodificação do presente pedido.
[199] Em primeiro lugar, uma unidade de derivação de candidato de preditor de vetor de movimento de herança afim 461 deriva um candidato de preditor de vetor de movimento de herança afim. Um processo da unidade de derivação de candidato de preditor de vetor de movimento de herança afim 461 é o mesmo que o processo da unidade de derivação de candidato de preditor de vetor de movimento de herança afim 361 no dispositivo de codificação do presente pedido.
[200] Subsequentemente, uma unidade de derivação de candidato de preditor de vetor de movimento de construção afim 462 deriva um candidato de preditor de vetor de movimento de construção afim. Um processo da unidade de derivação de candidato de preditor de vetor de movimento de construção afim 462 é o mesmo que o processo da unidade de derivação de candidato de preditor de vetor de movimento de construção afim 362 no dispositivo de codificação do presente pedido.
[201] Subsequentemente, uma unidade de derivação de candidato de preditor de vetor de movimento afim idêntica 463 deriva um candidato de preditor de vetor de movimento afim idêntico. Um processo da unidade de derivação de candidato de preditor de vetor de movimento afim idêntico 463 é o mesmo que o processamento da unidade de derivação de candidato de preditor de vetor de movimento afim idêntico 363 no dispositivo de codificação do presente pedido.
[202] Uma unidade de seleção de candidato de preditor de vetor de movimento com base em sub-bloco 467 seleciona um candidato de preditor de vetor de movimento com base em sub-bloco dentre os candidatos de preditor de vetor de movimento com base em sub-bloco derivados pela unidade de derivação de candidato de preditor de vetor de movimento de herança afim 461,
a unidade de derivação de candidato de preditor de vetor de movimento de construção afim 462, e a unidade de derivação de candidato de preditor de vetor de movimento afim idêntica 463 com base no índice preditor de vetor de movimento, que é transmitido a partir do dispositivo de codificação e é decodificado, e fornece informações sobre o candidato preditor de vetor de movimento com base em sub-bloco selecionado para o unidade de predição com compensação de movimento 406 e uma unidade de operação de adição 467.
[203] A unidade de operação de adição 467 fornece um vetor de movimento gerado pela adição do vetor de movimento diferencial, que é transmitido a partir do dispositivo de codificação e é decodificado, para o preditor de vetor de movimento com base em sub-bloco selecionado pela unidade de seleção de candidato de preditor de vetor de movimento com base em sub-bloco 466 à unidade de predição com compensação de movimento 406. <Derivação de candidato de preditor de vetor de movimento de herança afim>
[204] A unidade de derivação de candidato de preditor de vetor de movimento de herança afim 361 será descrita. A unidade de derivação de candidato de preditor de vetor de movimento de herança afim 361 é semelhante à unidade de derivação de candidato de preditor de vetor de movimento de herança afim 461.
[205] Um candidato de preditor de vetor de movimento de herança afim herda as informações do vetor de movimento de um ponto de controle afim. A Figura 42 é um diagrama explicativo mostrando derivação de candidato de preditor de vetor de movimento de construção afim.
[206] O candidato de preditor de vetor de movimento de herança afim pode ser obtido procurando por vetores de movimento de pontos de controle afim de blocos codificados/decodificados vizinhos em um domínio do espaço.
[207] Especificamente, um processo de busca é desempenhado em um máximo de um modo afim de cada um dos blocos (A0 e A1) adjacente a um lado esquerdo a um bloco alvo de codificação/decodificação e blocos (B0, B1 e B2) adjacentes a um lado superior do bloco alvo de codificação/decodificação e um resultado de busca é definido como um preditor de vetor de movimento de herança afim.
[208] A Figura 46 é um fluxograma de derivação de candidato de preditor de vetor de movimento de herança afim.
[209] Em primeiro lugar, os blocos (A0 e A1) adjacentes ao lado esquerdo do bloco alvo de codificação/decodificação são definidos como um grupo esquerdo (S3101) e é determinado se um bloco incluindo A0 é um bloco usando garantia afim (no modo afim) (S3102). Quando A0 está no modo afim (S3102: SIM), um modelo afim usado por A0 é adquirido (S3103) e o processo se move para o processamento de blocos adjacentes ao lado superior do bloco alvo de codificação/decodificação. Quando A0 não está no modo afim (S3102: NÃO), um alvo da derivação de candidato de preditor de vetor de movimento de herança afim é definido como A0-> A1 e a na aquisição do modo afim de um bloco incluindo A1 é tentada.
[210] Subsequentemente, os blocos (B0, B1 e B2) adjacentes ao lado superior do bloco alvo de codificação/decodificação são definidos como um grupo superior (S3104) e é determinado se um bloco incluindo B0 está ou não no modo afim (S3105). Quando B0 está no modo afim (S3105: SIM), um modelo afim usado por B0 é adquirido (S3106) e o processo termina. Quando B0 não está no modo afim (S3105: NÃO), um alvo da derivação de candidato de preditor de vetor de movimento de herança afim é definido como B0-> B1 e a na presente divulgação do modo afim de um bloco incluindo B1 é tentada. Adicionalmente, quando B1 não está no modo afim (S3105: NÃO), o alvo da derivação de candidato de preditor de vetor de movimento de herança afim é definido como B1-> B2 e a na presente divulgação do modo afim a partir de um bloco incluindo B2 é tentada.
[211] Desta forma, os grupos são divididos em bloco esquerdo e bloco superior, o modelo afim é pesquisado na ordem dos blocos inferior esquerdo para superior esquerdo a respeito ao bloco esquerdo e o modelo afim é pesquisado na ordem dos blocos superior direito para superior esquerdo a respeito ao bloco esquerdo, de modo que seja possível adquirir dois modelos afins que são tão diferentes quanto possível e é possível derivar um candidato de preditor de vetor de movimento afim em que um dos preditores de vetor de movimento afim tem uma menor diferença de vetor de movimento. <Derivação do candidato de preditor de vetor de movimento de construção afim>
[212] A unidade de derivação de candidato de preditor de vetor de movimento de construção afim 362 será descrita. A unidade de derivação de candidato de preditor de vetor de movimento de construção afim 362 é semelhante à unidade de derivação de candidato de preditor de vetor de movimento de construção afim 462.
[213] O candidato de preditor de vetor de movimento de construção afim constrói as informações do vetor de movimento do ponto de controle afim a partir das informações de movimento de blocos vizinhos no domínio do espaço.
[214] A Figura 43 é um diagrama explicativo que mostra a derivação de candidato de preditor de vetor de movimento de construção afim.
[215] Candidatos de preditor de vetor de movimento de construção afim podem ser obtidos construindo um novo modelo afim combinando vetores de movimento de blocos vizinhos codificados/decodificados no domínio do espaço.
[216] Especificamente, um vetor de movimento de um ponto de controle afim superior esquerdo CP0 é derivado a partir dos blocos (B2, B3 e A2) adjacentes a um lado esquerdo superior do bloco alvo de codificação/decodificação, um vetor de movimento de um ponto de controle afim superior direito CP1 é derivado a partir dos blocos (B1 e B0) adjacentes a um lado superior direito do bloco alvo de codificação/decodificação, e um vetor de movimento de um ponto de controle afim inferior esquerdo CP2 é derivado a partir dos blocos (A1 e A0) adjacentes a um lado esquerdo inferior do bloco alvo de codificação/decodificação.
[217] A Figura 47 é um fluxograma de derivação de candidato de preditor de vetor de movimento de construção afim.
[218] Primeiro, o ponto de controle superior esquerdo CP0, o ponto de controle superior direito CP1 e o ponto de controle afim inferior esquerdo CP2 são derivados (S3201). O ponto de controle afim superior esquerdo CP0 é calculado ao buscar um bloco de referência tendo a mesma imagem de referência que o bloco alvo de codificação/decodificação na ordem de prioridade dos blocos de referência B2, B3 e A2. O ponto de controle afim superior direito CP1 é calculado ao buscar um bloco de referência tendo a mesma imagem de referência que o bloco alvo de codificação/decodificação na ordem de prioridade dos blocos de referência de B1 e B0. O ponto de controle afim inferior esquerdo CP2 é calculado ao buscar por um bloco de referência tendo a mesma imagem de referência que o bloco alvo de codificação/decodificação na ordem de prioridade dos blocos de referência A1 e A0.
[219] Quando um modo de três pontos de controle afim é selecionado como o preditor de vetor de movimento de construção afim (S3202: SIM), é determinado se três pontos de controle afim (CP0, CP1 e CP2) foram derivados ou não (S3203). Quando três pontos de controle afim (CP0, CP1 e CP2) foram todos derivados (S3203: SIM), um modelo afim usando os três pontos de controle afim (CP0, CP1 e CP2) é definido como um preditor de vetor de movimento de construção afim (S3204). Quando um modo dos dois pontos de controle afim é selecionado sem selecionar o modo dos três pontos de controle afim (S3202: NÃO), é determinado se os dois pontos de controle afim (CP0 e CP1) foram todos derivados (S3205). Quando os dois pontos de controle afim (CP0 e CP1) foram todos derivados (S3205: SIM), um modelo afim usando os dois pontos de controle afim (CP0 e CP1) é definido como um preditor de vetor de movimento de construção afim (S3206). <Derivação de candidato de preditor de vetor de movimento afim idêntica>
[220] A unidade de derivação de candidato de preditor de vetor de movimento afim idêntica 363 será descrita. A unidade de derivação de candidato de preditor de vetor de movimento afim idêntica 363 é semelhante à unidade de derivação de candidato de preditor de vetor de movimento afim idêntica 463.
[221] O candidato de preditor de vetor de movimento afim idêntico pode ser obtido derivando o mesmo vetor de movimento nos pontos de controle afim.
[222] Especificamente, o candidato de preditor de vetor de movimento afim idêntico pode ser obtido ao derivar informações de ponto de controle afim e definir todos os pontos de controle afim para serem os mesmos que qualquer um dos pontos de controle afim CP0 a CP2 como na unidade de derivação de candidato de preditor de vetor de movimento de construção afim 362/462. Além disso, o candidato de preditor de vetor de movimento afim idêntico pode ser obtido ao definir um vetor de movimento temporal derivado como no modo de preditor de vetor de movimento normal em todos os pontos de controle afim. <Derivação do modo de mesclagem com base em sub-blocos>
[223] A derivação do modo de mesclagem com base em sub-blocos será descrita.
[224] A Figura 40 é um diagrama de blocos da unidade de derivação de modo de mesclagem com base em sub-bloco 304 no dispositivo de codificação do presente pedido. A unidade de derivação de modo de mesclagem com base em sub-bloco 304 inclui um sub-bloco de lista de candidatos de mesclagem com base em subblockMergeCandList. O sub-bloco da lista de candidatos de mesclagem com base em subblockMergeCandList é semelhante à lista de candidatos de mesclagem mergeCandList na unidade de derivação de modo de mesclagem normal 302, exceto que as listas de candidatos diferem em unidades de sub-blocos.
[225] Primeiro, uma unidade de derivação de candidato de mesclagem temporal com base em sub-bloco 381 deriva um candidato de mesclagem temporal com base em sub-bloco. Os detalhes da derivação de candidato de mesclagem temporal com base em sub-bloco serão descritos abaixo.
[226] Subsequentemente, uma unidade de derivação de candidato de mesclagem de herança afim 382 deriva um candidato de mesclagem de herança afim. Os detalhes da derivação de candidato de mesclagem de herança afim serão descritos abaixo.
[227] Subsequentemente, uma unidade de derivação de candidato de mesclagem de construção afim 383 deriva um candidato de mesclagem de construção afim. Os detalhes da derivação de candidato de mesclagem afim serão descritos abaixo.
[228] Subsequentemente, uma unidade de derivação de candidato de mesclagem de fixação afim 384 deriva um candidato de mesclagem de fixação afim. Os detalhes da derivação de candidato de mesclagem de fixação afim serão descritos abaixo.
[229] Uma unidade de seleção de candidato de mesclagem com base em sub-bloco 386 seleciona um candidato de mesclagem com base em sub-bloco dentre os candidatos de mesclagem com base em sub-bloco derivados pela unidade de derivação de candidato de mesclagem temporal com base em sub- bloco 381, a unidade de derivação de candidato de mesclagem de herança afim 382, o candidato de mesclagem de construção afim unidade de derivação 383 e a unidade de derivação de candidato de mesclagem de fixação afim 384 e fornece informações sobre o candidato de mesclagem com base em sub-bloco selecionado para a unidade de determinação de modo de interpredição 305.
[230] A Figura 41 é um diagrama de blocos da unidade de derivação de modo de mesclagem com base em sub-bloco 404 no dispositivo de decodificação do presente pedido. A unidade de derivação de modo de mesclagem com base em sub-bloco 404 inclui um sub-bloco de lista de candidatos de mesclagem com base em subblockMergeCandList. Este sub-bloco de lista de candidatos de mesclagem com base em sub-bloco é o mesmo que a unidade 304 de derivação de modo de mesclagem com base em sub-bloco.
[231] Primeiro, uma unidade de derivação de candidato de mesclagem temporal com base em sub-bloco 481 deriva um candidato de mesclagem temporal com base em sub-bloco. Um processo da unidade de derivação de candidato de mesclagem temporal com base em sub-bloco 481 é o mesmo que o processo da unidade de derivação de candidato de mesclagem temporal com base em sub-bloco 381.
[232] Subsequentemente, uma unidade de derivação de candidato de mesclagem de herança afim 482 deriva um candidato de mesclagem de herança afim. Um processo da unidade de derivação de candidato de mesclagem de herança afim 482 é o mesmo que o processo da unidade de derivação de candidato de mesclagem de herança afim 382.
[233] Subsequentemente, uma unidade de derivação de candidato de mesclagem de construção afim 483 deriva um candidato de mesclagem de construção afim. Um processo da unidade de derivação de candidato de mesclagem de construção afim 483 é o mesmo que o processo de unidade de derivação de candidato de mesclagem de construção afim 383.
[234] Subsequentemente, uma unidade de derivação de candidato de mesclagem de fixação afim 485 deriva um candidato de mesclagem de fixação afim. Um processo da unidade de derivação de candidato de mesclagem de fixação afim 485 é o mesmo que o processo da unidade de derivação de candidato de mesclagem de fixação afim 485.
[235] Uma unidade de seleção de candidato de mesclagem com base em sub-bloco 486 seleciona um candidato de mesclagem com base em sub-bloco dentre os candidatos de mesclagem com base em sub-bloco derivados pela unidade de derivação de candidato de mesclagem temporal com base em sub- bloco 481, a unidade de derivação de candidato de mesclagem de herança afim 482, a unidade de derivação de candidato de construção afim 483 e uma unidade de derivação de candidato de mesclagem de fixação afim 484 com base em um índice, que é transmitido a partir do dispositivo de codificação e é decodificado, e fornece informações sobre o candidato de mesclagem com base em sub-bloco selecionado para a unidade de predição de movimento compensado 406. <Derivação de candidato de mesclagem temporal com base em sub-bloco>
[236] Uma operação da unidade de derivação de candidato de mesclagem temporal com base em sub-bloco 381 será descrita abaixo. <Derivação de candidato de mesclagem de herança afim>
[237] A unidade de derivação de candidato de mesclagem de herança afim 382 será descrita. A unidade de derivação de candidato de mesclagem de herança afim 382 é semelhante à unidade de derivação de candidato de mesclagem de herança afim 482.
[238] O candidato de mesclagem de herança afim herda um modelo afim de pontos de controle afim de modelos afins a partir de blocos vizinhos no domínio do espaço. O modelo afim é determinado por tamanhos de blocos vizinhos no domínio do espaço e informações de movimento dos pontos de controle afim.
[239] A Figura 44 é um diagrama explicativo que mostra a derivação de candidato de mesclagem de herança afim. Um candidato de modo de mesclagem de herança de mesclagem afim pode ser derivado procurando por vetores de movimento de pontos de controle afim de blocos codificados/decodificados vizinhos no domínio do espaço como na derivação do preditor de vetor de movimento de herança afim.
[240] Especificamente, um máximo de um modo afim é procurado a partir de cada um dos blocos (A0 e A1) adjacente a um lado esquerdo a um bloco alvo de codificação/decodificação e blocos (B0, B1 e B2) adjacentes a um lado superior da codificação/decodificando bloco alvo e é usado para um modo de mesclagem afim.
[241] A Figura 48 é um fluxograma de derivação de candidato de mesclagem de herança afim.
[242] Em primeiro lugar, os blocos (A0 e A1) adjacentes ao lado esquerdo do bloco alvo de codificação/decodificação são definidos como um grupo esquerdo (S3301) e é determinado se um bloco incluindo A0 está ou não no modo afim (S3302). Quando A0 está no modo afim (S3102: SIM), o modelo afim usado por A0 é adquirido (S3303) e o processo se move para o processamento de blocos adjacentes ao lado superior do bloco alvo de codificação/decodificação. Quando A0 não está no modo afim (S3302: NÃO), um alvo da derivação de candidato de mesclagem de herança afim é definido como A0-> A1 e a na presente divulgação do modo afim a partir de um bloco incluindo A1 é tentada.
[243] Subsequentemente, os blocos (B0, B1 e B2) adjacentes ao lado superior do bloco alvo de codificação/decodificação são definidos como um grupo superior (S3304) e é determinado se um bloco incluindo B0 está ou não no modo afim (S3305). Quando B0 está no modo afim (S3305: SIM), o modelo afim usado por B0 é adquirido (S3306) e o processo termina. Quando B0 não está no modo afim (S3305: NÃO), um alvo da derivação de candidato de mesclagem de herança afim é definido como B0-> B1 e a na presente divulgação do modo afim a partir de um bloco incluindo B1 é tentada. Adicionalmente, quando B1 não está no modo afim (S3305: NÃO), o alvo da derivação de candidato de mesclagem de herança afim é definido como B1-> B2 e a na presente divulgação do modo afim a partir de um bloco incluindo B2 é tentada. <Derivação de candidato de mesclagem de construção afim>
[244] A unidade de derivação de candidato de mesclagem de construção afim 383 será descrita. A unidade de derivação de candidato de mesclagem de construção afim 383 é semelhante à unidade de derivação de candidato de mesclagem de construção afim 483.
[245] A Figura 45 é um diagrama explicativo que mostra a derivação de candidato de mesclagem de construção afim. Um candidato de mesclagem de construção afim constrói um modelo afim de pontos de controle afim a partir de informações de movimento de blocos vizinhos no domínio do espaço e um bloco de codificação temporal.
[246] Especificamente, um vetor de movimento de um ponto de controle afim superior esquerdo CP0 é derivado a partir dos blocos (B2, B3 e A2) adjacentes a um lado esquerdo superior do bloco alvo de codificação/decodificação, um vetor de movimento de um ponto de controle afim superior direito CP1 é derivado a partir dos blocos (B1 e B0) adjacentes a um lado superior direito do bloco alvo de codificação/decodificação, um vetor de movimento de um ponto de controle afim inferior esquerdo CP2 é derivado a partir dos blocos (A1 e A0) adjacentes a um inferior lado esquerdo do bloco alvo de codificação/decodificação, e um vetor de movimento de um ponto de controle afim inferior direito CP3 é derivado a partir do bloco de codificação temporal (T0) adjacente a um lado direito inferior do bloco alvo de codificação/decisão.
[247] A Figura 49 é um fluxograma de derivação de candidato de mesclagem de construção afim.
[248] Primeiro, o ponto de controle afim superior esquerdo CP0, o ponto de controle afim superior direito CP1, o ponto de controle afim inferior esquerdo CP2 e o ponto de controle afim inferior direito CP3 são derivados (S3401). O ponto de controle afim superior esquerdo CP0 é calculado procurando por blocos com informações de movimento na ordem de prioridade dos blocos B2, B3 e A2. O ponto de controle afim superior direito CP1 é calculado procurando por blocos com informações de movimento na ordem de prioridade dos blocos B1 e B0. O ponto de controle afim inferior esquerdo CP2 é calculado procurando por blocos com informações de movimento na ordem de prioridade dos blocos A1 e A0. O ponto de controle afim inferior direito CP3 é calculado procurando por informações de movimento de blocos de tempo.
[249] Subsequentemente, é determinado se um modelo afim de três pontos de controle afim pode ou não ser construído pelo ponto de controle afim superior esquerdo derivado CP0, o ponto de controle afim superior direito derivado CP1 e o ponto de controle afino inferior esquerdo derivado CP2 (S3402). Quando o modelo afim pode ser construído (S3402: SIM), o modelo afim dos três pontos de controle afim com base no ponto de controle afim superior esquerdo CP0, no ponto de controle afim superior direito CP1 e no ponto de controle afino inferior esquerdo CP2 é definido como um candidato de mesclagem afim (S3403).
[250] Subsequentemente, é determinado se um modelo afim de três pontos de controle afim pode ou não ser construído pelo ponto de controle afim superior esquerdo derivado CP0, o ponto de controle afim superior direito derivado CP1 e o ponto de controle afim inferior direito derivado CP3 (S3404). Quando o modo afim pode ser construído (S3404: SIM), o modelo afim dos três pontos de controle afim com base no ponto de controle afim superior esquerdo CP0, no ponto de controle afim superior direito CP1 e no ponto de controle afino inferior direito CP3 é definido como um candidato de mesclagem afim (S3405).
[251] Subsequentemente, é determinado se um modelo afim de três pontos de controle afim pode ou não ser construído pelo ponto de controle afim superior esquerdo derivado CP0, o ponto de controle afim inferior esquerdo derivado CP2 e o ponto de controle afim inferior direito derivado CP3 (S3406). Quando o modelo afim pode ser construído (S3406: SIM), o modelo afim dos três pontos de controle afim com base no ponto de controle afim superior esquerdo CP0, no ponto de controle afim inferior esquerdo CP2 e no ponto de controle afino inferior direito CP3 é definido como um candidato de mesclagem afim (S3407).
[252] Subsequentemente, é determinado se um modelo afim de dois pontos de controle afim pode ou não ser construído pelo ponto de controle afim superior esquerdo derivado CP0 e o ponto de controle afim superior direito derivado CP1 (S3408). Quando o modelo afim pode ser construído (S3408: SIM), o modelo afim dos dois pontos de controle afim com base no ponto de controle afim superior esquerdo CP0 e no ponto de controle afim superior direito CP1 é definido como um candidato de mesclagem afim (S3409).
[253] Subsequentemente, é determinado se um modelo afim de dois pontos de controle afim pode ou não ser construído pelo ponto de controle afim superior esquerdo derivado CP0 e o ponto de controle afim inferior esquerdo derivado CP2 (S3410). Quando o modelo afim pode ser construído (S3410: SIM), o modelo afim dos dois pontos de controle afim com base no ponto de controle afim superior esquerdo CP0 e no ponto de controle afim inferior esquerdo CP2 é definido como um candidato de mesclagem afim (S3411).
[254] Na presente divulgação, é determinado se um modelo afim deve ou não ser construído sob as seguintes condições.
1. As imagens de referência de todos os pontos de controle afim são as mesmas. (Uma transformada afim é possível)
2. Um vetor de movimento diferente é provido em pelo menos um ponto de controle afim. (A expressão por uma mudança paralela é difícil)
[255] Como descrito acima, na primeira modalidade, o ponto de controle afim superior esquerdo CP0 está incluso a respeito a todos os candidatos de mesclagem de construção afim. No ponto de controle afim superior esquerdo CP0, a possibilidade de que haja um bloco codificado/decodificado é mais alta, isto é, a possibilidade de que haja informações de movimento é mais alta, quando uma imagem é processada em ordem de varredura raster a partir da esquerda para a direita e a partir de cima para baixo.
[256] Ao derivar o candidato de mesclagem de construção afim usando o ponto de controle afim superior esquerdo CP0, uma quantidade de processamento para determinar se as imagens de referência são ou não as mesmas quando os pontos de controle afim são combinados é reduzida. Além disso, na derivação dos pontos de controle afim do ponto de controle afim superior direito CP1, do ponto de controle afim inferior esquerdo CP2 e do ponto de controle afim inferior direito CP3 (S3401), é possível pesquisar preferencialmente por uma imagem de referência que é igual ao do ponto de controle afim superior esquerdo CP0. Neste caso, os candidatos de mesclagem de construção afim com a mesma imagem de referência podem ser derivados,
os candidatos de mesclagem de construção afim válidos com a mesma imagem de referência podem ser derivados e os candidatos de mesclagem afim com alta eficiência de codificação podem ser derivados.
[257] Na presente divulgação, a determinação da imagem de referência com base no ponto de controle afim superior esquerdo CP0 será descrita em mais detalhes.
[258] A Figura 62 é um diagrama que mostra alvos comparativos de informações de movimento quando um candidato de mesclagem de construção afim é derivado combinando os pontos de controle afim derivados na derivação de candidato de mesclagem de construção afim.
[259] A Figura 62 (A) é um diagrama de um caso em que um modelo afim de três pontos de controle afim é construído pelo ponto de controle afim superior esquerdo CP0, o ponto de controle afim superior direito CP1 e o ponto de controle afim inferior esquerdo CP2. Neste caso, as informações de movimento do ponto de controle afim superior esquerdo CP0 e do ponto de controle afim superior direito CP1 são comparadas e uma comparação é feita a respeito às imagens de referência do ponto de controle afim superior esquerdo CP0 e do ponto de controle afim superior direito CP1 são os mesmos e se os vetores de movimento do ponto de controle afim superior esquerdo CP0 e do ponto de controle afim superior direito CP1 são diferentes. Da mesma forma, as informações de movimento do ponto de controle afim superior esquerdo CP0 e do ponto de controle afim inferior esquerdo CP2 são comparadas.
[260] A Figura 62 (B) é um diagrama de um caso no qual um modelo afim de três pontos de controle afim é construído pelo ponto de controle afim superior esquerdo CP0, o ponto de controle afim inferior esquerdo CP2 e o ponto de controle afim inferior direito CP3. Neste caso, as informações de movimento do ponto de controle afim superior esquerdo CP0 e do ponto de controle afim inferior esquerdo CP2 são comparadas e as informações de movimento do ponto de controle afim superior esquerdo CP0 e do ponto de controle afim inferior direito CP3 são comparadas.
[261] A Figura 62 (C) é um diagrama de um caso no qual um modelo afim de três pontos de controle afim é construído pelo ponto de controle afim superior esquerdo CP0, o ponto de controle afim superior direito CP1 e o ponto de controle afim inferior direito CP3. Neste caso, as informações de movimento do ponto de controle afim superior esquerdo CP0 e do ponto de controle afim superior direito CP1 são comparadas e as informações de movimento do ponto de controle afim superior esquerdo CP0 e do ponto de controle afim inferior direito CP3 são comparadas.
[262] A Figura 62 (D) é um diagrama de um caso no qual um modelo afim de dois pontos de controle afim é construído pelo ponto de controle afim superior esquerdo CP0 e o ponto de controle afim superior direito CP1. Nesse caso, as informações de movimento do ponto de controle afim superior esquerdo CP0 e do ponto de controle afim superior direito CP1 são comparadas.
[263] A Figura 62 (E) é um diagrama de um caso no qual um modelo afim de dois pontos de controle afim é construído pelo ponto de controle afim superior esquerdo CP0 e o ponto de controle afim inferior esquerdo CP2. Nesse caso, as informações de movimento do ponto de controle afim superior esquerdo CP0 e do ponto de controle afim inferior esquerdo CP2 são comparadas.
[264] Desta forma, em todas as combinações de derivação de candidato de mesclagem de construção afim, as informações de movimento do ponto de controle afim superior esquerdo CP0 e cada ponto de controle afim CPx (x = 1, 2, 3) é comparada e é determinado se o as imagens de referência são as mesmas e a transformada afim é possível. <Derivação de candidato de mesclagem de fixação>
[265] A unidade de derivação de candidato de mesclagem de fixação afim 385 será descrita. A unidade de derivação de candidato de mesclagem de fixação afim 385 é semelhante à unidade de derivação de candidato de mesclagem de fixação afim 485. No candidato de mesclagem de fixação afim, as informações de movimento do ponto de controle afim são fixadas com as informações de movimento fixo. Especificamente, o vetor de movimento de cada ponto de controle afim é fixado em (0, 0). <Preditor de vetor de movimento temporal>
[266] Antes da descrição do preditor de vetor de movimento temporal, uma relação de contexto temporal entre as imagens será descrita. A Figura 55 (a) mostra uma relação na qual um bloco de codificação de um alvo de codificação e uma imagem alvo de codificação são imagens codificadas diferentes em um domínio de tempo. Em uma imagem alvo de codificação, uma imagem codificada específica referida para codificação é definida como ColPic. ColPic é identificado pela sintaxe.
[267] Além disso, a Figura 55 (b) mostra um bloco de codificação codificado localizado na mesma posição que o bloco de codificação alvo de codificação e na vizinhança do mesmo em ColPic. Os blocos de codificação T0 e T1 são blocos de codificação substancialmente na mesma posição em uma imagem diferente a partir da imagem alvo de codificação no domínio do tempo.
[268] Embora a descrição do contexto temporal da imagem acima descrita seja para codificação, o mesmo é verdadeiro para decodificação. Ou seja, no momento da decodificação, a codificação na descrição acima é substituída pela decodificação e uma descrição semelhante é dada.
[269] A operação da unidade de derivação de candidato de preditor de vetor de movimento temporal 322 na unidade de derivação do modo de preditor de vetor de movimento normal 301 da Figura 17 será descrito com referência à
Figura 56.
[270] Primeiro, ColPic é derivado (etapa S4201). A derivação de ColPic será descrita com referência à Figura 57.
[271] Quando um tipo de fatia slice_type é uma fatia B e um flag collocated_from_l0_flag é 0 (etapa S4211: SIM e etapa S4212: SIM), uma imagem cujo índice de referência é 0 em RefPicList1 [0], isto é, a lista de referência L1, torna-se uma imagem colPic em um momento diferente (etapa S4213). Caso contrário, isto é, quando o tipo de fatia slice_type é uma fatia B e o flag acima descrita collocated_from_l0_flag é 1 (etapa S4211: SIM e etapa S4212: NÃO), ou quando o tipo de fatia slice_type é uma fatia P (etapa S4211: NÃO e etapa S4214: SIM), uma imagem cujo índice de referência é 0 em RefPicList0 [0], isto é, a lista de referência L0, torna-se a imagem colPic no momento diferente (etapa S4215). Quando slice_type não é uma fatia P (etapa S4214: NÃO), o processo termina.
[272] A Figura 56 é referida novamente. Após ColPic ser derivado, um bloco de codificação colCb é derivado e informações de codificação do mesmo são adquiridas (etapa S4202). Este processo será descrito com referência à Figura
58.
[273] Primeiro, um bloco de codificação localizado na parte inferior direita (fora) tendo a mesma posição que um bloco de codificação alvo dentro da imagem colPic em momentos diferentes é definido como o bloco de codificação colCb em momentos diferentes (etapa S4221). Este bloco de codificação corresponde ao bloco de codificação T0 da Figura 49.
[274] Em seguida, as informações de codificação do bloco de codificação colCb no momento diferente é adquirida (etapa S4222). Quando um modo de predição PredMode do bloco de codificação colCb no momento diferente não está disponível ou o modo de predição PredMode do bloco de codificação colCb no momento diferente é intrapredição (MODE_INTRA) (etapa S4223: NÃO e etapa S4224: SIM), um bloco de codificação localizado na parte inferior direita do centro tendo a mesma posição que o bloco de codificação alvo dentro da imagem colPic em momentos diferentes é definido como o bloco de codificação colCb em momentos diferentes (etapa S4225). Este bloco de codificação corresponde ao bloco de codificação T1 da Figura 55.
[275] A Figura 56 é referida novamente. Em seguida, as informações de interpredição são derivadas para cada lista de referência (S4203 e S4204). Na presente divulgação, o vetor de movimento mvLXCol para cada lista de referência e o flag availableFlagLXCol indicando se as informações de codificação são válidas ou não são derivados a respeito ao bloco de codificação colCb. LX indica uma lista de referência, LX torna-se L0 na derivação da lista de referência 0 e LX torna-se L1 na derivação da lista de referência 1. A derivação das informações de interpredição será descrita com referência à Figura 59.
[276] Quando o bloco de codificação colCb no momento diferente não está disponível (S4231S4231: NÃO) ou quando o modo de predição PredMode é intrapredição (MODE_INTRA) (S4232: NÃO), ambas o flag availableFlagLXCol e um flag predFlagLXCol são definidas como 0 (etapa S4233). O vetor de movimento mvLXCol é definido como (0, 0) (S4234) e o processo termina.
[277] Quando o bloco de codificação colCb está disponível (S4231: SIM) e o modo de predição PredMode não é intrapredição (MODE_INTRA) (S4232: SIM), mvCol, refIdxCol e availableFlagCol são calculados no procedimento a seguir.
[278] Quando um flag PredFlagL0[xPCol][yPCol] indicando se a predição L0 do bloco de codificação colCb é usado é 0 (S4235: SIM), o modo de predição do bloco de codificação colCb é Pred_L1, de modo que o vetor de movimento mvCol é definido para ter o mesmo valor que MvL1 [xPCol] [yPCol], que é o vetor de movimento de L1 do bloco de codificação colCb (S4236), o índice de referência refIdxCol é definido para ter o mesmo valor que o índice de referência RefIdxL1 [xPCol] [yPCol] de L1 (S4237), e a lista ListCol é definida para L1 (S4238). Na presente divulgação, xPCol e yPCol são índices que indicam uma posição da amostra superior esquerda do bloco de codificação colCb na imagem colPic no momento diferente.
[279] Por outro lado, quando o flag de predição L0 PredFlagL0[xPCol][yPCol] do bloco de codificação colCb não é 0 (S4235: NÃO), é determinado se o flag de predição L1 PredFlagL1[xPCol][yPCol] do bloco de codificação colCb é 0. Quando o flag de predição L1 PredFlagL1[xPCol][yPCol] do bloco de codificação colCb é 0 (S4239: SIM), o vetor de movimento mvCol é definido para ter o mesmo valor que MvL0[xPCol][yPCol] que é o vetor de movimento de L0 do bloco de codificação colCb (S4240), o índice de referência refIdxCol é definido para ter o mesmo valor que o índice de referência RefIdxL0[xPCol][yPCol] de L0 (S4241) e a lista ListCol é definida como L0 (S4242).
[280] Quando o flag de predição L0 PredFlagL0[xPCol][yPCol] do bloco de codificação colCb e o flag de predição L1 PredFlagL1[xPCol][yPCol] do bloco de codificação colCb são ambos diferentes de zero (S4235: NÃO e S4239: NÃO), um dos dois vetores de movimento de L0 e L1 é selecionado porque o modo de interpredição do bloco de codificação colCb é bipredição (Pred_BI) (S4243). A Figura 60 é um fluxograma que mostra um procedimento de processamento para derivar as informações de interpredição do bloco de codificação quando o modo de interpredição do bloco de codificação colCb é bipredição (Pred_BI).
[281] Primeiro, é determinado se as POCs de todas as imagens registradas em todas as listas de referência são menores do que uma POC de uma imagem alvo de codificação atual (S4251). Quando as POCs de todas as imagens registradas em L0 e L1, que são todas as listas de referência do bloco de codificação colCb, são menores do que a POC da imagem alvo de codificação atual (S4251: SIM), as informações de interpredição de L0 do bloco de codificação colCb são selecionadas se LX for L0, isto é, um candidato de preditor de vetor do vetor de movimento de L0 do bloco de codificação alvo de codificação é derivado (S4252: SIM), e as informações de interpredição de L1 do bloco de codificação colCb são selecionadas se LX for L1, isto é, um candidato de preditor de vetor do vetor de movimento de L1 do bloco de codificação alvo de codificação é derivado (S4252: NÃO). Por outro lado, quando pelo menos uma das POCs das imagens registradas em todas as listas de referência L0 e L1 do bloco de codificação colCb é maior do que a POC da imagem alvo de codificação atual (S4251: NÃO), as informações de interpredição de L0 do bloco de codificação colCb são selecionadas se o flag colllocated_from_l0_flag é 0 (S4253: SIM) e as informações de interpredição de L1 do bloco de codificação colCb são selecionadas se o flag collocated_from_l0_flag é 1 (S4253: NÃO).
[282] Quando as informações de interpredição de L0 do bloco de codificação colCb é selecionada (S4252: SIM e S4253: SIM), o vetor de movimento mvCol é definido para ter o mesmo valor que MvL0[xPCol][yPCol] (S4254), o índice de referência refIdxCol é definido para ter o mesmo valor que RefIdxL0[xPCol][yPCol] (S4255), e a lista ListCol é definida como L0 (S4256).
[283] Quando as informações de interpredição de L1 do bloco de codificação colCb é selecionada (S4252: NÃO e S4253: NÃO), o vetor de movimento mvCol é definido para ter o mesmo valor que MvL1[xPCol][yPCol] (S4257), o índice de referência refIdxCol é definido para ter o mesmo valor que RefIdxL1[xPCol][yPCol] (S4258), e a lista ListCol é definida como L1 (S4259).
[284] Voltando à Figura 59, quando as informações de interpredição pode ser adquirida a partir do bloco de codificação colCb, tanto o flag availableFlagLXCol quanto o flag predFlagLXCol são definidos como 1 (S4244).
[285] Subsequentemente, o vetor de movimento mvCol é dimensionado e definido como o vetor de movimento mvLXCol (S4245S4245). Um procedimento de processamento de operação de escalonamento deste vetor de movimento mvLXCol será descrito com referência à Figura 61.
[286] Uma distância interimagens td é calculada subtraindo a POC da imagem de referência correspondente ao índice de referência refIdxCol referido na lista ListCol do bloco de codificação colCb a partir da POC da imagem colPic no tempo diferente (S4261). Além disso, a distância interimagens td torna-se um valor positivo quando a POC da imagem de referência referida na lista ListCol do bloco de codificação colCb é anterior ao da imagem colPic no tempo diferente na ordem de exibição e a distância interimagens td é um valor negativo quando a POC da imagem de referência referida na lista ListCol do bloco de codificação colCb é posterior ao da imagem colPic no tempo diferente na ordem de exibição. td = POC da imagem colPic em tempo diferente - POC da imagem de referência referida na lista ListCol do bloco de codificação colCb
[287] Uma distância interimagens tb é calculada subtraindo uma POC de uma imagem de referência, que é referida na lista LX da imagem alvo de codificação atual, a partir da POC da imagem alvo de codificação atual (S4262). Além disso, a distância interimagens tb torna-se um valor positivo quando a imagem de referência, que é referida na lista LX da imagem alvo de codificação atual, é anterior à imagem alvo de codificação atual na ordem de exibição e a distância interimagens tb torna-se um valor negativo quando a imagem de referência, que é referida na lista LX da imagem alvo de codificação atual, é posterior à imagem alvo de codificação atual na ordem de exibição. tb = POC da imagem alvo de codificação/decodificação atual - POC da imagem de referência correspondente ao índice de referência de LX de candidatos mesclagem temporal
[288] Subsequentemente, quando as distâncias interimagens td e tb são comparadas (S4263). Quando as distâncias interimagens td e tb são iguais (S4263: SIM), o vetor de movimento mvLXCol é calculado pela seguinte equação (S4264). O presente processo de operação de escalonamento termina. mvLXCol=mvCol
[289] Por outro lado, quando as distâncias interimagens td e tb interimagens não são iguais (S4263: NÃO), uma variável tx é calculada de acordo com a seguinte equação (S4265). tx=(16384+Abs(td)>>1)/td
[290] Subsequentemente, um coeficiente de escala distScaleFactor é calculado de acordo com a seguinte equação (S4266). distScaleFactor=Clip3(−4096, 4095, (tb*tx+32)>>6)
[291] Na presente divulgação, Clip3 (x, y, z) é uma função que limita um valor mínimo a x e limita um valor máximo a y a respeito a um valor z. Subsequentemente, o vetor de movimento mvLXCol é calculado de acordo com a seguinte equação (S4267). O presente processo de operação de escalonamento termina. mvLXCol=Clip3(−32768, 32767, Sign(distScaleFactor*mvLXCol)*((Abs(distScaleFactor*mvLXCol)+127)>>8))
[292] Na presente divulgação, Sign (x) é uma função que retorna um sinal do valor x e Abs (x) é uma função que retorna um valor absoluto do valor x.
[293] A Figura 56 é referida novamente. O vetor de movimento mvL0Col de L0 é adicionado como um candidato de uma lista de candidatos de preditor de vetor de movimento mvpListLXN na unidade de derivação de modo de preditor de vetor de movimento normal 301 (S4205) acima descrita. No entanto, esta adição é feita apenas quando o flag que indica se o bloco de codificação colCb da lista de referência 0 é válido ou não é availableFlagL0Col = 1. Além disso, o vetor de movimento mvL1Col de L1 é adicionado como o candidato de uma lista de candidatos de preditor de vetor de movimento mvpListLXN na unidade de derivação de modo de preditor de vetor de movimento normal 301 (S4205) acima descrita. No entanto, esta adição é feita apenas quando o flag que indica se o bloco de codificação colCb na lista de referência 1 é válido ou não é availableFlagL1Col = 1. Assim, o processo da unidade de derivação de candidato de preditor de vetor de movimento temporal 322 termina.
[294] Embora a descrição acima da unidade de derivação de modo de preditor de vetor de movimento normal 301 seja para codificação, o mesmo é verdadeiro para decodificação. Ou seja, a operação da unidade de derivação de candidato de preditor de vetor de movimento temporal 422 na unidade de derivação de modo de preditor de vetor de movimento normal 401 da Figura 23 pode ser descrito de forma semelhante substituindo a codificação na descrição acima pela decodificação. <Mesclagem temporal>
[295] A operação da unidade de derivação de candidato de mesclagem temporal 342 na unidade de derivação de modo de mesclagem normal 302 da Figura 18 será descrito com referência à Figura 62.
[296] Primeiro, ColPic é derivado (etapa S4301). Em seguida, um bloco de codificação colCb é derivado e as informações de codificação deste é adquirida (etapa S4302). Adicionalmente, as informações de interpredição são derivadas para cada lista de referência (S4303 e S4304). Como o processamento acima é igual ao de S4201 a S4204 na unidade de derivação de candidato de preditor de vetor de movimento temporal 322, a descrição do mesmo será omitida.
[297] Em seguida, o flag availableFlagCol indicando se o bloco de codificação colCb é válido ou não é calculado (S4305). Quando o flag availableFlagL0Col ou o flag availableFlagL1Col é 1, availableFlagCol torna-se 1. Caso contrário, availableFlagCol se tornará 0.
[298] O vetor de movimento mvL0Col de L0 e o vetor de movimento mvL1Col de L1 são adicionados como candidatos à lista de candidatos de mesclagem mergeCandList na unidade de derivação de modo de mesclagem normal 302 (S4306) acima descrita. No entanto, essa adição é feita apenas quando o flag que indica se o bloco de codificação colCb é válido ou não é availableFlagCol = 1. Por conseguinte, o processo da unidade de derivação de candidato de mesclagem temporal 342 termina.
[299] Embora a descrição acima da unidade de derivação de candidato de mesclagem temporal 342 seja para codificação, o mesmo é verdadeiro para decodificação. Ou seja, a operação da unidade de derivação de candidato de mesclagem temporal 442 na unidade de derivação de modo de mesclagem normal 402 da Figura 24 pode ser descrito de forma semelhante substituindo a codificação na descrição acima pela decodificação. <Atualização de lista de candidatos de preditor de vetor de movimento com base em histórico>
[300] Em seguida, um método de inicialização e um método de atualização da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList provida na memória de armazenamento de informações de codificação 111 do lado da codificação e a memória de armazenamento de informações de codificação 205 do lado de decodificação serão descritos em detalhes. A Figura 26 é um fluxograma explicativo demonstra um procedimento de processamento de inicialização/atualização de uma lista de candidatos de preditor de vetor de movimento com base em histórico.
[301] Na presente modalidade, assume-se que a lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList é atualizada na memória de armazenamento de informações de codificação 111 e na memória de armazenamento de informações de codificação 205. Uma unidade de atualização de lista de candidatos de preditor de vetor de movimento com base em histórico pode ser instalada na unidade de interpredição 102 e a unidade de interpredição 203 para atualizar a lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList.
[302] A lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList é inicialmente definida no início da fatia, a lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList é atualizada quando o modo de preditor de vetor de movimento normal ou o modo de mesclagem normal foi selecionado pela predição de unidade de determinação de método 105 no lado da codificação e a lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList é atualizada quando as informações de predição decodificada pela unidade de decodificação de bit strings 201 é sobre o modo de preditor de vetor de movimento normal ou o modo de mesclagem normal no lado da decodificação.
[303] As informações de interpredição usadas quando a interpredição é desempenhada no modo de predição de vetor de movimento normal ou o modo de mesclagem normal é registrada como um candidato de informações de interpredição hMvpCand na lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList. O candidato de informações de interpredição hMvpCand inclui um índice de referência refIdxL0 de L0, um índice de referência refIdxL1 de L1, um flag de predição L0 predFlagL0 indicando se a predição L0 é desempenhada ou não, um flag de predição L1 predFlagL1 indicando se a predição L1 é desempenhada, um vetor de movimento mvL0 de L0 e um vetor de movimento mvL1 de L1.
[304] Quando há informações de interpredição tendo o mesmo valor que um candidato de informações de interpredição hMvpCand entre os elementos
(isto é, informações de interpredição) registrada na lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList provida na memória de armazenamento de informações de codificação 111 do lado da codificação e a memória de armazenamento de informações de codificação 205 do lado de decodificação, o elemento é removido a partir da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList. Por outro lado, quando não há informações de interpredição tendo o mesmo valor que um candidato de informações de interpredição hMvpCand, o elemento no início da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList é removido e o candidato de informações de interpredição hMvpCand é adicionado ao final da lista de candidatos de preditor de vetor de movimento com base em histórico, HmvpCandList.
[305] O número de elementos da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList provida na memória de armazenamento de informações de codificação 111 do lado de codificação e a memória de armazenamento de informações de codificação 205 do lado de decodificação de acordo com a presente invenção é assumido como sendo seis.
[306] Em primeiro lugar, a lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList é inicializada em unidades de fatias (etapa S2101 da Figura 26). Todos os elementos da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList estão vazios no início da fatia e um valor do número de candidatos de preditor de vetor de movimento com base em histórico (o número atual de candidatos) NumHmvpCand registrado com base em histórico de lista de candidatos do preditor de vetor de movimento HmvpCandList é definida como 0.
[307] Além disso, a inicialização da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList é desempenhada em unidades de fatias (um primeiro bloco de codificação de uma fatia), mas pode ser desempenhada em unidades de imagens, partes ou linhas de bloco de árvore.
[308] Subsequentemente, o seguinte processo de atualização da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList é desempenhado iterativamente para cada bloco de codificação dentro da fatia (etapas S2102 a S2107 da Figura 26).
[309] Primeiro, a definição inicial é desempenhada para cada bloco de codificação. Um flag identicalCandExist indicando se há ou não um candidato idêntico é definido para um valor de FALSE e um índice alvo de remoção removeIdx indicando um candidato alvo de remoção é definido para 0 (etapa S2103 da Figura 26).
[310] É determinado se há ou não um candidato de informações de interpredição hMvpCand do alvo de registro (etapa S2104 da Figura 26). Quando a unidade de determinação de método de predição 105 do lado de codificação determina que o modo é o modo de preditor de vetor de movimento normal ou o modo de mesclagem normal ou quando a unidade de decodificação de sequências de bits 201 do lado de decodificação decodifica o modo como o modo de preditor de vetor de movimento normal ou o modo de mesclagem normal, suas informações de interpredição são definidas como um candidato de informações de interpredição hMvpCand do alvo de registro. Quando a unidade de determinação de método de predição 105 do lado de codificação determina que o modo é o modo intrapredição, o modo de preditor de vetor de movimento com base em sub-bloco ou o modo de mesclagem com base em sub-bloco ou quando a unidade de decodificação de sequências de bits 201 do lado de decodificação decodifica o modo como o modo de intrapredição, o modo de predição de vetor de movimento com base em sub-bloco ou o modo de mesclagem com base em sub-bloco, um processo de atualização da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList não é desempenhado e o candidato de informações de interpredição hMvpCand do alvo de registro não existe. Quando não há informações de interpredição candidatas hMvpCand do alvo de registro, as etapas S2105 a S2106 são puladas (etapa S2104 da Figura 26: NÃO). Quando há um candidato de informações de interpredição hMvpCand do alvo de registro, o processamento a partir da etapa S2105 é desempenhado (etapa S2104 da Figura 26: SIM).
[311] Subsequentemente, é determinado se existe ou não um elemento (informações de interpredição) com o mesmo valor que o candidato de informações de interpredição hMvpCand do alvo de registro, isto é, um elemento idêntico, entre os elementos da lista de candidato de preditor de vetor de movimento com base em histórico HmvpCandList (etapa S2105 da Figura 26). A Figura 27 é um fluxograma de um procedimento de processamento de verificação de elemento idêntico. Quando um valor do número de candidatos de preditor de vetor de movimento com base em histórico NumHmvpCand é 0 (etapa S2121 da Figura 27: NÃO), a lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList está vazia e não há candidato idêntico, de modo que as etapas S2122 a S2125 da Figura 27 são pulados e o presente procedimento de processamento de verificação de elemento idêntico é concluído. Quando o valor do número de candidatos de preditor de vetor de movimento com base em histórico NumHmvpCand é maior que 0 (SIM na etapa S2121 da Figura 27), o processamento da etapa S2123 é iterado até que o índice preditor de vetor de movimento com base em histórico hMvpIdx mude a partir de 0 para NumHmvpCand− 1 (etapas S2122 a S2125 da Figura 27). Primeiro, é feita uma comparação sobre se um hMvpIdx-ésimo elemento HmvpCandList[hMvpIdx] quando contado a partir de um 0-ésimo elemento da lista de candidatos de preditor de vetor de movimento com base em histórico é idêntico ao candidato de informações de interpredição hMvpCand (etapa S2123 da Figura 27). Quando eles são os mesmos (etapa S2123 da Figura 27: SIM), um flag identicalCandExist indicando se há ou não um candidato idêntico é definido para um valor de TRUE e um índice alvo de remoção removeIdx indicando uma posição de um elemento de um alvo de remoção é definido para um valor atual do índice de preditor de vetor de movimento com base em histórico hMvpIdx, e o presente processo de verificação de elemento idêntico termina. Quando eles não são os mesmos (etapa S2123 da Figura 27: NÃO), hMvpIdx é incrementado em 1. Se o índice de preditor de vetor de movimento com base em histórico hMvpIdx for menor ou igual a NumHmvpCand-1, o processamento a partir da etapa S2123 é desempenhado.
[312] Com referência ao fluxograma da Figura 26, novamente, um processo de deslocamento e adição de um elemento da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList é desempenhado (etapa S2106 da Figura 26). A Figura 28 é um fluxograma de um procedimento de processamento de deslocamento/adição de um elemento da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList da etapa S2106 da Figura 26. Primeiro, é determinado se deve ou não adicionar um novo elemento após remover um elemento armazenado na lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList ou adicionar um novo elemento sem remover o elemento. Especificamente, é feita uma comparação a respeito se ou não o flag identicalCandExist, indicando se existe ou não um candidato idêntico, é TRUE ou NumHmvpCand é seis (etapa S2141 da Figura 28). Quando a condição de que o flag identicalCandExist, indicando se existe ou não um candidato idêntico, é TRUE ou a condição de que o número atual de candidatos NumHmvpCand é seis é satisfeita (etapa S2141 da Figura 28: SIM), um novo elemento é adicionado após a remoção do elemento armazenado na lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList.
O valor inicial do índice i é definido como um valor de removeIdx+1. O processo de mudança de elemento da etapa S2143 é iterado a partir deste valor inicial para NumHmvpCand (etapas S2142 a S2144 da Figura 28). Ao copiar o elemento de HmvpCandList[i] para HmvpCandList[i-1], o elemento é deslocado para frente (etapa S2143 da Figura 28) e i é incrementado em 1 (etapas S2142 a S2144 da Figura 28). Subsequentemente, as informações de interpredição candidata hMvpCand são adicionadas a um (NumHmvpCand−1)-ésimo elemento HmvpCandList[NumHmvpCand−1] quando contado a partir de 0-ésimo elemento que corresponde ao final da lista de candidatos de preditor de vetor de movimento com base em histórico (etapa S2145 da Figura 28) e o presente processo de deslocamento/adição de um elemento da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList termina.
Por outro lado, quando nem a condição de que o flag identicalCandExist, indicando se existe ou não um candidato idêntico, é TRUE, nem a condição de que o número atual de candidatos NumHmvpCand é seis é satisfeita (etapa S2141 da Figura 28: NÃO), o candidato de informações de interpredição hMvpCand é adicionado ao final da lista de candidatos de preditor de vetor de movimento com base em histórico sem remover um elemento armazenado na lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList (etapa S2146 da Figura 28). Na presente divulgação, o final da lista de candidatos de preditor de vetor de movimento com base em histórico é um NumHmvpCand-ésimo elemento HmvpCandList[NumHmvpCand] quando contado a partir de 0-ésimo elemento.
Além disso, NumHmvpCand é incrementado em 1 e o presente processo de deslocamento/adição de um elemento da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList termina.
[313] A Figura 31 é um diagrama explicativo que mostra um exemplo de um processo de atualização da lista de candidatos de preditor de vetor de movimento com base em histórico. Quando um novo elemento é adicionado à lista de candidatos de preditor de vetor de movimento com base no histórico HmvpCandList em que seis elementos (informações de interpredição) foram registrados, os elementos são comparados com as novas informações de interpredição em ordem a partir de um elemento frontal da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList (Figura 31A). Se o novo elemento tiver o mesmo valor que um terceiro elemento HMVP2 a partir do início da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList, o elemento HMVP2 é removido a partir da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList e elementos subsequentes HMVP3 a HMVP5 são deslocados para frente (copiados) um por um, e o novo elemento é adicionado ao final da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList (Figura 31B) para completar a atualização da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList (Figura 31C). <Processo de derivação de candidato de preditor de vetor de movimento com base em histórico>
[314] Em seguida, um método para derivar um candidato de preditor de vetor de movimento com base em histórico a partir da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList que é um procedimento de processamento da etapa S304 da Figura 20 que é um processo comum à unidade de derivação de candidato de preditor de vetor de movimento com base em histórico 323 da unidade de derivação de modo de preditor de vetor de movimento normal 301 do lado de codificação e a unidade de derivação de candidato de preditor de vetor de movimento com base em histórico 423 da unidade de derivação de modo de preditor de vetor de movimento normal 401 do lado de decodificação será descrita em detalhes. A Figura 29 é um fluxograma explicativo mostrando um procedimento de processamento de derivação de candidato de preditor de vetor de movimento com base em histórico.
[315] Quando o número atual de candidatos de preditor de vetor de movimento numCurrMvpCand é maior ou igual ao número máximo de elementos na lista de candidatos de preditor de vetor de movimento mvpListLX (na presente divulgação, 2) ou um valor do número de candidatos de preditor de vetor de movimento com base em histórico NumHmvpCand é 0 (NÃO na etapa S2201 da Figura 29), o processamento das etapas S2202 a S2209 da Figura 29 é omitido e o procedimento de processamento de derivação do candidato de preditor de vetor de movimento com base em histórico termina. Quando o número atual de candidatos de preditor de vetor de movimento numCurrMvpCand é menor que 2, que é o número máximo de elementos da lista de candidatos de preditor de vetor de movimento mvpListLX e o valor do número de candidatos de preditor de vetor de movimento com base em histórico NumHmvpCand é maior que 0 (SIM na etapa S2201 da Figura 29), o processamento das etapas S2202 a S2209 da Figura 29 é desempenhado.
[316] Subsequentemente, o processamento das etapas S2203 a S2208 da Figura 29 é iterado até que o índice i mude de 1 para um valor menor de 4 e o número de candidatos de preditor de vetor de movimento com base em histórico numCheckedHMVPCand (etapas S2202 a S2209 da Figura 29). Quando o número atual de candidatos de preditor de vetor de movimento numCurrMvpCand é maior ou igual a 2, que é o número máximo de elementos da lista de candidatos de preditor de vetor de movimento mvpListLX (etapa S2203 da Figura 29: NÃO), o processamento das etapas S2204 a S2209 na Figura 29 é omitido e o presente procedimento de processamento de derivação de candidato de preditor de vetor de movimento com base em histórico termina. Quando o número atual de candidatos de preditor de vetor de movimento numCurrMvpCand é menor que 2, que é o número máximo de elementos da lista de candidatos de preditor de vetor de movimento mvpListLX (etapa S2203 da Figura 29: SIM), o processamento a partir da etapa S2204 da Figura 29 é desempenhado.
[317] Subsequentemente, o processamento da etapa S2205 a S2207 é desempenhado para Y = 0 e 1 (L0 e L1) (etapas S2204 a S2208 da Figura 29). Quando o número atual de candidatos de preditor de vetor de movimento numCurrMvpCand é maior ou igual a 2, que é o número máximo de elementos da lista de candidatos de preditor de vetor de movimento mvpListLX (etapa S2205 da Figura 29: NÃO), o processamento das etapas S2206 a S2209 na Figura 29 é omitido e o presente procedimento de processamento de derivação de candidato de preditor de vetor de movimento com base em histórico termina. Quando o número atual de candidatos de preditor de vetor de movimento numCurrMvpCand é menor que 2, que é o número máximo de elementos da lista de candidatos de preditor de vetor de movimento mvpListLX (etapa S2205 da Figura 29: SIM), o processamento a partir da etapa S2206 da Figura 29 é desempenhado.
[318] Subsequentemente, no caso de um elemento que tem um índice de referência idêntico ao índice de referência refIdxLX de um vetor de movimento alvo de codificação/decodificação e que é diferente de qualquer elemento da lista de preditor de vetor de movimento mvpListLX dentro da lista de candidato de preditor de vetor de movimento com base em histórico HmvpCandList (SIM na etapa S2206 da Figura 29), o vetor de movimento de LY do candidato de preditor de vetor de movimento com base em histórico HmvpCandList[NumHmvpCand−i] é adicionado a um numCurrMvpCand-ésimo elemento mvpListLX[numCurrMvpCand] quando contado a partir de 0-ésimo elemento da lista de candidatos de preditor de vetor de movimento (etapa S2207 da Figura 29) e o número atual de candidatos de preditor de vetor de movimento numCurrMvpCand é incrementado em um. Quando não há nenhum elemento que tenha um índice de referência idêntico ao índice de referência refIdxLX de um vetor de movimento alvo de codificação/decodificação e que seja diferente de qualquer elemento da lista de preditor de vetor de movimento mvpListLX dentro da lista de candidatos de preditor de vetor de movimento com base em histórico HmvpCandList (NÃO na etapa S2207 da Figura 29), o processo de adição da etapa S2207 é pulado.
[319] O processamento acima das etapas S2205 a S2207 da Figura 29 é desempenhado para L0 e L1 (etapas S2204 a S2208 da Figura 29). Quando o índice i é incrementado em 1 e o índice i é menor ou igual a um valor menor de 4 e o número de candidatos de preditor de vetor de movimento com base em histórico NumHmvpCand, o processamento a partir da etapa S2203 é desempenhado novamente (etapas S2202 a S2209 de Figura 29). <Processo de derivação de candidato de mesclagem com base em histórico>
[320] Em seguida, um método de derivar candidatos de mesclagem com base em histórico a partir da lista de candidatos de mesclagem com base em histórico HmvpCandList que é o procedimento de processamento da etapa S404 da Figura 21 que é um processo comum para a unidade de derivação de candidato de mesclagem com base em histórico 345 da unidade de derivação de modo de mesclagem normal 302 do lado da codificação e a unidade de derivação de candidato de mesclagem com base em histórico 445 da unidade de derivação de modo de mesclagem normal 402 do lado de decodificação será descrito em detalhes. A Figura 30 é um fluxograma explicativo que mostra o procedimento de processamento de derivação de candidato de mesclagem com base em histórico.
[321] Primeiro, um processo de inicialização é desempenhado (etapa S2301 da Figura 30). Cada (numCurrMergeCand−1)-ésimo elemento de 0 de isPruned[i] é definido como um valor FALSE e uma variável numOrigMergeCand é definida como o número de elementos numCurrMergeCand registrados na lista de candidatos de mesclagem atual.
[322] Subsequentemente, o valor inicial do índice hMvpIdx é definido como 1 e o processo de adição das etapas S2303 a S2310 da Figura 30 é iterado até que o índice hMvpIdx mude do valor inicial para NumHmvpCand (etapas S2302 a S2311 da Figura 30). Se o número de elementos registrados na atual lista de candidato de mesclagem numCurrMergeCand não for menor ou igual a (o número máximo de candidatos de mesclagem MaxNumMergeCand−1), os candidatos de mesclagem serão adicionados a todos os elementos da lista de candidatos de mesclagem, de modo que o processo de derivação de candidato de mesclagem com base em histórico presente termine (NÃO na etapa S2303 da Figura 30). Quando o número de elementos numCurrMergeCand registrados na lista de candidatos de mesclagem atual é menor ou igual a (o número máximo de candidatos de mesclagem MaxNumMergeCand-1), o processamento a partir da etapa S2304 é desempenhado. O sameMotion é definido para um valor de FALSE (etapa S2304 da Figura 30). Subsequentemente, o valor inicial do índice i é definido como 0 e o processamento das etapas S2306 e S2307 da Figura 30 é desempenhado até que o índice mude do valor inicial para numOrigMergeCand−1 (S2305 a S2308 na Figura 30). Uma comparação é feita sobre se um (NumHmvpCand−hMvpIdx)-ésimo elemento HmvpCandList[NumHmvpCand−hMvpIdx] quando contado a partir do 0-ésimo elemento da lista de candidatos de predição de vetor de movimento com base em histórico tem o mesmo valor que um i-ésimo elemento mergeCandList[i] quando contado a partir do 0-ésimo elemento de uma lista de candidatos de mesclagem (etapa S2306 da Figura 30).
[323] Os candidatos de mesclagem têm o mesmo valor quando os valores de todos os componentes (um modo de interpredição, um índice de referência e um vetor de movimento) dos candidatos de mesclagem são idênticos. Quando os candidatos de mesclagem têm o mesmo valor e isPruned[i] é FALSE (SIM na etapa S2306 da Figura 30), ambos sameMotion e isPruned[i] são definidos como TRUE (etapa S2307 da Figura 30). Quando os candidatos de mesclagem não têm o mesmo valor (NÃO na etapa S2306 da Figura 30), o processamento da etapa S2307 é pulado. Quando o processamento iterativo das etapas S2305 a S2308 da Figura 30 foi concluída, uma comparação é feita a respeito de sameMotion ser ou não FALSE (etapa S2309 da Figura 30). Se sameMotion for FALSE (SIM na etapa S2309 da Figura 30), isto é, porque um (NumHmvpCand−hMvpIdx)-ésimo elemento HmvpCandList [NumHmvpCand-hMvpIdx] quando contado a partir de 0-ésimo elemento da lista de candidatos de predição de vetor de movimento com base em histórico não existe em mergeCandList, a (NumHmvpCand−hMvpIdx)-ésimo elemento HmvpCandList[NumHmvpCand−hMvpIdx] quando contado a partir de 0-ésimo elemento da lista de candidatos de preditor de vetor de movimento com base em histórico é adicionado a um numCurrMergeCand-ésimo elemento mergeCandList[numCurrMergeCand] da lista de candidatos de mesclagem e numCurrMergeCand é incrementado em 1 (etapa S2310 da Figura 30). O índice hMvpIdx é incrementado em 1 (etapa S2302 da Figura 30) e um processo de iteração das etapas S2302 a S2311 da Figura 30 é desempenhado.
[324] Quando a verificação de todos os elementos da lista de candidatos de preditor de vetor de movimento com base no histórico é concluída ou quando os candidatos de mesclagem são adicionados a todos os elementos da lista de candidatos de mesclagem, o presente processo de derivação do candidato de mesclagem com base no histórico é concluído. <Derivação de candidato de mesclagem temporal com base em sub-bloco>
[325] Uma operação da unidade de derivação de candidato de mesclagem temporal com base em sub-bloco 381 na unidade de derivação de modo de mesclagem com base em sub-bloco 304 da Figura 16 será descrito com referência à Figura 50.
[326] Primeiro, é determinado se um bloco de codificação é menor que amostras 8x8 ou não (S4002).
[327] Quando o bloco de codificação é menor que amostras 8x8 (S4002: SIM), um flag indicando a presença do candidato de mesclagem temporal com base em sub-bloco é definido como availableFlagSbCol=0 (S4003). O processo da unidade de derivação de candidato de mesclagem temporal com base em sub- blocos termina. Na presente divulgação, quando a predição do vetor de movimento temporal é proibida pela sintaxe ou quando a mesclagem temporal com base em sub-blocos é proibida, o processamento que é o mesmo que quando o bloco de codificação é menor que amostras 8x8 (S4002: SIM) é desempenhado.
[328] Por outro lado, quando o bloco de codificação tem amostras 8×8 ou mais (S4002: NÃO), as informações de movimento vizinho do bloco de codificação na codificação de codificação de imagem são derivadas (S4004).
[329] Um processo de derivação das informações de movimento vizinho do bloco de codificação será descrito com referência à Figura 51. O processo de derivação das informações de movimento vizinho é semelhante ao processo acima descrito da unidade de derivação de candidato de preditor de vetor de movimento espacial 321. Na presente divulgação, a ordem em que os blocos vizinhos são buscados é A0, B0, B1 e A1 e B2 não é buscado. Primeiro, as informações de codificação são adquiridas com o bloco vizinho n=A0 (S4052). As informações de codificação indicam o flag availableFlagN indicando se um bloco vizinho está ou não disponível, um índice de referência refIdxLXN para cada lista de referência e um vetor de movimento mvLXN.
[330] Em seguida, é determinado se o bloco vizinho n é válido ou inválido (S4054). Se o flag que indica se o bloco vizinho está ou não disponível for availableFlagN=1, o bloco vizinho n é válido. Caso contrário, o bloco vizinho n é inválido.
[331] Se o bloco vizinho n for válido (S4054: SIM), o índice de referência refIdxLXN é definido para um índice de referência refIdxLXn do bloco vizinho n (S4056). Além disso, o vetor de movimento mvLXN é definido como o vetor de movimento mvLXn do bloco vizinho n (S4056). O processo de derivação das informações de movimento vizinho dos blocos termina.
[332] Por outro lado, se o bloco vizinho n for inválido (S4106: NÃO), as informações de codificação são adquiridas com o bloco vizinho n = B0 (S4104). Doravante, um processo semelhante é desempenhado como um processo em circuito na ordem de B1 e A1. O processo de derivação das informações de movimento vizinho é desempenhado como um processo em circuito até que o bloco vizinho se torne válido e o processo de derivação das informações de movimento vizinho de um bloco termina se todos os blocos vizinhos A0, B0, B1 e A1 forem inválidos.
[333] A Figura 50 é referida novamente. Depois que as informações de movimento vizinho são derivadas (S4004), um vetor de movimento temporal é derivado (S4006).
[334] O processo de derivação do vetor de movimento temporal será descrito com referência à Figura 52. Primeiro, um vetor de movimento temporal é inicializado como tempMv=(0, 0) (S4062).
[335] Em seguida, é determinado se as informações de movimento vizinho são válidas ou inválidas (S4064). Se o flag que indica se o bloco vizinho está disponível é availableFlagN=1, as informações de movimento vizinho são válidas. Caso contrário, as informações de movimento vizinho são inválidas. Quando as informações de movimento vizinho são inválidas (S4064: NÃO), o processo de derivação do vetor de movimento temporal termina.
[336] Por outro lado, quando as informações de movimento vizinho são válidas (S4064: SIM), é determinado se o flag predFlagL1N indicando se a predição L1 foi ou não usada no bloco vizinho N é 1 (S4066). Quando predFlagL1N=0 (S4066: NÃO), o processo segue para o próximo processo (S4078). Quando predFlagL1N=1 (S4066: SIM), é determinado se as POCs de todas as imagens registradas em todas as listas de referência são menores ou iguais a POC da imagem alvo de codificação atual (S4068). Quando esta determinação for verdadeira (S4068: SIM), o processo segue para o próximo processamento (S4070).
[337] Quando o tipo de fatia slice_type é uma fatia B e o flag collocated_from_l0_flag é 0 (S4070: SIM e S4072: SIM), é determinado se ColPic é ou não igual à imagem de referência RefPicList1[refIdxL1N] (uma imagem do índice de referência refIdxL1N da lista de referência L1) (S4074). Quando esta determinação for verdadeira (S4074: SIM), o vetor de movimento temporal tempMv=mvL1N é definido (S4076). Quando esta determinação for falsa (S4074: NÃO), o processo segue para o próximo processamento (S4078). Quando o tipo de fatia slice_type não é uma fatia B e o flag collocated_from_l0_flag não é 0 (S4070: NÃO ou S4072: NÃO), o processo segue para o próximo processamento (S4078).
[338] Então, é determinado se o flag predFlagL0N indicando se a predição
L0 foi ou não usada no bloco vizinho N é 1 (S4078). Quando predFlagL0N=1 (S4078: SIM), é determinado se ColPic é ou não igual à imagem de referência RefPicList0[refIdxL0N] (uma imagem do índice de referência refIdxL0N da lista de referência L0) (S4080). Quando esta determinação for verdadeira (S4080: SIM), o vetor de movimento temporal tempMv=mvL0N é definido (S4082). Quando esta determinação for falsa (S4080: NÃO), o processo de derivação do vetor de movimento temporal termina.
[339] A Figura 50 é referida novamente. Em seguida, ColPic é derivado (S4016). Como este processamento é o mesmo que o de S4201 na unidade de derivação de candidato de preditor de vetor de movimento temporal 322, a descrição do mesmo será omitida.
[340] O bloco de codificação colCb no momento diferente é definido (S4017). Na presente divulgação, um bloco de codificação localizado na parte inferior direita do centro, tendo a mesma posição que um bloco de codificação alvo dentro da imagem ColPic em um momento diferente, é definido como colCb. Este bloco de codificação corresponde ao bloco de codificação T1 da Figura 55.
[341] Em seguida, uma posição onde o vetor de movimento temporal tempMv é adicionado ao bloco de codificação colCb torna-se um novo bloco de codificação colCb (S4018). Assumindo que a posição superior esquerda do bloco de codificação colCb é (xColCb, yColCb) e o vetor de movimento temporal tempMv é (tempMv [0], tempMv [1]) na precisão de amostra de 1/16, a posição superior esquerda do novo bloco de codificação colCb é como se segue xColCb=Clip3(xCtb, xCtb+CtbSizeY+3, xcolCb+(tempMv[0]>>4)) yColCb=Clip3(yCtb, yCtb+CtbSizeY−1, ycolCb+(tempMv[1]>>4))
[342] Na presente divulgação, uma posição superior esquerda de um bloco de árvore é (xCtb, yCtb) e o tamanho do bloco de árvore é CtbSizeY. Como mostrado nas equações acima, uma posição após a adição de tempMv é corrigida em uma faixa de aproximadamente o tamanho do bloco de árvore de modo que a posição após a adição de tempMv não se desvie significativamente de uma posição antes da adição de tempMv. Quando esta posição está fora da imagem, a posição é corrigida dentro da imagem.
[343] É determinado se o modo de predição PredMode do bloco de codificação colCb é interpredição (MODE_INTER) (S4020). Quando o modo de predição de colCb não é interpredição (S4020: NÃO), o flag indicando a presença do candidato de mesclagem temporal com base em sub-bloco é definido como availableFlagSbCol=0 (S4003). O processo da unidade de derivação de candidato de mesclagem temporal com base em sub-blocos termina.
[344] Por outro lado, quando o modo de predição de colCb é interpredição (S4020: SIM), as informações de interpredição são derivadas para cada lista de referência (S4022 e S4023). Na presente divulgação, um vetor de movimento central ctrMvLX para cada lista de referência e um flag ctrPredFlagLX indicando se a predição de LX foi usada ou não são derivados a respeito a colCb. LX indica uma lista de referência, LX torna-se L0 na derivação da lista de referência 0 e LX torna-se L1 na derivação da lista de referência 1. A derivação de informações de interpredição será descrita com referência à Figura 53.
[345] Quando o bloco de codificação colCb no momento diferente não está disponível (S4112: NÃO) ou quando o modo de predição PredMode é intrapredição (MODE_INTRA) (S4114: NÃO), ambas o flag availableFlagLXCol e o flag predFlagLXCol são definidas como 0 (etapa S4116) e o vetor mvCol é definido como (0, 0) (S4118). O processo de derivação das informações interpredição termina.
[346] Quando o bloco de codificação colCb está disponível (S4112: SIM) e o modo de predição PredMode não é intrapredição (MODE_INTRA) (S4114: SIM), mvCol, refIdxCol e availableFlagCol são calculados no procedimento a seguir.
[347] Quando um flag PredFlagLX[xPCol][yPCol] indicando se a predição de LX do bloco de codificação colCb foi usado é 1 (S4120: SIM), o vetor de movimento mvCol é definido para ter o mesmo valor que MvLX[xPCol][yPCol] que é o vetor de movimento de LX do bloco de codificação colCb (S4122), o índice de referência refIdxCol é definido para ter o mesmo valor que um índice de referência RefIdxLX[xPCol][yPCol] de LX (S4124) e uma lista listCol é definida como LX (S4126). Na presente divulgação, xPCol e yPCol são índices que indicam uma posição de uma amostra superior esquerda do bloco de codificação colCb dentro da imagem colPic no momento diferente.
[348] Por outro lado, quando o flag PredFlagLX[xPCol][yPCol] indicando se a predição de LX do bloco de codificação colCb foi usado é 0 (S4120: NÃO), o seguinte processo é desempenhado. Primeiro, é determinado se as POCs de todas as imagens registradas em todas as listas de referência são menores ou iguais a POC da imagem alvo de codificação atual (S4128). Adicionalmente, é determinado se um flag PredFlagLY[xPCol][yPCol] indicando se a predição LY de colCb foi ou não usada é 1 (S4128). Na presente divulgação, uma lista de referência da predição LY é definida para ser diferente daquela da predição LX. Ou seja, LY = L1 em LX = L0 e LY = L0 em LX = L1.
[349] Quando esta determinação for verdadeira (S4128: SIM), o vetor de movimento mvCol é definido para ter o mesmo valor que MvLY[xPCol][yPCol] que é o vetor de movimento de LY do bloco de codificação colCb (S4130), o índice de referência refIdxCol é definido para ter o mesmo valor que um índice de referência RefIdxLY[xPCol][yPCol] de LY (S4132), e a lista listCol é definida como LX (S4134).
[350] Por outro lado, quando essa determinação é falsa (S4128: NÃO), ambos flag availableFlagLXCol e o flag predFlagLXCol são definidas como 0 (etapa S4116) e o vetor de movimento de mvCol é definido como (0, 0) (S4118).
O processo de derivação das informações interpredição termina.
[351] Quando as informações de interpredição pode ser adquirida a partir do bloco de codificação colCb, tanto o flag availableFlagLXCol quanto o flag predFlagLXCol são definidos como 1 (S4136).
[352] Subsequentemente, o vetor de movimento mvCol é dimensionado e definido como o vetor de movimento mvLXCol (S4138). Como este processamento é o mesmo que o de S4245 na unidade de derivação de candidato de preditor de vetor de movimento temporal 322, a descrição do mesmo será omitida.
[353] A Figura 50 é referida novamente. Após as informações de interpredição serem derivadas para cada lista de referência, o vetor de movimento calculado mvLXCol é definido como o vetor de movimento central ctrMvLX e o flag calculada predFlagLXCol é definida como o flag ctrPredFlagLX (S4022 e S4023).
[354] Então, é determinado se o vetor de movimento central é válido ou inválido (S4024). Se ctrPredFlagL0=0 e ctrPredFlagL1=0, é determinado que o vetor de movimento central é inválido. Caso contrário, é determinado que o vetor de movimento central é inválido. Quando o vetor de movimento central é inválido (S4024: NÃO), o flag que indica a existência do candidato de mesclagem temporal com base em sub-bloco é definido como availableFlagSbCol=0 (S4003). O processo da unidade de derivação de candidato de mesclagem temporal com base em sub-blocos termina.
[355] Por outro lado, quando o vetor de movimento central é válido (S4024: SIM), o flag que indica a presença do candidato de mesclagem temporal com base em sub-bloco é definido como availableFlagSbCol=1 (S4025) e as informações de movimento do sub-bloco são derivadas (S4026). Este processamento será descrito com referência à Figura 54.
[356] Primeiro, o número de sub-blocos numSbX em uma direção de largura e o número de sub-blocos numSbY em uma direção de altura são calculados a partir de uma largura cbWidth e uma altura cBheight do bloco de codificação colCb (S4152). Além disso, refIdxLXSbCol=0 é definido (S4152). Após este processamento, um processo iterativo é desempenhado nas unidades de predição dos sub-blocos colSb. Este processo iterativo é desempenhado enquanto um índice ySbIdx na direção da altura muda de 0 para numSbY e um índice xSbIdx na direção da largura muda de 0 para numSbX.
[357] Assumindo que a posição superior esquerda do bloco de codificação colCb é (xCb, yCb), a posição superior esquerda (xSb, ySb) do sub-bloco de predição colSb é calculada como segue. xSb=xCb+xSbIdx*sbWidth ySb=yCb+ySbIdx*sbHeight
[358] Em seguida, uma posição onde o vetor de movimento temporal tempMv é adicionado ao sub-bloco de predição colSb torna-se um novo sub- bloco de predição colSb (S4154). Assumindo que a posição superior esquerda do sub-bloco de predição colSb é (xColSb, yColSb) e o vetor de movimento temporal tempMv é (tempMv [0], tempMv [1]) a 1/16 de precisão de amostra, a posição superior esquerda da nova predição o sub-bloco colSb é o seguinte. xColSb=Clip3(xCtb, xCtb+CtbSizeY+3, xSb+(tempMv[0]>>4)) yColSb=Clip3(yCtb, yCtb+CtbSizeY−1, ySb+(tempMv[1]>>4))
[359] Na presente divulgação, uma posição superior esquerda de um bloco de árvore é (xCtb, yCtb) e o tamanho do bloco de árvore é CtbSizeY. Como mostrado nas equações acima, uma posição após a adição de tempMv é corrigida em uma faixa de aproximadamente o tamanho do bloco de árvore de modo que a posição após a adição de tempMv não se desvie significativamente de uma posição antes da adição de tempMv. Quando esta posição está fora da imagem,
a posição é corrigida dentro da imagem.
[360] As informações de interpredição são derivadas para cada lista de referência (S4156 e S4158). Na presente divulgação, um vetor de movimento mvLXSbCol para cada lista de referência e um flag availableFlagLXSbCol indicando se um sub-bloco de predição é válido ou não são derivados em unidades de sub-blocos a respeito ao sub-bloco de predição colSb. LX indica uma lista de referência, LX torna-se L0 na derivação da lista de referência 0 e LX torna- se L1 na derivação da lista de referência 1. Porque a derivação das informações de interpredição é a mesma que o processamento de S4022 e S4023 na Figura 50, a descrição dos mesmos será omitida.
[361] Depois que as informações de interpredição são derivadas (S4156 e S4158), é determinado se o sub-bloco de predição colSb é válido ou não (S4160). Quando availableFlagL0SbCol=0 e availableFlagL1SbCol=0, é determinado que colSb é inválido. Caso contrário, é determinado que colSb é válido. Quando colSb é inválido (S4160: NÃO), o vetor de movimento mvLXSbCol é definido como o vetor de movimento central ctrMvLX (S4162). Adicionalmente, um flag predFlagLXSbCol indicando se a predição LX foi ou não usada é definido como o flag ctrPredFlagLX no vetor de movimento central (S4162). Consequentemente, a derivação das informações de movimento do sub-bloco termina.
[362] A Figura 50 é referida novamente. O vetor de movimento mvL0SbCol de L0 e o vetor de movimento mvL1SbCol de L1 são adicionados como candidatos de sub-bloco de lista de candidatos de mesclagem com base em subblockMergeCandList na unidade de derivação de modo de mesclagem com base em sub-bloco acima descrita 304 (S4028). No entanto, essa adição é feita apenas quando um flag indicando a presença do candidato de mesclagem temporal com base em sub-bloco é availableSbCol=1. Por conseguinte, o processo da unidade de derivação de candidato de mesclagem temporal 342 termina.
[363] Embora a descrição acima da unidade de derivação de candidato de mesclagem temporal com base em sub-bloco 381 seja para codificação, o mesmo é verdadeiro para decodificação. Isto é, a operação da unidade de derivação de candidato de mesclagem temporal com base em sub-bloco 481 na unidade de derivação de modo de mesclagem com base em sub-bloco 404 da Figura 22 pode ser descrita de forma semelhante substituindo a codificação na descrição acima pela decodificação. <Processo de predição de movimento compensado>
[364] A unidade de predição por movimento compensado 306 adquire uma posição e um tamanho de um bloco que é um alvo atual de um processo de predição na codificação. Além disso, a unidade de predição com compensação de movimento 306 adquire informações de interpredição da unidade de determinação de modo de interpredição 305. Um índice de referência e um vetor de movimento são derivados a partir das informações de interpredição adquiridas e um sinal de predição é gerado após se adquirir um sinal de imagem de uma posição para a qual uma imagem de referência identificada pelo índice de referência dentro da memória de imagem decodificada 104 é movida a partir de uma posição idêntica àquela de um sinal de imagem de um bloco de predição por uma quantidade de vetor de movimento.
[365] Um sinal de predição de movimento compensado é fornecido a uma unidade de determinação de método de predição 105 usando um sinal de predição adquirido a partir de uma imagem de referência como um sinal de predição com compensação de movimento quando o modo de interpredição na interpredição é a predição a partir de uma única imagem de referência, como predição L0 ou predição L1 e usando um sinal de predição obtido por sinais de predição de média ponderada adquiridos a partir de duas imagens de referência como um sinal de predição com compensação de movimento quando o modo de predição é predição de duas imagens de referência, tal como um modo de interpredição de Bipredição. Embora uma razão média ponderada de bipredição seja de 1:1 na presente divulgação, uma média ponderada pode ser desempenhada usando outra razão. Por exemplo, uma razão de ponderação pode aumentar à medida que o intervalo de imagem entre uma imagem, que é um alvo de predição, e uma imagem de referência diminui. Além disso, a razão de ponderação pode ser calculada usando uma tabela correspondente entre combinações de intervalos de imagem e razões de ponderação.
[366] A unidade de predição com compensação de movimento 406 tem uma função semelhante à da unidade de predição com compensação de movimento 306 do lado de codificação. A unidade de predição de movimento compensado 406 adquire informações de interpredição a partir da unidade de derivação de modo de preditor de vetor de movimento normal 401, a unidade de derivação de modo de mesclagem normal 402, a unidade de derivação de modo de preditor de vetor de movimento com base em sub-bloco 403 e a unidade de derivação de modo de mesclagem com base em sub-bloco 404 via comutador 408. A unidade de predição de movimento compensado 406 fornece um sinal de predição de movimento compensado obtido para a unidade de sobreposição do sinal de imagem de decodificação 207. <Sobre o modo de interpredição>
[367] Um processo de desempenho de predição a partir de uma única imagem de referência é definido como unipredição. No caso de unipredição, a predição usando qualquer uma das duas imagens de referência registradas nas listas de referência L0 e L1, como predição L0 ou predição L1, é desempenhada.
[368] A Figura 32 mostra o caso de unipredição em que um tempo de relógio de uma imagem de referência (RefL0Pic) de L0 é anterior ao de uma imagem alvo (CurPic). A Figura 33 mostra o caso de unipredição em que um tempo de relógio de uma imagem de referência da predição L0 é posterior ao de uma imagem alvo. Da mesma forma, a imagem de referência da predição de L0 das Figuras 32 e 33 pode ser substituída por uma imagem de referência (RefL1Pic) de predição L1 para desempenhar unipredição.
[369] O processo de desempenho de predição a partir de duas imagens de referência é definido como bipredição e a bipredição é representada como Bipredição usando predição L0 e predição L1. A Figura 34 mostra o caso da bipredição em que um tempo de relógio de uma imagem de referência de predição L0 é anterior ao de uma imagem alvo e um tempo de relógio de uma imagem de referência de predição L1 é posterior ao da imagem alvo. A Figura 35 mostra o caso de bipredição em que os tempos de relógio da imagem de referência da predição L0 e da imagem de referência da predição L1 são anteriores aos de uma imagem alvo. A Figura 36 mostra o caso de bipredição em que um tempo de relógio de uma imagem de referência de predição L0 e um tempo de relógio de uma imagem de referência de predição L1 são posteriores ao de uma imagem alvo.
[370] Como descrito acima, uma relação entre um tipo de predição de L0/L1 e o tempo pode ser usada sem ser limitada a L0 que está na direção passada e L1 que está na direção futura. No caso de bipredição, cada uma das predições L0 e L1 pode ser desempenhada usando a mesma imagem de referência. Além disso, é determinado se desempenhar a predição de movimento compensado de acordo com a unipredição ou bipredição com base em, por exemplo, informações (por exemplo, um flag) indicando se deve ser usada a predição L0 e se deve ser usada a predição L1. <Sobre o índice de referência>
[371] Na modalidade da presente invenção, é possível selecionar uma imagem de referência ótima a partir de uma pluralidade de imagens de referência em predição de movimento compensado para melhorar a precisão da predição de movimento compensado. Assim, a imagem de referência usada na predição de movimento compensado é usada como um índice de referência e o índice de referência é codificado no bitstream junto com a diferença do vetor de movimento. <Processo de compensação de movimento com base em modo de predição de vetor de movimento normal>
[372] Como mostrado na unidade de interpredição 102 do lado de codificação da Figura 16, quando as informações de interpredição da unidade de derivação de modo de preditor de vetor de movimento normal 301 foi selecionada na unidade de determinação de modo de interpredição 305, a unidade de predição de movimento compensado 306 adquire as informações de interpredição da unidade de determinação de modo de interpredição 305, deriva um modo de interpredição, um índice de referência e um vetor de movimento a um bloco alvo atual e gera um sinal de predição de movimento compensado. O sinal de predição de movimento compensado gerado é fornecido à unidade de determinação de método de predição 105.
[373] Da mesma forma, como mostrado na unidade de interpredição 203 do lado de decodificação da Figura 22, quando o comutador 408 foi conectado à unidade de derivação de modo de preditor de vetor de movimento normal 401 no processo de decodificação, a unidade de predição de movimento compensado 406 adquire informações de interpredição a partir da unidade de derivação de modo de preditor de vetor de movimento normal 401, deriva um modo de interpredição, um índice de referência e um vetor de movimento de um bloco alvo atual e gera um sinal de predição de movimento compensado. O sinal de predição de movimento compensado gerado é fornecido à unidade de sobreposição de sinal de imagem de decodificação 207. <Processo de compensação de movimento com base em modo de mesclagem normal>
[374] Além disso, como mostrado na unidade de interpredição 102 no lado de codificação da Figura 16, quando as informações de interpredição foram selecionadas a partir da unidade de derivação de modo de mesclagem normal 302 na unidade de determinação de modo de interpredição 305, a unidade de predição de movimento compensado 306 adquire as informações de interpredição da unidade de determinação de modo de interpredição 305, deriva um modo de interpredição, um índice de referência e um vetor de movimento a um bloco alvo atual e gera um sinal de predição de movimento compensado. O sinal de predição de movimento compensado gerado é fornecido à unidade de determinação de método de predição 105.
[375] Da mesma forma, como mostrado na unidade de interpredição 203 no lado de decodificação da Figura 22, quando o comutador 408 foi conectado à unidade de derivação de modo de mesclagem normal 402 no processo de decodificação, a unidade de predição de movimento compensado 406 adquire informações de interpredição a partir da unidade de derivação de modo de mesclagem normal 402, deriva um modo de interpredição, um índice de referência e um vetor de movimento a um bloco alvo atual e gera um sinal de predição de movimento compensado. O sinal de predição de movimento compensado gerado é fornecido à unidade de sobreposição de sinal de imagem de decodificação 207. <Processo de compensação de movimento com base em modo de predição de vetor de movimento com base em sub-bloco>
[376] Além disso, como mostrado na unidade de interpredição 102 no lado de codificação da Figura 16, quando as informações de interpredição a partir da unidade de derivação de modo de preditor de vetor de movimento com base em sub-bloco 303 foi selecionada na unidade de determinação de modo de interpredição 305, a unidade de predição de movimento compensado 306 adquire as informações de interpredição da unidade de determinação de modo de interpredição 305, deriva um modo de interpredição, um índice de referência e um vetor de movimento a um bloco alvo atual e gera um sinal de predição de movimento compensado. O sinal de predição de movimento compensado gerado é fornecido à unidade de determinação de método de predição 105.
[377] Da mesma forma, como mostrado na unidade de interpredição 203 no lado de decodificação da Figura 22, quando o comutador 408 foi conectado à unidade de derivação de modo de preditor de vetor de movimento com base em sub-bloco 403 no processo de decodificação, a unidade de predição de movimento compensado 406 adquire informações de interpredição a partir da unidade de derivação de modo de preditor de vetor de movimento com base em sub-bloco 403, deriva um modo de interpredição, um índice de referência e um vetor de movimento a um bloco alvo atual e gera um sinal de predição de movimento compensado. O sinal de predição de movimento compensado gerado é fornecido à unidade de sobreposição de sinal de imagem de decodificação 207. <Processo de compensação de movimento com base em modo de mesclagem com base em sub-bloco>
[378] Além disso, como mostrado na unidade de interpredição 102 no lado de codificação da Figura 16, quando as informações de interpredição a partir da unidade de derivação de modo de mesclagem com base em sub-bloco 304 foi selecionada na unidade de determinação de modo de interpredição 305, a unidade de predição de movimento compensado 306 adquire as informações de interpredição da unidade de determinação de modo de interpredição 305, deriva um modo de interpredição, um índice de referência e um vetor de movimento a um bloco alvo atual e gera um sinal de predição de movimento compensado. O sinal de predição de movimento compensado gerado é fornecido à unidade de determinação de método de predição 105.
[379] Da mesma forma, como mostrado na unidade de interpredição 203 no lado de decodificação da Figura 22, quando o comutador 408 foi conectado à unidade de derivação de modo de mesclagem com base em sub-bloco 404 no processo de decodificação, a unidade de predição de movimento compensado 406 adquire informações de interpredição a partir da unidade de derivação de modo de mesclagem com base em sub-bloco 404, deriva um modo de interpredição, um índice de referência e um vetor de movimento a um bloco alvo atual e gera um sinal de predição de movimento compensado. O sinal de predição de movimento compensado gerado é fornecido à unidade de sobreposição de sinal de imagem de decodificação 207. <Processo de compensação de movimento com base em predição de transformada afim>
[380] No modo de preditor de vetor de movimento normal e no modo de mesclagem normal, a compensação de movimento de um modelo afim pode ser usada com base nos flags a seguir. Os flags a seguir são refletidas nos flags a seguir com base nas condições de interpredição determinadas pela unidade de determinação de modo de interpredição 305 no processo de codificação e são codificados em um bitstream. No processo de decodificação, é identificado se deve desempenhar a compensação de movimento do modelo afim com base nos seguintes flags no bitstream.
[381] O sps_affine_enabled_flag representa se a compensação de movimento do modelo afim pode ou não ser usada na interpredição. Se sps_affine_enabled_flag for 0, a supressão é desempenhada de forma que não seja a compensação de movimento de um modelo afim em unidades de sequências. Além disso, inter_affine_flag e cu_affine_type_flag não são transmitidos na sintaxe de CU (bloco de codificação) de uma sequência de vídeo de codificação. Se sps_affine_enabled_flag for 1, a compensação de movimento de um modelo afim pode ser usada em uma sequência de vídeo de codificação.
[382] O sps_affine_type_flag representa se a compensação de movimento de um modelo afim de seis parâmetros pode ou não ser usada na interpredição. Se sps_affine_type_flag for 0, a supressão é desempenhada de forma que não seja a compensação de movimento do modelo afim de seis parâmetros. Além disso, cu_affine_type_flag não é transmitido na sintaxe de CU de uma sequência de vídeo de codificação. Se sps_affine_type_flag for 1, a compensação de movimento do modelo afim de seis parâmetros pode ser usada na sequência de vídeo de codificação. Quando sps_affine_type_flag não existe, é considerado 0.
[383] Quando uma fatia P ou B é decodificada, se inter_affine_flag for 1 no CU alvo atual, a compensação de movimento do modelo afim é usada para gerar um sinal de predição de movimento compensado do CU alvo atual. Se inter_affine_flag for 0, o modelo afim não é usado no CU alvo atual. Quando inter_affine_flag não existe, é assumido como 0.
[384] Quando uma fatia P ou B é decodificada, se cu_affine_type_flag for 1 no CU alvo atual, a compensação de movimento de um modelo afim de seis parâmetros é usada para gerar um sinal de predição de movimento compensado do CU alvo atual. Se cu_affine_type_flag for 0, a compensação de movimento de um modelo afim de quatro parâmetros é usada para gerar um sinal de predição de movimento compensado do CU alvo atual.
[385] Na compensação de movimento de um modelo afim, porque um índice de referência e um vetor de movimento são derivados em unidades de sub-blocos, um sinal de predição de movimento compensado é gerado usando um índice de referência ou um vetor de movimento que é um alvo em unidades de sub-blocos.
[386] Um modelo afim de quatro parâmetros é um modo no qual o vetor de movimento do sub-bloco é derivado de quatro parâmetros de componentes horizontais e componentes verticais de vetores de movimento dos dois pontos de controle e a compensação de movimento é desempenhada em unidades de sub-blocos. (Segunda modalidade)
[387] Em uma segunda modalidade, no momento da derivação de candidatos de mesclagem de construção afim em unidades de derivação de modo de mesclagem com base em sub-bloco 304 e 404, uma imagem de referência alvo a ser comparada com imagens de referência de pontos de controle afim (CP0, CP1, CP2 e CP3) é fixo e é determinado se uma transformada afim é ou não possível. Por exemplo, a imagem de referência alvo é fixada a uma imagem de referência com índice de imagem de referência 0 e é determinado se uma transformada afim é ou não possível de acordo com cada combinação de pontos de controle afim (CP0, CP1, CP2 e CP3).
[388] Ao comparar a imagem de referência de cada ponto de controle afim com a imagem de referência fixa, é possível construir um modelo afim de três pontos de controle afim com base em um ponto de controle afim superior direito CP1, um ponto de controle afim inferior esquerdo CP2 e um ponto inferior ponto de controle afim direito CP3 sem usar um ponto de controle afim superior esquerdo CP0. Desse modo, é possível melhorar a possibilidade de que o candidato de mesclagem de construção afim pode ser derivado, a precisão de predição do modo de mesclagem afim é melhorada e a eficiência de codificação é melhorada.
[389] Duas ou mais de todas as modalidades descritas acima podem ser combinadas.
[390] Em todas as modalidades descritas acima, uma saída de bitstream pelo dispositivo decodificação de imagem tem um formato de dados específico para que o bitstream possa ser decodificado de acordo com o método de codificação usado na modalidade. Além disso, um dispositivo de decodificação de imagem correspondente ao dispositivo codificação de imagem pode decodificar o bitstream do formato de dados específico.
[391] Quando uma rede com fio ou sem fio é usada para trocar um bitstream entre o dispositivo decodificação de imagem e o dispositivo de decodificação de imagem, o bitstream pode ser convertido em um formato de dados adequado para uma forma de transmissão de um percurso de comunicação e transmissão. Neste caso, um dispositivo de transmissão para converter a saída de bitstream do dispositivo decodificação de imagem em dados codificados de um formato de dados adequado para a forma de transmissão do percurso de comunicação e transmissão os dados codificados para a rede e um dispositivo de recepção para receber os dados codificados da rede, a restauração dos dados codificados para o bitstream e o fornecimento do bitstream para o dispositivo de decodificação de imagem são providos. O dispositivo de transmissão inclui uma memória que armazena em buffer a saída do bitstream pelo dispositivo decodificação de imagem, uma unidade de processamento de pacotes que empacota o bitstream e uma unidade de transmissão que transmite dados codificados em pacotes via rede. O dispositivo de recepção inclui uma unidade de recepção que recebe os dados codificados em pacotes via rede, uma memória que armazena em buffer os dados codificados recebidos e uma unidade de processamento de pacotes que gera um bitstream desempenhando o processamento de pacotes nos dados codificados e fornece o bitstream ao dispositivo de decodificação de imagem.
[392] Além disso, um dispositivo de display pode ser provido adicionando uma unidade de display que exibe uma imagem decodificada pelo dispositivo de decodificação de imagem à configuração. Neste caso, a unidade de exibição lê um sinal de imagem decodificado gerado pela unidade de sobreposição do sinal de imagem de decodificação 207 e armazenado na memória de imagem decodificada 208 e exibe o sinal de imagem decodificado em uma tela.
[393] Além disso, um dispositivo de imagem pode ser provido adicionando uma unidade de imagem que insere uma imagem capturada no dispositivo decodificação de imagem para a configuração. Neste caso, a unidade de imagem insere um sinal de imagem capturado para a unidade de separação de bloco 101.
[394] A Figura 37 mostra um exemplo de uma configuração de hardware de um dispositivo de codificação/decodificação de acordo com a presente modalidade. O dispositivo de codificação/decodificação inclui a configuração do dispositivo decodificação de imagem e o dispositivo de decodificação de imagem de acordo com a modalidade da presente invenção. Um dispositivo de codificação/decodificação relacionado 9000 inclui uma CPU 9001, um codec IC 9002, uma interface I/O 9003, uma memória 9004, um drive de disco óptico 9005, uma interface de rede 9006 e uma interface de vídeo 9009 e as respectivas partes estão conectadas por um barramento 9010.
[395] Uma unidade codificação de imagem 9007 e uma unidade de decodificação de imagem 9008 são tipicamente implementadas como o codec IC
9002. Um processo codificação de imagem do dispositivo codificação de imagem de acordo com a modalidade da presente invenção é executado pela unidade codificação de imagem 9007 e um processo de decodificação de imagem no dispositivo de decodificação de imagem de acordo com a modalidade da presente invenção é desempenhado pela unidade de decodificação de imagem
9008. A interface I/O 9003 é implementada por, por exemplo, uma interface USB e é conectada a um teclado externo 9104, um mouse 9105 e afins. A CPU 9001 controla o dispositivo de codificação/decodificação 9000 de modo que uma operação desejada pelo usuário seja executada com base em uma entrada de operação do usuário via interface I/O 9003. As operações do usuário usando o teclado 9104, o mouse 9105 e afins incluem a seleção de uma função de codificação ou decodificação a ser executada, definição da qualidade da codificação, designação de um destino de entrada/saída de um bitstream, designação de um destino de entrada/saída de uma imagem e afins.
[396] Quando o usuário deseja uma operação de reprodução de uma imagem gravada em um meio de gravação de disco 9100, o drive de disco óptico 9005 lê um bitstream do meio de gravação de disco 9100 que foi inserido e transmite o bitstream lido para a unidade de decodificação de imagem 9008 do codec IC 9002 via barramento 9010. A unidade de decodificação de imagem 9008 executa um processo de decodificação de imagem no bitstream de entrada no dispositivo de decodificação de imagem de acordo com a modalidade da presente invenção e transmite uma imagem decodificada para um monitor externo 9103 via interface de vídeo 9009. O dispositivo de codificação/decodificação 9000 inclui uma interface de rede 9006 e pode ser conectado a um servidor de distribuição externo 9106 e a um terminal portátil 9107 via rede 9101. Quando o usuário deseja reproduzir a imagem gravada no servidor de distribuição 9106 ou no terminal portátil 9107 em vez da imagem gravada no meio de gravação de disco 9100, a interface de rede 9006 adquire um bitstream da rede 9101 em vez de ler o bitstream da entrada meio de gravação de disco 9100. Quando o usuário deseja reproduzir a imagem gravada na memória 9004, o processo de decodificação de imagem no dispositivo de decodificação de imagem de acordo com a modalidade da presente invenção é executado no bitstream gravado na memória 9004.
[397] Quando o usuário deseja desempenhar uma operação de codificação de uma imagem capturada pela câmera externa 9102 e gravar a imagem codificada na memória 9004, a interface de vídeo 9009 insere a imagem da câmera 9102 e transmite a imagem para a unidade decodificação de imagem 9007 de o codec IC 9002 via barramento 9010. A unidade 9007 decodificação de imagem executa um processo decodificação de imagem em uma entrada de imagem via interface de vídeo 9009 no dispositivo decodificação de imagem de acordo com a modalidade da presente invenção para criar um bitstream. Em seguida, o bitstream é transmitido para a memória 9004 via barramento 9010. Quando o usuário deseja gravar um bitstream no meio de gravação de disco 9100 em vez da memória 9004, o drive de disco óptico 9005 grava o bitstream no meio de gravação de disco 9100 que foi inserido.
[398] Também é possível implementar uma configuração de hardware que inclui um dispositivo decodificação de imagem sem incluir um dispositivo de decodificação de imagem ou uma configuração de hardware que inclui um dispositivo de decodificação de imagem sem incluir um dispositivo decodificação de imagem. Tal configuração de hardware é implementada, por exemplo, substituindo o codec IC 9002 pela unidade decodificação de imagem 9007 ou a unidade de decodificação de imagem 9008.
[399] Os processos acima relacionados à codificação e decodificação podem ser implementados como um dispositivo de transmissão, armazenamento e recepção usando hardware e implementado por firmware armazenado em uma memória somente de leitura (ROM), uma memória flash ou afins ou software de um computador ou afins. Um programa de firmware e um programa de software do mesmo podem ser providos gravando os programas em uma mídia de gravação capaz de ser lida por um computador ou afins ou podem ser providos a partir de um servidor através de uma rede com fio ou sem fio ou podem ser providos como difusões de dados de difusão digital terrestre ou por satélite.
[400] A presente invenção foi descrita acima com base nas modalidades. As modalidades são exemplos e será entendido por técnicos no assunto que várias modificações são possíveis em combinações dos respectivos componentes e processos de processamento e tais modificações estão dentro do escopo da presente invenção.
EXPLICAÇÃO DE REFERÊNCIAS 100 Dispositivo de codificação de imagem 101 Unidade de separação de bloco 102 Unidade de interpredição 103 Unidade de intrapredição 104 Memória de imagem decodificada 105 Unidade de determinação de método de predição 106 Unidade de geração residual 107 Unidade de transformada ortogonal/quantização 108 Unidade de codificação de bit strings 109 Unidade de quantização inversa/transformada ortogonal inversa 110 Unidade de sobreposição de sinal de imagem de decodificação 111 Memória de armazenamento de informações de codificação 200 Dispositivo de decodificação de imagem 201 Unidade de decodificação de bit strings 202 Unidade de separação de bloco 203 Unidade de interpredição 204 Unidade de intrapredição 205 Memória de armazenamento de informações de codificação
206 Unidade de quantização inversa/transformada ortogonal inversa 207 Unidade de sobreposição de sinal de imagem de decodificação 208 Memória de imagem decodificada

Claims (6)

REIVINDICAÇÕES
1. Um dispositivo de codificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de codificação, o dispositivo de codificação de imagem em movimento compreendendo: uma unidade de derivação de candidato de mesclagem de herança afim configurada para derivar um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de codificação em um domínio do espaço; uma unidade de derivação de candidato de mesclagem de construção afim configurada para derivar um candidato de mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de codificação em um domínio do espaço ou do tempo; e uma unidade de derivação de candidato de mesclagem de fixação afim configurada para derivar um candidato de mesclagem de fixação afim em que as informações de movimento de um ponto de controle afim são fixadas, em que um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato de mesclagem de fixação afim.
2. Um método de codificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de codificação, o método de codificação de imagem em movimento compreendendo: uma etapa de derivação de candidato de mesclagem de herança afim de derivação de um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de codificação em um domínio do espaço; uma etapa de derivação de candidato de mesclagem de construção afim de derivação de um candidato de mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de codificação em um domínio do espaço ou do tempo; e uma etapa de derivação de candidato de mesclagem de fixação afim de derivação de um candidato de mesclagem de fixação afim em que as informações de movimento de um ponto de controle afim são fixadas, em que um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato de mesclagem de fixação afim.
3. Um programa de codificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de codificação armazenados em um meio de gravação não transitório legível por computador, o programa de codificação de imagem em movimento para fazer um computador executar: uma etapa de derivação de candidato de mesclagem de herança afim de derivação de um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de codificação em um domínio do espaço; uma etapa de derivação de candidato de mesclagem de construção afim de derivação de um candidato de mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de codificação em um domínio do espaço ou do tempo; e uma etapa de derivação de candidato de mesclagem de fixação afim de derivação de um candidato de mesclagem de fixação afim em que as informações de movimento de um ponto de controle afim são fixadas, em que um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato de mesclagem de fixação afim.
4. Um dispositivo de decodificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de decodificação, o dispositivo de decodificação de imagem em movimento compreendendo:
uma unidade de derivação de candidato de mesclagem de herança afim configurada para derivar um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de decodificação em um domínio do espaço; uma unidade de derivação de candidato de mesclagem de construção afim configurada para derivar um candidato de mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de decodificação em um domínio do espaço ou do tempo; e uma unidade de derivação de candidato de mesclagem de fixação afim configurada para derivar um candidato de mesclagem de fixação afim em que as informações de movimento de um ponto de controle afim são fixadas, em que um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato de mesclagem de fixação afim.
5. Um método de decodificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de decodificação, o método de decodificação de imagem em movimento compreendendo: uma etapa de derivação de candidato de mesclagem de herança afim de derivação de um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de decodificação em um domínio do espaço; uma etapa de derivação de candidato de mesclagem de construção afim de derivação de um candidato de mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de decodificação em um domínio do espaço ou do tempo; e uma etapa de derivação de candidato de mesclagem de fixação afim de derivação de um candidato de mesclagem de fixação afim em que as informações de movimento de um ponto de controle afim são fixadas, em que um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato de mesclagem de fixação afim.
6. Um programa de decodificação de imagem em movimento para desempenhar uma transformada afim em unidades de blocos de decodificação armazenados em um meio de gravação não transitório legível por computador, o programa de decodificação de imagem em movimento para fazer um computador executar: uma etapa de derivação de candidato de mesclagem de herança afim de derivação de um candidato de mesclagem de herança afim para herdar um modelo afim de blocos vizinhos a um bloco alvo de decodificação em um domínio do espaço; uma etapa de derivação de candidato de mesclagem de construção afim de derivação de um candidato de mesclagem de construção afim a partir de uma pluralidade de elementos de informações de movimento de blocos vizinhos do bloco alvo de decodificação em um domínio do espaço ou do tempo; e uma etapa de derivação de candidato de mesclagem de fixação afim de derivação de um candidato de mesclagem de fixação afim em que as informações de movimento de um ponto de controle afim são fixadas, em que um vetor de movimento de cada ponto de controle afim é fixado em (0, 0) no candidato de mesclagem de fixação afim.
MEMÓRIA DE FIGURA 1 ARMAZENAMENTO
DE INFORMAÇÕES
DE CODIFICAÇÃO Petição 870210060325, de 02/07/2021, pág. 126/185
UNIDADE DE UNIDADE DE
UNIDADE DE DETERMINAÇÃO
SEPARAÇÃO UNIDADE DE CODIFICAÇÃO
DE BLOCO INTERPREDIÇÃO DE MÉTODO DE DE BIT STRINGS
PREDIÇÃO 1/60
UNIDADE DE
INTRAPREDIÇÃO
MEMÓRIA DE UNIDADE DE UNIDADE DE
IMAGEM SOBREPOSIÇÃO DE QUANTIZAÇÃO DECODIFICADA SINAL DE IMAGEM DE INVERSA /
DECODIFICAÇÃO TRANSFORMADA
ORTOGONAL INVERSA
UNIDADE DE UNIDADE DE
GERAÇÃO TRANSFORMADA RESIDUAL ORTOGONAL/
QUANTIZAÇÃO
BR112021012479-9A 2018-12-28 2019-12-20 Dispositivo de codificação de imagem em movimento, método de codificação de imagem em movimento, programa de codificação de imagem em movimento, dispositivo de decodificação de imagem em movimento, método de decodificação de imagem em movimento e programa de decodificação de imagem em movimento BR112021012479A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018-247409 2018-12-28
JP2018247409 2018-12-28
PCT/JP2019/050012 WO2020137850A1 (ja) 2018-12-28 2019-12-20 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム

Publications (1)

Publication Number Publication Date
BR112021012479A2 true BR112021012479A2 (pt) 2021-09-08

Family

ID=71125986

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021012479-9A BR112021012479A2 (pt) 2018-12-28 2019-12-20 Dispositivo de codificação de imagem em movimento, método de codificação de imagem em movimento, programa de codificação de imagem em movimento, dispositivo de decodificação de imagem em movimento, método de decodificação de imagem em movimento e programa de decodificação de imagem em movimento

Country Status (8)

Country Link
US (4) US11503278B2 (pt)
EP (1) EP3905688A4 (pt)
JP (5) JP6763466B2 (pt)
KR (2) KR102583811B1 (pt)
CN (1) CN112954366A (pt)
BR (1) BR112021012479A2 (pt)
MX (1) MX2021007708A (pt)
WO (1) WO2020137850A1 (pt)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020124040A1 (en) * 2018-12-13 2020-06-18 Beijing Dajia Internet Information Technology Co., Ltd. Method for deriving constructed affine merge candidates
KR102443965B1 (ko) * 2019-01-01 2022-09-19 엘지전자 주식회사 히스토리 기반 모션 벡터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
WO2020172342A1 (en) * 2019-02-20 2020-08-27 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of motion vector rounding, clipping and storage for inter prediction

Family Cites Families (17)

* 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
EP2664146A1 (en) 2011-01-14 2013-11-20 Motorola Mobility LLC Joint spatial and temporal block merge mode for hevc
MX340433B (es) 2011-12-16 2016-07-08 Panasonic Ip Corp America Metodo de codificacion de imagenes de video, dispositivo de codificacion de imagenes de video, metodo de decodificacion de imagenes de video, dispositivo de decodificacion de imagenes de video y dispositivo de codificacion/decodificacion de imagenes de video.
US9838710B2 (en) 2014-12-23 2017-12-05 Intel Corporation Motion estimation for arbitrary shapes
CN116074532A (zh) * 2016-02-01 2023-05-05 Oppo广东移动通信有限公司 预测图像生成装置、运动图像解码装置、以及运动图像编码装置
WO2017147765A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Methods for affine motion compensation
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
JP7026049B2 (ja) * 2016-09-27 2022-02-25 シャープ株式会社 アフィン動きベクトル導出装置、予測画像生成装置、動画像復号装置、および動画像符号化装置
US10448010B2 (en) 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
EP3571839B1 (en) 2017-02-06 2020-10-28 Huawei Technologies Co., Ltd. Video encoder and decoder for predictive partitioning
CN116437104A (zh) 2017-05-19 2023-07-14 松下电器(美国)知识产权公司 解码方法和编码方法
JP2020529781A (ja) * 2017-08-03 2020-10-08 エルジー エレクトロニクス インコーポレイティド インター予測モードベースの画像処理方法及びそのための装置
US11503300B2 (en) * 2018-05-25 2022-11-15 Hfi Innovation Inc. Method and apparatus of affine mode motion-vector prediction derivation for video coding system
US11140398B2 (en) * 2018-08-20 2021-10-05 Mediatek Inc. Methods and apparatus for generating affine candidates
US10944984B2 (en) * 2018-08-28 2021-03-09 Qualcomm Incorporated Affine motion prediction
CN111010571B (zh) * 2018-10-08 2023-05-16 北京字节跳动网络技术有限公司 组合仿射Merge候选的生成和使用

Also Published As

Publication number Publication date
EP3905688A1 (en) 2021-11-03
US11917133B2 (en) 2024-02-27
JP2020109964A (ja) 2020-07-16
US11503278B2 (en) 2022-11-15
US20230328230A1 (en) 2023-10-12
KR102583811B1 (ko) 2023-09-26
JP2023165848A (ja) 2023-11-17
CN112954366A (zh) 2021-06-11
CN112352433A (zh) 2021-02-09
US20210243436A1 (en) 2021-08-05
US20230328232A1 (en) 2023-10-12
MX2021007708A (es) 2021-08-05
JP6763466B2 (ja) 2020-09-30
JP2020195165A (ja) 2020-12-03
JP7015013B2 (ja) 2022-02-02
KR20210015899A (ko) 2021-02-10
JP2022051734A (ja) 2022-04-01
US20230020931A1 (en) 2023-01-19
JP7331916B2 (ja) 2023-08-23
KR20230137505A (ko) 2023-10-04
WO2020137850A1 (ja) 2020-07-02
JP2023129691A (ja) 2023-09-14
EP3905688A4 (en) 2022-09-28

Similar Documents

Publication Publication Date Title
BR112021012484A2 (pt) Dispositivo de codificação de imagem, método de codificação de imagem, e programa de codificação de imagem, dispositivo de decodificação de imagem, método de decodificação de imagem e programa de decodificação de imagem
BR112021012479A2 (pt) Dispositivo de codificação de imagem em movimento, método de codificação de imagem em movimento, programa de codificação de imagem em movimento, dispositivo de decodificação de imagem em movimento, método de decodificação de imagem em movimento e programa de decodificação de imagem em movimento
JP7405127B2 (ja) 画像復号装置、画像復号方法及び画像復号プログラム
JP2023120329A (ja) 画像復号装置、画像復号方法及び画像復号プログラム
BR112021012481A2 (pt) Dispositivo de codificação de imagem em movimento, método de codificação de imagem em movimento, programa de codificação de imagem em movimento, dispositivo de decodificação de imagem em movimento, método de decodificação de imagem em movimento, e programa de decodificação de imagem em movimento
BR112021012485A2 (pt) Dispositivo de codificação de imagem, método de codificação de imagem, e programa de codificação de imagem, dispositivo de decodificação de imagem, método de decodificação de imagem, e programa de decodificação de imagem
BR112021016738A2 (pt) Dispositivo de codificação de imagem, método de codificação de imagem, programa de codificação de imagem, dispositivo de decodificação de imagem, método de decodificação de imagem e programa de decodificação de imagem
BR112021012418A2 (pt) Dispositivo de codificação de imagem, método de codificação de imagem, dispositivo de decodificação de imagem e método de decodificação de imagem
JP2020109936A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム
RU2772815C1 (ru) Устройство кодирования движущихся кадров, способ кодирования движущихся кадров, устройство декодирования движущихся кадров, способ декодирования движущихся кадров
JP2020108081A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム
JP2020108083A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム
CN112352433B (zh) 动图像编码装置、动图像编码方法以及动图像编码程序、动图像解码装置、动图像解码方法以及动图像解码程序
JP7137744B2 (ja) 画像復号装置、画像復号方法及び画像復号プログラム
JP7418687B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
RU2779930C2 (ru) Устройство декодирования динамических изображений, способ декодирования динамических изображений, программа декодирования динамических изображений, устройство кодирования динамических изображений, способ кодирования динамических изображений и программа кодирования динамических изображений
JP2020109934A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム
JP2020108084A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2020108079A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム
JP2020108080A (ja) 画像復号装置、画像復号方法及び画像復号プログラム
JP2020108082A (ja) 画像復号装置、画像復号方法及び画像復号プログラム
JP2020150530A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム
JP2020108085A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム