BR122021009778A2 - Método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens - Google Patents

Método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens Download PDF

Info

Publication number
BR122021009778A2
BR122021009778A2 BR122021009778-0A BR122021009778A BR122021009778A2 BR 122021009778 A2 BR122021009778 A2 BR 122021009778A2 BR 122021009778 A BR122021009778 A BR 122021009778A BR 122021009778 A2 BR122021009778 A2 BR 122021009778A2
Authority
BR
Brazil
Prior art keywords
block
candidate
current block
affine
affine mvp
Prior art date
Application number
BR122021009778-0A
Other languages
English (en)
Inventor
Jaeho Lee
Original Assignee
Lg Electronics Inc.
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 Lg Electronics Inc. filed Critical Lg Electronics Inc.
Publication of BR122021009778A2 publication Critical patent/BR122021009778A2/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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

Abstract

método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens. trata-se de um método por meio do qual um aparelho de decodificação realiza decodificação de imagem, de acordo com o presente documento, que compreende as etapas de: obter informações de predição de movimento sobre um bloco atual a partir de um fluxo de bits; gerar uma lista de candidato de mvp afim para o bloco atual; derivar cpmvps para cps do bloco atual com base na lista de candidato de mvp afim; derivar cpmvds para os cps do bloco atual com base nas informações de predição de movimento; derivar cpmvs para os cps do bloco atual com base nos cpmvps e nos cpmvds; e derivar amostras de predição para o bloco atual com base nos cpmvs.

Description

MÉTODO E APARELHO DE DECODIFICAÇÃO DE IMAGENS COM BASE EM PREDIÇÃO DE MOVIMENTO AFIM USANDO LISTA DE CANDIDATOS A MVP AFIM NO SISTEMA DE CODIFICAÇÃO DE IMAGENS Pedido dividido do BR112021004556-2, depositado em 10/09/2019 Campo da revelação
[001] A presente revelação refere-se a uma técnica de codificação de vídeo e, mais particularmente, a um método de decodificação de vídeo e um aparelho baseado em predição de movimento afim em um sistema de codificação de vídeo.
Técnica relacionada
[002] A demanda por imagens de alta resolução e alta qualidade, tais como imagens HD (Alta Definição) e imagens UHD (Definição Ultra Alta) aumentou em vários campos. Visto que dados de imagem têm alta resolução e alta qualidade, a quantidade de informações ou bits a serem transmitidos aumenta em relação aos dados e imagem de legado. Portanto, quando dados de imagem forem transmitidos usando uma mídia tal como uma linha de banda larga convencional com/sem fio ou dados de imagem forem armazenados usando uma mídia de armazenamento existente, os custos de transmissão e os custos de armazenamento dos mesmos são aumentados.
[003] De modo correspondente, há uma necessidade por uma técnica de compactação de imagens altamente eficiente para transmitir, armazenar e reproduzir efetivamente informações de imagens de alta resolução e alta qualidade.
SUMÁRIO
[004] Um objetivo técnico da presente revelação consiste em proporcionar um método e um aparelho para aperfeiçoar a eficiência de codificação de vídeo.
[005] Outro objetivo técnico da presente revelação consiste em proporcionar um método de decodificação de vídeo e um aparelho que constrói uma lista de candidato de MVP afim de um bloco atual derivando-se candidatos de MVP afim construídos com base em blocos vizinhos apenas quando todos os vetores de movimento de candidato para CPs estiverem disponíveis e realizar uma predição do bloco atual com base na lista de candidato de MVP afim construído.
[006] Ainda outro objetivo técnico da presente revelação consiste em proporcionar um método de decodificação de vídeo e um aparelho que deriva um candidato de MVP afim utilizando-se um vetor de movimento de candidato derivado a partir do processo para derivar um candidato de MVP afim construído como um candidato de MVP afim adicionado quando o número de candidatos de MVP afim herdados disponíveis e candidatos de MVP afim construídos, ou seja, o número de candidatos da lista de candidatos de MVP for menor que o número máximo; e realizar uma predição do bloco atual com base na lista de candidato de MVP afim construído.
[007] De acordo com uma modalidade da presente revelação, proporciona-se um método de decodificação de vídeo realizado por um aparelho de decodificação. O método compreende obter informações de predição de movimento para um bloco atual a partir de um fluxo de bits; construir uma lista de candidato de Preditor de Vetor de Movimento (MVP) afim para o bloco atual; derivar Preditores de Vetor de Movimento de Ponto de Controle (CPMVPs) para Pontos de Controle (CPs) do bloco atual com base na lista de candidato de MVP afim; derivar Diferenças de Vetor de Movimento de Ponto de Controle (CPMVDs) para os CPs do bloco atual com base nas informações de predição de movimento; derivar Vetores de Movimento de Ponto de Controle (CPMVs) para os CPs do bloco atual com base nos CPMVPs e nos CPMVDs; derivar amostras de predição para o bloco atual com base nos CPMVs; e gerar uma gravura (picture) reconstruída para o bloco atual com base nas amostras de predição derivadas, em que a construção da lista de candidato de MVP afim compreende verificar se um candidato de MVP afim herdado do bloco atual está disponível, em que o candidato de MVP afim herdado é derivado quando o candidato de MVP afim herdado estiver disponível; verificar se um candidato de MVP afim construído do bloco atual está disponível, em que o candidato de MVP afim construído é derivado quando o candidato de MVP afim construído estiver disponível, e o candidato de MVP afim construído inclui um vetor de movimento de candidato para CP0 do bloco atual, um vetor de movimento de candidato para CP1 do bloco atual, e um vetor de movimento de candidato para CP2 do bloco atual; quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP0 estiver disponível, derivar um primeiro candidato de MVP afim, em que o primeiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP0 como vetores de movimento de candidato para os CPs; quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP1 estiver disponível, derivar um segundo candidato de MVP afim, em que o segundo candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP1 como vetores de movimento de candidato para os CPs; quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP2 estiver disponível, derivar um terceiro candidato de MVP afim, em que o terceiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP2 como vetores de movimento de candidato para os CPs; quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quarto candidato de MVP afim que inclui um MVP temporal derivado com base em um bloco vizinho temporal do bloco atual como vetores de movimento de candidato para os CPs; e quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quinto candidato de MVP afim que inclui um vetor de movimento zero como vetores de movimento de candidato para os CPs.
[008] De acordo com outra modalidade da presente revelação, proporcionase um aparelho de decodificação que realiza codificação de vídeo. O aparelho de decodificação compreende um decodificador de entropia que obtém informações de predição de movimento para um bloco atual; um preditor que constrói uma lista de candidato de Preditor de Vetor de Movimento (MVP) afim para o bloco atual, derivar Preditores de Vetor de Movimento de Ponto de Controle (CPMVPs) para Pontos de Controle (CPs) do bloco atual com base na lista de candidato de MVP afim, derivar Diferenças de Vetor de Movimento de Ponto de Controle (CPMVDs) para os CPs do bloco atual com base nas informações de predição de movimento, derivar Vetores de Movimento de Ponto de Controle (CPMVs) para os CPs do bloco atual com base nos CPMVDs, derivar amostras de predição para o bloco atual com base nos CPMVs; e um adicionador que gera uma gravura reconstruída para o bloco atual com base nas amostras de predição derivadas, em que a lista de candidato de MVP afim é construída com base na verificação se um candidato de MVP afim herdado do bloco atual está disponível, em que o candidato de MVP afim herdado é derivado quando o candidato de MVP afim herdado estiver disponível; verificar se um candidato de MVP afim construído do bloco atual estiver disponível, em que o candidato de MVP afim construído é derivado quando o candidato de MVP afim construído estiver disponível, e o candidato de MVP afim construído inclui um vetor de movimento de candidato para CP0 do bloco atual, um vetor de movimento de candidato para CP1 do bloco atual, e um vetor de movimento de candidato para CP2 do bloco atual; quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP0 estiver disponível, derivar um primeiro candidato de MVP afim, em que o primeiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP0 como vetores de movimento de candidato para os CPs; quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP1 estiver disponível, derivar um segundo candidato de MVP afim, em que o segundo candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP1 como vetores de movimento de candidato para os CPs; quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP2 estiver disponível, derivar um terceiro candidato de MVP afim, em que o terceiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP2 como vetores de movimento de candidato para os CPs; quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quarto candidato de MVP afim que inclui um MVP temporal derivado com base em um bloco vizinho temporal do bloco atual como vetores de movimento de candidato para os CPs; e quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quinto candidato de MVP afim que inclui um vetor de movimento zero como vetores de movimento de candidato para os CPs.
[009] De acordo com ainda outra modalidade da presente revelação, proporciona-se um método de codificação de vídeo realizado por um aparelho de codificação. O método compreende construir uma lista de candidato de Preditor de Vetor de Movimento (MVP) afim para um bloco atual; derivar Preditores de Vetor de Movimento de Ponto de Controle (CPMVPs) para Pontos de Controle (CPs) do bloco atual com base na lista de candidato de MVP afim; derivar CPMVs para os CPs do bloco atual; derivar Diferenças de Vetor de Movimento de Ponto de Controle (CPMVDs) para os CPs do bloco atual com base nos CPMVPs e nos CPMVs; e codificar informações de predição de movimento que incluem informações sobre os CPMVDs, em que a construção da lista de candidato de MVP afim compreende verificar se um candidato de MVP afim herdado do bloco atual está disponível, em que o candidato de MVP afim herdado é derivado quando o candidato de MVP afim herdado estiver disponível; verificar se um candidato de MVP afim construído do bloco atual está disponível, em que o candidato de MVP afim construído é derivado quando o candidato de MVP afim construído estiver disponível, e o candidato de MVP afim construído inclui um vetor de movimento de candidato para CP0 do bloco atual, um vetor de movimento de candidato para CP1 do bloco atual, e um vetor de movimento de candidato para CP2 do bloco atual; quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP0 estiver disponível, derivar um primeiro candidato de MVP afim, em que o primeiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP0 como vetores de movimento de candidato para os CPs; quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP1 estiver disponível, derivar um segundo candidato de MVP afim, em que o segundo candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP1 como vetores de movimento de candidato para os CPs; quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP2 estiver disponível, derivar um terceiro candidato de MVP afim, em que o terceiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP2 como vetores de movimento de candidato para os CPs; quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quarto candidato de MVP afim que inclui um MVP temporal derivado com base em um bloco vizinho temporal do bloco atual como vetores de movimento de candidato para os CPs; e quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quinto candidato de MVP afim que inclui um vetor de movimento zero como vetores de movimento de candidato para os CPs.
[010] De acordo com ainda outra modalidade da presente revelação, proporciona-se um aparelho de codificação de vídeo. O aparelho de codificação compreende um preditor que constrói uma lista de candidato de Preditor de Vetor de Movimento (MVP) afim para um bloco atual, derivar Preditores de Vetor de Movimento de Ponto de Controle (CPMVPs) para Pontos de Controle (CPs) do bloco atual, e derivar CPMVs para os CPs do bloco atual; um subtrator que deriva Diferenças de Vetor de Movimento de Ponto de Controle (CPMVDs) para os CPs do bloco atual com base nos CPMVPs e nos CPMVs; e um codificador de entropia que codifica informações de predição de movimento que incluem informações sobre os CPMVDs, em que a lista de candidato de MVP afim é construída com base na verificação se um candidato de MVP afim herdado do bloco atual está disponível, em que o candidato de MVP afim herdado é derivado quando o candidato de MVP afim herdado estiver disponível; verificar se um candidato de MVP afim construído do bloco atual está disponível, em que o candidato de MVP afim construído é derivado quando o candidato de MVP afim construído estiver disponível, e o candidato de MVP afim construído inclui um vetor de movimento de candidato para CP0 do bloco atual, um vetor de movimento de candidato para CP1 do bloco atual, e um vetor de movimento de candidato para CP2 do bloco atual; quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP0 estiver disponível, derivar um primeiro candidato de MVP afim, em que o primeiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP0 como vetores de movimento de candidato para os CPs; quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP1 estiver disponível, derivar um segundo candidato de MVP afim, em que o segundo candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP1 como vetores de movimento de candidato para os CPs; quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP2 estiver disponível, derivar um terceiro candidato de MVP afim, em que o terceiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP2 como vetores de movimento de candidato para os CPs; quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quarto candidato de MVP afim que inclui um MVP temporal derivado com base em um bloco vizinho temporal do bloco atual como vetores de movimento de candidato para os CPs; e quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quinto candidato de MVP afim que inclui um vetor de movimento zero como vetores de movimento de candidato para os CPs.
[011] De acordo com a presente revelação, pode-se aperfeiçoar a eficiência geral de compactação de imagem/vídeo.
[012] De acordo com a presente revelação, pode-se aperfeiçoar a eficiência de codificação de vídeo com base em predição de movimento afim.
[013] De acordo com a presente revelação, em derivar uma lista de candidato de MVP afim, somente quando todos os vetores de movimento de candidato para CPs de um candidato de MVP afim construído estiverem disponíveis, o candidato de MVP afim construído pode ser adicionado, através do qual a complexidade da derivação de um candidato de MVP afim construído e da construção de uma lista de candidato de MVP afim podem ser reduzidas e a eficiência de codificação pode ser aperfeiçoada.
[014] De acordo com a presente revelação, em derivar uma lista de candidato de MVP afim, um candidato de MVP afim adicional pode ser derivado com base em um vetor de movimento de candidato para um CP derivado a partir de um processo para derivar um candidato de MVP afim construído, através do qual a complexidade da construção de uma lista de candidato de MVP afim pode ser reduzida e a eficiência de codificação pode ser aperfeiçoada.
[015] De acordo com a presente revelação, em derivar um candidato de MVP afim herdado, somente quando um bloco vizinho superior estiver incluído em uma CTU atual, o candidato de MVP afim herdado pode ser derivado utilizando-se o bloco vizinho superior, através do qual a quantidade de armazenamento de um buffer linear para predição afim pode ser reduzida e custos com hardware podem ser minimizados.
BREVE DESCRIÇÃO DOS DESENHOS
[016] A Figura 1 ilustra um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente revelação pode ser aplicada.
[017] A Figura 2 é um diagrama esquemático que ilustra uma configuração de um aparelho de codificação de vídeo/imagem ao qual a(s) modalidade(s) do presente documento pode(m) ser aplicada(s).
[018] A Figura 3 é um diagrama esquemático que ilustra uma configuração de um aparelho de decodificação de vídeo/imagem ao qual a(s) modalidade(s) do presente documento pode(m) ser aplicada(s).
[019] A Figura 4 ilustra um movimento expresso através de um modelo de movimento afim.
[020] A Figura 5 ilustra o modelo de movimento afim no qual vetores de movimento para 3 pontos de controle são usados.
[021] A Figura 6 ilustra um modelo de movimento afim no qual vetores de movimento para 2 pontos de controle são usados.
[022] A Figura 7 ilustra um método para derivar um vetor de movimento em uma base por sub-bloco baseado no modelo de movimento afim.
[023] A Figura 8 é um fluxograma que ilustra um método de predição de movimento afim de acordo com uma modalidade da presente revelação.
[024] A Figura 9 ilustra um método para derivar um preditor de vetor de movimento em um ponto de controle de acordo com uma modalidade da presente revelação.
[025] A Figura 10 ilustra um método para derivar um preditor de vetor de movimento em um ponto de controle de acordo com uma modalidade da presente revelação.
[026] A Figura 11 ilustra um exemplo de predição afim realizada quando o bloco vizinho A for selecionado como um candidato de união afim.
[027] A Figura 12 ilustra blocos vizinhos para derivar o candidato afim herdado.
[028] A Figura 13 ilustra candidatos espaciais para o candidato afim construído.
[029] A Figura 14 ilustra um exemplo para construir uma lista de MVP afim.
[030] A Figura 15 ilustra um exemplo para derivar o candidato construído.
[031] A Figura 16 ilustra um exemplo para derivar o candidato construído.
[032] A Figura 17 ilustra posições de blocos vizinhos varridas para derivar candidatos afim herdados.
[033] A Figura 18 ilustra um exemplo para derivar o candidato construído quando um modelo de movimento afim de quatro parâmetros for aplicado ao bloco atual.
[034] A Figura 19 ilustra um exemplo para derivar o candidato construído quando um modelo de movimento afim de seis parâmetros for aplicado ao bloco atual.
[035] As Figuras 20a a 20b ilustram uma modalidade para derivar o candidato afim herdado.
[036] A Figura 21 ilustra um método de codificação de vídeo realizado por um aparelho de codificação de acordo com a presente revelação.
[037] A Figura 22 ilustra um aparelho de codificação que realiza um método de codificação de vídeo de acordo com a presente revelação.
[038] A Figura 23 ilustra um método de decodificação de vídeo realizado por um aparelho de decodificação de acordo com a presente revelação.
[039] A Figura 24 ilustra um aparelho de decodificação que realiza um método de decodificação de vídeo de acordo com a presente revelação.
[040] A Figura 25 ilustra uma estrutura de sistema de difusão de dados de conteúdos à qual as modalidades da presente revelação são aplicadas.
DESCRIÇÃO DAS MODALIDADES EXEMPLIFICADORAS
[041] A presente revelação pode ser modificada de várias formas, e modalidades específicas da mesma serão descritas e ilustradas nos desenhos. No entanto, as modalidades não são destinadas a limitar a revelação. Os termos usados na descrição a seguir são usados para meramente descrever modalidades específicas, mas não são destinadas a limitar a revelação. Uma expressão de um número singular inclui uma expressão do número no plural, desde que seja claramente lida diferentemente. Os termos “incluir” e “ter” são destinados a indicar que recursos, números, etapas, operações, elementos, componentes ou combinações dos mesmos usados na descrição a seguir existem e, portanto, deve-se compreender que a possibilidade de existência ou adição de um ou mais diferentes recursos, números, etapas, operações, elementos, componentes ou combinações dos mesmos não é excluída.
[042] Por outro lado, elementos nos desenhos descritos na revelação são independentemente desenhados para o propósito de conveniência para explicação de diferentes funções específicas, e não significa que os elementos são incorporados por hardware independente ou software independente. Por exemplo, dois ou mais elementos podem ser combinados para formar um elemento único ou um elemento pode ser dividido em vários elementos. As modalidades cujos elementos são combinados e/ou divididos pertencem à revelação sem divergir do conceito da revelação.
[043] Doravante, as modalidades da presente revelação serão descritas em detalhes com referência aos desenhos anexos. Além disso, referências numéricas similares são usadas para indicar elementos similares no decorrer dos desenhos, e as mesmas descrições nos elementos similares serão omitidas.
[044] A Figura 1 ilustra um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente revelação pode ser aplicada.
[045] Referindo-se à Figura 1, um sistema de codificação de vídeo/imagem pode incluir um primeiro dispositivo (dispositivo de origem) e um segundo dispositivo (dispositivo de recepção). O dispositivo de origem pode entregar informações ou dados de vídeo/imagem codificados sob a forma de um arquivo ou streaming ao dispositivo de recepção através de uma mídia de armazenamento digital ou rede.
[046] O dispositivo de origem pode incluir uma fonte de vídeo, um aparelho de codificação, e um transmissor. O dispositivo de recepção pode incluir um receptor, um aparelho de decodificação, e um renderizador. O aparelho de codificação pode ser denominado um aparelho de codificação de vídeo/imagem, e o aparelho de decodificação pode ser denominado como um aparelho de decodificação de vídeo/imagem. O transmissor pode ser incluído no aparelho de codificação. O receptor pode ser incluído no aparelho de decodificação. O renderizador pode incluir uma tela, e a tela pode ser configurada como um dispositivo separado ou um componente externo.
[047] A fonte de vídeo pode adquirir vídeo/imagem através de um processo de capturar, sintetizar, ou gerar o vídeo/imagem. A fonte de vídeo pode incluir um dispositivo de captura de vídeo/imagem e/ou um dispositivo de geração de vídeo/imagem. O dispositivo de captura de vídeo/imagem pode incluir, por exemplo, uma ou mais câmeras, arquivos de vídeo/imagem incluindo vídeos/imagens previamente capturados, e similares. O dispositivo de geração de vídeo/imagem pode incluir, por exemplo, computadores, tablets e smartphones, e pode gerar (eletronicamente) vídeo/imagens. Por exemplo, um vídeo/imagem virtual pode ser gerado através de um computador, ou similares. Nesse caso, o processo de captura de vídeo/imagem pode ser substituído por um processo de gerar dados relacionados.
[048] O aparelho de codificação pode codificar vídeo/imagem de entrada. O aparelho de codificação pode realizar uma série de procedimentos como predição, transformada, e quantização para compactação e eficiência de codificação. Os dados codificados (informações de vídeo/imagem codificadas) podem ser emitidos sob a forma de um fluxo de bits.
[049] O transmissor pode transmitir as informações ou dados de imagem/imagem codificados emitidas sob a forma de um fluxo de bits ao receptor do dispositivo de recepção através de uma mídia de armazenamento digital ou uma rede sob a forma de um arquivo ou streaming. A mídia de armazenamento digital pode incluir várias mídias de armazenamento como USB, SD, CD, DVD, Blu-ray, HDD, SSD, e similares. O transmissor pode incluir um elemento para gerar um arquivo de mídia através de um formato de arquivo predeterminado e pode incluir um elemento para transmissão através de uma rede de radiodifusão/comunicação. O receptor pode receber/extrair o fluxo de bits e transmitir o fluxo de bits recebido ao aparelho de decodificação.
[050] O aparelho de decodificação pode decodificar o vídeo/imagem realizando-se uma série de procedimentos tais como desquantização, transformada inversa, e predição correspondente à operação do aparelho de codificação.
[051] O renderizador pode renderizar o vídeo/imagem decodificado. O vídeo/imagem renderizado pode ser exibido através da tela.
[052] Este documento se refere à codificação de vídeo/imagem. Por exemplo, os métodos/modalidades revelados neste documento podem ser aplicados a um método revelado na codificação de vídeo versátil (VVC), padrão EVC (codificação de vídeo essencial), padrão AOMedia Video 1 (AV1), padrão de 2a geração de codificação de vídeo e áudio (AVS2), ou o padrão de codificação de vídeo/imagem de próxima geração (ex. H.267 ou H.268, etc.).
[053] Este documento apresenta várias modalidades de codificação de vídeo/imagem, e as modalidades podem ser realizadas em combinação umas com as outras exceto onde mencionado em contrário.
[054] Neste documento, o vídeo pode se referir a uma série de imagens com o passar do tempo. Em geral, gravura se refere a uma unidade que representa uma imagem em um fuso-horário específico, e uma fatia/ladrilho é uma unidade que constitui parte de uma gravura em codificação. A fatia/ladrilho pode incluir uma ou mais unidades de árvore de codificação (CTUs). Uma gravura pode consistir em uma ou mais fatias/ladrilhos (tiles). Uma gravura pode consistir em um ou mais grupos de ladrilho. Um grupo de ladrilho pode incluir um ou mais ladrilhos. Um tijolo (brick) pode representar uma região retangular de fileiras de CTU em um ladrilho (tile) em uma gravura. Um ladrilho pode ser particionado em múltiplos tijolos (bricks), sendo que cada um consiste em uma ou mais fileiras de CTU dentro do ladrilho. Um ladrilho que não é particionado em múltiplos tijolos também pode ser referido como um tijolo. Uma varredura de tijolo é uma ordenação sequencial específica de CTUs que particionam uma gravura em que as CTUs são ordenadas consecutivamente em varredura rasterizada de CTU em um tijolo, tijolos dentro de um ladrilho são ordenados consecutivamente em uma varredura rasterizada dos tijolos do ladrilho, e os ladrilhos em uma gravura são ordenados consecutivamente em uma varredura rasterizada dos ladrilhos da gravura. Um ladrilho é uma região retangular de CTUs dentro de uma coluna de ladrilho particular e uma fileira de ladrilho particular em uma gravura. A coluna de ladrilho é uma região retangular de CTUs tendo uma altura igual à altura da gravura e uma largura especificada pelos elementos de sintaxe no conjunto de parâmetro de gravura. A fileira de ladrilho é uma região retangular de CTUs tendo uma altura especificada pelos elementos de sintaxe no conjunto de parâmetro de gravura e uma largura igual à largura da gravura. Uma varredura de ladrilho é uma ordenação específica de CTUs que particionam uma gravura em que as CTUs são ordenadas consecutivamente em varredura rasterizada de CTU em um ladrilho enquanto os ladrilhos em uma gravura são ordenados consecutivamente em uma varredura rasterizada dos ladrilhos da gravura. Uma fatia inclui um número inteiro de tijolos de uma gravura que pode ser exclusivamente contida em uma unidade de NAL simples. Uma fatia pode consistir em um número de ladrilhos completos ou somente uma sequência consecutiva de tijolos completos de um ladrilho. Os grupos de ladrilho e fatias podem ser usados de modo intercambiável neste documento. Por exemplo, neste documento, um grupo de ladrilho/cabeçalho de grupo de ladrilho pode ser denominado como uma fatia/cabeçalho de fatia.
[055] Um pixel ou um pel pode significar uma menor unidade que constitui uma gravura (ou imagem). Da mesma forma, ‘amostra’ pode ser usada como um termo correspondente a um pixel. Uma amostra pode, em geral, representar um pixel ou um valor de um pixel e pode representar somente um pixel/valor de pixel de um componente de luma ou somente um pixel/valor de pixel de um componente de croma.
[056] Uma unidade pode representar uma unidade básica de processamento de imagem. A unidade pode incluir pelo menos uma dentre regiões específicas da gravura e informações relacionadas à região. Uma unidade pode incluir um bloco de luma e dois blocos de croma (ex. cb, cr). A unidade pode ser usada de modo intercambiável com termos como bloco ou área em alguns casos. Em um caso geral, um bloco M×N pode incluir amostras (ou arranjos de amostra) ou um conjunto (ou arranjo) de coeficientes de transformada de M colunas e N fileiras.
[057] Neste documento, o termo “/” e “,” deve ser interpretado para indicar “e/ou.” Por exemplo, a expressão “A/B” pode significar “A e/ou B.” Ademais, “A, B” ode significar “A e/ou B.” Ademais, “A/B/C” pode significar “pelo menos um dentre A, B, e/ou C.” Da mesma forma, “A/B/C” pode significar “pelo menos um dentre A, B, e/ou C.”
[058] Ademais, no documento, o termo “ou” deve ser interpretado para indicar “e/ou.” Por exemplo, a expressão “A ou B” pode compreender 1) somente A, 2) somente B, e/ou 3) tanto A como B. Em outras palavras, o termo “ou” neste documento deve ser interpretado para indicar “adicional ou alternativamente.”
[059] A Figura 2 é um diagrama esquemático que ilustra uma configuração de um aparelho de codificação de vídeo/imagem ao qual as modalidades do presente documento podem ser aplicadas. Doravante, o aparelho de codificação de vídeo pode incluir um aparelho de codificação de imagem.
[060] Referindo-se à Figura 2, o aparelho de codificação 200 inclui um particionador de imagem 210, um preditor 220, um processador de residual 230, e um codificador de entropia 240, um adicionador 250, um filtro 260, e uma memória 270. O preditor 220 pode incluir um interpreditor 221 e um intrapreditor 222. O processador de residual 230 pode incluir um transformador 232, um quantizador 233, um desquantizador 234, e um transformador inverso 235. O processador de residual 230 pode incluir, ainda, um subtrator 231. O adicionador 250 pode ser denominado como um reconstrutor ou um gerador de bloco reconstruído. O particionador de imagem 210, o preditor 220, o processador de residual 230, o codificador de entropia 240, o adicionador 250, e o filtro 260 podem ser configurados por ao menos um componente de hardware (ex. um chipset ou processador de codificador) de acordo com uma modalidade. Além disso, a memória 270 pode incluir um buffer de gravura decodificada (DPB) ou pode ser configurada por uma mídia de armazenamento digital. O componente de hardware pode incluir, ainda, a memória 270 como um componente interno/externo.
[061] O particionador de imagem 210 pode particionar uma imagem de entrada (ou uma gravura ou um quadro) inserida ao aparelho de codificação 200 em um ou mais processadores. Por exemplo, o processador pode ser denominado como uma unidade de codificação (CU). Nesse caso, a unidade de codificação pode ser recursivamente particionada de acordo com uma estrutura de árvore quaternária árvore binária árvore terciária (QTBTTT) a partir de uma unidade de árvore de codificação (CTU) ou uma maior unidade de codificação (LCU). Por exemplo, uma unidade de codificação pode ser particionada em uma pluralidade de unidades de codificação de uma profundidade mais profunda com base em uma estrutura de árvore quaternária, estrutura de árvore binária, e/ou uma estrutura terciária. Nesse caso, por exemplo, a estrutura de árvore quaternária pode ser aplicada primeiramente e a estrutura de árvore binária e/ou estrutura terciária podem ser aplicadas posteriormente. Alternativamente, a estrutura de árvore binária pode ser aplicada primeiro. O procedimento de codificação de acordo com este documento pode ser realizado com base na unidade de codificação final que não é mais particionada. Nesse caso, a maior unidade de codificação pode ser usada como a unidade de codificação final com base na eficiência de codificação de acordo com características de imagem, ou, se necessário, a unidade de codificação pode ser recursivamente particionada em unidades de codificação de profundidade mais profunda e uma unidade de codificação tendo um tamanho ideal pode ser usada como a unidade de codificação final. No presente documento, o procedimento de codificação pode incluir um procedimento de predição, transformada, e reconstrução, que serão descritos posteriormente. Como outro exemplo, o processador pode incluir, ainda, uma unidade de predição (PU) ou uma unidade de transformada (TU). Nesse caso, a unidade de predição e a unidade de transformada podem ser divididas ou particionadas a partir da unidade de codificação final supramencionada. A unidade de predição pode ser uma unidade de predição de amostra, e a unidade de transformada pode ser uma unidade para derivar um coeficiente de transformada e/ou uma unidade para derivar um sinal residual a partir do coeficiente de transformada.
[062] A unidade pode ser usada de modo intercambiável com termos como bloco ou área em alguns casos. Em um caso geral, um bloco M×N pode representar um conjunto de amostras ou coeficientes de transformada compostos por M colunas e N fileiras. Uma amostra pode representar, em geral, um pixel ou um valor de um pixel, pode representar somente um pixel/valor de pixel de um componente de luma ou representar somente um pixel/valor de pixel de um componente de croma. Uma amostra pode ser usada como um termo correspondente a uma gravura (ou imagem) para um pixel ou um pel.
[063] No aparelho de codificação 200, um sinal de predição (bloco predito, arranjo de amostra de predição) emitido a partir do interpreditor 221 ou o intrapreditor 222 é subtraído de um sinal de imagem de entrada (bloco original, arranjo de amostra original) para gerar um bloco residual de sinal residual, arranho de amostra residual), e o sinal residual gerado é transmitido ao transformador 232. Nesse caso, conforme mostrado, uma unidade para subtrair um sinal de predição (bloco predito, arranjo de amostra de predição) a partir do sinal de imagem de entrada (bloco original, arranjo de bloco original) no codificador 200 pode ser denominada como um subtrator 231. O preditor pode realizar uma predição em um bloco a ser processado (doravante, referido como um bloco atual) e gerar um bloco predito incluindo amostras de predição para o bloco atual. O preditor pode determinar se uma intrapredição ou uma interpredição é aplicada em um bloco atual ou base de CU. Conforme descrito mais adiante na descrição de cada modo de predição, o preditor pode gerar várias informações relacionadas à predição, tais como informações de modo de predição, e transmitir as informações geradas ao codificador de entropia 240. As informações sobre a predição podem ser codificadas no codificador de entropia 240 e emitidas sob a forma de um fluxo de bits.
[064] O intrapreditor 222 pode predizer o bloco atual referindo-se ás amostras na gravura atual. As amostras referidas podem estar localizadas na vizinhança do bloco atual ou podem estar localizadas separadas de acordo com o modo de predição. Na intrapredição, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O modo não-direcional pode incluir, por exemplo, um modo DC e um modo planar. O modo direcional pode incluir, por exemplo, 33 modos de predição direcionais ou 65 modos de predição direcionais de acordo com o grau de detalhes da direção de predição. No entanto, esse é meramente um exemplo, mais ou menos modos de predição direcional podem ser usados dependendo de um ajuste. O intrapreditor 222 pode determinar o modo de predição aplicado ao bloco atual utilizando-se um modo de predição aplicado a um bloco vizinho.
[065] O interpreditor 221 pode derivar um bloco predito para o bloco atual com base em um bloco de referência (arranjo de amostra de referência) especificado por um vetor de movimento em uma gravura de referência. No presente documento, a fim de reduzir a quantidade de informações de movimento transmitidas no modo de interpredição, as informações de movimento podem ser preditas em unidades de blocos, sub-blocos, ou amostras com base na correlação de informações de movimento entre o bloco vizinho e o bloco atual. As informações de movimento podem incluir um vetor de movimento e um índice de gravura de referência. As informações de movimento podem incluir, ainda, informações de direção de interpredição (predição L0, predição L1, predição Bi, etc.). No caso de interpredição, o bloco vizinho pode incluir um bloco vizinho espacial presente na gravura atual e um bloco vizinho temporal presente na gravura de referência. A gravura de referência incluindo o bloco de referência e a gravura de referência incluindo o bloco vizinho temporal podem ser iguais ou diferentes. O bloco vizinho temporal pode ser denominado como um bloco de referência colocalizado, uma CU colocalizada (colCU), e similares, e a gravura de referência incluindo o bloco vizinho temporal pode ser denominada como uma gravura colocalizada (colPic). Por exemplo, o interpreditor 221 pode configurar uma lista de candidato de informações de movimento com base em bloco vizinhos e gerar informações que indicam qual candidato é usado para derivar um vetor de movimento e/ou um índice de gravura de referência do bloco atual. A interpredição pode ser realizada com base em vários modos de predição. Por exemplo, no caso de um modo de omissão e um modo de união, o interpreditor 221 pode usar informações de movimento do bloco vizinho como informações de movimento do bloco atual. No modo de omissão, diferentemente do modo de união, o sinal residual pode não ser transmitido. No caso do modo de predição de vetor de movimento (MVP), o vetor de movimento do bloco vizinho pode ser usado como um vetor de movimento preditor e o vetor de movimento do bloco atual pode ser indicado sinalizando-se uma diferença de vetor de movimento.
[066] O preditor 220 pode gerar um sinal de predição com base em vários métodos de predição descritos abaixo. Por exemplo, o preditor pode não somente aplicar uma intrapredição ou uma interpredição para predizer um bloco, mas também aplicar simultaneamente tanto intrapredição como interpredição. Isso pode ser denominado como inter e intrapredição combinadas (CIIP). Além disso, o preditor pode se basear em um modo de predição de cópia intrabloco (IBC) ou um modo de palete para predição de um bloco. O modo de predição de IBC ou o modo de palete podem ser usados para codificação de imagem/vídeo de conteúdo ou similares, por exemplo, codificação de conteúdo de tela (etapa, SCC). O IBC basicamente realiza uma predição na gravura atual, mas pode ser realizado similarmente para interpredição caracterizado pelo fato de um bloco de referência ser derivado na gravura atual. Ou seja, o IBC pode usar pelo menos uma das técnicas de interpredição descritas neste documento. O modo de palete pode ser considerado como um exemplo de intracodificação ou intrapredição. Quando o modo de palete for aplicado, um valor de amostra dentro de uma gravura pode ser sinalizado com base nas informações sobre a tabela de palete e o índice de palete.
[067] O sinal de predição gerado pelo preditor (incluindo o interpreditor 221 e/ou o intrapreditor 222) pode ser usado para gerar um sinal reconstruído ou gerar um sinal residual. O transformador 232 pode gerar coeficientes de transformada aplicando-se uma técnica de transformada ao sinal residual. Por exemplo, a técnica de transformada pode incluir pelo menos uma dentre uma transformada discreta de cosseno (DCT), uma transformada discreta de seno (DST), uma transformada de karhunen-loève (KLT), uma transformada baseada em gráfico (GBT), ou uma transformada condicionalmente não linear (CNT). No presente documento, a GBT significa uma transformada de um gráfico quando as informações de relação entre pixels forem representadas pelo gráfico. A CNT se refere a uma transformada gerada com base em um sinal de predição gerado usando todos os pixels previamente reconstruídos. Além disso, o processo de transformada pode ser aplicado a blocos de pixel quadrado tendo o mesmo tamanho ou pode ser aplicado a blocos tendo um tamanho variável ao invés de quadrado.
[068] O quantizador 233 pode quantizar os coeficientes de transformada e transmiti-los ao codificador de entropia 240 e o codificador de entropia 240 pode codificar o sinal quantizado (informações sobre os coeficientes de transformada quantizados) e emitir um fluxo de bits. As informações sobre os coeficientes de transformada quantizados podem ser referidas como informações residuais. O quantizador 233 pode rearranjar os coeficientes de transformada quantizados tipo bloco em uma forma de vetor unidimensional com base em uma ordem de varredura de coeficiente e gerar informações sobre os coeficientes de transformada quantizados com base nos coeficientes de transformada quantizados na forma de vetor unidimensional. As informações em coeficientes de transformada podem ser geradas. O codificador de entropia 240 pode realizar vários métodos de codificação como, por exemplo, Golomb exponencial, codificação de comprimento variável adaptativa de contexto (CAVLC), codificação aritmética binária adaptativa de contexto (CABAC), e similares. O codificador de entropia 240 pode codificar as informações necessárias para reconstrução de vídeo/imagem diferentes dos coeficientes de transformada quantizados (ex. valores de elementos de sintaxe, etc.) juntos ou separadamente. As informações codificadas (ex. informações de vídeo/imagem codificadas) podem ser transmitidas ou armazenadas em unidades de NALs (camada de abstração de rede) sob a forma de um fluxo de bits. As informações de vídeo/imagem podem incluir, ainda, informações em vários conjuntos de parâmetros como um conjunto de parâmetro de adaptação (APS), um conjunto de parâmetro de gravura (PPS), um conjunto de parâmetro de sequência (SPS), ou um conjunto de parâmetro de vídeo (VPS). Além disso, as informações de vídeo/imagem podem incluir, ainda, informações de restrição gerais. Neste documento, informações e/ou elementos de sintaxe transmitidos/sinalizados a partir do aparelho de codificação ao aparelho de decodificação podem ser incluídos em informações de vídeo/gravura. As informações de vídeo/imagem podem ser codificadas através do procedimento de codificação descrito acima e incluídas no fluxo de bits. O fluxo de bits pode ser transmitido por uma rede ou pode ser armazenado em uma mídia de armazenamento digital. A rede pode incluir uma rede de radiodifusão e/ou uma rede de comunicação, e a mídia de armazenamento digital pode incluir várias mídias de armazenamento como USB, SD, CD, DVD, Blu-ray, HDD, SSD, e similares. Um transmissor (não mostrado) que transmite um sinal emitido a partir do codificador de entropia 240 e/ou uma mídia de armazenamento (não mostrada) que armazena o sinal pode ser incluído como elemento interno/externo do aparelho de codificação 200, e, alternativamente, o transmissor pode ser incluído no codificador de entropia 240.
[069] Os coeficientes de transformada quantizados emitidos a partir do quantizador 233 podem ser usados para gerar um sinal de predição. Por exemplo, o sinal residual (bloco residual ou amostras residuais) pode ser reconstruído aplicandose desquantização e transformada inversa aos coeficientes de transformada quantizados através do desquantizador 234 e do transformador inverso 235. O adicionador 250 adiciona o sinal residual reconstruído ao sinal de predição emitido a partir do interpreditor 221 ou do intrapreditor 222 para gerar um sinal reconstruído (gravura reconstruída, bloco reconstruído, arranjo de amostra reconstruída). Se não existir um residual para o bloco a ser processado, tal como um caso onde o modo de omissão é aplicado, o bloco predito pode ser usado como o bloco reconstruído. O adicionador 250 pode ser denominado como um reconstrutor ou um gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para intrapredição de um próximo bloco a ser processado na gravura atual e pode ser usado para interpredição de uma próxima gravura através da filtragem conforme descrito abaixo.
[070] Entretanto, o mapeamento de luma com escalonamento de croma (LMCS) pode ser aplicado durante codificação e/ou reconstrução de gravura.
[071] O filtro 260 pode aperfeiçoar a qualidade de imagem subjetiva/objetiva aplicando-se filtragem ao sinal reconstruído. Por exemplo, o filtro 260 pode gerar uma gravura reconstruída modificada aplicando-se vários métodos de filtragem à gravura reconstruída e armazenar a gravura reconstruída modificada na memória 270, especificamente, um DPB da memória 270. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de desbloqueio, um deslocamento adaptativo de amostra, um filtro de laço adaptativo, um filtro bilateral, e similares. O filtro 260 pode gerar várias informações relacionadas à filtragem e transmitir as informações geradas ao codificador de entropia 240 conforme descrito mais adiante na descrição de cada método de filtragem. As informações relacionadas à filtragem podem ser codificadas pelo codificador de entropia 240 e emitidas sob a forma de um fluxo de bits.
[072] A gravura reconstruída modificada transmitida à memória 270 pode ser usada como a gravura de referência no interpreditor 221. Quando a interpredição for aplicada através do aparelho de codificação, incompatibilidade de predição entre o aparelho de codificação 200 e o aparelho de decodificação pode ser evitada e a eficiência de codificação pode ser aperfeiçoada.
[073] O DPB da memória 270 DPB pode armazenar a gravura reconstruída modificada para uso como uma gravura de referência no interpreditor 221. A memória 270 pode armazenar as informações de movimento do bloco a partir do qual as informações de movimento na gravura atual são derivadas (ou codificadas) e/ou as informações de movimento dos blocos na gravura que já foi reconstruída. As informações de movimento armazenadas podem ser transmitidas ao interpreditor 221 e usadas como as informações de movimento do bloco vizinho espacial ou as informações de movimento do bloco vizinho temporal. A memória 270 pode armazenar amostras reconstruídas de blocos reconstruídos na gravura atual e pode transferir as amostras reconstruídas ao intrapreditor 222.
[074] A Figura 3 é um diagrama esquemático que ilustra uma configuração de um aparelho de decodificação de vídeo/imagem ao qual as modalidades do presente documento podem ser aplicadas.
[075] Referindo-se à Figura 3, o aparelho de decodificação 300 pode incluir um decodificador de entropia 310, um processador de residual 320, um preditor 330, um adicionador 340, um filtro 350, uma memória 360. O preditor 330 pode incluir um interpreditor 332 e um intrapreditor 331. O processador de residual 320 pode incluir um desquantizador 321 e um transformador inverso 322. O decodificador de entropia 310, o processador de residual 320, o preditor 330, o adicionador 340, e o filtro 350 podem ser configurados por um componente de hardware (ex. um chipset de decodificador ou um processador) de acordo com uma modalidade. Além disso, a memória 360 pode incluir um buffer de gravura decodificada (DPB) ou pode ser configurada por uma mídia de armazenamento digital. O componente de hardware pode incluir, ainda, a memória 360 como um componente interno/externo.
[076] Quando um fluxo de bits incluindo informações de vídeo/imagem for inserido, o aparelho de decodificação 300 pode reconstruir uma imagem correspondente a um processo no qual as informações de vídeo/imagem são processadas no aparelho de codificação da Figura 2. Por exemplo, o aparelho de decodificação 300 pode derivar unidades/blocos com base nas informações relacionadas à partição de bloco obtidas a partir do fluxo de bits. O aparelho de decodificação 300 pode realizar decodificação usando um processador aplicado no aparelho de codificação. Logo, o processador de decodificação pode ser uma unidade de codificação, por exemplo, e a unidade de codificação pode ser particionada de acordo com uma estrutura de árvore quaternária, estrutura de árvore binária e/ou estrutura de árvore terciária a partir da unidade de árvore de codificação ou a maior unidade de codificação. Uma ou mais unidades de transformada podem ser derivadas a partir da unidade de codificação. O sinal de imagem reconstruída decodificado e emitido através do aparelho de decodificação 300 pode ser reproduzido através de um aparelho de reprodução.
[077] O aparelho de decodificação 300 pode receber um sinal emitido a partir do aparelho de codificação da Figura 2 sob a forma de um fluxo de bits, e o sinal recebido pode ser decodificado através do decodificador de entropia 310. Por exemplo, o decodificador de entropia 310 pode analisar o fluxo de bits para derivar informações (ex. informações de vídeo/imagem) necessárias para reconstrução de imagem (ou reconstrução de gravura). As informações de vídeo/imagem podem incluir, ainda, informações em vários conjuntos de parâmetros como um conjunto de parâmetro de adaptação (APS), um conjunto de parâmetro de gravura (PPS), um conjunto de parâmetro de sequência (SPS), ou um conjunto de parâmetro de vídeo (VPS). Além disso, as informações de vídeo/imagem podem incluir, ainda, informações de restrição geral. O aparelho de decodificação pode decodificar, ainda, uma gravura com base nas informações no conjunto de parâmetro e/ou as informações de restrição geral. As informações sinalizadas/recebidas e/ou elementos de sintaxe descritos posteriormente neste documento que podem ser decodificadas podem decodificar o procedimento de decodificação e obtidas a partir do fluxo de bits. Por exemplo, o decodificador de entropia 310 decodifica as informações no fluxo de bits com base em um método de codificação tal como codificação exponencial de Golomb, CAVLC, ou CABAC, e elementos de sintaxe emitidos necessários para reconstrução de imagem e valores quantizados e coeficientes de transformada para residual. De modo mais específico, o método de decodificação de entropia de CABAC pode receber um bin correspondente a cada elemento de sintaxe no fluxo de bits, determinar um modelo de contexto usando informações de elemento de sintaxe alvo de decodificação, informações de decodificação de um bloco alvo de decodificação ou informações de um símbolo/bin decodificadas em estágio prévio, e realizar uma decodificação aritmética no bin predizendo-se uma probabilidade de ocorrência de um bin de acordo com o modelo de contexto determinado, e gerar um símbolo correspondente ao valor de cada elemento de sintaxe. Nesse caso, o método de decodificação de entropia de CABAC pode atualizar o modelo de contexto utilizandose as informações do símbolo/bin decodificados para um modelo de contexto de um próximo símbolo/bin após determinar o modelo de contexto. As informações relacionadas à predição dentre as informações decodificadas pelo decodificador de entropia 310 podem ser proporcionadas ao preditor (o interpreditor 332 e o intrapreditor 331), e o valor residual no qual uma decodificação de entropia foi realizada no decodificador de entropia 310, ou seja, os coeficientes de transformada quantizada e informações de parâmetro relacionadas, podem ser emitidos ao processador de residual 320. O processador de residual 320 pode derivar o sinal residual (o bloco residual, as amostras residuais, o arranjo de amostra residual). Além disso, as informações sobre filtragem dentre informações decodificadas pelo decodificador de entropia 310 podem proporcionadas ao filtro 350. Entretanto, um receptor (não mostrado) para receber um sinal emitido a partir do aparelho de codificação pode ser configurado, ainda, como um elemento interno/externo do aparelho de decodificação 300, ou o receptor pode ser um componente do decodificador de entropia 310. Entretanto, o aparelho de decodificação de acordo com este documento pode ser referido como um aparelho de decodificação de vídeo/imagem/gravura, e o aparelho de decodificação pode ser classificado em um decodificador de informações (decodificador de informações de vídeo/imagem/gravura) e um decodificador de amostra (decodificador de amostra de vídeo/imagem/gravura). O decodificador de informações pode incluir o decodificador de entropia 310, e o decodificador de amostra pode incluir pelo menos um dentre o desquantizador 321, o transformador inverso 322, o adicionador 340, o filtro 350, a memória 360, o interpreditor 332, e o intrapreditor 331.
[078] O desquantizador 321 pode desquantizar os coeficientes de transformada quantizados e emitir os coeficientes de transformada. O desquantizador 321 pode rearranjar os coeficientes de transformada quantizados sob a forma de uma forma de bloco bidimensional. Nesse caso, o rearranjo pode ser realizado com base na ordem de varredura de coeficiente realizada no aparelho de codificação. O desquantizador 321 pode realizar uma desquantização nos coeficientes de transformada quantizados utilizando-se um parâmetro de quantização (ex. informações de tamanho de etapa de quantização) e obtém coeficientes de transformada.
[079] O transformador inverso 322 transforma inversamente os coeficientes de transformada para obter um sinal residual (bloco residual, arranjo de amostra residual).
[080] O preditor pode realizar uma predição no bloco atual e gerar um bloco predito incluindo amostras de predição para o bloco atual. O preditor pode determinar se intrapredição ou interpredição é aplicada ao bloco atual com base nas informações na predição emitida a partir do decodificador de entropia 310 e pode determinar um modo de intra/interpredição específico.
[081] O preditor 320 pode gerar um sinal de predição com base em vários métodos de predição descritos mais adiante. Por exemplo, o preditor pode não somente aplicar intrapredição ou interpredição para predizer um bloco, mas também aplicar simultaneamente intrapredição e interpredição. Isso pode ser denominado como inter e intrapredição combinadas (CIIP). Além disso, o preditor pode se basear em um modo de intrapredição de cópia de bloco (IBC) ou um modo de palete para predição de um bloco. O modo de predição IBC ou modo de palete pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou similares, por exemplo, codificação de conteúdo em tela (etapa, SCC). O IBC basicamente realiza predição na gravura atual, mas pode ser realizado similarmente à interpredição caracterizada pelo fato de que um bloco de referência é derivado na gravura atual. Ou seja, o IBC pode usar pelo menos uma das técnicas de interpredição descritas neste documento. O modo de palete pode ser considerado como um exemplo de intracodificação ou intrapredição. Quando o modo de palete for aplicado, um valor de amostra em uma gravura pode ser sinalizado com base nas informações na tabela de palete e no índice de palete.
[082] O intrapreditor 331 pode predizer o bloco atual referindo-se às amostras na gravura atual. As amostras referidas podem estar localizadas na vizinhança do bloco atual ou podem estar localizadas separadas de acordo com o modo de predição. Na intrapredição, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O intrapreditor 331 pode determinar o modo de predição aplicado ao bloco atual utilizando-se um modo de predição aplicado a um bloco vizinho.
[083] O interpreditor 332 pode derivar um bloco predito para o bloco atual com base em um bloco de referência (arranjo de amostra de referência) especificado por um vetor de movimento em uma gravura de referência. Nesse caso, a fim de reduzir a quantidade de informações de movimento transmitidas no modo de interpredição, as informações de movimento podem ser preditas em unidades de blocos, sub-blocos, ou amostras com base na correlação de informações de movimento entre o bloco vizinho e o bloco atual. As informações de movimento podem incluir um vetor de movimento e um índice de gravura de referência. As informações de movimento podem incluir, ainda informações de direção de interpredição (predição L0, predição L1, predição Bi, etc.). No caso de interpredição, o bloco vizinho pode incluir um bloco vizinho espacial presente na gravura atual e um bloco vizinho temporal presente na gravura de referência. Por exemplo, o interpreditor 332 pode configurar uma lista de candidato de informações de movimento com base em blocos vizinhos e derivar um vetor de movimento do bloco atual e/ou um índice de gravura de referência com base nas informações de seleção de candidato recebidas. A interpredição pode ser realizada com base em vários modos de predição, e as informações sobre a predição podem incluir informações que indicam um modo de interpredição para o bloco atual.
[084] O adicionador 340 pode gerar um sinal reconstruído (gravura reconstruída, bloco reconstruído, arranjo de amostra reconstruído) adicionando-se o sinal residual obtido ao sinal de predição (bloco predito, arranjo de amostra predita) emitido a partir do preditor (incluindo o interpreditor 332 e/ou o intrapreditor 331). Se não houver um residual para o bloco a ser processado, tal como quando o modo de omissão for aplicado, o bloco predito pode ser usado como o bloco reconstruído.
[085] O adicionador 340 pode ser denominado como reconstrutor ou um gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para intrapredição de um próximo bloco a ser processado na gravura atual, pode ser emitido através de filtragem conforme descrito abaixo, ou pode ser usado para interpredição de uma próxima gravura.
[086] Entretanto, um mapeamento de luma com escalonamento de croma (LMCS) pode ser aplicado no processo de decodificação de gravura.
[087] O filtro 350 pode aperfeiçoar a qualidade de imagem subjetiva/objetiva aplicando-se filtragem ao sinal reconstruído. Por exemplo, o filtro 350 pode gerar uma gravura reconstruída modificada aplicando-se vários métodos de filtragem à gravura reconstruída e armazenar a gravura reconstruída modificada na memória 360, especificamente, um DPB da memória 360. Os vários métodos de filtragem podem incluir, por exemplo, filtragem pro desbloqueio, um deslocamento adaptativo de amostra, um filtro de laço adaptativo, um filtro bilateral, e similares.
[088] A gravura reconstruída (modificada) armazenada no DPB da memória 360 pode ser usada como uma gravura de referência no interpreditor 332. A memória 360 pode armazenar as informações de movimento do bloco a partir do qual as informações de movimento na gravura atual são derivadas (ou decodificadas) e/ou as informações de movimento dos blocos na gravura que já foram reconstruídas. As informações de movimento armazenadas podem ser transmitidas ao interpreditor 260 a fim de serem utilizadas como as informações de movimento do bloco vizinho espacial ou as informações de movimento do bloco vizinho temporal. A memória 360 pode armazenar amostras reconstruídas de blocos reconstruídos na gravura atual e transferir as amostras reconstruídas ao intrapreditor 331.
[089] Na presente revelação, as modalidades descritas no filtro 260, o interpreditor 221, e o intrapreditor 222 do aparelho de codificação 200 podem ser iguais ou respectivamente aplicados a corresponder ao filtro 350, o interpreditor 332, e o intrapreditor 331 do aparelho de decodificação 300. O mesmo pode se aplicar ao interpreditor 332 e ao intrapreditor 331.
[090] Entretanto, e relação à interpredição, propôs-se um método de interpredição que considera distorção de imagens. De modo mais específico, propôsse um modelo de movimento afim, que deriva eficientemente os vetores de movimento para sub-blocos ou pontos amostrais de um bloco atual e aperfeiçoa a precisão de interpredição independentemente da deformação devido à rotação de imagem, aproximação ou afastamento. Em outras palavras, propõe-se um modelo de movimento afim, que deriva vetores de movimento para sub-blocos ou pontos amostrais de um bloco atual. A predição que emprega o modelo de movimento afim pode ser referida como interpredição afim ou predição de movimento afim.
[091] Por exemplo, a interpredição afim que usa o modelo de movimento afim pode expressar eficientemente quatro movimentos, ou seja, quatro deformações, conforme descrito abaixo.
[092] A Figura 4 ilustra um movimento expresso através do modelo de movimento afim. Referindo-se à Figura 4, um movimento que pode ser representado através do modelo de movimento afim pode incluir um movimento translacional, um movimento escalar, um movimento rotacional e um movimento de cisalhamento. Ou seja, um movimento escalar em que (uma porção da) imagem é escalonada de acordo com a passagem de tempo, um movimento rotacional em que (uma porção da) imagem é girada de acordo com a passagem de tempo, e um movimento de cisalhamento em que (uma porção da) imagem é deformada de modo paralelogrâmica de acordo com a passagem de tempo, bem como o movimento translacional em que (uma porção da) imagem é planarmente movida de acordo com a passagem de tempo ilustrada na Figura 4, podem ser efetivamente representados conforme ilustrado na Figura 3.
[093] O aparelho de codificação/aparelho de decodificação pode prever um formato de distorção da imagem com base nos vetores de movimento em pontos de controle (CPs) do bloco atual através de interpredição afim, o desempenho de compactação da imagem pode ser aperfeiçoado aumentando-se a precisão de predição. Além disso, visto que um vetor de movimento para pelo menos um ponto de controle do bloco atual pode ser derivado usando um vetor de movimento de um bloco vizinho do bloco atual, um encargo de uma quantidade de dados sobre informações adicionais pode ser reduzido e a eficiência de interpredição pode ser consideravelmente aperfeiçoada.
[094] Como um exemplo da interpredição afim, informações de movimento em três pontos de controle, ou seja, três pontos de referência, podem ser necessárias.
[095] A Figura 5 ilustra o modelo de movimento afim no qual vetores de movimento para três pontos de controle são usados.
[096] Quando uma posição amostral superior esquerda em um bloco atual 500 for (0, 0), posições amostrais (0, 0), (w, 0) e (0, h) podem ser definidas como os pontos de controle conforme mostrado na Figura 5. Doravante, o ponto de controle da posição amostral (0, 0) pode ser representado como CP0, o ponto de controle da posição amostral (w, 0) pode ser representado como CP1, e o ponto de controle da posição amostral (0, h) pode ser representado como CP2.
[097] Uma equação para o modelo de movimento afim pode ser derivada usando os pontos de controle e os vetores de movimento dos pontos de controle correspondentes descritos anteriormente. Uma equação para o modelo de movimento afim pode ser expressa da seguinte forma.
[Equação 1]
Figure img0001
[098] No presente documento, w denota uma largura do bloco atual 500, h denota uma altura do bloco atual 500, v0x e v0y denotam um componente x e componente y do vetor de movimento de CP0, respectivamente, v1x e v1y denotam um componente x e um componente y do vetor de movimento de CP1, respectivamente, e v2x e v2y denotam um componente x e um componente y do vetor de movimento de CP2, respectivamente. Além disso, x denota um componente x de uma posição de uma amostra alvo no bloco atual 500, y denota um componente y da posição da amostra alvo no bloco atual 500, vx denota um componente x de um vetor de movimento da amostra alvo no bloco atual 500, e vy denota um componente y do vetor de movimento da amostra alvo no bloco atual 500.
[099] Visto que o vetor de movimento de CP0, o vetor de movimento de CP1, e o vetor de movimento de CP2 são conhecidos, um vetor de movimento baseado na posição amostral no bloco atual pode ser derivado com base na Equação 1. Ou seja, de acordo com o modelo de movimento afim, os vetores de movimento v0(v0x, v0y), v1(v1x, v1y), e v2(v2x, v2y) nos pontos de controle podem ser escalonados com base em uma razão de distância entre as coordenadas (x, y) da amostra alvo e os três pontos de controle para derivar os vetores de movimento da amostra alvo de acordo com a posição da amostra alvo. Ou seja, de acordo com o modelo de movimento afim, um vetor de movimento de cada amostra no bloco atual pode ser derivado com base no vetores de movimento dos pontos de controle. Entretanto, um conjunto de vetores de movimento de amostras no bloco atual derivado de acordo com o modelo de movimento afim pode ser referido como um campo de vetor de movimento afim (MVF).
[0100] Entretanto, seis parâmetro para Equação 1 podem ser representados por a, b, c, d, e f conforme mostrado na Equação 1 abaixo, e uma equação para o modelo de movimento afim representada pelos seis parâmetros pode ser da seguinte forma.
Figure img0002
[0101] No presente documento, w denota uma largura do bloco atual 500, h denota uma altura do bloco atual 500, v0x e v0y denotam o componente x do vetor de movimento de CP0, componente y, v1x e v1y representam um componente x e um componente y do vetor de movimento de CP1, respectivamente, e v2x e v2y representam o componente x e o componente y do vetor de movimento de CP2, respectivamente. Além disso, x denota o componente x da posição da amostra alvo no bloco atual 500, y denota o componente y da posição da amostra alvo no bloco atual 500, vx denota o componente x do vetor de movimento da amostra alvo no bloco atual 500, vy denota o componente y do vetor de movimento da amostra alvo no bloco atual 500.
[0102] O modelo de movimento afim ou a interpredição afim usando os seis parâmetros pode ser referido como um modelo de movimento afim de 6 parâmetros ou AF6.
[0103] Além disso, como um exemplo da interpredição afim, informações de movimento em dois pontos de controle, isto é, dois pontos de referência, podem ser necessárias.
[0104] A Figura 6 ilustra o modelo de movimento afim onde os vetores de movimento para dois pontos de controle são usados. O modelo de movimento afim que usa dois pontos de controle pode representar três movimentos incluindo um movimento translacional, um movimento escalar, e um movimento rotacional. O modelo de movimento afim que representa os três movimentos pode ser referido como um modelo de movimento afim de similaridade ou um modelo de movimento afim simplificado.
[0105] Quando uma posição amostral superior esquerda em um bloco atual 600 for (0, 0), posições amostrais (0, 0) e (w, 0) podem ser definidas como os pontos de controle conforme mostrado na Figura 6. Doravante, o ponto de controle da posição amostral (0, 0) pode ser representado como CP0 e o ponto de controle da posição amostral (w, 0) pode ser representado como CP1.
[0106] Uma equação para o modelo de movimento afim pode ser derivada usando os pontos de controle e os vetores de movimento dos pontos de controle correspondentes descritos acima. Uma equação para o modelo de movimento afim pode ser expressa da seguinte forma.
Figure img0003
[0107] No presente documento, w denota uma largura do bloco atual 600, v0x e v0y denotam componentes x e y do vetor de movimento de CP0, respectivamente, e v1x e v1y denotam componentes x e y do vetor de movimento de CP1. Além disso, x denota um componente x de uma posição de uma amostra alvo no bloco atual 600, y denota um componente y da posição da amostra alvo no bloco atual 600, vx denota um componente x do vetor de movimento da amostra alvo no bloco atual 600, e vy denota um componente y do vetor de movimento da amostra alvo no bloco atual 600.
[0108] Entretanto, quatro parâmetros da Equação 3 podem ser representados por a, b, c e d conforme na Equação a seguir, e uma equação para o modelo de movimento afim representado pelos quatro parâmetros pode ser da seguinte forma.
Figure img0004
[0109] No presente documento, w denota uma largura do bloco atual 600, v0x e v0y denotam componentes x e y do vetor de movimento de CP0, respectivamente, e v1x e v1y denotam componentes x e y do vetor de movimento de CP1, respectivamente. Além disso, x denota um componente x de uma posição de uma amostra alvo no bloco atual 600, y denota a componente y da posição da amostra alvo no bloco atual 600, vx denota um componente x do vetor de movimento da amostra alvo no bloco atual 600 e vy denota a componente y do vetor de movimento da amostra alvo no bloco atual 600. O modelo de movimento afim que usa dois pontos de controle pode ser representado por quatro parâmetros a, b, c e d conforme mostrado na Equação 4, e, logo, o modelo de movimento afim que usa os quatro parâmetros ou a interpredição afim pode ser referido como um modelo de movimento afim de quatro parâmetros ou AF4. Ou seja, de acordo com o modelo de movimento afim, um vetor de movimento de cada amostra no bloco atual pode ser derivado com base nos vetores de movimento dos pontos de controle. Entretanto, um conjunto de vetores de movimento das amostras no bloco atual derivadas de acordo com o modelo de movimento afim pode ser referido como um campo de vetor de movimento afim (MVF).
[0110] Entretanto, conforme descrito anteriormente, um vetor de movimento de uma unidade de amostra pode ser derivado através do modelo de movimento afim, e, logo, a precisão de interpredição pode ser significativamente aperfeiçoada. No entanto, nesse caso, a complexidade no processo de compensação de movimento pode ser significativamente aumentada.
[0111] De modo correspondente, isso pode ser limitado de modo que um vetor de movimento de uma unidade de sub-bloco do bloco atual, ao invés de derivar um vetor de movimento da unidade de amostra, seja derivado.
[0112] A Figura 7 ilustra um método para derivar um vetor de movimento em uma base de sub-bloco baseado no modelo de movimento afim. A Figura 7 ilustra um caso onde um tamanho do bloco atual é 16×16 e um vetor de movimento é derivado em unidades de 4×4 sub-blocos. O sub-bloco pode ser ajustado para vários tamanhos. Por exemplo, quando o sub-bloco for ajustado para um tamanho n×n (n é um inteiro positivo, por exemplo, n é 4), um vetor de movimento pode ser derivado em unidades de sub-blocos n×n no bloco atual com base no modelo de movimento afim e vários métodos para derivar um vetor de movimento que representa cada sub-bloco podem ser aplicados.
[0113] Por exemplo, referindo-se à Figura 7, um vetor de movimento de cada sub-bloco pode ser derivado usando a center ou posição de amostra lateral inferior direita de cada sub-bloco como uma coordenada representativa. No presente documento, uma posição inferior direita central pode indicar uma posição de amostra posicionada na posição lateral inferior direita dentre quatro amostras posicionadas no centro do sub-bloco. Por exemplo, quando n for um número ímpar, uma amostra pode ser posicionada no centro do sub-bloco, e, nesse caso, a posição de amostra central pode ser usada para derivar o vetor de movimento do sub-bloco. No entanto, quando n for um número par, quatro amostras podem ser posicionadas como sendo adjacentes ao centro do sub-bloco, e, nesse caso, a posição de amostra inferior direita pode ser usada para derivar um vetor de movimento. Por exemplo, referindo-se à Figura 7, coordenadas representativas de cada sub-bloco podem ser derivadas como (2, 2), (6, 2), (10, 2), ..., (14, 14), e o aparelho de codificação/aparelho de decodificação pode derivar o vetor de movimento de cada sub-bloco substituindo-se cada uma das coordenadas representativas dos sub-blocos na Equação 1 ou 3 descritas anteriormente. Os vetores de movimento dos sub-blocos no bloco atual derivados através do modelo de movimento afim podem ser referidos como MVF afim.
[0114] Entretanto, como um exemplo, o tamanho do sub-bloco no bloco atual pode ser derivado com base na equação a seguir.
Figure img0005
[0115] No presente documento, M denota uma largura do sub-bloco, e N denota uma altura do sub-bloco. Além disso, v0x e v0y denotam um componente x e um componente y de CPMV0 do bloco atual, v1x e v1y denotam um componente x e um componente y de CPMV1 do bloco atual, w denota uma largura do bloco atual, h denota uma altura do bloco atual, e MvPre denota uma precisão de fração de vetor de movimento. Por exemplo, a precisão de fração de vetor de movimento pode ser ajustada para 1/16.
[0116] Entretanto, na interpredição usando o modelo de movimento afim descrito anteriormente, ou seja, a predição de movimento afim, pode ter um modo de união afim AF_MERGE e um modo inter afim AF_INTER. No presente documento, o modo inter afim pode ser referido como um modo de MVP afim AF_MVP.
[0117] O modo de união afim é similar a um modo de união existente em que MVD para o vetor de movimento dos pontos de controle não é transmitido. Ou seja, similarmente ao modo de omissão/união existente, o modo de união afim pode se referir a um método de codificação/decodificação para realizar a predição derivandose um CPMV para cada um dos dois ou três pontos de controle a partir de um bloco vizinho do bloco atual.
[0118] Por exemplo, quando o modo AF_MRG for aplicado ao bloco atual, vetores de movimento de CP0 e CP1 (isto é, CPMV0 e CPMV1) podem ser derivados a partir de blocos vizinhos aos quais um modo afim foi aplicado dentre os blocos vizinhos do bloco atual. Em outras palavras, CPMV0 e CPMV1 dos blocos vizinhos aos quais o modo afim foi aplicado podem ser derivados como candidatos de união ou podem ser derivados como CPMV0 e CPMV1 para o bloco atual com base nos candidatos de união. Um modelo de movimento afim pode ser derivado com base em CPMV0 e CPMV1 de blocos vizinhos representados pelos candidatos de união, e com base no modelo de movimento afim, CPMV0 e CPMV1 para o bloco atual podem ser derivados.
[0119] O modo inter afim pode representar interpredição que deriva Preditores de Vetor de Movimento (MVPs) para vetores de movimento dos pontos de controle, vetores de movimento dos pontos de controle com base nas diferenças de vetor de movimento recebidas (MVDs) e nos MVPs, e o MVF afim do bloco atual com base nos vetores de movimento dos pontos de controle; e realiza uma predição com base no MVF afim. No presente documento, o vetor de movimento do ponto de controle pode ser denominado como Vetor de Movimento de Ponto de Controle (CPMV), MVP do ponto de controle pode ser denominado como Preditor de Vetor de Movimento de Ponto de Controle (CPMVP), e MVD do ponto de controle pode ser denominado como Diferença de Vetor de Movimento de Ponto de Controle (CPMVD). De modo mais específico, por exemplo, o aparelho de codificação pode derivar Preditor de Vetor de Movimento de Ponto de Controle (CPMVP) e Vetor de Movimento de Ponto de Controle (CPMV) para CP0 e CP1 (ou CP0, CP1 e CP2), respectivamente e transmitir ou armazenar informações sobre o CPMVP e/ou CPMVD que representam uma diferença entre o CPMVP e o CPMV.
[0120] No presente documento, se o modo inter afim for aplicado ao bloco atual, o aparelho de codificação/decodificação pode construir uma lista de candidato de MVP afim com base nos blocos vizinhos do bloco atual, onde o candidato de MVP afim pode ser referido como um candidato de par de CPMVP, e a lista de candidato de MVP afim pode ser referida como uma lista de candidato de CPMVP.
[0121] Da mesma forma, cada candidato de MVP afim pode representar uma combinação de CPMVPs de CP0 e CP1 no modelo de movimento afim de quatro parâmetros e uma combinação de CPMVPs de CP0, CP1, e CP2 no modelo de movimento afim de seis parâmetros.
[0122] A Figura 8 é um fluxograma que ilustra um método de predição de movimento afim de acordo com uma modalidade da presente revelação.
[0123] Referindo-se à Figura 8, o método de predição de movimento afim pode ser extensamente descrito da seguinte forma. Uma vez que o método de predição de movimento afim for iniciado, um par de CPMV é obtido primeiro S800. No presente documento, se um modelo afim de quatro parâmetros for usado, o par de CPMV pode incluir CPMV0 e CPMV1.
[0124] Posteriormente, uma compensação de movimento afim pode ser realizada com base no par de CPMV S810, após o qual uma predição de movimento afim pode ser encerrada.
[0125] Da mesma forma, dois modos de predição afim podem ser definidos para determinar CPMV0 e CPMV1. No presente documento, os dois modos de predição afim podem incluir modo inter afim e modo de união afim. O modo inter afim pode sinalizar informações sobre a Diferença de Vetor de Movimento (MVD) entre dois vetores de movimento de CPMV0 e CPMV1 para determinar o CPMV0 e o CPMV1 claramente. Por outro lado, modo de união afim pode derivar um par de CPMV sem sinalizar informações de MVD.
[0126] Em outras palavras, modo de união afim pode derivar CPMVs de um bloco atual utilizando-se CPMVs de blocos vizinhos codificados no modo afim, e se vetores de movimento forem determinados pela unidade de sub-bloco, modo de união afim pode ser referido como um modo de união de sub-bloco.
[0127] No modo de união afim, o aparelho de codificação pode sinalizar, ao aparelho de decodificação, índices de blocos vizinhos codificados no modo afim para derivar CPMVs do bloco atual e podem sinalizar, ainda, os valores de diferença dentre CPMVs de blocos vizinhos e CPMVs do bloco atual. No presente documento, o modo de união afim pode construir uma lista de candidato de união afim com base nos blocos vizinhos, onde índices dos blocos vizinhos podem indicar os blocos vizinhos a serem utilizados dentro da lista de candidato de união afim para derivar os CPMVs do bloco atual. A lista de candidato de união afim também pode ser referida como uma lista de candidato de união de sub-bloco.
[0128] O modo inter afim também pode ser referido como o modo de MVP afim. No modo de MVP afim, os CPMVs de um bloco atual podem ser derivados com base no Preditor de Vetor de Movimento de Ponto de Controle (CPMVP) e Diferença de Vetor de Movimento de Ponto de Controle (CPMVD). Em outras palavras, o aparelho de codificação pode determinar CPMVPs para os CPMVs de um bloco atual, derivar e o CPMVD, que é um valor de diferença entre o CPMV e o CPMVP do bloco atual, e sinalizar informações sobre o CPMVP e informações sobre o CPMVD ao aparelho de decodificação. No presente documento, o modo de MVP afim pode construir uma lista de candidato de MVP afim com base nos blocos vizinhos, e informações sobre os CPMVPs podem indicar blocos vizinhos a serem utilizados para derivar os CPMVPs para os CPMVs do bloco atual a partir da lista de candidato de MVP afim. A lista de candidato de MVP afim também pode ser referida como a lista de candidato de preditor de vetor de movimento de ponto de controle.
[0129] Por exemplo, quando um modo inter afim do modelo de movimento afim de seis parâmetros for aplicado, o bloco atual pode ser codificado conforme descrito abaixo.
[0130] A Figura 9 ilustra um método para derivar um preditor de vetor de movimento em um ponto de controle de acordo com uma modalidade da presente revelação.
[0131] Referindo-se à Figura 9, o vetor de movimento de CP0 do bloco atual pode ser denotado por ν0, vetor de movimento de CP1 por ν1, vetor de movimento de um ponto de controle na posição amostral inferior esquerda por ν2, e vetor de movimento de CP2 por ν3. Em outras palavras, o ν0 pode representar o CPMVP de CP0, o ν1 o CPMVP de CP1, e o ν2 o CPMVP de CP2.
[0132] Um candidato de MVP afim pode ser uma combinação do candidato de CPMVP do CP0, candidato de CPMVP do CP1, e candidato de CPMVP do CP2.
[0133] Por exemplo, o candidato de MVP afim pode ser derivado da seguinte forma.
[0134] De modo mais específico, um máximo de 12 combinações de candidato de CPMVP pode ser determinado conforme mostrado na equação abaixo.
[Equação 6]
{(ν0, ν1, ν2)|ν0 = {νA, νB, νC}, ν1 = {νD, νE},ν2 = {νF, νG}}
[0135] No presente documento, νA representa o vetor de movimento do bloco vizinho A, νB o vetor de movimento do bloco vizinho B, νC o vetor de movimento do bloco vizinho C, νD o vetor de movimento do bloco vizinho D, νE o vetor de movimento do bloco vizinho E, νF o vetor de movimento do bloco vizinho F, e νG o vetor de movimento do bloco vizinho G.
[0136] Adicionalmente, o bloco vizinho A pode representar um bloco vizinho posicionado na posição superior esquerda de uma posição amostral superior esquerda do bloco atual, o bloco vizinho B pode representar um bloco vizinho posicionado na posição superior da posição amostral superior esquerda do bloco atual, e o bloco vizinho C pode representar um bloco vizinho posicionado em uma posição lateral esquerda da posição amostral superior esquerda do bloco atual. Adicionalmente, o bloco vizinho D pode representar um bloco vizinho posicionado na posição superior de uma posição amostral superior direita do bloco atual, e o bloco vizinho E pode representar um bloco vizinho posicionado na posição superior direita da posição amostral superior direita do bloco atual. E, o bloco vizinho F pode representar um bloco vizinho posicionado em uma posição lateral esquerda de uma posição amostral inferior esquerda do bloco atual, e o bloco vizinho G pode representar um bloco vizinho posicionado na posição inferior esquerda da posição amostral inferior esquerda do bloco atual.
[0137] Em outras palavras, referindo-se à Equação 6 acima, o candidato de CPMVP de CP0 pode incluir o vetor de movimento νA do bloco vizinho A, vetor de movimento νB do bloco vizinho B e/ou vetor de movimento νC do bloco vizinho C; o candidato de CPMVP de CP1 pode incluir o vetor de movimento νD do bloco vizinho D e/ou vetor de movimento νE do bloco vizinho E; o candidato de CPMVP de CP2 pode incluir o vetor de movimento νF do bloco vizinho F e/ou vetor de movimento νG do bloco vizinho G.
[0138] Em outras palavras, o CPMVP ν0 de CP0 pode ser derivado com base em pelo menos um vetor de movimento para os blocos vizinhos A, B e C em relação à posição amostral superior esquerda. No presente documento, o bloco vizinho A pode representar um bloco sendo posicionado em uma posição superior esquerda de uma posição amostral superior esquerda do bloco atual, bloco vizinho B pode representar um bloco sendo posicionado em uma posição superior da posição amostral superior esquerda do bloco atual, e bloco vizinho C pode representar um bloco sendo posicionado em uma posição lateral esquerda da posição amostral superior esquerda do bloco atual.
[0139] Com base nos vetores de movimento dos blocos vizinhos, pode-se derivar um máximo de 12 combinações de candidato de CPMVP incluindo o candidato de CPMVP do CP0, candidato de CPMVP do CP1, e candidato de CPMVP do CP2.
[0140] Posteriormente, combinações de candidato de CPMVP derivadas são dispostas em ordem ascendente de DV, e duas combinações de candidato de CPMVP superiores podem ser derivadas como os candidatos de MVP afim.
[0141] DV de uma combinação de candidato de CPMVP pode ser derivado pela equação a seguir.
[Equação 7]
DV = |(ν1x - ν0x) * h - (ν2y - ν0y) * w| + |(ν1y - ν0y) * h + (ν2x - ν0x) * w|
[0142] Posteriormente, o aparelho de codificação pode determinar CPMVs para os respectivos candidatos de MVP afim, comparar os custos de Distorção de Taxa (RD) dentre os CPMVs, e selecionar o candidato de MVP afim tendo o menor custo de RD como o candidato de MVP afim ideal para o bloco atual. O aparelho de codificação pode codificar e sinalizar o índice e CPMVD indicando o candidato ideal.
[0143] Da mesma forma, por exemplo, se um modo de união afim for aplicado, o bloco atual pode ser codificado conforme descrito abaixo.
[0144] A Figura 10 ilustra um método para derivar um preditor de vetor de movimento em um ponto de controle de acordo com uma modalidade da presente revelação.
[0145] Com base nos blocos vizinhos de um bloco atual mostrado na Figura 10, uma lista de candidato de união afim do bloco atual pode ser construída. Os blocos vizinhos podem incluir bloco vizinho A, bloco vizinho B, bloco vizinho C, bloco vizinho D e bloco vizinho E. O bloco vizinho A pode representar um bloco vizinho esquerdo do bloco atual, o bloco vizinho B um bloco vizinho superior do bloco atual, o bloco vizinho C um bloco vizinho de canto superior direito do bloco atual, o bloco vizinho D um bloco vizinho de canto inferior esquerdo do bloco atual, o bloco vizinho E um bloco vizinho de canto superior esquerdo do bloco atual.
[0146] Por exemplo, quando um tamanho do bloco atual for W x H, componente x da posição amostral superior esquerda do bloco atual é 0, e componente y do mesmo é 0, o bloco vizinho esquerdo pode ser o bloco que inclui uma amostra nas coordenadas de (-1, H-1), o bloco vizinho superior pode ser o bloco que inclui uma amostra nas coordenadas de (W-1, -1), o bloco vizinho de canto superior direito pode ser o bloco que inclui uma amostra nas coordenadas de (W, -1), o bloco vizinho de canto inferior esquerdo pode ser o bloco que inclui uma amostra nas coordenadas de (-1, H), e o bloco vizinho de canto superior esquerdo pode ser o bloco que inclui uma amostra nas coordenadas de (-1, -1).
[0147] De modo mais específico, por exemplo, o aparelho de codificação pode varrer o bloco vizinho A, bloco vizinho B, bloco vizinho C, bloco vizinho D e bloco vizinho E do bloco atual em uma ordem de varredura específica; e determinar o bloco vizinho codificado primeiro no modo de predição afim de acordo com a ordem de varredura como um bloco de candidato do modo de união afim, isto é, candidato de união afim. Em outras palavras, a ordem de varredura específica pode ser realizada na ordem de bloco vizinho A, bloco vizinho B, bloco vizinho C, bloco vizinho D e bloco vizinho E.
[0148] Posteriormente, o aparelho de codificação pode determinar um modelo de movimento afim do bloco atual utilizando-se CPMVs do bloco de candidato determinado, determinar CPMVs do bloco atual com base no modelo de movimento afim, e determinar um MVF afim do bloco atual com base nos CPMVs.
[0149] Como um exemplo, se o bloco vizinho A for determinado como um bloco de candidato do bloco atual, pode-se realizar uma codificação conforme descrito abaixo.
[0150] A Figura 11 ilustra um exemplo de predição afim realizada quando o bloco vizinho A for selecionado como um candidato de união afim.
[0151] Referindo-se à Figura 11, o aparelho de codificação pode determinar o bloco vizinho A do bloco atual como um bloco de candidato e derivar o modelo de movimento afim do bloco atual com basen os CPMVs do bloco vizinho, ν2 e ν3. Posteriormente, o aparelho de codificação pode determinar CPMVs do bloco atual, ν0 e ν1, com base no modelo de movimento afim. O aparelho de codificação pode determinar um MVF afim com base nos CPMVs do bloco atual, ν0 e ν1, e realizar o processo para codificar o bloco atual com base no MVF afim.
[0152] Entretanto, relacionados à interpredição afim, como um meio de construir uma lista de candidato de MVP afim, candidato afim herdado e candidato afim construído estão sendo considerados.
[0153] No presente documento, o candidato afim herdado pode ser descrito da seguinte forma.
[0154] Por exemplo, se um bloco vizinho do bloco atual for um bloco afim, e uma gravura de referência do bloco atual for igual a uma gravura de referência do bloco vizinho, um par de MVP afim do bloco atual pode ser determinado a partir do modelo de movimento afim do bloco vizinho. No presente documento, o bloco afim pode representar um bloco ao qual a interpredição afim foi aplicada. O candidato afim herdado pode representar CPMVPs (por exemplo, o par de MVP afim) derivados com base no modelo de movimento afim do bloco vizinho.
[0155] De modo mais específico, como um exemplo, o candidato afim herdado pode ser derivado conforme descrito abaixo.
[0156] A Figura 12 ilustra blocos vizinhos para derivar o candidato afim herdado.
[0157] Referindo-se à Figura 12, blocos vizinhos do bloco atual podem incluir um bloco vizinho esquerdo A0 do bloco atual, bloco vizinho de canto inferior esquerdo A1 do bloco atual, bloco vizinho superior B0 do bloco atual, bloco vizinho de canto superior direito B1 do bloco atual, e bloco vizinho de canto superior esquerdo B2 do bloco atual.
[0158] Por exemplo, quando um tamanho do bloco atual for W x H, componente x da posição amostral superior esquerda do bloco atual é 0, e componente y do mesmo é 0, o bloco vizinho esquerdo pode ser o bloco que inclui uma amostra nas coordenadas de (-1, H-1), o bloco vizinho superior pode ser o bloco que inclui uma amostra nas coordenadas de (W-1, -1), o bloco vizinho de canto superior direito pode ser o bloco que inclui uma amostra nas coordenadas de (W, -1), o bloco vizinho de canto inferior esquerdo pode ser o bloco que inclui uma amostra nas coordenadas de (-1, H), e o bloco vizinho de canto superior esquerdo pode ser o bloco que inclui uma amostra nas coordenadas de (-1, -1).
[0159] O aparelho de codificação/decodificação pode verificar blocos vizinhos A0, A1, B0, B1 e B2 sequencialmente, e se um bloco vizinho for codificado de acordo com um modelo de movimento afim e uma gravura de referência do bloco atual for igual a uma gravura de referência do bloco vizinho, dois CPMVs ou três CPMVs do bloco atual podem ser derivados com base no modelo de movimento afim do bloco vizinho. Os CPMVs podem ser derivados como um candidato de MVP afim do bloco atual. O candidato de MVP afim pode representar o candidato afim herdado.
[0160] Como um exemplo, até dois candidatos afim herdados podem ser derivados com base nos blocos vizinhos.
[0161] Por exemplo, o aparelho de codificação/decodificação pode derivar um primeiro candidato de MVP afim do bloco atual com base em um primeiro bloco dentre os blocos vizinhos. No presente documento, o primeiro bloco pode ser codificado de acordo com um modelo de movimento afim, e uma gravura de referência do primeiro bloco pode ser igual à gravura de referência do bloco atual. Em outras palavras, o primeiro bloco pode ser um bloco primeiro confirmado por satisfazer uma condição a partir da verificação dos blocos vizinhos de acordo com uma ordem específica. A condição pode ser codificada de acordo com um modelo de movimento afim, e a gravura de referência do bloco pode ser igual à gravura de referência do bloco atual.
[0162] Posteriormente, o aparelho de codificação/decodificação pode derivar um segundo candidato de MVP afim com base em um segundo bloco dentre os blocos vizinhos. No presente documento, o segundo bloco pode ser codificado de acordo com um modelo de movimento afim, e uma gravura de referência do segundo bloco pode ser igual à gravura de referência do bloco atual. Em outras palavras, o segundo bloco pode ser um bloco segundo confirmado por satisfazer a condição a partir da verificação dos blocos vizinhos de acordo com uma ordem específica. A condição pode ser codificada de acordo com um modelo de movimento afim, e a gravura de referência do bloco pode ser igual à gravura de referência do bloco atual.
[0163] Entretanto, por exemplo, quando o número de candidatos afim herdados disponíveis for menor que 2 (isto é, quando o número de candidatos afim herdados derivados for menor que 2), um candidato afim construído pode ser considerado. O candidato afim construído pode ser derivado da seguinte forma.
[0164] A Figura 13 ilustra candidatos espaciais para o candidato afim construído.
[0165] Conforme mostrado na Figura 13, vetores de movimento de blocos vizinhos do bloco atual podem ser divididos em três grupos. Referindo-se à Figura 13, os blocos vizinhos podem incluir um bloco vizinho A, bloco vizinho B, bloco vizinho C, bloco vizinho D, bloco vizinho E, bloco vizinho F e bloco vizinho G.
[0166] O bloco vizinho A pode representar um bloco vizinho localizado em uma posição superior esquerda de uma posição amostral superior esquerda do bloco atual; o bloco vizinho B, um bloco vizinho localizado em uma posição superior da posição amostral superior esquerda do bloco atual; e o bloco vizinho C, um bloco vizinho localizado em uma posição esquerda da posição amostral superior esquerda do bloco atual. Além disso, o bloco vizinho D pode representar um bloco vizinho localizado em uma posição superior de uma posição amostral superior direita do bloco atual, e o bloco vizinho E pode representar um bloco vizinho localizado em uma posição superior direita da posição amostral superior direita do bloco atual. Além disso, o bloco vizinho F pode representar um bloco vizinho localizado em uma posição esquerda de uma posição amostral inferior esquerda do bloco atual; e o bloco vizinho G pode representar um bloco vizinho localizado em uma posição inferior esquerda da posição amostral inferior esquerda do bloco atual.
[0167] Por exemplo, os três grupos podem incluir S0, S1 e S2, onde S0, S1 e S2 podem ser derivados conforme mostrado na tabela abaixo.
Figure img0006
[0168] No presente documento, mνA representa o vetor de movimento do bloco vizinho A, mνB o vetor de movimento do bloco vizinho B, mνC o vetor de movimento do bloco vizinho C, mνD o vetor de movimento do bloco vizinho D, mνE o vetor de movimento do bloco vizinho E, mνF o vetor de movimento do bloco vizinho F, e mνG o vetor de movimento do bloco vizinho G. S0 pode indicar um primeiro grupo, S1 pode indicar um segundo grupo, e S2 pode indicar um terceiro grupo.
[0169] O aparelho de codificação/decodificação pode derivar mν0 a partir de S0, mν1 a partir de S1, mν2 a partir de S2, e um candidato de MVP afim que inclui mν0, mν1 e mν2. O candidato de MVP afim pode indicar o candidato afim construído. Da mesma forma, mν0 pode ser o candidato de CPMVP de CP0, mν1 pode ser o candidato de CPMVP de CP1, e mν2 pode ser o candidato de CPMVP de CP2.
[0170] No presente documento, a gravura de referência para mν0 pode ser igual à gravura de referência do bloco atual. Em outras palavras, mν0 pode ser o vetor de movimento primeiro confirmado por satisfazer uma condição a partir da verificação dos vetores de movimento em S0. A condição pode ser de modo que uma gravura de referência para um vetor de movimento seja igual à gravura de referência do bloco atual. A ordem específica pode ser de modo que vetores de movimento sejam verificados em S0 na ordem do bloco vizinho A, bloco vizinho B, e bloco vizinho C. Da mesma forma, a ordem de verificação pode ser realizada diferentemente daquela descrita acima e pode não ser limitada ao exemplo anterior.
[0171] Da mesma forma, a gravura de referência for mν1 pode ser igual à gravura de referência do bloco atual. Em outras palavras, mν1 pode ser o vetor de movimento confirmado primeiro para satisfazer uma condição a partir da verificação dos vetores de movimento em S1. A condição pode ser de modo que uma gravura de referência para um vetor de movimento seja igual à gravura de referência do bloco atual. A ordem específica pode ser de modo que vetores de movimento sejam verificados em S1 na ordem de bloco vizinho D e bloco vizinho E. Da mesma forma, a ordem de verificação pode ser realizada diferentemente em relação àquela descrita acima e pode não ser limitada ao exemplo anterior.
[0172] Da mesma forma, a gravura de referência para mν2 pode ser igual à gravura de referência do bloco atual. Em outras palavras, mν2 pode ser o vetor de movimento confirmado primeiro por satisfazer uma condição a partir da verificação dos vetores de movimento em S2 A condição pode ser de modo que uma gravura de referência para um vetor de movimento seja igual à gravura de referência do bloco atual. A ordem específica pode ser de modo que os vetores de movimento sejam verificados em S2 na ordem do bloco vizinho F e bloco vizinho G. Da mesma forma, a ordem de verificação pode ser realizada diferentemente em relação àquela descrita anteriormente e pode não ser limitada ao exemplo anterior.
[0173] Entretanto, quando somente mν0 e mν1 estiverem disponíveis, isto é, quando somente mν0 e mν1 forem derivados, mν2 pode ser derivado pela equação a seguir.
Figure img0007
[0174] No presente documento, mν¯x 2 representa o componente x de f mν2, mν¯y 2 representa o componente y de mν2, mν¯x 0 representa o componente x de mν0, mν¯y 0 representa o componente y de mν0, mν¯x 1 representa o componente x de mν1, e mν¯y 1 representa o componente y de mν1. Da mesma forma, w representa a largura do bloco atual, e h representa a altura do bloco atual.
[0175] Entretanto, quando somente mν0 e mν2 forem derivados, mν1 pode ser derivado pela equação a seguir.
[Equação 9]
Figure img0008
[0176] No presente documento, mν¯x 1 representa o componente x de mν1, mν¯y 1 representa o componente y de mν1, mν¯x 0 representa o componente x de mν0, mν¯y 0 representa o componente y de mν0, mν¯x 2 representa o componente x de mν2, e mν¯y 2 representa o componente y de mν2. Da mesma forma, w representa a largura do bloco atual, e h representa a altura do bloco atual.
[0177] Da mesma forma, quando o número de candidatos afim herdados disponível e/ou o número de candidatos afim construídos for menor que 2, o processo de AMVP do padrão de HEVC existente pode ser aplicado para construção da lista de MVP afim. Em outras palavras, quando o número de candidatos afim herdados disponível e/ou o número de candidatos afim construídos for menor que 2, o processo para construir candidatos de MVP especificados no padrão de HEVC existente pode ser realizado.
[0178] Entretanto, fluxogramas das modalidades para construir a lista de MVP afim podem ser descritos da seguinte forma.
[0179] A Figura 14 ilustra um exemplo para construir uma lista de MVP afim.
[0180] Referindo-se à Figura 14, o aparelho de codificação/decodificação pode adicionar um candidato herdado à lista de MVP afim de um bloco atual S1400. O candidato herdado pode representar o candidato afim herdado descrito acima.
[0181] De modo mais específico, o aparelho de codificação/decodificação pode derivar até dois candidatos afim herdados a partir dos blocos vizinhos do bloco atual S1405. No presente documento, os blocos vizinhos podem incluir um bloco vizinho esquerdo A0 do bloco atual, bloco vizinho de canto inferior esquerdo A1 do bloco atual, bloco vizinho superior B0 do bloco atual, bloco vizinho de canto superior direito B1 do bloco atual, e bloco vizinho de canto superior esquerdo B2 do bloco atual.
[0182] Por exemplo, o aparelho de codificação/decodificação pode derivar um primeiro candidato de MVP afim do bloco atual com base em um primeiro bloco dentre os blocos vizinhos. No presente documento, o primeiro bloco pode ser codificado de acordo com um modelo de movimento afim, e a gravura de referência do primeiro bloco pode ser igual à gravura de referência do bloco atual. Em outras palavras, o primeiro bloco pode ser o bloco confirmado primeiro por satisfazer uma condição a partir da verificação dos blocos vizinhos de acordo com uma ordem específica. A condição pode ser codificada de acordo com um modelo de movimento afim, e a gravura de referência do bloco pode ser igual à gravura de referência do bloco atual.
[0183] Posteriormente, o aparelho de codificação/decodificação pode derivar um segundo candidato de MVP afim com base em um segundo bloco dentre blocos vizinhos. No presente documento, o segundo bloco pode ser codificado de acordo com um modelo de movimento afim, e a gravura de referência do segundo bloco pode ser igual à gravura de referência do bloco atual. Em outras palavras, o segundo bloco pode ser o bloco que satisfaz uma condição confirmada segundo a partir da verificação dos blocos vizinhos de acordo com uma ordem específica. A condição pode ser codificada de acordo com um modelo de movimento afim, e a gravura de referência do bloco pode ser igual à gravura de referência do bloco atual.
[0184] Entretanto, a ordem específica pode ser de modo que os blocos vizinhos sejam verificados na ordem do bloco vizinho esquerdo A0, bloco vizinho de canto inferior esquerdo A1, bloco vizinho superior B0, bloco vizinho de canto superior direito B1, e bloco vizinho de canto superior esquerdo B2. Da mesma forma, a ordem de verificação pode ser realizada diferentemente daquela descrita acima e pode não ser limitada ao exemplo anterior.
[0185] O aparelho de codificação/decodificação pode adicionar um candidato construído à lista de MVP afim do bloco atual S1410. O candidato construído pode representar o candidato afim construído acima. O candidato construído também pode ser denominado como um candidato de MVP afim construído. Se o número de candidatos herdados disponível for menor que 2, o aparelho de codificação/decodificação pode adicionar o candidato construído à lista de MVP afim do bloco atual. Por exemplo, o aparelho de codificação/decodificação pode derivar um candidato afim construído.
[0186] Entretanto, o método para derivar um candidato afim construído pode ser diferente dependendo se o modelo de movimento afim aplicado ao bloco atual é um modelo de movimento afim de seis parâmetros ou um modelo de movimento afim de quatro parâmetros. Descrições detalhadas de como o candidato construído é derivado serão fornecidas mais adiante.
[0187] O aparelho de codificação/decodificação pode adicionar um candidato de AMVP de HEVC à lista de MVP afim do bloco atual S1420. Se o número de candidatos herdados disponível e/ou o número de candidatos construídos for menor que 2, o aparelho de codificação/decodificação pode adicionar um candidato de AMVP de HEVC à lista de MVP afim do bloco atual. Em outras palavras, quando o número de candidatos herdados disponível e/ou o número de candidatos construídos for menor que 2, o aparelho de codificação/decodificação pode realizar o processo para construir um candidato de MVP conforme especificado no padrão de HEVC existente.
[0188] Entretanto, um método para derivar o candidato construído pode ser realizado da seguinte forma.
[0189] Por exemplo, se um modelo de movimento afim aplicado ao bloco atual for um modelo de movimento afim de seis parâmetros, o candidato construído pode ser derivado conforme ilustrado na modalidade da Figura 15.
[0190] A Figura 15 ilustra um exemplo para derivar o candidato construído.
[0191] Referindo-se à Figura 15, o aparelho de codificação/decodificação pode verificar mν0, mν1 e mν2 para o bloco atual S1500. Em outras palavras, o aparelho de codificação/decodificação pode determinar se mν0, mν1, e mν2 estão disponíveis dentre os blocos vizinhos do bloco atual. No presente documento, mν1 pode representar um candidato de CPMVP de CP0 do bloco atual, mν2 pode representar um candidato de CPMVP de CP1 do bloco atual, e mν1 pode representar um candidato de CPMVP de CP2 do bloco atual. Da mesma forma, mν0, mν1 e mν2 pode representar vetores de movimento de candidato para os respectivos CPs.
[0192] Por exemplo, o aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro de um primeiro grupo satisfazem uma condição específica de acordo com a ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν0. Em outras palavras, mν0 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do primeiro grupo de acordo com a ordem específica. Se vetores de movimento dos blocos vizinhos dentro do primeiro grupo não satisfizerem a condição específica, mν0 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada na ordem do bloco vizinho A dentro do primeiro grupo, bloco vizinho B, e bloco vizinho C. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0193] Da mesma forma, por exemplo, o aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro de um segundo grupo satisfazem uma condição específica de acordo com uma ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν1. Em outras palavras, mν1 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do segundo grupo de acordo com a ordem específica. Se vetores de movimento dos blocos vizinhos dentro do segundo grupo não satisfizerem a condição específica, mν1 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada a partir do bloco vizinho D dentro do segundo grupo ao bloco vizinho E. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0194] Da mesma forma, por exemplo, o aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro de um terceiro grupo satisfazem uma condição específica de acordo com uma ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν2. Em outras palavras, mν2 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do terceiro grupo de acordo com a ordem específica. Se vetores de movimento dos blocos vizinhos dentro do terceiro grupo não satisfizerem a condição específica, mν2 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada a partir do bloco vizinho F dentro do terceiro grupo ao bloco vizinho G. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0195] Entretanto, o primeiro grupo pode incluir um vetor de movimento do bloco vizinho A, um vetor de movimento do bloco vizinho B, e um vetor de movimento do bloco vizinho C; o segundo grupo, um vetor de movimento do bloco vizinho D, e um vetor de movimento do bloco vizinho E; e o terceiro grupo, um vetor de movimento do bloco vizinho F, e um vetor de movimento do bloco vizinho G. O bloco vizinho A pode representar um bloco vizinho localizado em uma posição superior esquerda de uma posição amostral superior esquerda do bloco atual; o bloco vizinho B, um bloco vizinho localizado em uma posição superior da posição amostral superior esquerda do bloco atual; o bloco vizinho C, um bloco vizinho localizado em uma posição esquerda da posição amostral superior esquerda do bloco atual; o bloco vizinho D, um bloco vizinho localizado em uma posição superior de uma posição amostral superior direita do bloco atual; o bloco vizinho E, um bloco vizinho localizado em uma posição superior direita da posição amostral superior direita do bloco atual; o bloco vizinho F, um bloco vizinho localizado em uma posição esquerda da posição amostral inferior esquerda do bloco atual; e o bloco vizinho G, um bloco vizinho localizado em uma posição inferior esquerda da posição amostral inferior esquerda do bloco atual.
[0196] Quando somente mν0 e mν1 estiverem disponíveis para o bloco atual, isto é, quando somente mν0 e mν1 para o bloco atual forem derivados, o aparelho de codificação/decodificação pode derivar mν2 para o bloco atual com base na Equação 8 acima S1510. O aparelho de codificação/decodificação pode derivar mν2 inserindose os mν0 e mν1 derivados na Equação 8 acima.
[0197] Quando somente mν0 e mν2 estiverem disponíveis para o bloco atual, isto é, quando somente mν0 e mν2 para o bloco atual forem derivados, o aparelho de codificação/decodificação pode derivar mν1 para o bloco atual com base na Equação 9 acima S1520. O aparelho de codificação/decodificação pode derivar mν1 inserindose os mν0 e mν2 derivados na Equação 9 acima.
[0198] O aparelho de codificação/decodificação pode proporcionar os mν0, mν1 e mν2 derivados como candidatos construídos do bloco atual S1530. Quando mν0, mν1 e mν2 estiverem disponíveis, isto é, quando mν0, mν1 e mν2 forem derivados com base em blocos vizinhos do bloco atual, o aparelho de codificação/decodificação pode proporcionar os mν0, mν1 e mν2 derivados como candidatos construídos do bloco atual.
[0199] Da mesma forma, quando somente mν0 e mν1 estiverem disponíveis para o bloco atual, isto é, quando somente mν0 e mν1 para o bloco atual forem derivados, o aparelho de codificação/decodificação pode proporcionar os mν0, mν1 e mν2 derivados com base na Equação 8 acima como os candidatos construídos do bloco atual.
[0200] Da mesma forma, quando somente mν0 e mν2 estiverem disponíveis para o bloco atual, isto é, quando somente mν0 e mν2 para o bloco atual forem derivados, o aparelho de codificação/decodificação pode proporcionar os mν0, mν2 e mν1 derivados com base na Equação 9 acima como os candidatos construídos do bloco atual.
[0201] Da mesma forma, por exemplo, se o modelo de movimento afim aplicado ao bloco atual for um modelo de movimento afim de quatro parâmetros, o candidato construído pode ser derivado conforme ilustrado na modalidade da Figura 15.
[0202] A Figura 16 ilustra um exemplo para derivar o candidato construído.
[0203] Referindo-se à Figura 16, o aparelho de codificação/decodificação pode verificar mν0, mν1 e mν2 S1600. Em outras palavras, o aparelho de codificação/decodificação pode determinar se mν0, mν1, e mν2 estão disponíveis dentre os blocos vizinhos do bloco atual. No presente documento, mν0 pode representar um candidato de CPMVP de CP0 do bloco atual, mν1 pode representar um candidato de CPMVP de CP1 do bloco atual, e mν2 pode representar um candidato de CPMVP de CP2 do bloco atual.
[0204] Por exemplo, o aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro de um primeiro grupo satisfazem uma condição específica de acordo com uma ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν0. Em outras palavras, mν0 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do primeiro grupo de acordo com a ordem específica. Se vetores de movimento dos blocos vizinhos dentro do primeiro grupo não satisfizerem a condição específica, mν0 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada na ordem do bloco vizinho A dentro do primeiro grupo, bloco vizinho B, e bloco vizinho C. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0205] Da mesma forma, por exemplo, o aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro de um segundo grupo satisfazem uma condição específica de acordo com a ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν1. Em outras palavras, mν1 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do segundo grupo de acordo com a ordem específica. Se vetores de movimento dos blocos vizinhos dentro do segundo grupo não satisfizerem a condição específica, mν1 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada a partir do bloco vizinho D dentro do segundo grupo ao bloco vizinho E. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0206] Da mesma forma, por exemplo, o aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos em um terceiro grupo satisfazem uma condição específica de acordo com uma ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro para satisfazer a condição durante o processo de verificação como mν2. Em outras palavras, mν2 pode ser o vetor de movimento confirmado primeiro para satisfazer a condição específica a partir da verificação de vetores de movimento dentro do terceiro grupo de acordo com uma ordem específica. Se vetores de movimento dos blocos vizinhos dentro do terceiro grupo não satisfizerem a condição específica, mν2 disponível não existe. No presente documento, por exemplo, a ordem específica pode ser realizada a partir do bloco vizinho F dentro do terceiro grupo ao bloco vizinho G. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja a mesma que a gravura de referência do bloco atual.
[0207] Entretanto, o primeiro grupo pode incluir um vetor de movimento do bloco vizinho A, um vetor de movimento do bloco vizinho B e um vetor de movimento do bloco vizinho C; o segundo grupo, um vetor de movimento do bloco vizinho D e um vetor de movimento do bloco vizinho E; e o terceiro grupo, um vetor de movimento do bloco vizinho F e um vetor de movimento do bloco vizinho G. O bloco vizinho A pode representar um bloco vizinho localizado em uma posição superior esquerda de uma posição amostral superior esquerda do bloco atual; o bloco vizinho B, um bloco vizinho localizado em uma posição superior da posição amostral superior esquerda do bloco atual; o bloco vizinho C, um bloco vizinho localizado em uma posição esquerda da posição amostral superior esquerda do bloco atual; o bloco vizinho D, um bloco vizinho localizado em uma posição superior de uma posição amostral superior direita do bloco atual; o bloco vizinho E, um bloco vizinho localizado em uma posição superior direita da posição amostral superior direita do bloco atual; o bloco vizinho F, um bloco vizinho localizado em uma posição esquerda da posição amostral inferior esquerda do bloco atual; e o bloco vizinho G, um bloco vizinho localizado em uma posição inferior esquerda da posição amostral inferior esquerda do bloco atual.
[0208] Quando somente mν0 e mν1 estiverem disponíveis para o bloco atual ou quando mν0, mν1 e mν2 estiverem disponíveis para o bloco atual, isto é, quando somente mν0 e mν1 forem derivados para o bloco atual ou quando mν0, mν1 e mν2 forem derivados para o bloco atual, o aparelho de codificação/decodificação pode proporcionar mν0 e mν1 derivados como candidatos construídos do bloco atual S1610.
[0209] Entretanto, quando somente mν0 e mν2 estiverem disponíveis para o bloco atual, isto é, quando somente mν0 e mν2 forem derivados para o bloco atual, o aparelho de codificação/decodificação pode derivar mν1 para o bloco atual com base na Equação 9 acima S1620. O aparelho de codificação/decodificação pode derivar mν1 inserindo-se mν0 e mν2 derivados na Equação 9 acima.
[0210] Posteriormente, o aparelho de codificação/decodificação pode proporcionar mν0 e mν1 derivados como candidatos construídos do bloco atual S1610.
[0211] Entretanto, outra modalidade para derivar o candidato afim herdado de acordo com a presente revelação será proposta. Em derivar um candidato afim herdado, a modalidade proposta pode reduzir a complexidade computacional, aperfeiçoando, assim, o desempenho de codificação.
[0212] A Figura 17 ilustra posições de blocos vizinhos varridos para derivar candidatos afim herdados.
[0213] O aparelho de codificação/decodificação pode derivar até dois candidatos afim herdados a partir dos blocos vizinhos do bloco atual. A Figura 17 ilustra blocos vizinhos para os candidatos afim herdados. Por exemplo, os blocos vizinhos podem incluir bloco vizinho A e bloco vizinho B mostrados na Figura 17. O bloco vizinho A pode representar o bloco vizinho esquerdo A0, e o bloco vizinho B pode representar o bloco vizinho superior B0.
[0214] Por exemplo, o aparelho de codificação/decodificação pode verificar a disponibilidade dos blocos vizinhos em uma ordem específica e pode derivar um candidato afim herdado do bloco atual com base em um bloco vizinho confirmado primeiro como disponível. Em outras palavras, o aparelho de codificação/decodificação pode verificar os blocos vizinhos em uma ordem específica para observar se os blocos vizinhos satisfazem uma condição específica e derivar um candidato afim herdado do bloco atual com base em um bloco vizinho confirmado primeiro como disponível. Da mesma forma, o aparelho de codificação/decodificação pode derivar um candidato afim herdado do bloco atual com base em um bloco vizinho confirmado segundo para satisfazer a condição específica. Em outras palavras, o aparelho de codificação/decodificação pode derivar um candidato afim herdado do bloco atual com base em um bloco vizinho confirmado segundo para satisfazer a condição específica. No presente documento, disponibilidade pode significar que um bloco é codificado com base em um modelo de movimento afim, e a gravura de referência do bloco é igual à gravura de referência do bloco atual. Em outras palavras, a condição específica pode indicar que um bloco é codificado com base no modelo de movimento afim, e a gravura de referência do bloco é igual à gravura de referência do bloco atual. Da mesma forma, por exemplo, a ordem específica pode ser realizada a partir do bloco vizinho A ao bloco vizinho B. Entretanto, um processo de verificação de poda pode não ser realizado entre dois candidatos afim herdados (isto é, candidatos afim herdados derivados). O processo de verificação de poda pode representar um processo que verifica se candidatos são idênticos entre si e remove o candidato derivado posteriormente se não forem constatados como sendo idênticos.
[0215] A modalidade acima propõe um método para verificar apenas dois blocos vizinhos (isto é, bloco vizinho A e bloco vizinho B) e derivar o candidato afim herdado ao invés de verificar todos os blocos vizinhos existentes (isto é, bloco vizinho A, bloco vizinho B, bloco vizinho C, bloco vizinho D e bloco vizinho E) e derivar o candidato afim herdado. No presente documento, bloco vizinho C pode representar o bloco vizinho de canto superior direito B1, bloco vizinho D o bloco vizinho de canto inferior esquerdo A1, e bloco vizinho E o bloco vizinho de canto superior esquerdo B2.
[0216] Quando uma predição afim for aplicada a cada bloco vizinho para analisar uma correlação espacial dentre os blocos vizinhos e o bloco atual, uma probabilidade que uma predição afim seja aplicada ao bloco atual pode ser utilizada. Quando uma predição afim for aplicada a cada bloco vizinho, a probabilidade que uma predição afim seja aplicada ao bloco atual pode ser derivada conforme mostrado na tabela abaixo.
Figure img0009
[0217] Referindo-se à Tabela 2 acima, pode-se constatar que a correlação espacial com o bloco atual é alta para bloco vizinho A e bloco vizinho B dentre os blocos vizinhos. Portanto, através de uma modalidade que deriva o candidato afim herdado utilizando-se apenas bloco vizinho A e bloco vizinho B que exibem alta correlação espacial, pode-se reduzir o tempo de processamento, e pode-se obter um alto desempenho de decodificação.
[0218] Entretanto, o processo de verificação de poda pode ser realizado para evitar que o mesmo candidato esteja presente na lista de candidatos. Visto que o processo de verificação de poda pode remover redundância, um efeito vantajoso pode ser obtido em termos de eficiência de codificação, mas ao mesmo tempo, uma complexidade computacional pode ser aumentada devido ao processo de verificação de poda. Em particular, visto que o processo de verificação de poda para candidatos afim precisa ser realizado em consideração ao tipo afim (por exemplo, se o modelo de movimento afim for um modelo de movimento afim de quatro parâmetros ou modelo de movimento afim de seis parâmetros), gravura de referência (ou índice de gravura de referência), e MVs de CP0, CP1, e CP2, a complexidade computacional é bastante alta. Portanto, a presente modalidade propõe um método que não realiza o processo de verificação de poda entre o candidato afim herdado derivado com base no bloco vizinho A (por exemplo, inherited_A) e o candidato afim herdado derivado com base no bloco vizinho B (por exemplo, inherited_B). No caso de blocos vizinhos A e B, eles estão distantes um do outro e, logo, mostram baixa correlação espacial; portanto, é baixa a possibilidade que inherited_A e inherited_B sejam iguais. Portanto, pode ser desejável que o processo de verificação de poda não seja realizado entre os candidatos afim herdados.
[0219] Da mesma forma, com base nos fundamentos anteriores, pode-se propor um método para realizar o processo de verificação de poda o mínimo possível. Por exemplo, o aparelho de codificação/decodificação pode realizar o processo de verificação de poda de modo que apenas os MVs de CP0 dos candidatos afim herdados sejam comparados entre si.
[0220] Da mesma forma, a presente revelação propõe um método para derivar um candidato construído diferente daquele obtido pela modalidade acima. Comparada à modalidade para derivar um candidato construído acima, a modalidade proposta pode aperfeiçoar o desempenho de codificação reduzindo-se a complexidade. A modalidade proposta pode ser descrita da seguinte forma. Da mesma forma, quando o número de candidatos afim herdados disponível for menor que 2 (isto é, quando o número de candidatos afim herdados derivados for menor que 2), candidatos afim construídos podem ser considerados.
[0221] Por exemplo, o aparelho de codificação/decodificação pode verificar mν0, mν1 e mν2 para o bloco atual. Em outras palavras, o aparelho de codificação/decodificação pode determinar se mν0, mν1 e mν2 estão disponíveis dentre os blocos vizinhos do bloco atual. No presente documento, mν0 pode representar um candidato de CPMVP de CP0 do bloco atual, mν1 pode representar um candidato de CPMVP de CP1 do bloco atual, e mν2 pode representar um candidato de CPMVP de CP2 do bloco atual.
[0222] De modo específico, os blocos vizinhos do bloco atual podem ser divididos em três grupos, e os blocos vizinhos podem incluir um bloco vizinho A, um bloco vizinho B, um bloco vizinho C, um bloco vizinho D, um bloco vizinho E, um bloco vizinho F e um bloco vizinho G. O primeiro grupo pode incluir um vetor de movimento do bloco vizinho A, um vetor de movimento do bloco vizinho B, e um vetor de movimento do bloco vizinho C; o segundo grupo, um vetor de movimento do bloco vizinho D e um vetor de movimento do bloco vizinho E; e o terceiro grupo, um vetor de movimento do bloco vizinho F e um vetor de movimento do bloco vizinho G. O bloco vizinho A pode representar um bloco vizinho localizado em uma posição superior esquerda de uma posição amostral superior esquerda do bloco atual; o bloco vizinho B, um bloco vizinho localizado em uma posição superior da posição amostral superior esquerda do bloco atual; o bloco vizinho C, um bloco vizinho localizado em uma posição esquerda da posição amostral superior esquerda do bloco atual; o bloco vizinho D, um bloco vizinho localizado em uma posição superior de uma posição amostral superior direita do bloco atual; o bloco vizinho E, um bloco vizinho localizado em uma posição superior direita da posição amostral superior direita do bloco atual; o bloco vizinho F, um bloco vizinho localizado em uma posição esquerda da posição amostral inferior esquerda do bloco atual; e o bloco vizinho G, um bloco vizinho localizado em uma posição inferior esquerda da posição amostral inferior esquerda do bloco atual.
[0223] O aparelho de codificação/decodificação pode determinar a disponibilidade de mν0 dentro do primeiro grupo, determinar a disponibilidade de mν1 dentro do segundo grupo e a disponibilidade de mν2 dentro do terceiro grupo.
[0224] De modo mais específico, por exemplo, o aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro de um primeiro grupo satisfazem uma condição específica de acordo com uma ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν0. Em outras palavras, mν0 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do primeiro grupo de acordo com uma ordem específica. Se vetores de movimento dos blocos vizinhos dentro do primeiro grupo não satisfizerem a condição específica, mν0 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada na ordem do bloco vizinho A dentro do primeiro grupo, bloco vizinho B e bloco vizinho C. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0225] Da mesma forma, o aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro de um segundo grupo satisfazem uma condição específica de acordo com a ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν1. Em outras palavras, mν1 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do segundo grupo de acordo com a ordem específica. Se vetores de movimento dos blocos vizinhos dentro do segundo grupo do não satisfizerem a condição específica, mν1 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada a partir do bloco vizinho D dentro do segundo grupo ao bloco vizinho E. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0226] Da mesma forma, o aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro de um terceiro grupo satisfazem uma condição específica de acordo com a ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν2. Em outras palavras, mν2 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do terceiro grupo de acordo com a ordem específica. Se vetores de movimento dos blocos vizinhos dentro do terceiro grupo não satisfizerem a condição específica, mν2 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada a partir do bloco vizinho F dentro do terceiro grupo ao bloco vizinho G. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0227] Posteriormente, se o modelo de movimento afim aplicado ao bloco atual for um modelo de movimento afim de 4 parâmetros, e mν0 e mν1 para o bloco atual estiverem disponíveis, o aparelho de codificação/decodificação pode proporcionar mν0 e mν1 derivados como candidatos construídos do bloco atual. Entretanto, se mν0 e/ou mν1 para o bloco atual não estiverem disponíveis, isto é, se pelo menos um dentre mν0 e mν1 não for derivado a partir dos blocos vizinhos do bloco atual, o aparelho de codificação/decodificação pode não adicionar um candidato construído à lista de MVP afim do bloco atual.
[0228] Da mesma forma, se o modelo de movimento afim aplicado ao bloco atual for um modelo de movimento afim de 6 parâmetros, e mν0, mν1 e mν2 para o bloco atual estiverem disponíveis, o aparelho de codificação/decodificação pode proporcionar os mν0, mν1 e mν2 derivados como candidatos construídos do bloco atual. Entretanto, se mν0, mν1 e/ou mν2 para o bloco atual não estiverem disponíveis, isto é, se pelo menos um dentre mν0, mν1 e mν2 não for derivado a partir dos blocos vizinhos do bloco atual, o aparelho de codificação/decodificação pode não adicionar um candidato construído à lista de MVP afim do bloco atual.
[0229] A modalidade proposta descreve um método que considera vetores de movimento de CPs para gerar um modelo de movimento afim do bloco atual como candidatos construídos apenas quando todos os vetores de movimento estiverem disponíveis. No presente documento, a disponibilidade pode significar que a gravura de referência de um bloco vizinho seja igual à gravura de referência do bloco atual.
Em outras palavras, o candidato construído pode ser derivado apenas quando existir um vetor de movimento que satisfaz a condição dentre os vetores de movimento dos blocos vizinhos para os respectivos CPs do bloco atual. Portanto, se um modelo de movimento afim aplicado ao bloco atual for um modelo de movimento afim de 4 parâmetros, o candidato construído pode ser considerado apenas quando os vetores de movimento de CP0 e CP1 do bloco atual (isto é, mν0 e mν1) estiverem disponíveis. Da mesma forma, se um modelo de movimento afim aplicado ao bloco atual for um modelo de movimento afim de 6 parâmetros, o candidato construído pode ser considerado apenas quando os vetores de movimento de CP0, CP1 e CP2 do bloco atual (isto é, mν0, mν1 e mν2) estiverem disponíveis. Portanto, de acordo com a modalidade proposta, a construção adicional para derivar um vetor de movimento para um CP com base na Equação 8 ou 9 pode não ser necessária. Através da modalidade proposta, a complexidade computacional para derivar o candidato construído pode ser reduzida. Da mesma forma, visto que o candidato construído é determinado apenas quando o candidato de CPMVP tendo a mesma gravura de referência estiver disponível, o desempenho de codificação geral pode ser aperfeiçoado.
[0230] Entretanto, um processo de verificação de poda pode não ser realizado entre um candidato afim herdado derivado e o candidato afim construído. O processo de verificação de poda pode representar um processo que verifica se os candidatos são idênticos entre si e remove o candidato derivado posteriormente se for constatado que eles são idênticos.
[0231] A modalidade descrita anteriormente pode ser ilustrada conforme mostrado nas Figuras 18 e 19.
[0232] A Figura 18 ilustra um exemplo para derivar o candidato construído quando um modelo de movimento afim de quatro parâmetros for aplicado ao bloco atual.
[0233] Referindo-se à Figura 18, o aparelho de codificação/decodificação pode determinar se mν0 e mν1 para o bloco atual estão disponíveis S1800. Em outras palavras, o aparelho de codificação/decodificação pode determinar se mν0 e mν1 disponíveis existem nos blocos vizinhos do bloco atual. No presente documento, mν0 pode ser o candidato de CPMVP de CP0 do bloco atual, e mν1 pode ser o candidato de CPMVP de CP1.
[0234] O aparelho de codificação/decodificação pode determinar se mν1 está disponível no primeiro grupo e se mν0 está disponível no segundo grupo.
[0235] De modo específico, os blocos vizinhos do bloco atual podem ser divididos em três grupos, e os blocos vizinhos podem incluir um bloco vizinho A, um bloco vizinho B, um bloco vizinho C, um bloco vizinho D, um bloco vizinho E, um bloco vizinho F e um bloco vizinho G. O primeiro grupo pode incluir um vetor de movimento do bloco vizinho A, um vetor de movimento do bloco vizinho B, e um vetor de movimento do bloco vizinho C; o segundo grupo, um vetor de movimento do bloco vizinho D, e um vetor de movimento do bloco vizinho E; e o terceiro grupo, um vetor de movimento do bloco vizinho F, e um vetor de movimento do bloco vizinho G. O bloco vizinho A pode representar um bloco vizinho localizado em uma posição superior esquerda de uma posição amostral superior esquerda do bloco atual; o bloco vizinho B, um bloco vizinho localizado em uma posição superior da posição amostral superior esquerda do bloco atual; o bloco vizinho C, um bloco vizinho localizado em uma posição esquerda da posição amostral superior esquerda do bloco atual; o bloco vizinho D, um bloco vizinho localizado em uma posição superior de uma posição amostral superior direita do bloco atual; o bloco vizinho E, um bloco vizinho localizado em uma posição superior direita da posição amostral superior direita do bloco atual; o bloco vizinho F, um bloco vizinho localizado em uma posição esquerda da posição amostral inferior esquerda do bloco atual; e o bloco vizinho G, um bloco vizinho localizado em uma posição inferior esquerda da posição amostral inferior esquerda do bloco atual.
[0236] O aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro do primeiro grupo satisfazem uma condição específica de acordo com a ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν0. Em outras palavras, mν0 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do primeiro grupo de acordo com a ordem específica. Se vetores de movimento dos blocos vizinhos dentro do primeiro grupo não satisfizerem a condição específica, mν0 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada na ordem do bloco vizinho A dentro do primeiro grupo, bloco vizinho B, e bloco vizinho C. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0237] Da mesma forma, o aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro do segundo grupo satisfazem uma condição específica de acordo com a ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν1. Em outras palavras, mν1 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do segundo grupo de acordo com a ordem específica. Se vetores de movimento dos blocos vizinhos dentro do segundo grupo não satisfizerem a condição específica, mν1 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada a partir do bloco vizinho D dentro do segundo grupo ao bloco vizinho E. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0238] Se mν0 e mν1 para o bloco atual estiverem disponíveis, isto é, se mν0 e mν1 para o bloco atual forem derivados, o aparelho de codificação/decodificação pode proporcionar os mν0 e mν1 derivados como candidatos construídos do bloco atual S1810. Entretanto, se mν0 e/ou mν1 para o bloco atual não estiverem disponíveis, isto é, se pelo menos um dentre mν0 e mν1 não for derivado a partir dos blocos vizinhos do bloco atual, o aparelho de codificação/decodificação pode não adicionar um candidato construído à lista de MVP afim do bloco atual.
[0239] Entretanto, um processo de verificação de poda pode não ser realizado entre um candidato afim herdado derivado e o candidato afim construído. O processo de verificação de poda pode representar um processo que verifica se os candidatos são idênticos entre si e remove o candidato derivado posteriormente se for constatado que eles são idênticos.
[0240] A Figura 19 ilustra um exemplo para derivar o candidato construído quando modelo de movimento afim de seis parâmetros for aplicado ao bloco atual.
[0241] Referindo-se à Figura 19, o aparelho de codificação/decodificação pode determinar se mν0, mν1, e mν2 para o bloco atual estão disponíveis S1900. Em outras palavras, o aparelho de codificação/decodificação pode determinar se mν0, mν1 e mν2 disponíveis existem nos blocos vizinhos do bloco atual. No presente documento, mν0 pode ser o candidato de CPMVP de CP0 do bloco atual, mν1 o candidato de CPMVP de CP1, e mν2 o candidato de CPMVP de CP2.
[0242] O aparelho de codificação/decodificação pode determinar se mν0 está disponível no primeiro grupo, mν1 no segundo grupo, e mν2 no terceiro grupo.
[0243] De modo específico, os blocos vizinhos do bloco atual podem ser divididos em três grupos, e os blocos vizinhos podem incluir um bloco vizinho A, um bloco vizinho B, um bloco vizinho C, um bloco vizinho D, um bloco vizinho E, um bloco vizinho F e um bloco vizinho G. O primeiro grupo pode incluir um vetor de movimento do bloco vizinho A, um vetor de movimento do bloco vizinho B, e um vetor de movimento do bloco vizinho C; o segundo grupo, um vetor de movimento do bloco vizinho D, e um vetor de movimento do bloco vizinho E; e o terceiro grupo, um vetor de movimento do bloco vizinho F, e um vetor de movimento do bloco vizinho G. O bloco vizinho A pode representar um bloco vizinho localizado em uma posição superior esquerda de uma posição amostral superior esquerda do bloco atual; o bloco vizinho B, um bloco vizinho localizado em uma posição superior da posição amostral superior esquerda do bloco atual; o bloco vizinho C, um bloco vizinho localizado em uma posição esquerda da posição amostral superior esquerda do bloco atual; o bloco vizinho D, um bloco vizinho localizado em uma posição superior de uma posição amostral superior direita do bloco atual; o bloco vizinho E, um bloco vizinho localizado em uma posição superior direita da posição amostral superior direita do bloco atual; o bloco vizinho F, um bloco vizinho localizado em uma posição esquerda da posição amostral inferior esquerda do bloco atual; e o bloco vizinho G, um bloco vizinho localizado em uma posição inferior esquerda da posição amostral inferior esquerda do bloco atual.
[0244] O aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro do primeiro grupo satisfazem uma condição específica de acordo com uma ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν0. Em outras palavras, mν0 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do primeiro grupo de acordo com a ordem específica. Se vetores de movimento dos blocos vizinhos dentro do primeiro grupo não satisfizerem a condição específica, mν0 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada na ordem do bloco vizinho A dentro do primeiro grupo, bloco vizinho B, e bloco vizinho C. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0245] Da mesma forma, o aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro do segundo grupo satisfazem a condição específica de acordo com a ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν1. Em outras palavras, mν1 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do segundo grupo de acordo com a ordem específica. Se vetores de movimento dos blocos vizinhos dentro do segundo grupo não satisfizerem a condição específica, mν1 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada a partir do bloco vizinho D dentro do segundo grupo ao bloco vizinho E. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0246] Da mesma forma, o aparelho de codificação/decodificação pode verificar se vetores de movimento de blocos vizinhos dentro do terceiro grupo satisfazem uma condição específica de acordo com a ordem específica. O aparelho de codificação/decodificação pode derivar o vetor de movimento de um bloco vizinho confirmado primeiro por satisfazer a condição durante o processo de verificação como mν2. Em outras palavras, mν2 pode ser o vetor de movimento confirmado primeiro por satisfazer a condição específica a partir da verificação de vetores de movimento dentro do terceiro grupo de acordo com a ordem específica. Se vetores de movimento dos blocos vizinhos dentro do terceiro grupo não satisfizerem a condição específica, mν2 disponível pode não existir. No presente documento, por exemplo, a ordem específica pode ser realizada a partir do bloco vizinho F dentro do terceiro grupo ao bloco vizinho G. Da mesma forma, por exemplo, a condição específica pode ser de modo que a gravura de referência para um vetor de movimento de um bloco vizinho seja igual à gravura de referência do bloco atual.
[0247] Se mν0, mν1 e mν2 para o bloco atual estiverem disponíveis, isto é, se mν0, mν1 e mν2 para o bloco atual forem derivados, o aparelho de codificação/decodificação pode proporcionar os mν0, mν1 e mν2 derivados como candidatos construídos do bloco atual S1910. Entretanto, se mν0, mν1 e/ou mν2 para o bloco atual não estiverem disponíveis, isto é, se pelo menos um dentre mν0, mν1, e mν2 não for derivado a partir dos blocos vizinhos do bloco atual, o aparelho de codificação/decodificação pode não adicionar um candidato construído à lista de MVP afim do bloco atual.
[0248] Entretanto, um processo de verificação de poda pode não ser realizado entre um candidato afim herdado derivado e o candidato afim construído.
[0249] Entretanto, quando o número de candidatos afim derivados for menor que 2 (isto é, quando o número de candidatos afim herdados e/ou o número de candidatos afim construídos for menor que 2), um candidato de AMVP de HEVC pode ser adicionado à lista de MVP afim do bloco atual.
[0250] Por exemplo, o candidato de AMVP de HEVC pode ser derivado na ordem a seguir.
[0251] De modo mais específico, quando o número de candidatos afim derivados for menor que 2, e CPMV0 do candidato afim construído estiver disponível, o CPMV0 pode ser usado como o candidato de MVP afim. Em outras palavras, quando o número de candidatos afim derivados for menor que 2, e o CPMV0 do candidato afim construído estiver disponível (isto é, quando o número de candidatos afim derivados for menor que 2, e CPMV0 do candidato afim construído for derivado), o CPMV0 do candidato afim construído pode ser derivado como um primeiro candidato de MVP afim incluindo CPMV0, CPMV1 e CPMV2.
[0252] Da mesma forma, a seguir, quando o número de candidatos afim derivados for menor que 2, e o CPMV1 do candidato afim construído estiver disponível, o CPMV1 pode ser usado como o candidato de MVP afim. Em outras palavras, quando o número de candidatos afim derivados for menor que 2, e o CPMV1 do candidato afim construído estiver disponível (isto é, quando o número de candidatos afim derivados for menor que 2, e CPMV1 do candidato afim construído for derivado), o CPMV1 do candidato afim construído pode ser derivado como um segundo candidato de MVP afim incluindo CPMV0, CPMV1 e CPMV2.
[0253] Da mesma forma, a seguir, quando o número de candidatos afim derivados for menor que 2, e o CPMV2 do candidato afim construído estiver disponível, o CPMV2 pode ser usado como o candidato de MVP afim. Em outras palavras, quando o número de candidatos afim derivados for menor que 2, e o CPMV2 do candidato afim construído estiver disponível (isto é, quando o número de candidatos afim derivados for menor que 2, e CPMV2 do candidato afim construído for derivado), o CPMV2 do candidato afim construído pode ser derivado como um terceiro candidato de MVP afim incluindo CPMV0, CPMV1 e CPMV2.
[0254] Da mesma forma, a seguir, quando o número de candidatos afim derivados for menor que 2, um Preditor de Vetor de Movimento Temporal (TMVP) de HEVC pode ser usado como o candidato de MVP afim. O HEVC TMVP pode ser derivado com base em informações de movimento de um bloco vizinho temporal do bloco atual. Em outras palavras, quando o número de candidatos afim derivados for menor que 2, um vetor de movimento de um bloco vizinho temporal do bloco atual pode ser derivado como o terceiro candidato de MVP afim incluindo CPMV0, CPMV1 e CPMV2. O bloco vizinho temporal pode indicar um bloco colocalizado dentro de uma gravura colocalizada correspondente ao bloco atual.
[0255] Da mesma forma, a seguir, quando o número de candidatos afim derivados for menor que 2, um vetor de movimento zero (MV) pode ser usado como o candidato de MVP afim. Em outras palavras, quando o número de candidatos afim derivados for menor que 2, o vetor de movimento zero pode ser derivado como o terceiro candidato de MVP afim incluindo CPMV0, CPMV1 e CPMV2. O vetor de movimento zero pode representar um vetor de movimento cujos elementos são todos zero.
[0256] As etapas de processamento que usam CPMVs de candidatos afim construídos reutilizam o MVs já considerado para geração de candidatos afim construídos, reduzindo, assim, a complexidade de processamento comparada ao método existente para derivar candidatos de AMVP de HEVC.
[0257] Entretanto, a presente revelação propõe outra modalidade para derivar o candidato afim herdado.
[0258] Para derivar o candidato afim herdado, informações de predição afim de blocos vizinhos são necessárias, e, de modo mais específico, informações de predição afim são necessárias da seguinte forma:
[0259] 1) Sinalizador afim (affine_flag) indicando se uma codificação baseada em predição afim foi aplicada aos blocos vizinhos, e
[0260] 2) Informações de movimento dos blocos vizinhos.
[0261] Se um modelo de movimento afim de quatro parâmetros for aplicado aos blocos vizinhos, informações de movimento dos blocos vizinhos podem incluir informações de movimento L0 e informações de movimento L1 para CP0, e informações de movimento L0 e informações de movimento L1 para CP1. Da mesma forma, se um modelo de movimento afim de seis parâmetros for aplicado aos blocos vizinhos, informações de movimento dos blocos vizinhos podem incluir informações de movimento L0 e informações de movimento L1 para CP0, e informações de movimento L0 e informações de movimento L1 para CP2. No presente documento, as informações de movimento L0 podem representar informações de movimento para Lista 0 (L0), e informações de movimento L1 podem representar informações de movimento para Lista 1 (L1). As informações de movimento L0 podem incluir um índice de gravura de referência L0 e um vetor de movimento L0, e as informações de movimento L1 podem incluir um índice de gravura de referência L1 e um vetor de movimento L1.
[0262] Conforme descrito anteriormente, no caso de predição afim, uma grande quantidade de informações precisa ser armazenada, o que pode ser a causa primária para aumento de custos de hardware na implementação real de um aparelho de codificação/decodificação. Em particular, se um bloco vizinho estiver localizado acima de um bloco atual e pertencer ao limite de CTU, um buffer linear precisa ser usado para armazenar informações relacionadas à predição afim do bloco vizinho, o que pode aumentar ainda mais os custos de implementação. A seguir, o problema pode ser referido como uma questão de buffer linear. Nesse sentido, a presente revelação propõe uma modalidade para derivar um candidato afim herdado que minimiza os custos de hardware não armazenando-se ou reduzindo-se as informações relacionadas à predição afim no buffer linear. A modalidade proposta pode aperfeiçoar o desempenho de codificação reduzindo-se a complexidade computacional em derivar o candidato afim herdado. Entretanto, deve-se notar que o buffer linear já armazena informações de movimento sobre um bloco de tamanho 4 x 4, e se as informações relacionadas à predição afim forem adicionalmente armazenadas, a quantidade de informações armazenadas pode ser aumentada em três vezes a quantidade de armazenamento existente.
[0263] Na presente modalidade, nenhuma informação adicional sobre predição afim pode ser armazenada no buffer linear, e quando as informações dentro do buffer linear precisarem ser utilizadas para gerar o candidato afim herdado, a geração do candidato afim herdado pode ser limitada.
[0264] As Figuras 20a a 20b ilustram uma modalidade para derivar o candidato afim herdado.
[0265] Referindo-se à Figura 20a, quando o bloco vizinho B do bloco atual (isto é, o bloco vizinho acima do bloco atual) não pertencer à mesma CTU que o bloco atual, o bloco vizinho B pode não ser usado para geração do candidato afim herdado. Entretanto, embora o bloco vizinho A também não pertença à mesma CTU que o bloco atual, as informações sobre o bloco vizinho A não são armazenadas no buffer linear, e, logo, o bloco vizinho A pode ser usado para geração do candidato afim herdado. Portanto, de acordo com a presente modalidade, somente quando o bloco vizinho acima do bloco atual pertencer à mesma CTU que o bloco atual, o bloco vizinho pode ser usado para derivar o candidato afim herdado. Da mesma forma, quando o bloco vizinho acima do bloco atual não pertencer à mesma CTU que o bloco atual, o bloco vizinho superior pode não ser usado para derivar o candidato afim herdado.
[0266] Referindo-se à Figura 20b, bloco vizinho B do bloco atual (isto é, o bloco vizinho acima do bloco atual) pode pertencer à mesma CTU que o bloco atual. Nesse caso, o aparelho de codificação/decodificação pode gerar o candidato afim herdado referindo-se ao bloco vizinho B.
[0267] A Figura 21 ilustra um método de codificação de vídeo realizado por um aparelho de codificação de acordo com a presente revelação. O método revelado na Figura 21 pode ser realizado pelo aparelho de codificação revelado na Figura 2. De modo mais específico, por exemplo, etapas S2100 a S2120 podem ser realizadas pelo preditor do aparelho de codificação, etapa S2130 pelo subtrator do aparelho de codificação, e etapa S2140 pelo codificador de entropia do aparelho de codificação. Da mesma forma, embora não mostrado na figura, o processo para derivar amostras de predição para o bloco atual com base nos CPMVs pode ser realizado pelo preditor do aparelho de codificação, o processo para derivar amostras residuais para o bloco atual com base nas amostras originais e amostras de predição para o bloco atual pode ser realizado pelo subtrator do aparelho de codificação, o processo para gerar informações sobre residuais para o bloco atual com base nas amostras residuais pode ser realizado pelo transformador do aparelho de codificação, e o processo para codificar informações sobre os residuais pode ser realizado pelo codificador do aparelho de codificação.
[0268] O aparelho de codificação constrói uma lista de candidato de Preditor de Vetor de Movimento (MVP) afim para o bloco atual S2100. O aparelho de codificação pode construir uma lista de candidato de MVP afim que inclui candidatos de MVP afim para o bloco atual. O número máximo dos candidatos de MVP afim da lista de candidato de MVP afim pode ser 2.
[0269] Da mesma forma, como um exemplo, a lista de candidato de MVP afim pode incluir candidatos de MVP afim herdados. O aparelho de codificação pode verificar se os candidatos de MVP afim herdados do bloco atual estão disponíveis, e se os candidatos de MVP afim herdados estão disponíveis, o candidato de MVP afim herdado pode ser derivado. Por exemplo, os candidatos de MVP afim herdados podem ser derivados com base nos blocos vizinhos do bloco atual, e o número máximo dos candidatos de MVP afim herdados pode ser 2. A disponibilidade dos blocos vizinhos pode ser verificada em uma ordem específica, e os candidatos de MVP afim herdados podem ser derivados com base nos blocos vizinhos verificados disponíveis. Em outras palavras, a disponibilidade dos blocos vizinhos pode ser verificada em uma ordem específica, um primeiro candidato de MVP afim herdado pode ser derivado com base no bloco vizinho disponível verificado primeiro, e um segundo candidato de MVP afim herdado pode ser derivado com base no bloco vizinho disponível verificado segundo. A disponibilidade pode significar que um bloco vizinho é codificado com base no modelo de movimento afim, e a gravura de referência do bloco vizinho é igual à gravura de referência do bloco atual. Em outras palavras, um bloco vizinho disponível pode se referir a um bloco vizinho codificado de acordo com um modelo de movimento afim (isto é, um bloco vizinho ao qual uma predição afim é aplicada) e cuja gravura de referência é igual à gravura de referência do bloco atual. De modo mais específico, o aparelho de codificação pode derivar vetores de movimento para CPs do bloco atual com base no modelo de movimento afim do bloco vizinho disponível verificado primeiro e derivar o primeiro candidato de MVP afim herdado que inclui os vetores de movimento como candidatos de CPMVP. Da mesma forma, o aparelho de codificação pode derivar vetores de movimento para CPs do bloco atual com base no modelo de movimento afim do bloco vizinho disponível verificado segundo e derivar p segundo candidato de MVP afim herdado que inclui os vetores de movimento como candidatos de CPMVP. O modelo de movimento afim pode ser derivado pela Equação 1 ou Equação 3 acima.
[0270] Da mesma forma, em outras palavras, os blocos vizinhos podem ser verificados em uma ordem específica para observar se os blocos vizinhos satisfazem uma condição específica, e os candidatos de MVP afim herdados podem ser derivados com base em blocos vizinhos que satisfazem a condição específica verificada. Em outras palavras, os blocos vizinhos podem ser verificados em uma ordem específica para observar se os blocos vizinhos satisfazem a condição específica, um primeiro candidato de MVP afim herdado pode ser derivado com base no bloco vizinho verificado primeiro por satisfazer a condição específica, e um segundo candidato de MVP afim herdado pode ser derivado com base no bloco vizinho verificado segundo por satisfazer a condição específica. De modo mais específico, o aparelho de codificação pode derivar vetores de movimento para CPs do bloco atual com base no modelo de movimento afim dos blocos vizinhos verificados primeiro por satisfazerem a condição específica e derivar o primeiro candidato de MVP afim herdado que inclui os vetores de movimento como candidatos de CPMVP. Da mesma forma, o aparelho de codificação pode derivar os vetores de movimento para CPs do bloco atual com base no modelo de movimento afim dos blocos vizinhos verificados segundo por satisfazerem a condição específica e derivar o segundo candidato de MVP afim herdado que inclui os vetores de movimento como candidatos de CPMVP. O modelo de movimento afim pode ser derivado pela Equação 1 ou Equação 3 acima. Entretanto, a condição específica pode indicar que o bloco vizinho é codificado de acordo com o modelo de movimento afim, e a gravura de referência do bloco vizinho é igual à gravura de referência do bloco atual. Em outras palavras, o bloco vizinho que satisfaz a condição específica pode ser codificado de acordo com o modelo de movimento afim (isto é, predição afim é aplicada ao bloco vizinho), e a gravura de referência é igual à gravura de referência do bloco atual.
[0271] No presente documento, por exemplo, os blocos vizinhos podem incluir o bloco vizinho esquerdo, bloco vizinho superior, bloco vizinho de canto superior direito, bloco vizinho de canto inferior esquerdo, e bloco vizinho de canto superior esquerdo do bloco atual. Nesse caso, a ordem específica pode ser uma ordem a partir do bloco vizinho esquerdo ao bloco vizinho de canto inferior esquerdo ao bloco vizinho superior ao bloco vizinho de canto superior direito ao bloco vizinho de canto superior esquerdo.
[0272] Ou, por exemplo, os blocos vizinhos podem incluir apenas o bloco vizinho esquerdo e o bloco vizinho superior. Nesse caso, a ordem específica pode ser uma ordem a partir do bloco vizinho esquerdo ao bloco vizinho superior.
[0273] Ou, por exemplo, os blocos vizinhos podem incluir o bloco vizinho esquerdo, e se o bloco vizinho superior pertencer à CTU atual que inclui o bloco atual, os blocos vizinhos podem incluir, ainda, o bloco vizinho superior. Nesse caso, a ordem específica pode ser uma ordem a partir do bloco vizinho esquerdo ao bloco vizinho superior. Da mesma forma, se o bloco vizinho superior não pertencer à CTU atual, o blocos vizinhos pode não incluir o bloco vizinho superior. Nesse caso, apenas o bloco vizinho esquerdo pode ser verificado.
[0274] Entretanto, quando um tamanho do bloco atual for W x H, componente x da posição amostral superior esquerda do bloco atual é 0, e componente y do mesmo é 0, o bloco vizinho de canto inferior esquerdo pode ser o bloco que inclui uma amostra nas coordenadas de (-1, H), o bloco vizinho esquerdo pode ser o bloco que inclui uma amostra nas coordenadas de (01, H-1), o bloco vizinho de canto superior direito pode ser o bloco que inclui uma amostra nas coordenadas de (W, -1), o bloco vizinho superior pode ser o bloco que inclui uma amostra nas coordenadas de (W-1, - 1), o bloco vizinho de canto superior esquerdo pode ser o bloco que inclui uma amostra nas coordenadas de (-1, -1). Em outras palavras, o bloco vizinho esquerdo pode ser o bloco vizinho esquerdo na posição mais inferior dentre os blocos vizinhos esquerdos do bloco atual, e o bloco vizinho superior pode ser o bloco vizinho superior na posição mais à esquerda dentre os blocos vizinhos superiores do bloco atual.
[0275] Da mesma forma, como um exemplo, se um candidato de MVP afim construído estiver disponível, a lista de candidato de MVP afim pode incluir o candidato de MVP afim construído. O aparelho de codificação pode verificar se o candidato de MVP afim construído do bloco atual está disponível, e se o candidato de MVP afim construído está disponível, o candidato de MVP afim construído pode ser derivado. Da mesma forma, por exemplo, após o candidato de MVP afim herdado for derivado, o candidato de MVP afim construído pode ser derivado. Se o número de candidatos de MVP afim derivados (isto é, o número de MVPs afim herdados) for menor que 2, e o candidato de MVP afim construído estiver disponível, a lista de candidato de MVP afim pode incluir o candidato de MVP afim construído. No presente documento, o candidato de MVP afim construído pode incluir vetores de movimento de candidato para os CPs. O candidato de MVP afim construído pode estar disponível quando todos os vetores de movimento de candidato estiverem disponíveis.
[0276] Por exemplo, se o modelo de movimento afim de quatro parâmetros for aplicado ao bloco atual, os CPs do bloco atual podem incluir CP0 e CP1. Se o vetor de movimento de candidato para o CP0 estiver disponível, e o vetor de movimento de candidato para o CP1 estiver disponível, o candidato de MVP afim construído pode estar disponível, e a lista de candidato de MVP afim pode incluir o candidato de MVP afim construído. No presente documento, o CP0 pode representar a posição superior esquerda do bloco atual, e o CP1 pode representar a posição superior direita do bloco atual.
[0277] O candidato de MVP afim construído pode incluir o vetor de movimento de candidato para CP0 e o vetor de movimento de candidato para CP1. O vetor de movimento de candidato para CP0 pode ser o vetor de movimento de um primeiro bloco, e o vetor de movimento de candidato para CP1 pode ser o vetor de movimento de um segundo bloco.
[0278] Da mesma forma, o primeiro bloco pode ser um bloco que foi confirmado primeiro enquanto verifica blocos vizinhos no primeiro grupo em uma primeira ordem específica como sendo uma gravura de referência do mesmo igual a uma gravura de referência do bloco atual. Em outras palavras, o vetor de movimento de candidato para CP1 pode ser o vetor de movimento do bloco cuja gravura de referência conformada primeiro verificando-se os blocos vizinhos dentro do primeiro grupo de acordo com uma primeira ordem é igual à gravura de referência do bloco atual. A disponibilidade pode indicar que o bloco vizinho existe, e o bloco vizinho é codificado por interpredição. No presente documento, se a gravura de referência do primeiro bloco dentro do primeiro grupo for igual à gravura de referência do bloco atual, o vetor de movimento de candidato para CP0 pode estar disponível. Da mesma forma, por exemplo, o primeiro grupo pode incluir o bloco vizinho A, bloco vizinho B, e bloco vizinho C, e a primeira ordem específica pode ser uma ordem a partir do bloco vizinho A ao bloco vizinho B, e, então, ao bloco vizinho C.
[0279] Da mesma forma, o segundo bloco pode ser um bloco que foi confirmado primeiro enquanto verifica os blocos vizinhos no segundo grupo em uma segunda ordem específica como sendo uma gravura de referência do mesmo igual a uma gravura de referência do bloco atual. No presente documento, se a gravura de referência do segundo bloco dentro do segundo grupo for igual à gravura de referência do bloco atual, o vetor de movimento de candidato para CP1 pode estar disponível. Da mesma forma, por exemplo, p segundo grupo pode incluir um bloco vizinho D e bloco vizinho E, e a segunda ordem específica pode ser uma ordem a partir do bloco vizinho D ao bloco vizinho E.
[0280] Entretanto, quando um tamanho do bloco atual for W x H, componente x da posição amostral superior esquerda do bloco atual é 0, e componente y do mesmo é 0, bloco vizinho A pode ser o bloco que inclui uma amostra nas coordenadas de (-1, -1), bloco vizinho B pode ser o bloco que inclui uma amostra nas coordenadas de (0, -1), bloco vizinho C pode ser o bloco que inclui uma amostra nas coordenadas de (-1, 0), bloco vizinho D pode ser o bloco que inclui uma amostra nas coordenadas de (W-1, -1), e bloco vizinho E pode ser o bloco que inclui uma amostra nas coordenadas de (W, -1). Em outras palavras, o bloco vizinho A pode ser o bloco vizinho de canto superior esquerdo do bloco atual, bloco vizinho B o bloco vizinho superior na posição mais à esquerda dentre os blocos vizinhos superiores do bloco atual, bloco vizinho C o bloco vizinho esquerdo na posição mais superior dentre os blocos vizinhos esquerdos do bloco atual, bloco vizinho D o bloco vizinho superior na posição mais à direita dentre os blocos vizinhos superiores do bloco atual, e bloco vizinho E o bloco vizinho de canto superior direito do bloco atual.
[0281] Entretanto, se pelo menos um dentre o vetor de movimento de candidato de CP0 e o vetor de movimento de candidato de CP1 não estiver disponível, o candidato de MVP afim construído pode não estar disponível.
[0282] Ou, por exemplo, se o modelo de movimento afim de seis parâmetros for aplicado ao bloco atual, os CPs do bloco atual podem incluir CP0, CP1 e CP2. Se o vetor de movimento de candidato para o CP0 estiver disponível, o vetor de movimento de candidato para o CP1 está disponível, e o vetor de movimento de candidato para o CP2 está disponível, o candidato de MVP afim construído pode estar disponível, e a lista de candidato de MVP afim pode incluir o candidato de MVP afim construído. No presente documento, CP0 pode representar a posição superior esquerda do bloco atual, CP1 pode representar a posição superior direita do bloco atual, e CP2 pode representar a posição inferior esquerda do bloco atual.
[0283] O candidato de MVP afim construído pode incluir o vetor de movimento de candidato para CP0, o vetor de movimento de candidato para CP1, e o vetor de movimento de candidato para CP2. O vetor de movimento de candidato para CP0 pode ser o vetor de movimento de um primeiro bloco, o vetor de movimento de candidato para CP1 pode ser o vetor de movimento de um segundo bloco, e o vetor de movimento de candidato para CP2 pode ser o vetor de movimento de um terceiro bloco.
[0284] Da mesma forma, o primeiro bloco pode ser um bloco que foi confirmado primeiro enquanto verifica os blocos vizinhos no primeiro grupo em uma primeira ordem específica como sendo uma gravura de referência do mesmo é igual a uma gravura de referência do bloco atual. No presente documento, se a gravura de referência do primeiro bloco dentro do primeiro grupo for igual à gravura de referência do bloco atual, o vetor de movimento de candidato para CP0 pode estar disponível. Da mesma forma, por exemplo, o primeiro grupo pode incluir um bloco vizinho A, bloco vizinho B, e bloco vizinho C, e a primeira ordem específica pode ser uma ordem a partir do bloco vizinho A ao bloco vizinho B, e, então, ao bloco vizinho C.
[0285] Da mesma forma, o segundo bloco pode ser um bloco que foi confirmado primeiro enquanto verifica os blocos vizinhos no segundo grupo em uma segunda ordem específica como sendo uma gravura de referência do mesmo é igual a uma gravura de referência do bloco atual. No presente documento, se a gravura de referência do segundo bloco dentro do segundo grupo for igual à gravura de referência do bloco atual, o vetor de movimento de candidato para CP1 pode estar disponível. Da mesma forma, por exemplo, o segundo grupo pode incluir um bloco vizinho D e bloco vizinho E, e a segunda ordem específica pode ser uma ordem a partir do bloco vizinho D ao bloco vizinho E.
[0286] Da mesma forma, o terceiro bloco pode ser um bloco que foi confirmado primeiro enquanto verifica os blocos vizinhos no terceiro grupo em uma terceira ordem específica como sendo uma gravura de referência do mesmo é igual a uma gravura de referência do bloco atual. No presente documento, se a gravura de referência do terceiro bloco dentro do terceiro grupo for igual à gravura de referência do bloco atual, o vetor de movimento de candidato para CP2 pode estar disponível. Da mesma forma, por exemplo, o terceiro grupo pode incluir um bloco vizinho F e bloco vizinho G, e a terceira ordem específica pode ser uma ordem a partir do bloco vizinho F ao bloco vizinho G.
[0287] Entretanto, quando um tamanho do bloco atual for W x H, componente x da posição amostral superior esquerda do bloco atual é 0, e componente y do mesmo é 0, bloco vizinho A pode ser o bloco que inclui uma amostra nas coordenadas de (-1, -1), bloco vizinho B pode ser o bloco que inclui uma amostra nas coordenadas de (0, -1), bloco vizinho C pode ser o bloco que inclui uma amostra nas coordenadas de (-1, 0), bloco vizinho D pode ser o bloco que inclui uma amostra nas coordenadas de (W-1, -1), bloco vizinho E pode ser o bloco que inclui uma amostra nas coordenadas de (W, -1), e bloco vizinho F pode ser o bloco que inclui uma amostra nas coordenadas de (-1, H-1), e bloco vizinho G pode ser o bloco que inclui uma amostra nas coordenadas de (-1, H). Em outras palavras, o bloco vizinho A pode ser o bloco vizinho de canto superior esquerdo do bloco atual, bloco vizinho B o bloco vizinho superior na posição mais à esquerda dentre os blocos vizinhos superiores do bloco atual, bloco vizinho C o bloco vizinho esquerdo na posição mais superior dentre os blocos vizinhos esquerdos do bloco atual, bloco vizinho D o bloco vizinho superior na posição mais à direita dentre os blocos vizinhos superiores do bloco atual, bloco vizinho E o bloco vizinho de canto superior direito do bloco atual, bloco vizinho F o bloco vizinho esquerdo na posição mais inferior dentre os blocos vizinhos esquerdos do bloco atual, e bloco vizinho G o bloco vizinho de canto inferior esquerdo do bloco atual.
[0288] Entretanto, se pelo menos um dentre o vetor de movimento de candidato de CP0, o vetor de movimento de candidato de CP1, e o vetor de movimento de candidato de CP2 não estiver disponível, o candidato de MVP afim construído pode não estar disponível.
[0289] Posteriormente, a lista de candidato de MVP afim pode ser derivada com base nas etapas descritas abaixo.
[0290] Por exemplo, quando o número de candidatos de MVP afim derivados for menor que 2, e o vetor de movimento para CP0 estiver disponível, o aparelho de codificação pode derivar um primeiro candidato de MVP afim. No presente documento, o primeiro candidato de MVP afim pode ser o candidato de MVP afim que inclui o vetor de movimento para CP0 como o vetores de movimento de candidato para os CPs.
[0291] Da mesma forma, por exemplo, quando o número de candidatos de MVP afim derivados for menor que 2, e o vetor de movimento para CP1 estiver disponível, o aparelho de codificação pode derivar um segundo candidato de MVP afim. No presente documento, o segundo candidato de MVP afim pode ser o candidato de MVP afim que inclui o vetor de movimento para CP1 como os vetores de movimento de candidato para os CPs.
[0292] Da mesma forma, por exemplo, quando o número de candidatos de MVP afim derivados for menor que 2, e o vetor de movimento para CP2 estiver disponível, o aparelho de codificação pode derivar um terceiro candidato de MVP afim. No presente documento, o terceiro candidato de MVP afim pode ser o candidato de MVP afim que inclui o vetor de movimento para CP2 como os vetores de movimento de candidato para os CPs.
[0293] Da mesma forma, por exemplo, quando o número de candidatos de MVP afim derivados for menor que 2, o aparelho de codificação pode derivar um quarto candidato de MVP afim incluindo um MVP temporal derivado com base em um bloco vizinho temporal do bloco atual como os vetores de movimento de candidato para os CPs. O bloco vizinho temporal pode se referir ao mesmo bloco colocalizado na mesma gravura colocalizada correspondente ao bloco atual. O MVP temporal pode ser derivado com base no vetor de movimento do bloco vizinho temporal.
[0294] Da mesma forma, por exemplo, quando o número de candidatos de MVP afim derivados for menor que 2, o aparelho de codificação pode derivar um quinto candidato de MVP afim incluindo um vetor de movimento zero como os vetores de movimento de candidato para os CPs. O vetor de movimento zero pode representar um vetor de movimento cujos elementos são todos iguais a zero.
[0295] O aparelho de codificação deriva Preditores de Vetor de Movimento de Ponto de Controle (CPMVPs) para Pontos de Controle (CPs) do bloco atual com base na lista de candidato de MVP afim S2110. O aparelho de codificação pode derivar CPMVs para os CPs do bloco atual exibindo custos de RD ideais e pode selecionar, dentre os candidatos de MVP afim, um candidato de MVP afim mais similar aos CPMVs como o candidato de MVP afim para o bloco atual. O aparelho de codificação pode derivar CPMVPs para CPs do bloco atual com base no candidato de MVP afim selecionado dentre os candidatos de MVP afim. De modo mais específico, se um candidato de MVP afim incluir um vetor de movimento de candidato para CP0 e um vetor de movimento de candidato para CP1, o vetor de movimento de candidato para CP0 do candidato de MVP afim pode ser derivado como CPMVP do CP0, e o vetor de movimento de candidato para CP1 do candidato de MVP afim pode ser derivado como CPMVP do CP1. Da mesma forma, se um candidato de MVP afim incluir um vetor de movimento de candidato para CP0, um vetor de movimento de candidato para CP1, e um vetor de movimento de candidato para CP2, o vetor de movimento de candidato para CP0 do candidato de MVP afim pode ser derivado como CPMVP do CP0, o vetor de movimento de candidato para CP1 do candidato de MVP afim pode ser derivado como CPMVP do CP1, e o vetor de movimento de candidato para CP2 do candidato de MVP afim pode ser derivado como CPMVP do CP2. Da mesma forma, se um candidato de MVP afim incluir um vetor de movimento de candidato para CP0 e um vetor de movimento de candidato para CP2, o vetor de movimento de candidato para CP0 do candidato de MVP afim pode ser derivado como CPMVP do CP0, e o vetor de movimento de candidato para CP2 do candidato de MVP afim pode ser derivado como CPMVP do CP2.
[0296] O aparelho de codificação pode codificar um índice de candidato de MVP afim indicando o candidato de MVP afim selecionado dentre os candidatos de MVP afim. O índice de candidato de MVP afim pode indicar um candidato de MVP afim dentre candidatos de MVP afim incluídos na lista de candidato de preditor de vetor de movimento (MVP) afim para o bloco atual.
[0297] O aparelho de codificação deriva CPMVs para os CPs do bloco atual S2120. O aparelho de codificação pode derivar CPMVs para os respectivos CPs do bloco atual.
[0298] O aparelho de codificação deriva Diferenças de Vetor de Movimento de Ponto de Controle (CPMVDs) para os CPs do bloco atual com base nos CPMVPs e nos CPMVs S2130. O aparelho de codificação pode derivar CPMVDs para os CPs do bloco atual com base nos CPMVPs e nos CPMVs para os respectivos CPs.
[0299] O aparelho de codificação codifica informações de predição de movimento incluindo informações sobre os CPMVDs S2140. O aparelho de codificação pode emitir as informações de predição de movimento incluindo as informações sobre os CPMVDs sob a forma de um fluxo de bits. Em outras palavras, o aparelho de codificação pode emitir informações de imagem que incluem as informações de predição de movimento sob a forma de um fluxo de bits. O aparelho de codificação pode codificar informações sobre os CPMVDs para os respectivos CPs, onde as informações de predição de movimento podem incluir informações sobre os CPMVDs.
[0300] Da mesma forma, a predição de movimento pode incluir o índice de candidato de MVP afim. O índice de candidato de MVP afim pode indicar o candidato de MVP afim selecionado dentre candidatos de MVP afim incluídos na lista de candidato de Preditor de Vetor de Movimento (MVP) afim para o bloco atual.
[0301] Entretanto, como um exemplo, o aparelho de codificação pode derivar amostras de predição para o bloco atual com base nos CPMVs, derivar amostras residuais para o bloco atual com base nas amostras originais e amostras de predição para o bloco atual, gerar informações sobre os residuais para o bloco atual com base nas amostras residuais, e codificar informações sobre os residuais. As informações de imagem podem incluir informações sobre os residuais.
[0302] Entretanto, o fluxo de bits pode ser transmitido ao aparelho de decodificação através de uma network ou uma mídia de armazenamento (digital). No presente documento, a rede pode incluir uma rede de radiodifusão e/ou uma rede de comunicação, e a mídia de armazenamento digital pode incluir vários tipos de mídias de armazenamento incluindo USB, SD, CD, DVD, Bluray, HDD e SSD.
[0303] A Figura 22 ilustra um aparelho de codificação que realiza um método de codificação de vídeo de acordo com a presente revelação. O método revelado na Figura 21 pode ser realizado pelo aparelho de codificação revelado na Figura 22. De modo mais específico, por exemplo, o preditor do aparelho de codificação pode realizar as etapas S2100 a S2130 da Figura 21, e o codificador de entropia do aparelho de codificação da Figura 22 pode realizar a etapa S2140 da Figura 21. Da mesma forma, embora não mostrado na figura, um processo para derivar amostras de predição para o bloco atual com base nos CPMVs pode ser realizado pelo preditor do aparelho de codificação da Figura 22, um processo para derivar amostras residuais para o bloco atual com base nas amostras originais e nas amostras de predição para o bloco atual pode ser realizado pelo subtrator do aparelho de codificação da Figura 22, um processo para gerar informações sobre os residuais para o bloco atual com base nas amostras residuais pode ser realizado pelo transformador do aparelho de codificação, e um processo para codificar informações sobre os residuais pode ser realizado pelo codificador de entropia do aparelho de codificação da Figura 22.
[0304] A Figura 23 ilustra um método de decodificação de vídeo realizado por um aparelho de decodificação de acordo com a presente revelação. O método revelado na Figura 23 pode ser realizado pelo aparelho de decodificação revelado na Figura 3. De modo mais específico, por exemplo, a etapa S2300 da Figura 23 pode ser realizada pelo decodificador de entropia do aparelho de decodificação, as etapas S2310 a S2350 podem ser realizadas pelo preditor do aparelho de decodificação, e a etapa S2360 pode ser realizada pelo adicionador do aparelho de decodificação. Da mesma forma, embora não mostrado na figura, um processo para obter informações sobre residuais de um bloco atual através de um fluxo de bits pode ser realizado pelo decodificador de entropia do aparelho de decodificação, e um processo para derivar as amostras residuais para o bloco atual com base nas informações residuais pode ser realizado pelo transformador inverso do aparelho de decodificação.
[0305] O aparelho de decodificação obtém informações de predição de movimento em um bloco atual a partir de um fluxo de bits S2300. O aparelho de decodificação pode obter informações de imagem que incluem as informações de predição de movimento a partir do fluxo de bits.
[0306] Da mesma forma, por exemplo, as informações de predição de movimento podem incluir informações sobre Diferenças de Vetor de Movimento de Ponto de Controle (CPMVDs) para Pontos de Controle (CPs) do bloco atual. Em outras palavras, as informações de predição de movimento podem incluir informações sobre os CPMVDs para os respectivos CPs do bloco atual.
[0307] Da mesma forma, por exemplo, as informações de predição de movimento podem incluir um índice de candidato de Preditor de Vetor de Movimento (MVP) afim para o bloco atual. O índice de candidato de MVP afim pode indicar um dos candidatos de MVP afim incluídos na lista de candidato de MVP afim para o bloco atual.
[0308] O aparelho de decodificação constrói uma lista de candidato de MVP afim para o bloco atual S2310. O aparelho de decodificação pode construir uma lista de candidato de MVP afim incluindo candidatos de MVP afim para o bloco atual. O número máximo de candidatos de MVP afim da lista de candidato de MVP afim pode ser 2.
[0309] Da mesma forma, como um exemplo, a lista de candidato de MVP afim pode incluir candidatos de MVP afim herdados. O aparelho de decodificação pode verificar se candidatos de MVP afim herdados do bloco atual estão disponíveis, e se os candidatos de MVP afim herdados estiverem disponíveis, o candidato de MVP afim herdado pode ser derivado. Por exemplo, os candidatos de MVP afim herdados podem ser derivados com base em blocos vizinhos do bloco atual, e o número máximo de candidatos de MVP afim herdados pode ser 2. A disponibilidade dos blocos vizinhos pode ser verificada em uma ordem específica, e os candidatos de MVP afim herdados podem ser derivados com base nos blocos vizinhos disponíveis verificados. Em outras palavras, a disponibilidade dos blocos vizinhos pode ser verificada em uma ordem específica, um primeiro candidato de MVP afim herdado pode ser derivado com base no bloco vizinho disponível verificado primeiro, e um segundo candidato de MVP afim herdado pode ser derivado com base no bloco vizinho disponível verificado segundo. A disponibilidade pode significar que um bloco vizinho é codificado com base em um modelo de movimento afim, e a gravura de referência do bloco vizinho é igual à gravura de referência do bloco atual. Em outras palavras, um bloco vizinho disponível pode se referir a um bloco vizinho codificado de acordo com um modelo de movimento afim (isto é, um bloco vizinho ao qual uma predição afim é aplicada) e cuja gravura de referência é igual à gravura de referência do bloco atual. De modo mais específico, o aparelho de decodificação pode derivar vetores de movimento para CPs do bloco atual com base no modelo de movimento afim do bloco vizinho disponível verificado primeiro e derivar o primeiro candidato de MVP afim herdado incluindo os vetores de movimento como candidatos de CPMVP. Da mesma forma, o aparelho de decodificação pode derivar vetores de movimento para CPs do bloco atual com base no modelo de movimento afim do bloco vizinho disponível verificado segundo e derivar o segundo candidato de MVP afim herdado incluindo os vetores de movimento como candidatos de CPMVP. O modelo de movimento afim pode ser derivado pela Equação 1 ou Equação 3 acima.
[0310] Da mesma forma, em outras palavras, os blocos vizinhos podem ser verificados em uma ordem específica para observar se os blocos vizinhos satisfazem uma condição específica, e os candidatos de MVP afim herdados podem ser derivados com base nos blocos vizinhos que satisfazem a condição específica verificada. Em outras palavras, os blocos vizinhos podem ser verificados em uma ordem específica para observar se os blocos vizinhos satisfazem a condição específica, um primeiro candidato de MVP afim herdado pode ser derivado com base no bloco vizinho verificado primeiro por satisfazer a condição específica, e um segundo candidato de MVP afim herdado pode ser derivado com base no bloco vizinho verificado segundo por satisfazer a condição específica. De modo mais específico, o aparelho de decodificação pode derivar vetores de movimento para CPs do bloco atual com base no modelo de movimento afim dos blocos vizinhos verificados primeiro por satisfazerem a condição específica e derivar o primeiro candidato de MVP afim herdado incluindo os vetores de movimento como candidatos de CPMVP. Da mesma forma, o aparelho de decodificação pode derivar vetores de movimento para CPs do bloco atual com base no modelo de movimento afim dos blocos vizinhos verificados segundo por satisfazerem a condição específica e derivar o segundo candidato de MVP afim herdado incluindo os vetores de movimento como candidatos de CPMVP.
O modelo de movimento afim pode ser derivado pela Equação 1 ou Equação 3 acima. Entretanto, a condição específica pode indicar que o bloco vizinho é codificado de acordo com um modelo de movimento afim, e a gravura de referência do bloco vizinho é igual à gravura de referência do bloco atual. Em outras palavras, o bloco vizinho que satisfaz a condição específica pode ser codificado de acordo com um modelo de movimento afim (isto é, uma predição afim é aplicada ao bloco vizinho), e a gravura de referência é igual à gravura de referência do bloco atual.
[0311] No presente documento, por exemplo, os blocos vizinhos podem incluir o bloco vizinho esquerdo, bloco vizinho superior, bloco vizinho de canto superior direito, bloco vizinho de canto inferior esquerdo, e bloco vizinho de canto superior esquerdo do bloco atual. Nesse caso, a ordem específica pode ser uma ordem a partir do bloco vizinho esquerdo ao bloco vizinho de canto inferior esquerdo ao bloco vizinho superior ao bloco vizinho de canto superior direito ao bloco vizinho de canto superior esquerdo.
[0312] Ou, por exemplo, os blocos vizinhos podem incluir apenas o bloco vizinho esquerdo e o bloco vizinho superior. Nesse caso, a ordem específica pode ser uma ordem a partir do bloco vizinho esquerdo ao bloco vizinho superior.
[0313] Ou, por exemplo, os blocos vizinhos podem incluir o bloco vizinho esquerdo, e se o bloco vizinho superior pertencer à CTU atual que inclui o bloco atual, os blocos vizinhos podem incluir, ainda, o bloco vizinho superior. Nesse caso, a ordem específica pode ser uma ordem a partir do bloco vizinho esquerdo ao bloco vizinho superior. Da mesma forma, se o bloco vizinho superior não pertencer à CTU atual, os blocos vizinhos podem não incluir o bloco vizinho superior. Nesse caso, somente o bloco vizinho esquerdo pode ser verificado. Em outras palavras, se o bloco vizinho superior do bloco atual pertence à Unidade de Árvore de Codificação (CTU) atual que inclui o bloco atual, o bloco vizinho superior pode ser usado para derivar o candidato de MVP afim herdado, e se o bloco vizinho superior do bloco atual não pertence à CTU atual, o bloco vizinho superior pode não ser usado para derivar o candidato de MVP afim herdado.
[0314] Entretanto, quando um tamanho do bloco atual for W x H, componente x da posição amostral superior esquerda do bloco atual é 0, e componente y do mesmo é 0, o bloco vizinho de canto inferior esquerdo pode ser o bloco que inclui uma amostra nas coordenadas de (-1, H), o bloco vizinho esquerdo pode ser o bloco que inclui uma amostra nas coordenadas de (01, H-1), o bloco vizinho de canto superior direito pode ser o bloco que inclui uma amostra nas coordenadas de (W, -1), o bloco vizinho superior pode ser o bloco que inclui uma amostra nas coordenadas de (W-1, - 1), o bloco vizinho de canto superior esquerdo pode ser o bloco que inclui uma amostra nas coordenadas de (-1, -1). Em outras palavras, o bloco vizinho esquerdo pode ser o bloco vizinho esquerdo na posição mais inferior dentre os blocos vizinhos esquerdos do bloco atual, e o bloco vizinho superior pode ser o bloco vizinho superior na posição mais à esquerda dentre os blocos vizinhos superiores do bloco atual.
[0315] Da mesma forma, como um exemplo, se um candidato de MVP afim construído estiver disponível, a lista de candidato de MVP afim pode incluir o candidato de MVP afim construído. O aparelho de decodificação pode verificar se o candidato de MVP afim construído do bloco atual está disponível, e se o candidato de MVP afim construído estiver disponível, o candidato de MVP afim construído pode ser derivado. Da mesma forma, por exemplo, após o candidato de MVP afim herdado ser derivado, o candidato de MVP afim construído pode ser derivado. Se o número de candidatos de MVP afim derivados (isto é, o número de MVPs afim herdados) for menor que 2, e o candidato de MVP afim construído estiver disponível, a lista de candidato de MVP afim pode incluir o candidato de MVP afim construído. No presente documento, o candidato de MVP afim construído pode incluir vetores de movimento de candidato para os CPs. O candidato de MVP afim construído pode estar disponível quando todos os vetores de movimento de candidato estiverem disponíveis.
[0316] Por exemplo, se um modelo de movimento afim de quatro parâmetros for aplicado ao bloco atual, os CPs do bloco atual podem incluir CP0 e CP1. Se o vetor de movimento de candidato para o CP0 estiver disponível, e o vetor de movimento de candidato para o CP1 estiver disponível, o candidato de MVP afim construído pode estar disponível, e a lista de candidato de MVP afim pode incluir o candidato de MVP afim construído. No presente documento, CP0 pode representar a posição superior esquerda do bloco atual, e CP1 pode representar a posição superior direita do bloco atual.
[0317] O candidato de MVP afim construído pode incluir o vetor de movimento de candidato para CP0 e o vetor de movimento de candidato para CP1. O vetor de movimento de candidato para CP0 pode ser o vetor de movimento de um primeiro bloco, e o vetor de movimento de candidato para CP1 pode ser o vetor de movimento de um segundo bloco.
[0318] Da mesma forma, o primeiro bloco pode ser um bloco que foi confirmado primeiro enquanto verifica os blocos vizinhos no primeiro grupo em uma primeira ordem específica como sendo uma gravura de referência do mesmo é igual a uma gravura de referência do bloco atual. Em outras palavras, o vetor de movimento de candidato para CP1 pode ser o vetor de movimento do bloco cuja gravura de referência confirmada primeira verificando-se blocos vizinhos dentro do primeiro grupo de acordo com uma primeira ordem é igual à gravura de referência do bloco atual. A disponibilidade pode indicar que o bloco vizinho existe, e o bloco vizinho é codificado por interpredição. No presente documento, se a gravura de referência do primeiro bloco no primeiro grupo for igual à gravura de referência do bloco atual, o vetor de movimento de candidato para CP0 pode estar disponível. Da mesma forma, por exemplo, o primeiro grupo pode incluir um bloco vizinho A, bloco vizinho B, e bloco vizinho C; e a primeira ordem específica pode ser uma ordem a partir do bloco vizinho A ao bloco vizinho B, e, então, ao bloco vizinho C.
[0319] Da mesma forma, o segundo bloco pode ser um bloco que foi confirmado primeiro enquanto verifica os blocos vizinhos no segundo grupo em uma segunda ordem específica como sendo uma gravura de referência do mesmo é igual a uma gravura de referência do bloco atual. No presente documento, se a gravura de referência do segundo bloco no segundo grupo for igual à gravura de referência do bloco atual, o vetor de movimento de candidato para CP1 pode estar disponível. Da mesma forma, por exemplo, o segundo grupo pode incluir um bloco vizinho D e bloco vizinho E, e a segunda ordem específica pode ser uma ordem a partir do bloco vizinho D ao bloco vizinho E.
[0320] Entretanto, quando um tamanho do bloco atual for W x H, componente x da posição amostral superior esquerda do bloco atual é 0, e componente y do mesmo é 0, bloco vizinho A pode ser o bloco que inclui uma amostra nas coordenadas de (-1, -1), bloco vizinho B pode ser o bloco que inclui uma amostra nas coordenadas de (0, -1), bloco vizinho C pode ser o bloco que inclui uma amostra nas coordenadas de (-1, 0), bloco vizinho D pode ser o bloco que inclui uma amostra nas coordenadas de (W-1, -1), e bloco vizinho E pode ser o bloco que inclui uma amostra nas coordenadas de (W, -1). Em outras palavras, bloco vizinho A pode ser o bloco vizinho de canto superior esquerdo do bloco atual, bloco vizinho B o bloco vizinho superior na posição mais à esquerda dentre blocos vizinhos superiores do bloco atual, bloco vizinho C o bloco vizinho esquerdo na posição mais superior dentre os blocos vizinhos esquerdos do bloco atual, bloco vizinho D o bloco vizinho superior na posição mais à direita dentre os blocos vizinhos superiores do bloco atual, e bloco vizinho E o bloco vizinho de canto superior direito do bloco atual.
[0321] Entretanto, se pelo menos um dentre o vetor de movimento de candidato de CP0 e o vetor de movimento de candidato de CP1 não estiver disponível, o candidato de MVP afim construído pode não estar disponível.
[0322] Ou, por exemplo, se um modelo de movimento afim de seis parâmetros for aplicado ao bloco atual, os CPs do bloco atual podem incluir CP0, CP1, e CP2. Se o vetor de movimento de candidato para o CP0 estiver disponível, o vetor de movimento de candidato para o CP1 estiver disponível, e o vetor de movimento de candidato para o CP2 estiver disponível, o candidato de MVP afim construído pode estar disponível, e a lista de candidato de MVP afim pode incluir o candidato de MVP afim construído. No presente documento, CP0 pode representar a posição superior esquerda do bloco atual, CP1 pode representar a posição superior direita do bloco atual, e CP2 pode representar a posição inferior esquerda do bloco atual.
[0323] O candidato de MVP afim construído pode incluir o vetor de movimento de candidato para CP0, o vetor de movimento de candidato para CP1, e o vetor de movimento de candidato para CP2. O vetor de movimento de candidato para CP0 pode ser o vetor de movimento de um primeiro bloco, o vetor de movimento de candidato para CP1 pode ser o vetor de movimento de um segundo bloco, e o vetor de movimento de candidato para CP2 pode ser o vetor de movimento de um terceiro bloco.
[0324] Da mesma forma, o primeiro bloco pode ser um bloco que foi confirmado primeiro enquanto verifica os blocos vizinhos no primeiro grupo em uma primeira ordem específica como sendo aquela em que uma gravura de referência do mesmo é igual a uma gravura de referência do bloco atual. No presente documento, se a gravura de referência do primeiro bloco dentro do primeiro grupo for igual à gravura de referência do bloco atual, o vetor de movimento de candidato para CP0 pode estar disponível. Da mesma forma, por exemplo, o primeiro grupo pode incluir um bloco vizinho A, bloco vizinho B, e bloco vizinho C, e a primeira ordem específica pode ser uma ordem a partir do bloco vizinho A ao bloco vizinho B, e, então, ao bloco vizinho C.
[0325] Da mesma forma, o segundo bloco pode ser um bloco que foi confirmado primeiro enquanto verifica os blocos vizinhos no segundo grupo em uma segunda ordem específica como sendo uma gravura de referência do mesmo é igual a uma gravura de referência do bloco atual. No presente documento, se a gravura de referência do segundo bloco dentro do segundo grupo for igual à gravura de referência do bloco atual, o vetor de movimento de candidato para CP1 pode estar disponível. Da mesma forma, por exemplo, o segundo grupo pode incluir o bloco vizinho D e bloco vizinho E, e a segunda ordem específica pode ser uma ordem a partir do bloco vizinho D ao bloco vizinho E.
[0326] Da mesma forma, o terceiro bloco pode ser um bloco que foi confirmado primeiro enquanto verifica os blocos vizinhos no terceiro grupo em uma terceira ordem específica como sendo uma gravura de referência do mesmo é igual a uma gravura de referência do bloco atual. No presente documento, se a gravura de referência do terceiro bloco dentro do terceiro grupo for igual à gravura de referência do bloco atual, o vetor de movimento de candidato para CP2 pode estar disponível. Da mesma forma, por exemplo, o terceiro grupo pode incluir um bloco vizinho F e bloco vizinho G, e a terceira ordem específica pode ser uma ordem a partir do bloco vizinho F ao bloco vizinho G.
[0327] Entretanto, quando um tamanho do bloco atual for W x H, componente x da posição amostral superior esquerda do bloco atual é 0, e componente y do mesmo é 0, bloco vizinho A pode ser o bloco que inclui uma amostra nas coordenadas de (-1, -1), bloco vizinho B pode ser o bloco que inclui uma amostra nas coordenadas de (0, -1), bloco vizinho C pode ser o bloco que inclui uma amostra nas coordenadas de (-1, 0), bloco vizinho D pode ser o bloco que inclui uma amostra nas coordenadas de (W-1, -1), bloco vizinho E pode ser o bloco que inclui uma amostra nas coordenadas de (W, -1), e bloco vizinho F pode ser o bloco que inclui uma amostra nas coordenadas de (-1, H-1), e bloco vizinho G pode ser o bloco que inclui uma amostra nas coordenadas de (-1, H). Em outras palavras, o bloco vizinho A pode ser o bloco vizinho de canto superior esquerdo do bloco atual, bloco vizinho B o bloco vizinho superior na posição mais à esquerda dentre blocos vizinhos superiores do bloco atual, bloco vizinho C o bloco vizinho esquerdo na posição mais superior dentre os blocos vizinhos esquerdos do bloco atual, bloco vizinho D o bloco vizinho superior na posição mais à direita dentre os blocos vizinhos superiores do bloco atual, bloco vizinho E o bloco vizinho de canto superior direito do bloco atual, bloco vizinho F o bloco vizinho esquerdo na posição mais inferior dentre os blocos vizinhos esquerdos do bloco atual, e bloco vizinho G o bloco vizinho de canto inferior esquerdo do bloco atual.
[0328] Entretanto, se pelo menos um dentre o vetor de movimento de candidato de CP0, o vetor de movimento de candidato de CP1, e o vetor de movimento de candidato de CP2 não estiver disponível, o candidato de MVP afim construído pode não estar disponível.
[0329] Entretanto, um processo de verificação de poda pode não ser realizado entre o candidato de MVP afim herdado e o candidato de MVP afim construído. O processo de verificação de poda pode representar um processo que verifica se o candidato de MVP afim construído é igual ao candidato de MVP afim herdado, mas não deriva o candidato de MVP afim construído se for constatado que são idênticos.
[0330] Posteriormente, a lista de candidato de MVP afim pode ser derivada com base nas etapas descritas abaixo.
[0331] Por exemplo, quando o número de candidatos de MVP afim derivados for menor que 2, e o vetor de movimento para CP0 estiver disponível, o aparelho de decodificação pode derivar um primeiro candidato de MVP afim. No presente documento, o primeiro candidato de MVP afim pode ser o candidato de MVP afim que inclui o vetor de movimento para CP0 como os vetores de movimento de candidato para os CPs.
[0332] Da mesma forma, por exemplo, quando o número de candidatos de MVP afim derivados for menor que 2, e o vetor de movimento para CP1 estiver disponível, o aparelho de decodificação pode derivar um segundo candidato de MVP afim. No presente documento, o segundo candidato de MVP afim pode ser o candidato de MVP afim que inclui o vetor de movimento para CP1 como os vetores de movimento de candidato para os CPs.
[0333] Da mesma forma, por exemplo, quando o número de candidatos de MVP afim derivados for menor que 2, e o vetor de movimento para CP2 estiver disponível, o aparelho de decodificação pode derivar um terceiro candidato de MVP afim. No presente documento, o terceiro candidato de MVP afim pode ser o candidato de MVP afim que inclui o vetor de movimento para CP2 como os vetores de movimento de candidato para os CPs.
[0334] Da mesma forma, por exemplo, quando o número de candidatos de MVP afim derivados for menor que 2, o aparelho de decodificação pode derivar um quarto candidato de MVP afim que inclui um MVP temporal derivado com base em um bloco vizinho temporal do bloco atual como os vetores de movimento de candidato para os CPs. O bloco vizinho temporal pode se referir ao mesmo bloco colocalizado dentro da mesma gravura colocalizada correspondente ao bloco atual. O MVP temporal pode ser derivado com base no vetor de movimento do bloco vizinho temporal.
[0335] Da mesma forma, por exemplo, quando o número de candidatos de MVP afim derivados for menor que 2, o aparelho de decodificação pode derivar um quinto candidato de MVP afim que inclui um vetor de movimento zero como os vetores de movimento de candidato para os CPs. O vetor de movimento zero pode representar um vetor de movimento cujos elementos são todos iguais a zero.
[0336] O aparelho de decodificação deriva Preditores de Vetor de Movimento de Ponto de Controle (CPMVPs) para Pontos de Controle (CPs) do bloco atual com base na lista de candidato de MVP afim S2320.
[0337] O aparelho de decodificação pode selecionar um candidato de MVP afim específico dentre os candidatos de MVP afim incluídos na lista de candidato de MVP afim e derivar o candidato de MVP afim selecionado como CPMVPs para os CPs do bloco atual. Por exemplo, o aparelho de decodificação pode obter o índice de candidato de MVP afim para o bloco atual a partir de um fluxo de bits e dentre os candidatos de MVP afim incluídos na lista de candidato de MVP afim, derivar o candidato de MVP afim indicado pelo índice de candidato de MVP afim como os CPMVPs para os CPs do bloco atual. De modo mais específico, se um candidato de MVP afim incluir um vetor de movimento de candidato para CP0 e um vetor de movimento de candidato para CP1, o vetor de movimento de candidato para CP0 do candidato de MVP afim pode ser derivado como CPMVP do CP0, e o vetor de movimento de candidato para CP1 do candidato de MVP afim pode ser derivado como CPMVP do CP1. Da mesma forma, se um candidato de MVP afim incluir um vetor de movimento de candidato para CP0, um vetor de movimento de candidato para CP1, e um vetor de movimento de candidato para CP2, o vetor de movimento de candidato para CP0 do candidato de MVP afim pode ser derivado como CPMVP do CP0, o vetor de movimento de candidato para CP1 do candidato de MVP afim pode ser derivado como CPMVP do CP1, e o vetor de movimento de candidato para CP2 do candidato de MVP afim pode ser derivado como CPMVP do CP2. Da mesma forma, se um candidato de MVP afim incluir um vetor de movimento de candidato para CP0 e um vetor de movimento de candidato para CP2, o vetor de movimento de candidato para CP0 do candidato de MVP afim pode ser derivado como CPMVP do CP0, e o vetor de movimento de candidato para CP2 do candidato de MVP afim pode ser derivado como CPMVP do CP2.
[0338] O aparelho de decodificação deriva Diferenças de Vetor de Movimento de Ponto de Controle (CPMVDs) para os CPs do bloco atual com base nas informações de predição de movimento S2330. As informações de predição de movimento podem incluir informações sobre o CPMVD para cada CP, e o aparelho de decodificação pode derivar o CPMVD para cada um dos CPs do bloco atual com base nas informações sobre o CPMVD para cada um dos CPs.
[0339] O aparelho de decodificação deriva Vetores de Movimento de Ponto de Controle (CPMVs) para os CPs do bloco atual com base nos CPMVPs e os CPMVDs S2340. O aparelho de decodificação pode derivar CPMV para cada um dos CPs com base no CPMVP e CPMVD para cada um dos CPs. Por exemplo, o aparelho de decodificação pode derivar e o CPMV para cada CP adicionando-se o CPMVP e CPMVD para o CP.
[0340] O aparelho de decodificação deriva amostras de predição para o bloco atual com base nos CPMVs S2350. O aparelho de decodificação pode derivar vetores de movimento do bloco atual em unidades de sub-bloco ou amostrais com base nos CPMVs. Em outras palavras, o aparelho de decodificação pode derivar um vetor de movimento de cada sub-bloco ou cada amostra do bloco atual com base nos CPMVs. Os vetores de movimento nas unidades de sub-bloco ou amostrais podem ser derivados pela Equação 1 ou Equação 3 acima. Os vetores de movimento podem ser referidos como Campo de Vetor de Movimento (MVF) afim ou arranjo de vetor de movimento.
[0341] O aparelho de decodificação pode derivar amostras de predição para o bloco atual com base nos vetores de movimento nas unidades de sub-bloco ou amostrais. O aparelho de decodificação pode derivar uma região de referência em uma gravura de referência com base no vetor de movimento em unidades de subbloco ou amostrais e gerar amostras de predição do bloco atual com base nas amostras reconstruídas dentro da região de referência.
[0342] O aparelho de decodificação gera uma gravura reconstruída para o bloco atual com base nas amostras de predição derivadas S2360. O aparelho de decodificação pode gerar a gravura reconstruída para o bloco atual com base nas amostras de predição derivadas. De acordo com o modo de predição, o aparelho de decodificação pode usar diretamente as amostras de predição como amostras reconstruídas ou gerar amostras reconstruídas adicionando-se amostras residuais às amostras de predição. Na presença de amostras residuais para o bloco atual, o aparelho de decodificação pode obter informações sobre os residuais para o bloco atual a partir do fluxo de bits. As informações sobre os residuais podem incluir coeficientes de transformada para as amostras residuais. O aparelho de decodificação pode derivar as amostras residuais (ou arranjo de amostra residual) para o bloco atual com base nas informações residuais. O aparelho de decodificação pode gerar amostras reconstruídas com base nas amostras de predição e as amostras residuais e derivar um bloco reconstruído ou uma gravura reconstruída com base nas amostras reconstruídas. Posteriormente, o aparelho de decodificação pode aplicar o processo de filtragem em laço como filtragem por desbloqueio e/ou processo de SAO à gravura reconstruída para aperfeiçoar a qualidade de imagem subjetiva/objetiva dependendo das necessidades, conforme descrito anteriormente.
[0343] A Figura 24 ilustra um aparelho de decodificação que realiza um método de decodificação de vídeo de acordo com a presente revelação. O método revelado na Figura 23 pode ser realizado pelo aparelho de decodificação revelado na Figura 24. De modo mais específico, por exemplo, o decodificador de entropia do aparelho de decodificação da Figura 24 pode realizar uma etapa S2300 da Figura 23, o preditor do aparelho de decodificação da Figura 24 ode realizar as etapas S2310 a S2350, e o adicionador do aparelho de decodificação da Figura 24 pode realizar a etapa S2360 da Figura 23. Da mesma forma, embora não mostrado na figura, o processo para obter informações de imagem que incluem informações sobre os residuais de um bloco atual através de um fluxo de bits pode ser realizado pelo decodificador de entropia do aparelho de decodificação da Figura 24, e o processo para derivar as amostras residuais para o bloco atual com base nas informações residuais pode ser realizado pelo transformador inverso do aparelho de decodificação da Figura 24.
[0344] De acordo com a presente revelação, pode-se aperfeiçoar a eficiência de codificação de vídeo com base na predição de movimento afim.
[0345] Da mesma forma, de acordo com a presente revelação, em derivar a lista de candidato de MVP afim, somente quando todos os vetores de movimento de candidato para CPs de candidatos de MVP afim construídos estiverem disponíveis, os candidatos de MVP afim construídos podem ser adicionados, através do qual a complexidade do processo para derivar candidatos de MVP afim construídos e o processo para construir uma lista de candidato de MVP afim pode ser reduzida, e a eficiência de codificação pode ser aperfeiçoada.
[0346] Da mesma forma, de acordo com a presente revelação, em derivar a lista de candidato de MVP afim, candidatos de MVP afim adicionais podem ser derivados com base em vetores de movimento de candidato para CPs derivados através do processo para derivar candidatos de MVP afim construídos, através dos quais a complexidade do processo para construir uma lista de candidato de MVP afim pode ser reduzida, e a eficiência de codificação pode ser aperfeiçoada.
[0347] Da mesma forma, de acordo com a presente revelação, em derivar candidatos de MVP afim herdados, apenas quando um bloco vizinho superior for incluído em uma CTU atual, o candidato de MVP afim herdado pode ser derivado utilizando-se o bloco vizinho superior, através do qual a quantidade de armazenamento de um buffer linear para predição afim pode ser reduzida, e custos de hardware podem ser minimizados.
[0348] Na modalidade anterior, embora os métodos tenham sido descritos com base nos fluxogramas utilizando-se uma série de etapas ou blocos, a presente revelação não se limita à sequência específica das etapas, e algumas etapas podem ser realizadas em sequências diferentes a partir das etapas restantes ou podem ser realizadas simultaneamente às etapas restantes. Adicionalmente, os indivíduos versados na técnica devem entender que as etapas mostradas nos fluxogramas não são exclusivos, outras etapas podem ser adicionalmente incluídas, ou uma ou mais etapas dos fluxogramas podem ser excluídas sem afetar o escopo técnico da presente revelação.
[0349] As modalidades de acordo com a presente revelação podem ser implementadas e realizadas em um processador, um microprocessador, um controlador ou um chip. Por exemplo, unidades de fração ilustradas em cada desenho podem ser implementadas e realizadas em um computador, um processador, um microprocessador, um controlador ou um chip. Nesse caso, informações (por exemplo, informações sobre instruções) ou algoritmo para implementação podem ser armazenadas em uma mídia de armazenamento digital.
[0350] Da mesma forma, o aparelho de decodificação e o aparelho de codificação aos quais as modalidades da presente revelação são aplicadas podem incluir um dispositivo de transmissão e recepção de radiodifusão multimídia, um terminal de comunicação móvel, um dispositivo de vídeo de cinema em casa, um dispositivo de vídeo de cinema digital, uma câmera de vigilância, um dispositivo de comunicação de vídeo, um dispositivo de comunicação em tempo real para comunicação de vídeo, dispositivo de difusão de dados móvel, uma mídia de armazenamento, uma filmadora, um dispositivo de provisão de serviço de vídeo sob demanda (VoD), um dispositivo de vídeo Over-the-top (OTT), dispositivo de provisão de serviço de difusão de dados via Internet, um dispositivo de vídeo 3D, um dispositivo de videofone, um terminal de meio de transporte (por exemplo, terminal de veículos, terminal de aviões e terminal de navios), e um dispositivo de vídeo médico; e podem ser usados para processar um sinal de vídeo ou um sinal de dados. Por exemplo, dispositivos de vídeo OTT podem incluir um console de jogos, um reprodutor Bluray, uma TV com conexão à Internet, um sistema de home-theater, um smartphone, um PC tipo tablet e uma gravadora de vídeo digital (DVR).
[0351] Da mesma forma, um método de processamento ao qual as modalidades da presente revelação são aplicadas pode ser produzido sob a forma de um programa executado por um computador e pode ser armazenado em uma mídia de gravação legível por computador. Dados multimídia tendo uma estrutura de dados de acordo com a presente revelação também podem ser armazenados em uma mídia de gravação legível por computador. A mídia de gravação legível por computador inclui todos os tipos de dispositivos de armazenamento e dispositivos de armazenamento distribuídos onde os dados legíveis por computador são armazenados. A mídia de gravação legível por computador pode incluir, por exemplo, um disco Bluray (BD), barramento serial universal (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, uma fita magnética, um disquete flexível, e um dispositivo de armazenamento de dados ópticos. Da mesma forma, a mídia de gravação legível por computador inclui uma mídia implementada sob a forma de uma portadora (por exemplo, transmissão através da Internet). Da mesma forma, um fluxo de bits gerado de acordo com o método de codificação pode ser armazenado em uma mídia de gravação legível por computador ou transmitido através de uma rede de comunicação com ou sem fio.
[0352] Da mesma forma, a modalidade da presente revelação pode ser implementada como um produto de programa de computador sob a forma de um código de programa, e o código de programa pode ser executado por um computador de acordo com a modalidade da presente revelação. O código de programa pode ser armazenado em uma portadora legível por computador.
[0353] A Figura 25 ilustra uma estrutura de sistema de difusão de dados de conteúdos ao qual as modalidades da presente revelação são aplicadas.
[0354] O sistema de difusão de dados de conteúdos ao qual as modalidades da presente revelação são aplicadas pode extensamente incluir um servidor de codificação, um servidor de difusão de dados, um servidor da web, um armazenamento de mídia, um dispositivo de usuário e um dispositivo de entrada multimídia.
[0355] O servidor de codificação compacta os conteúdos inseridos a partir de dispositivos de entrada multimídia tais como um smartphone, uma câmera ou uma filmadora em dados digitais para gerar um fluxo de bits e transmitir o fluxo de bits ao servidor de difusão de dados. Como outro exemplo, se os dispositivos de entrada multimídia tais como smartphone, uma câmera ou uma filmadora gerarem diretamente um fluxo de bits, o servidor de codificação pode ser omitido.
[0356] O fluxo de bits pode ser gerado por um método de codificação ou um método para gerar um fluxo de bits ao qual as modalidades da presente revelação são aplicadas, e o servidor de difusão de dados pode armazenar temporariamente o fluxo de bits enquanto o fluxo de bits é transmitido ou recebido.
[0357] O servidor de difusão de dados transmite dados multimídia a um dispositivo de usuário com base em uma solicitação de usuário através de um servidor da web, e o servidor da web desempenha o papel de informar ao usuário quais serviços estão disponíveis. Se o usuário solicitar um serviço desejado a partir do servidor da web, o servidor da web transmite a solicitação ao servidor de difusão de dados, e o servidor de difusão de dados transmite dados multimídia ao usuário. Nesse caso, o sistema de difusão de dados de conteúdos pode incluir um servidor de controle separado. Nesse caso, o servidor de controle serve para controlar comandos/respostas entre dispositivos dentro do sistema de difusão de dados de conteúdos.
[0358] O servidor de difusão de dados pode receber conteúdos a partir de um servidor de armazenamento e/ou codificação de mídia. Por exemplo, quando os conteúdos forem recebidos a partir do servidor de codificação, os conteúdos podem ser recebidos em tempo real. Nesse caso, a fim de proporcionar um serviço de difusão de dados estável, o servidor de difusão de dados pode armazenar o fluxo de bits por um período de tempo predeterminado.
[0359] Exemplos do dispositivo de usuário podem incluir um telefone móvel, um smartphone, um computador tipo laptop, um terminal de radiodifusão digital, um assistente pessoal digital (PDA), um reprodutor de multimídia portátil (PMP), um terminal de navegação, um PC slate, um PC tablet, um ultrabook, um dispositivo vestível (por exemplo, um relógio inteligente, óculos inteligentes e um monitor montado na cabeça (HMD)), uma TV digital, um computador desktop, e uma sinalética digital. Cada servidor individual dentro do sistema de difusão de dados de conteúdos pode ser operado como um servidor distribuído, sendo que nesse caso os dados recebidos a partir de cada servidor podem ser processados de maneira distribuída.

Claims (16)

  1. Método de decodificação de vídeo realizado por um aparelho de decodificação, CARACTERIZADO pelo fato de que compreende:
    obter informações de predição de movimento e informações residuais para um bloco atual a partir de um fluxo de bits;
    construir uma lista de candidato de Preditor de Vetor de Movimento (MVP) afim para o bloco atual;
    derivar Preditores de Vetor de Movimento de Ponto de Controle (CPMVPs) para Pontos de Controle (CPs) do bloco atual com base na lista de candidato de MVP afim;
    derivar Diferenças de Vetor de Movimento de Ponto de Controle (CPMVDs) para os CPs do bloco atual com base nas informações de predição de movimento;
    derivar Vetores de Movimento de Ponto de Controle (CPMVs) para os CPs do bloco atual com base nos CPMVPs e nos CPMVDs;
    derivar amostras de predição para o bloco atual com base nos CPMVs;
    derivar amostras residuais para o bloco atual com base nas informações residuais; e
    gerar uma gravura (picture) reconstruída para o bloco atual com base nas amostras de predição e nas amostras residuais,
    em que a construção da lista de candidato de MVP afim compreende:
    verificar se um candidato de MVP afim herdado está disponível, em que o candidato de MVP afim herdado é derivado quando o candidato de MVP afim herdado estiver disponível;
    verificar se um candidato de MVP afim construído está disponível, em que o candidato de MVP afim construído é derivado quando o candidato de MVP afim construído estiver disponível, e o candidato de MVP afim construído inclui um vetor de movimento de candidato para CP0 do bloco atual, um vetor de movimento de candidato para CP1 do bloco atual, e um vetor de movimento de candidato para CP2 do bloco atual;
    quando o número de candidatos de MVP afim derivados for menor que 2 e um vetor de movimento para o CP0 estiver disponível, derivar um primeiro candidato de MVP afim, em que o primeiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP0 como vetores de movimento de candidato para os CPs;
    quando o número de candidatos de MVP afim derivados for menor que 2 e um vetor de movimento para o CP1 estiver disponível, derivar um segundo candidato de MVP afim, em que o segundo candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP1 como vetores de movimento de candidato para os CPs;
    quando o número de candidatos de MVP afim derivados for menor que 2 e um vetor de movimento para o CP2 estiver disponível, derivar um terceiro candidato de MVP afim, em que o terceiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP2 como vetores de movimento de candidato para os CPs;
    quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quarto candidato de MVP afim que inclui um MVP temporal derivado com base em um bloco vizinho temporal do bloco atual como vetores de movimento de candidato para os CPs; e
    quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quinto candidato de MVP afim que inclui um vetor de movimento zero como vetores de movimento de candidato para os CPs.
  2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que CP0 representa uma posição superior esquerda do bloco atual, o CP1 representa uma posição superior direita do bloco atual, e o CP2 representa uma posição inferior esquerda do bloco atual; e
    o candidato de MVP afim construído está disponível quando os vetores de movimento de candidato estiverem disponíveis.
  3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que, quando uma gravura de referência de um primeiro bloco em um primeiro grupo é a mesma que uma gravura de referência do bloco atual, o vetor de movimento de candidato para o CP0 está disponível,
    quando uma gravura de referência de um segundo bloco em um segundo grupo é a mesma que a gravura de referência do bloco atual, o vetor de movimento de candidato para o CP1 está disponível,
    quando uma gravura de referência de um terceiro bloco em um terceiro grupo é a mesma que a gravura de referência do bloco atual, o vetor de movimento de candidato para o CP2 está disponível; e
    quando o vetor de movimento de candidato para o CP0 estiver disponível, o vetor de movimento de candidato para o CP1 está disponível, e o vetor de movimento de candidato para o CP2 está disponível, a lista de candidato de MVP afim inclui o candidato de MVP afim construído.
  4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que o primeiro grupo inclui um bloco vizinho A, um bloco vizinho B, e um bloco vizinho C; o segundo grupo inclui um bloco vizinho D e um bloco vizinho E; e o terceiro grupo inclui um bloco vizinho F e um bloco vizinho G; e
    quando um tamanho do bloco atual for W x H, e um componente x e um componente y de uma posição amostral superior esquerda do bloco atual for 0, o bloco vizinho A é um bloco incluindo uma amostra nas coordenadas de (-1, -1), o bloco vizinho B é um bloco incluindo uma amostra nas coordenadas de (0, -1), o bloco vizinho C é um bloco incluindo uma amostra de coordenadas de (-1, 0), o bloco vizinho D é um bloco incluindo uma amostra nas coordenadas de (W-1, -1), o bloco vizinho E é um bloco incluindo uma amostra de coordenadas de (W, -1), o bloco vizinho F é um bloco incluindo uma amostra nas coordenadas de (-1, H-1), e o bloco vizinho G é um bloco incluindo uma amostra nas coordenadas de (-1, H).
  5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que o primeiro bloco é um bloco que foi confirmado primeiro enquanto verifica os blocos vizinhos no primeiro grupo em uma primeira ordem específica como sendo que uma gravura de referência é igual a uma gravura de referência do bloco atual,
    o segundo bloco é um bloco que foi confirmado primeiro enquanto verifica os blocos vizinhos no segundo grupo em uma segunda ordem específica como sendo que uma gravura de referência é igual a uma gravura de referência do bloco atual, e
    o terceiro bloco é um bloco que foi confirmado primeiro enquanto verifica blocos vizinhos no terceiro grupo em uma terceira ordem específica como sendo que uma gravura de referência é a mesma que uma gravura de referência do bloco atual.
  6. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que a primeira ordem específica é uma ordem a partir do bloco vizinho A ao bloco vizinho B, e, então, ao bloco vizinho C,
    a segunda ordem específica é uma ordem a partir do bloco vizinho D ao bloco vizinho E, e
    a terceira ordem específica é uma ordem a partir do bloco vizinho F ao bloco vizinho G.
  7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a disponibilidade de blocos vizinhos do bloco atual é verificada em uma ordem específica, e os candidatos de MVP afim herdados são derivados com base em um bloco vizinho disponível verificado.
  8. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que o bloco vizinho disponível é um bloco vizinho codificado de acordo com um modelo de movimento afim e cuja gravura de referência é a mesma que a gravura de referência do bloco atual.
  9. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que os blocos vizinhos incluem um bloco vizinho esquerdo e um bloco vizinho superior do bloco atual.
  10. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que os blocos vizinhos incluem o bloco vizinho esquerdo do bloco atual, e
    quando o bloco vizinho superior do bloco atual for incluído em uma Unidade de Árvore de Codificação (CTU) atual incluindo o bloco atual, os blocos vizinhos incluem o bloco vizinho superior do bloco atual.
  11. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que quando os blocos vizinhos incluírem o bloco vizinho esquerdo e o bloco vizinho superior, a ordem específica é uma ordem a partir do bloco vizinho esquerdo ao bloco vizinho superior.
  12. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que, quando um tamanho do bloco atual for W x H, e um componente x e um componente y de uma posição amostral superior esquerda do bloco atual for 0, o bloco vizinho esquerdo é um bloco incluindo uma amostra nas coordenadas de (-1, H-1), e o bloco vizinho superior é um bloco incluindo uma amostra nas coordenadas de (W-1, -1).
  13. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a verificação de poda entre o candidato de MVP afim herdado e o candidato de MVP afim construído não é realizada.
  14. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, quando um bloco vizinho superior do bloco atual for incluído em uma Unidade de Árvore de Codificação (CTU) atual incluindo o bloco atual, o bloco vizinho superior é usado para derivar o candidato de MVP afim herdado, e
    quando o bloco vizinho superior do bloco atual não for incluído na CTU atual, o bloco vizinho superior não é usado para derivar o candidato de MVP afim herdado.
  15. Método de codificação de vídeo realizado por um aparelho de codificação, CARACTERIZADO pelo fato de que compreende:
    construir uma lista de candidato de Preditor de Vetor de Movimento (MVP) afim para um bloco atual;
    derivar Preditores de Vetor de Movimento de Ponto de Controle (CPMVPs) para Pontos de Controle (CPs) do bloco atual com base na lista de candidato de MVP afim;
    derivar CPMVs para os CPs do bloco atual;
    derivar amostras de predição para o bloco atual com base nos CPMVs;
    derivar amostras residuais para o bloco atual, com base nas amostras de predição;
    derivar Diferenças de Vetor de Movimento de Ponto de Controle (CPMVDs) para os CPs do bloco atual com base nos CPMVPs e nos CPMVs; e
    codificar informações residuais e informações de predição de movimento incluindo informações sobre os CPMVDs,
    em que a construção da lista de candidato de MVP afim compreende:
    verificar se um candidato de MVP afim herdado do bloco atual está disponível, em que o candidato de MVP afim herdado é derivado quando o candidato de MVP afim herdado estiver disponível;
    verificar se um candidato de MVP afim construído do bloco atual está disponível, em que o candidato de MVP afim construído é derivado quando o candidato de MVP afim construído estiver disponível, e o candidato de MVP afim construído inclui um vetor de movimento de candidato para CP0 do bloco atual, um vetor de movimento de candidato para CP1 do bloco atual, e um vetor de movimento de candidato para CP2 do bloco atual;
    quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP0 estiver disponível, derivar um primeiro candidato de MVP afim, em que o primeiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP0 como vetores de movimento de candidato para os CPs;
    quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP1 estiver disponível, derivar um segundo candidato de MVP afim, em que o segundo candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP1 como vetores de movimento de candidato para os CPs;
    quando o número de candidatos de MVP afim derivados for menor que 2 e o vetor de movimento para CP2 estiver disponível, derivar um terceiro candidato de MVP afim, em que o terceiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP2 como vetores de movimento de candidato para os CPs;
    quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quarto candidato de MVP afim que inclui um MVP temporal derivado com base em um bloco vizinho temporal do bloco atual como vetores de movimento de candidato para os CPs; e
    quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quinto candidato de MVP afim que inclui um vetor de movimento zero como vetores de movimento de candidato para os CPs.
  16. Mídia de armazenamento não transitória legível por computador, CARACTERIZADA pelo fato de que armazena um fluxo de bits fazendo com que um aparelho de decodificação execute as seguintes etapas:
    obter informações de predição de movimento e informações residuais para um bloco atual a partir do fluxo de bits;
    construir uma lista de candidato de Preditor de Vetor de Movimento (MVP) afim para o bloco atual;
    derivar Preditores de Vetor de Movimento de Ponto de Controle (CPMVPs) para Pontos de Controle (CPs) do bloco atual com base na lista de candidato de MVP afim;
    derivar Diferenças de Vetor de Movimento de Ponto de Controle (CPMVDs) para os CPs do bloco atual com base nas informações de predição de movimento;
    derivar Vetores de Movimento de Ponto de Controle (CPMVs) para os CPs do bloco atual com base nos CPMVPs e nos CPMVDs;
    derivar amostras de predição para o bloco atual com base nos CPMVs;
    derivar amostras residuais para o bloco atual com base nas informações residuais; e
    gerar uma gravura (picture) reconstruída para o bloco atual com base nas amostras de predição e nas amostras residuais,
    em que a construção da lista de candidato de MVP afim compreende:
    verificar se um candidato de MVP afim herdado está disponível, em que o candidato de MVP afim herdado é derivado quando o candidato de MVP afim herdado estiver disponível;
    verificar se um candidato de MVP afim construído está disponível, em que o candidato de MVP afim construído é derivado quando o candidato de MVP afim construído estiver disponível, e o candidato de MVP afim construído inclui um vetor de movimento de candidato para CP0 do bloco atual, um vetor de movimento de candidato para CP1 do bloco atual, e um vetor de movimento de candidato para CP2 do bloco atual;
    quando o número de candidatos de MVP afim derivados for menor que 2 e um vetor de movimento para o CP0 estiver disponível, derivar um primeiro candidato de MVP afim, em que o primeiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP0 como vetores de movimento de candidato para os CPs;
    quando o número de candidatos de MVP afim derivados for menor que 2 e um vetor de movimento para o CP1 estiver disponível, derivar um segundo candidato de MVP afim, em que o segundo candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP1 como vetores de movimento de candidato para os CPs;
    quando o número de candidatos de MVP afim derivados for menor que 2 e um vetor de movimento para o CP2 estiver disponível, derivar um terceiro candidato de MVP afim, em que o terceiro candidato de MVP afim é um candidato de MVP afim que inclui o vetor de movimento para o CP2 como vetores de movimento de candidato para os CPs;
    quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quarto candidato de MVP afim que inclui um MVP temporal derivado com base em um bloco vizinho temporal do bloco atual como vetores de movimento de candidato para os CPs; e
    quando o número de candidatos de MVP afim derivados for menor que 2, derivar um quinto candidato de MVP afim que inclui um vetor de movimento zero como vetores de movimento de candidato para os CPs.
BR122021009778-0A 2018-09-10 2019-09-10 Método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens BR122021009778A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862729407P 2018-09-10 2018-09-10
US62/729,407 2018-09-10
BR112021004556-2 2019-09-10
BR112021004556-2A BR112021004556A2 (pt) 2018-09-10 2019-09-10 método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens
PCT/KR2019/011733 WO2020055107A1 (ko) 2018-09-10 2019-09-10 영상 코딩 시스템에서 어파인 mvp 후보 리스트를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치

Publications (1)

Publication Number Publication Date
BR122021009778A2 true BR122021009778A2 (pt) 2021-07-13

Family

ID=69777162

Family Applications (4)

Application Number Title Priority Date Filing Date
BR112021004556-2A BR112021004556A2 (pt) 2018-09-10 2019-09-10 método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens
BR122021009779-8A BR122021009779A2 (pt) 2018-09-10 2019-09-10 Método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens
BR122021009778-0A BR122021009778A2 (pt) 2018-09-10 2019-09-10 Método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens
BR122021009784-4A BR122021009784A2 (pt) 2018-09-10 2019-09-10 Método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens

Family Applications Before (2)

Application Number Title Priority Date Filing Date
BR112021004556-2A BR112021004556A2 (pt) 2018-09-10 2019-09-10 método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens
BR122021009779-8A BR122021009779A2 (pt) 2018-09-10 2019-09-10 Método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens

Family Applications After (1)

Application Number Title Priority Date Filing Date
BR122021009784-4A BR122021009784A2 (pt) 2018-09-10 2019-09-10 Método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens

Country Status (15)

Country Link
US (4) US10841576B2 (pt)
EP (2) EP4084476A1 (pt)
JP (3) JP7039698B2 (pt)
KR (4) KR20240015170A (pt)
CN (4) CN116156188A (pt)
BR (4) BR112021004556A2 (pt)
DK (1) DK3700216T3 (pt)
ES (1) ES2926196T3 (pt)
HU (1) HUE060426T2 (pt)
MX (1) MX2021002881A (pt)
PL (1) PL3700216T3 (pt)
PT (1) PT3700216T (pt)
RU (1) RU2768957C1 (pt)
SI (1) SI3700216T1 (pt)
WO (1) WO2020055107A1 (pt)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11356657B2 (en) * 2018-01-26 2022-06-07 Hfi Innovation Inc. Method and apparatus of affine inter prediction for video coding system
TW202025776A (zh) 2018-06-19 2020-07-01 北京字節跳動網絡技術有限公司 不具運動向量預測截斷的選擇運動向量差精確度
JP7141463B2 (ja) * 2018-06-27 2022-09-22 エルジー エレクトロニクス インコーポレイティド インター予測モードに基づいた映像処理方法およびそのための装置
TWI827681B (zh) 2018-09-19 2024-01-01 大陸商北京字節跳動網絡技術有限公司 具有自適應運動矢量分辨率的仿射模式的語法重用
CN113056920A (zh) 2018-11-22 2021-06-29 北京字节跳动网络技术有限公司 基于子块的帧间预测的协调方法
CN113412623A (zh) 2019-01-31 2021-09-17 北京字节跳动网络技术有限公司 记录仿射模式自适应运动矢量分辨率的上下文
EP3997877A4 (en) 2019-08-13 2023-05-24 Beijing Bytedance Network Technology Co., Ltd. MOTION ACCURACY IN SUBBLOCK-BASED INTERPREDICTION
WO2021052507A1 (en) 2019-09-22 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Sub-picture coding and decoding of video

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101452859B1 (ko) 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
BR112015000574A2 (pt) 2012-07-18 2017-08-08 Sony Corp dispositivo e método de processamento de imagem.
WO2017087751A1 (en) 2015-11-20 2017-05-26 Mediatek Inc. Method and apparatus for global motion compensation in video coding system
WO2017118411A1 (en) * 2016-01-07 2017-07-13 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
WO2017156705A1 (en) * 2016-03-15 2017-09-21 Mediatek Inc. Affine prediction for video coding
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US10448010B2 (en) * 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
CN117041568A (zh) * 2016-11-29 2023-11-10 韩国电子通信研究院 图像编码/解码方法和用于存储比特流的记录介质
US10681370B2 (en) * 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
WO2018128379A1 (ko) * 2017-01-03 2018-07-12 엘지전자(주) 어파인 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치
US11877001B2 (en) * 2017-10-10 2024-01-16 Qualcomm Incorporated Affine prediction in video coding
US11889100B2 (en) 2017-11-14 2024-01-30 Qualcomm Incorporated Affine motion vector prediction in video coding
CN111418212B (zh) * 2018-07-13 2023-12-01 Lg电子株式会社 基于图像编码系统中的仿射运动预测的图像解码方法和设备
EP3694213B1 (en) * 2018-08-06 2023-05-03 LG Electronics Inc. Image decoding method and device on basis of affine motion prediction using constructed affine mvp candidate in image coding system
JP7157152B2 (ja) * 2018-09-12 2022-10-19 エルジー エレクトロニクス インコーポレイティド 画像コーディングシステムにおけるサブブロック単位の動き予測に基づく画像デコーディング方法及び装置

Also Published As

Publication number Publication date
CN116193141A (zh) 2023-05-30
JP7039698B2 (ja) 2022-03-22
RU2022106958A (ru) 2022-04-12
BR122021009784A2 (pt) 2021-07-13
US20210029350A1 (en) 2021-01-28
SI3700216T1 (sl) 2022-11-30
KR20220083857A (ko) 2022-06-20
RU2768957C1 (ru) 2022-03-25
US11303887B2 (en) 2022-04-12
US20230362351A1 (en) 2023-11-09
BR112021004556A2 (pt) 2021-06-08
WO2020055107A1 (ko) 2020-03-19
DK3700216T3 (da) 2022-09-12
KR102630797B1 (ko) 2024-01-29
CN116156188A (zh) 2023-05-23
EP3700216A4 (en) 2021-02-03
JP7436543B2 (ja) 2024-02-21
CN111448800B (zh) 2023-03-17
JP2024042110A (ja) 2024-03-27
JP2022082576A (ja) 2022-06-02
KR20200060508A (ko) 2020-05-29
HUE060426T2 (hu) 2023-02-28
PT3700216T (pt) 2022-09-01
JP2021505013A (ja) 2021-02-15
US10841576B2 (en) 2020-11-17
PL3700216T3 (pl) 2022-12-19
US20200275094A1 (en) 2020-08-27
KR102510771B1 (ko) 2023-03-16
EP3700216B1 (en) 2022-08-03
KR102408695B1 (ko) 2022-06-14
EP3700216A1 (en) 2020-08-26
EP4084476A1 (en) 2022-11-02
US11722659B2 (en) 2023-08-08
CN116156189A (zh) 2023-05-23
KR20240015170A (ko) 2024-02-02
KR20230042387A (ko) 2023-03-28
BR122021009779A2 (pt) 2021-07-13
CN111448800A (zh) 2020-07-24
US20220182613A1 (en) 2022-06-09
MX2021002881A (es) 2021-06-04
ES2926196T3 (es) 2022-10-24

Similar Documents

Publication Publication Date Title
BR122021011306B1 (pt) Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem e mídias de armazenamento não transitória legíveis por computador
BR122021009778A2 (pt) Método e aparelho de decodificação de imagens com base em predição de movimento afim usando lista de candidatos a mvp afim no sistema de codificação de imagens
BR122021010912A2 (pt) Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação, mídia de armazenamento não transitória legível por computador, aparelho de decodificação para decodificação de imagem e aparelho de codificação para codificação de imagem
JP7404481B2 (ja) 画像コーディングシステムにおけるサブブロック単位の動き予測に基づく画像デコーディング方法及び装置
BR112021013735A2 (pt) Método de codificação de imagens e dispositivo para executar intrapredição baseada em mrl
BR122021007351B1 (pt) Método de codificação de imagem baseado em predição intra usando lista de mpm e dispositivo para o mesmo
BR112021006580B1 (pt) Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação e mídia de armazenamento legível por computador não transitória
BR122021006490A2 (pt) método de decodificação de imagem com base na predição de movimento afim e dispositivo usando lista de candidatos à fusão afins no sistema de codificação de imagem
BR112021012505B1 (pt) Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação e mídia de armazenamento não transitória legível por computador
JP2024019432A (ja) 決定された予測モードを適用して予測サンプルを生成する映像デコーディング方法及びその装置
ES2949795T3 (es) Método y dispositivo de decodificación de imágenes basado en la predicción de movimiento afín usando un candidato de MVP afín construido en el sistema de codificación de imágenes

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]
B12B Appeal against refusal [chapter 12.2 patent gazette]