BR112021006152B1 - 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 digital legível por computador não transitória - Google Patents

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 digital legível por computador não transitória Download PDF

Info

Publication number
BR112021006152B1
BR112021006152B1 BR112021006152-5A BR112021006152A BR112021006152B1 BR 112021006152 B1 BR112021006152 B1 BR 112021006152B1 BR 112021006152 A BR112021006152 A BR 112021006152A BR 112021006152 B1 BR112021006152 B1 BR 112021006152B1
Authority
BR
Brazil
Prior art keywords
block
ctu
hmvp
current
tile
Prior art date
Application number
BR112021006152-5A
Other languages
English (en)
Other versions
BR112021006152A2 (pt
Inventor
Naeri PARK
Seunghwan Kim
Junghak NAM
Jaehyun Lim
Hyeongmoon JANG
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
Priority to BR122021011274-6A priority Critical patent/BR122021011274B1/pt
Priority to BR122021011268-1A priority patent/BR122021011268B1/pt
Priority to BR122021011306-8A priority patent/BR122021011306B1/pt
Priority to BR122021011303-3A priority patent/BR122021011303B1/pt
Publication of BR112021006152A2 publication Critical patent/BR112021006152A2/pt
Publication of BR112021006152B1 publication Critical patent/BR112021006152B1/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/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • 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/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

de acordo com uma modalidade revelada no presente documento, um buffer de previsão de vetor de movimento com base em histórico (hmvp) para o bloco atual pode ser derivado com base em um histórico e as informações de movimento do bloco atual podem ser derivadas com base em candidatos de hmvp incluídos no buffer de hmvp e, assim, a eficiência de interprevisão pode ser aumentada.

Description

CAMPO DA TÉCNICA
[001] A presente revelação refere-se à codificação de imagem e, mais particularmente, a um método e aparelho de codificação de imagem com base em histórico.
ANTECEDENTES
[002] Recentemente, a demanda por imagem/vídeo de alta resolução e alta qualidade, como imagem/vídeo 4K ou 8K Definição Ultra Alta (UHD), está aumentando em vários campos. À medida que a resolução ou qualidade da imagem/vídeo se torna mais alta, uma quantidade relativamente maior de informações ou bits é transmitida do que para dados convencionais de imagem/vídeo. Portanto, se os dados de imagem/vídeo forem transmitidos por meio de uma mídia como uma linha de banda larga com/sem fio existente ou armazenados em uma mídia de armazenamento herdada, os custos de transmissão e armazenamento são prontamente aumentados.
[003] Além disso, estão crescendo os interesses e a demanda por conteúdos de realidade virtual (VR) e realidade artificial (AR) e mídias imersivas, como holograma; e a transmissão de imagens/vídeos exibindo características de imagem/vídeo diferentes daquelas de uma imagem/vídeo real, como imagens/vídeos de jogos, também estão crescendo.
[004] Portanto, uma técnica de compactação de imagem/vídeo altamente eficiente é necessária para compactar e transmitir, armazenar ou reproduzir de forma eficaz imagens/vídeos de alta qualidade mostrando várias características, conforme descrito acima.
SUMÁRIO
[005] Um objetivo da presente revelação é fornecer um método e aparelho para aumentar a eficiência de codificação de imagem.
[006] Outro objetivo da presente revelação é fornecer um método e aparelho eficientes de interpredição.
[007] Ainda outro objeto da presente revelação é fornecer um método e aparelho para derivar um vetor de movimento com base em histórico.
[008] Ainda outro objeto da presente revelação é fornecer um método e aparelho para derivar de forma eficiente um candidato de predição de vetor de movimento com base em histórico (HMVP).
[009] Ainda outro objetivo da presente revelação é fornecer um método e aparelho para atualizar de forma eficiente um buffer de HMVP.
[010] Um objetivo adicional da presente revelação é fornecer um método e aparelho para inicializar de forma eficiente um buffer de HMVP.
[011] Uma modalidade do presente documento fornece um método de decodificação de imagem realizado por um aparelho de decodificação. O método inclui derivar um buffer de predição de vetor de movimento com base em histórico (HMVP) para um bloco atual, configurar uma lista de candidatos de informações de movimento com base em um candidato de HMVP incluso no buffer de HMVP, derivar informações de movimento do bloco atual com base na lista de candidatos de informações de movimento, gerar amostras de predição para o bloco atual com base nas informações de movimento e gerar amostras reconstruídas com base nas amostras de predição, e um ou mais blocos do tipo ladrilho (tile) estão presentes em uma gravura atual e o buffer de HMVP é inicializado em uma CTU ordenada em primeiro lugar em uma linha de CTU que inclui o bloco atual em um bloco do tipo ladrilho atual.
[012] Outra modalidade do presente documento fornece um aparelho de decodificação configurado para realizar a decodificação de imagem. O aparelho de decodificação inclui um preditor configurado para derivar um buffer de predição de vetor de movimento com base em histórico (HMVP) para um bloco atual, para configurar uma lista de candidatos de informações de movimento com base em um candidato de HMVP incluso no buffer de HMVP, para derivar informações de movimento do bloco atual com base na lista de candidatos de informações de movimento e para gerar amostras de predição para o bloco atual com base nas informações de movimento e um adicionador configurado para gerar amostras reconstruídas com base nas amostras de predição e um ou mais blocos do tipo ladrilho estão presentes em uma gravura atual, e o buffer de HMVP é inicializado em uma CTU ordenada em primeiro lugar de uma linha de CTU incluindo o bloco atual em um bloco do tipo ladrilho atual.
[013] Ainda outra modalidade do presente documento fornece um método de codificação de imagem realizado por um aparelho de codificação. O método inclui derivar um buffer de predição de vetor de movimento com base em histórico (HMVP) para um bloco atual, configurar uma lista de candidatos de informações de movimento com base em um candidato de HMVP incluso no buffer de HMVP, derivar informações de movimento do bloco atual com base na lista de candidatos de informações de movimento, gerar amostras de predição para o bloco atual com base nas informações de movimento, derivar amostras residuais com base nas amostras de predição e codificar informações de imagem, incluindo informações sobre as amostras residuais e um ou mais blocos do tipo ladrilho estão presentes em uma gravura atual e o HMVP buffer é inicializado em uma CTU ordenada em primeiro lugar de uma linha de CTU incluindo o bloco atual em um bloco do tipo ladrilho atual.
[014] Ainda outra modalidade do presente documento fornece um aparelho de codificação configurado para realizar a codificação de imagem. O aparelho de codificação inclui um preditor configurado para derivar um buffer de predição de vetor de movimento com base em histórico (HMVP) para um bloco atual, para configurar uma lista de candidatos de informações de movimento com base em um candidato de HMVP incluso no buffer de HMVP, para derivar informações de movimento do bloco atual com base na lista de candidatos de informações de movimento e para gerar amostras de predição para o bloco atual com base nas informações de movimento, um processador residual configurado para derivar amostras residuais com base nas amostras de predição e um codificador por entropia configurado para codificar informações de imagem, incluindo informações sobre as amostras residuais e um ou mais blocos do tipo ladrilho estão presentes em uma gravura atual e o buffer de HMVP é inicializado em uma CTU ordenada em primeiro lugar de uma linha de CTU incluindo a CTU atual em um bloco do tipo ladrilho atual.
[015] Ainda outra modalidade do presente documento fornece uma mídia de armazenamento digital no qual dados de imagem, incluindo informações de imagem codificadas geradas de acordo com um método de codificação de imagem realizado por um aparelho de codificação, são armazenados.
[016] Uma outra modalidade do presente documento fornece uma mídia de armazenamento digital na qual os dados de imagem, incluindo informações de imagem codificadas, que levam um aparelho de decodificação a realizar o método de decodificação de imagem, são armazenados.
[017] De acordo com uma modalidade do presente documento, é possível aumentar a eficiência geral de compactação de imagem/vídeo.
[018] De acordo com uma modalidade do presente documento, é possível reduzir a quantidade de dados transmitidos necessária para o processamento residual por meio da interpredição eficiente.
[019] De acordo com uma modalidade do presente documento, é possível gerenciar de forma eficiente o buffer de HMVP.
[020] De acordo com uma modalidade do presente documento, é possível suportar o processamento paralelo através do gerenciamento eficiente de buffer de HMVP.
[021] De acordo com uma modalidade do presente documento, é possível derivar de forma eficiente o vetor de movimento para a interpredição.
BREVE DESCRIÇÃO DOS DESENHOS
[022] A Figura 1 é um diagrama que mostra esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual as modalidades do presente documento podem ser aplicadas.
[023] A Figura 2 é um diagrama que explica esquematicamente uma configuração de um aparelho de codificação de vídeo/imagem ao qual as modalidades do presente documento podem ser aplicadas.
[024] A Figura 3 é um diagrama que explica esquematicamente uma configuração de um aparelho de decodificação de vídeo/imagem ao qual as modalidades do presente documento podem ser aplicadas.
[025] A Figura 4 é um diagrama que mostra um exemplo de um método de codificação de vídeo/imagem com base em interpredição.
[026] A Figura 5 é um diagrama que mostra um exemplo de um método de decodificação de vídeo/imagem com base em interpredição.
[027] A Figura 6 é um diagrama que mostra de modo exemplificativo um procedimento de interpredição.
[028] A Figura 7 é um diagrama que mostra de modo exemplificativo blocos vizinhos espaciais usados para derivar um candidato de informações de movimento em uma mesclagem convencional ou modo de AMVP.
[029] A Figura 8 é um diagrama que mostra esquematicamente um exemplo de um procedimento de decodificação com base em candidato de HMVP.
[030] A Figura 9 é um diagrama que mostra de modo exemplificativo uma atualização de tabela de HMVP de acordo com uma regra FIFO.
[031] A Figura 10 é um diagrama que mostra de modo exemplificativo uma atualização de tabela de HMVP de acordo com uma regra FIFO limitada.
[032] A Figura 11 é um diagrama que mostra de modo exemplificativo um Processamento Paralelo de Frente de Onda (WPP), que é uma das técnicas para processamento paralelo.
[033] A Figura 12 é um diagrama que mostra de modo exemplificativo um problema quando um método de HMVP geral é aplicado em consideração ao processamento paralelo.
[034] A Figura 13 é um diagrama que mostra de modo exemplificativo um método de inicialização de um buffer de gerenciamento de histórico (buffer de HMVP) de acordo com uma modalidade do presente documento.
[035] A Figura 14 é um diagrama que mostra de modo exemplificativo um método de gerenciamento de buffer de HMVP de acordo com uma modalidade.
[036] A Figura 15 é um diagrama que mostra de modo exemplificativo um método de gerenciamento de buffer de HMVP de acordo com outra modalidade.
[037] A Figura 16 é um diagrama que mostra de modo exemplificativo um método de inicialização de buffer de HMVP em uma estrutura de bloco do tipo ladrilho.
[038] A Figura 17 é um diagrama que mostra um exemplo de um método de inicialização de buffer de HMVP para uma CTU ordenada em primeiro lugar de um bloco do tipo ladrilho de acordo com outra modalidade.
[039] A Figura 18 é um diagrama que mostra um exemplo de um método de inicialização de buffer de gerenciamento de HMVP para uma CTU ordenada em primeiro lugar em uma linha de CTU em cada bloco do tipo ladrilho de acordo com ainda outra modalidade.
[040] A Figura 19 é um diagrama que mostra um exemplo de uma estrutura em que um bloco do tipo ladrilho e uma fatia existem ao mesmo tempo.
[041] A Figura 20 é um diagrama que mostra um método de inicialização de um buffer de HMVP para uma CTU ordenada em primeiro lugar em cada bloco do tipo ladrilho.
[042] A Figura 21 é um diagrama que mostra um exemplo de um método de inicialização de um buffer de HMVP para cada fatia em um bloco do tipo ladrilho.
[043] A Figura 22 é um diagrama que mostra um exemplo de inicialização de um buffer de HMVP para uma CTU ordenada em primeiro lugar de um primeiro bloco do tipo ladrilho em um grupo de blocos do tipo ladrilho.
[044] A Figura 23 é um diagrama que mostra um exemplo de inicialização de um buffer de HMVP para uma CTU ordenada em primeiro lugar de cada bloco do tipo ladrilho em um grupo de blocos do tipo ladrilho.
[045] A Figura 24 é um diagrama que mostra um exemplo de inicialização de um buffer de HMVP para uma linha de CTU de cada bloco do tipo ladrilho em um grupo de blocos do tipo ladrilho.
[046] As Figuras 25 e 26 são diagramas que mostram esquematicamente um exemplo de um método de codificação de vídeo/imagem e componentes relacionados, incluindo um método de interpredição de acordo com uma modalidade do presente documento.
[047] As Figuras 27 e 28 são diagramas que mostram esquematicamente um exemplo de um método de decodificação de imagem e componentes relacionados, incluindo um método de interpredição de acordo com uma modalidade do presente documento.
[048] A Figura 29 é um diagrama que mostra um exemplo de um sistema de transmissão contínua de conteúdo ao qual modalidades reveladas no presente documento podem ser aplicadas.
DESCRIÇÃO DE MODALIDADES EXEMPLIFICATIVAS
[049] O método apresentado no presente documento pode ser modificado de várias formas, e exemplos específicos dos mesmos serão descritos e ilustrados nos desenhos. Os termos usados na seguinte descrição são usados meramente para descrever uma modalidade específica, mas não se destinam a limitar a ideia técnica do método apresentado no presente documento. Uma expressão de um número singular inclui uma expressão de 'pelo menos um', desde que seja claramente lida de forma diferente. Os termos como "incluir" e "ter" destinam-se a indicar que as particularidades, números, etapas, operações, elementos, componentes ou combinações dos mesmos usados na seguinte descrição existem e deve ser assim entendido que a possibilidade de existência ou adição de uma ou mais particularidades diferentes, números, etapas, operações, elementos, componentes ou combinações dos mesmos não são excluídos.
[050] Enquanto isso, as respectivas estruturas nos desenhos do presente relatório descritivo são fornecidas independentemente umas das outras para a conveniência de descrever diferentes funções características, o que, no entanto, não indica que cada estrutura deve ser implantada por hardware separado ou software separado. Por exemplo, cada estrutura pode ser implantada por uma combinação de duas ou mais estruturas, ou uma estrutura pode ser dividida em uma pluralidade de estruturas. Uma modalidade na qual as estruturas são integradas em uma e/ou separadas umas das outras deve ser considerada como pertencente ao escopo do presente relatório descritivo, a menos que se afaste do espírito técnico de um método revelado no presente relatório descritivo.
[051] O presente documento se refere à codificação de vídeo/imagem. Por exemplo, o método/modalidade revelado no presente documento pode ser aplicado ao método revelado no padrão de codificação de vídeo versátil (VVC). Além disso, os métodos/modalidades revelados no presente documento podem ser aplicados a um método revelado no padrão EVC (codificação de vídeo essencial), no padrão AOMedia Video 1 (AV1), na 2a geração do padrão de codificação de áudio e vídeo (AVS2), ou o padrão de codificação de vídeo/imagem de próxima geração (por exemplo, H.267 ou H.268, etc.).
[052] O presente 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, a menos que seja mencionado de outra forma.
[053] No presente documento, um vídeo pode se referir a uma série de imagens ao longo do tempo. Uma gravura geralmente se refere à unidade que representa uma imagem em um determinado quadro de tempo, e uma fatia/bloco do tipo ladrilho se refere à unidade que constitui a gravura em termos de codificação. Uma fatia/bloco do tipo ladrilho pode incluir uma ou mais unidades de árvore de codificação (CTUs). Uma gravura pode consistir em uma ou mais fatias/blocos do tipo ladrilho. Uma gravura pode consistir em um ou mais grupos de blocos do tipo ladrilho. Um grupo de blocos do tipo ladrilho pode incluir um ou mais blocos do tipo ladrilho. Um tijolo (brick) pode representar uma região retangular de linhas de CTU dentro de um bloco do tipo ladrilho em uma gravura. Um bloco do tipo ladrilho pode ser dividido em vários tijolos, cada um consistindo em uma ou mais linhas de CTU dentro do bloco do tipo ladrilho. Um bloco do tipo ladrilho que não é particionado em vários tijolos também pode ser referido como um tijolo. Uma varredura de tijolo é uma ordenação sequencial específica de CTUs particionando uma gravura em que as CTUs são ordenadas consecutivamente em varredura raster de CTU em um tijolo, tijolos dentro de um bloco do tipo ladrilho são ordenados consecutivamente em uma varredura raster dos tijolos do bloco do tipo ladrilho e blocos do tipo ladrilho em uma gravura são ordenados consecutivamente em uma varredura raster dos blocos do tipo ladrilho da gravura. Um bloco do tipo ladrilho é uma região retangular de CTUs dentro de uma coluna de bloco do tipo ladrilho específica e uma linha de bloco do tipo ladrilho específica em uma gravura. A coluna de bloco do tipo ladrilho é uma região retangular de CTUs com uma altura igual à altura da gravura e uma largura especificada por elementos de sintaxe no conjunto de parâmetros de gravura. A linha de bloco do tipo ladrilho é uma região retangular de CTUs tendo uma altura especificada por elementos de sintaxe no conjunto de parâmetros de gravura e uma largura igual à largura da gravura. Uma varredura de bloco do tipo ladrilho é uma ordenação sequencial especificada de CTUs que particionam uma gravura em que as CTUs são ordenadas consecutivamente em varredura raster de CTU em um bloco do tipo ladrilho, enquanto blocos do tipo ladrilho em uma gravura são ordenados consecutivamente em uma varredura raster dos blocos do tipo ladrilho da gravura. Uma fatia inclui um número inteiro de tijolos de uma gravura que pode estar contida exclusivamente em uma única unidade NAL. Uma fatia pode consistir em um número de blocos do tipo ladrilho completos ou apenas uma sequência consecutiva de tijolos completos de um bloco do tipo ladrilho. No presente documento, um grupo de blocos do tipo ladrilho e uma fatia podem ser usados alternadamente. Por exemplo, no presente documento, um grupo de blocos do tipo ladrilho/cabeçalho de grupo de blocos do tipo ladrilho também pode ser referido como um cabeçalho de fatia/fatia.
[054] Um pixel ou pel pode significar uma unidade menor que constitui uma gravura (ou imagem). Além disso, 'amostra' pode ser usado como um termo correspondente a um pixel. Uma amostra pode geralmente representar um pixel ou um valor de um pixel e pode representar apenas um valor de pixel/pixel de um componente luma ou apenas um valor de pixel/pixel de um componente croma.
[055] Uma unidade pode representar uma unidade básica de processamento de imagem. A unidade pode incluir pelo menos um de uma região específica da imagem 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 alternadamente com termos como bloco ou área em alguns casos. Em um caso geral, um bloco M x N pode incluir amostras (ou matrizes de amostra) ou um conjunto (ou matriz) de coeficientes de transformação de M colunas e N linhas.
[056] No presente documento, o termo “/” e “,” deve ser interpretado para indicar “e/ou.” Por exemplo, a expressão “A/B” pode significar “A e/ou B.” Além disso, "A, B" pode significar "A e/ou B." Além disso, "A/B/C" pode significar "pelo menos um de A, B e/ou C." Além disso, "A/B/C" pode significar "pelo menos um de A, B e/ou C."
[057] Além disso, no documento, o termo "ou" deve ser interpretado para indicar "e/ou". Por exemplo, a expressão "A ou B" pode compreender 1) apenas A, 2) apenas B e/ou 3) A e B. Em outras palavras, o termo "ou" no presente documento deve ser interpretado para indicar “Adicionalmente ou alternativamente.”
[058] Daqui em diante, as modalidades do presente documento serão descritas em mais detalhes com referência aos desenhos anexos. Daqui em diante, os mesmos componentes nos desenhos usam os mesmos números de referência e descrições redundantes dos mesmos componentes podem ser omitidas.
[059] A Figura 1 ilustra um exemplo de um sistema de codificação de vídeo/imagem ao qual modalidades do presente relatório descritivo podem ser aplicadas.
[060] Com referência à Figura 1, um sistema de codificação de vídeo/imagem pode incluir um primeiro aparelho (dispositivo-fonte) e um segundo aparelho (dispositivo de recebimento). O dispositivo-fonte pode transmitir informações ou dados de vídeo/imagem codificados para o dispositivo de recebimento por meio de uma mídia de armazenamento digital ou rede na forma de um arquivo ou transmissão contínua.
[061] O dispositivo-fonte pode incluir uma fonte de vídeo, um aparelho de codificação e um transmissor. O dispositivo de recebimento pode incluir um receptor, um aparelho de decodificação e um renderizador. O aparelho de codificação pode ser denominado aparelho de codificação de vídeo/imagem e o aparelho de decodificação pode ser denominado 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.
[062] A fonte de vídeo pode adquirir vídeo/imagem por meio de um processo de captura, sintetização ou geração do 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ídeo/imagens capturados anteriormente e semelhantes. O dispositivo de geração de vídeo/imagem pode incluir, por exemplo, computadores, tablets e smartphones e pode (eletronicamente) gerar vídeo/imagens. Por exemplo, um vídeo/imagem virtual pode ser gerado através de um computador ou semelhante. Neste caso, o processo de captura de vídeo/imagem pode ser substituído por um processo de geração de dados relacionados.
[063] O aparelho de codificação pode codificar vídeo/imagem de entrada. O aparelho de codificação pode executar uma série de procedimentos, como predição, transformação e quantização para compactação e eficiência de codificação. Os dados codificados (informações de vídeo/imagem codificadas) podem ser produzidos na forma de um fluxo de bits.
[064] O transmissor pode transmitir a imagem/informações de imagem codificadas ou saída de dados na forma de um fluxo de bits para o receptor do dispositivo receptor por meio de uma mídia de armazenamento digital ou uma rede na forma de um arquivo ou fluxo. O meio de armazenamento digital pode incluir vários meios de armazenamento, como USB, SD, CD, DVD, Blu-ray, HDD, SSD e semelhantes. O transmissor pode incluir um elemento para gerar um arquivo de mídia por meio de um formato de arquivo predeterminado e pode incluir um elemento para transmissão por meio de uma rede de difusão/comunicação. O receptor pode receber/extrair o fluxo de bits e transmitir o fluxo de bits recebido para o aparelho de decodificação.
[065] O aparelho de decodificação pode decodificar o vídeo/imagem executando uma série de procedimentos, como desquantização, transformação inversa e predição correspondente à operação do aparelho de codificação.
[066] O renderizador pode renderizar o vídeo/imagem decodificado. O vídeo/imagem renderizado pode ser exibido no display.
[067] A Figura 2 ilustra uma estrutura de um aparelho de codificação de vídeo/imagem ao qual modalidades do presente relatório descritivo podem ser aplicadas. No que se segue, um aparelho de codificação de vídeo pode incluir um aparelho de codificação de imagem.
[068] Com referência à Figura 2, o aparelho de codificação 200 inclui um particionador de imagem 210, um preditor 220, um processador residual 230 e um codificador por 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 residual 230 pode incluir um transformador 232, um quantizador 233, um desquantizador 234 e um transformador inverso 235. O processador residual 230 pode incluir ainda um subtrator 231. O somador 250 pode ser chamado de reconstrutor ou gerador de bloco reconstruído. O particionador de imagem 210, o preditor 220, o processador residual 230, o codificador por entropia 240, o adicionador 250 e o filtro 260 podem ser configurados por pelo menos um componente de hardware (por exemplo, um chipset codificador ou processador) 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.
[069] O particionador de imagem 210 pode particionar uma imagem de entrada (ou uma gravura ou um quadro) de entrada para o aparelho de codificação 200 em um ou mais processadores. Por exemplo, o processador pode ser chamado de unidade de codificação (CU). Neste caso, a unidade de codificação pode ser particionada recursivamente de acordo com uma estrutura de árvore quadrática- árvore binária-árvore ternária (QTBTTT) de uma unidade de árvore de codificação (CTU) ou uma unidade de codificação maior (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 quádrupla, uma estrutura de árvore binária e/ou uma estrutura ternária. Neste caso, por exemplo, a estrutura de árvore quádrupla pode ser aplicada primeiro e a estrutura de árvore binária e/ou estrutura ternária pode ser aplicada mais tarde. Alternativamente, a estrutura de árvore binária pode ser aplicada primeiro. O procedimento de codificação de acordo com o presente documento pode ser realizado com base na unidade de codificação final que não está mais particionada. Neste 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 as características da imagem ou, se necessário, a unidade de codificação pode ser recursivamente particionada em unidades de codificação de maior profundidade e uma unidade de codificação com um tamanho ideal pode ser usado como a unidade de codificação final. Aqui, o procedimento de codificação pode incluir um procedimento de predição, transformação e reconstrução, que será descrito posteriormente. Como outro exemplo, o processador pode incluir ainda uma unidade de predição (PU) ou uma unidade de transformação (TU). Neste caso, a unidade de predição e a unidade de transformação podem ser divididas ou particionadas da unidade de codificação final acima mencionada. A unidade de predição pode ser uma unidade de predição de amostra e a unidade de transformação pode ser uma unidade para derivar um coeficiente de transformação e/ou uma unidade para derivar um sinal residual do coeficiente de transformação.
[070] A unidade pode ser usada alternadamente 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 transformação compostos por M colunas e N linhas. Uma amostra pode geralmente representar um pixel ou um valor de um pixel, pode representar apenas um valor de pixel/pixel de um componente luma ou representar apenas um valor de pixel/pixel de um componente croma. Uma amostra pode ser usada como um termo correspondente a uma gravura (ou imagem) para um pixel ou um pel.
[071] No aparelho de codificação 200, uma saída de sinal de predição (bloco predito, matriz de amostra de predição) do interpreditor 221 ou do intrapreditor 222 é subtraída de um sinal de imagem de entrada (bloco original, matriz de amostra original) para gerar um bloco residual de sinal residual, matriz de amostra residual) e o sinal residual gerado é transmitido para o transformador 232. Neste caso, como mostrado, uma unidade para subtrair um sinal de predição (bloco predito, matriz de amostra de predição) do sinal de imagem de entrada (bloco original, matriz de amostra original) no codificador 200 pode ser chamada de subtrator 231. O preditor pode realizar 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 intrapredição ou interpredição é aplicada em um bloco atual ou base de CU. Conforme descrito posteriormente na descrição de cada modo de predição, o preditor pode gerar várias informações relacionadas à predição, como informações de modo de predição, e transmitir as informações gerada para o codificador por entropia 240. As informações sobre a predição pode ser codificada no codificador por entropia 240 e emitida na forma de um fluxo de bits.
[072] O intrapreditor 222 pode predizer o bloco atual referindo-se às amostras na gravura atual. As referidas amostras 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 de DC e um modo planar. O modo direcional pode incluir, por exemplo, 33 modos de predição direcional ou 65 modos de predição direcional de acordo com o grau de detalhe da direção de predição. No entanto, este é apenas um exemplo, modos de predição mais ou menos direcional podem ser usados dependendo de uma configuração. O intrapreditor 222 pode determinar o modo de predição aplicado ao bloco atual usando um modo de predição aplicado a um bloco vizinho.
[073] O interpreditor 221 pode derivar um bloco predito para o bloco atual com base em um bloco de referência (matriz de amostra de referência) especificado por um vetor de movimento em uma gravura de referência. Aqui, 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 de L0, predição de L1, predição de 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 chamado de bloco de referência colocado, um CU colocalizado (colCU) e semelhantes, e a gravura de referência incluindo o bloco vizinho temporal pode ser chamada de gravura colocada (colPic). Por exemplo, o interpreditor 221 pode configurar uma lista de candidatos de informações de movimento com base em blocos vizinhos e gerar informações indicando 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 pular e um modo de mesclagem, o interpreditor 221 pode usar informações de movimento do bloco vizinho como informações de movimento do bloco atual. No modo de salto, ao contrário do modo de mesclagem, 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 preditor de vetor de movimento e o vetor de movimento do bloco atual pode ser indicado pela sinalização de uma diferença do vetor de movimento.
[074] 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 só aplicar intrapredição ou interpredição para predizer um bloco, mas também aplicar simultaneamente intrapredição e interpredição. Isso pode ser chamado de interpredição e intrapredição combinada (CIIP). Além disso, o preditor pode ser com base em um modo de predição de cópia intrabloco (IBC) ou um modo de paleta para predição de um bloco. O modo de predição IBC ou modo paleta pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou semelhante, por exemplo, codificação de conteúdo de tela (SCC). O IBC basicamente realiza a predição na gravura atual, mas pode ser realizada de forma semelhante à interpredição em 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 no presente documento. O modo paleta pode ser considerado um exemplo de intracodificação ou intrapredição. Quando o modo paleta é aplicado, um valor de amostra dentro de uma gravura pode ser sinalizado com base nas informações da tabela da paleta e do índice da paleta.
[075] 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 para gerar um sinal residual. O transformador 232 pode gerar coeficientes de transformação aplicando uma técnica de transformação ao sinal residual. Por exemplo, a técnica de transformação pode incluir pelo menos uma de uma transformação discreta de cosseno (DCT), uma transformação de seno discreta (DST), uma transformação baseada em gráfico (GBT) ou uma transformação condicionalmente não linear (CNT). Aqui, o GBT significa transformação obtida de um gráfico quando as informações de relacionamento entre pixels são representadas pelo gráfico. O CNT se refere à transformação gerada com base em um sinal de predição gerado usando todos os pixels reconstruídos anteriormente. Além disso, o processo de transformação pode ser aplicado a blocos de pixels quadrados com o mesmo tamanho ou pode ser aplicado a blocos com tamanho variável em vez de quadrados.
[076] O quantizador 233 pode quantizar os coeficientes de transformada e transmiti-los para o codificador por entropia 240 e o codificador por 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 reorganizar coeficientes de transformada quantizada do tipo de 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 transformação quantizada na forma de vetor unidimensional. Informações sobre coeficientes de transformação podem ser geradas. O codificador por entropia 240 pode executar vários métodos de codificação, como, por exemplo, Golomb exponencial, codificação de comprimento variável adaptável ao contexto (CAVLC), codificação aritmética binária adaptativa ao contexto (CABAC) e semelhantes. O codificador por entropia 240 pode codificar informações necessárias para a reconstrução de vídeo/imagem diferente de coeficientes de transformada quantizados (por exemplo, valores de elementos de sintaxe, etc.) juntos ou separadamente. As informações codificadas (por exemplo, informações de vídeo/imagem codificadas) podem ser transmitidas ou armazenadas em unidades de NALs (camada de abstração de rede) na forma de um fluxo de bits. As informações de vídeo/imagem podem incluir ainda informações sobre vários conjuntos de parâmetros, como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de gravura (PPS), um conjunto de parâmetros de sequência (SPS) ou um conjunto de parâmetros de vídeo (VPS). Além disso, as informações de vídeo/imagem podem incluir informações de restrição geral. No presente documento, os elementos de informações e/ou sintaxe transmitidos/sinalizados do aparelho de codificação para o aparelho de decodificação podem ser incluídos nas 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ída 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 transmissão e/ou uma rede de comunicação e o meio de armazenamento digital pode incluir vários meios de armazenamento, como USB, SD, CD, DVD, Blu-ray, HDD, SSD e semelhantes. Um transmissor (não mostrado) transmitindo uma saída de sinal do codificador por entropia 240 e/ou uma unidade de armazenamento (não mostrada) armazenando 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 por entropia 240.
[077] Os coeficientes de transformação quantizados que saem 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 aplicando desquantização e transformação inversa aos coeficientes de transformada quantizados através do desquantizador 234 e do transformador inverso 235. O somador 250 adiciona o sinal residual reconstruído à saída do sinal de predição do interpreditor 221 ou do intrapreditor 222 para gerar um sinal reconstruído (gravura reconstruída, bloco reconstruído, matriz de amostra reconstruída). Se não houver resíduo para o bloco a ser processado, como no caso em que o modo de salto é aplicado, o bloco predito pode ser usado como o bloco reconstruído. O somador 250 pode ser chamado de reconstrutor ou 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 por meio de filtragem, conforme descrito abaixo.
[078] Enquanto isso, o mapeamento luma com escala de croma (LMCS) pode ser aplicado durante a codificação e/ou reconstrução da gravura.
[079] O filtro 260 pode melhorar a qualidade da imagem subjetiva/objetiva aplicando filtragem ao sinal reconstruído. Por exemplo, o filtro 260 pode gerar uma gravura reconstruída modificada aplicando 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 loop adaptativo, um filtro bilateral e semelhantes. O filtro 260 pode gerar várias informações relacionadas à filtragem e transmitir as informações geradas para o codificador por entropia 240, conforme descrito posteriormente na descrição de cada método de filtragem. As informações relacionadas com a filtragem podem ser codificadas pelo codificador por entropia 240 e emitida na forma de um fluxo de bits.
[080] A gravura reconstruída modificada transmitida para a memória 270 pode ser usada como a gravura de referência no interpreditor 221. Quando a interpredição é aplicada através do aparelho de codificação, a 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 melhorada.
[081] O DPB da memória 270 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á foram reconstruídos. As informações de movimento armazenada pode ser transmitida para o interpreditor 221 e usada 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 para o intrapreditor 222.
[082] A Figura 3 ilustra uma estrutura de um aparelho de decodificação de vídeo/imagem ao qual modalidades do presente relatório descritivo podem ser aplicadas.
[083] Com referência à Figura 3, o aparelho de decodificação 300 pode incluir um decodificador por entropia 310, um processador residual 320, um preditor 330, um adicionador 340, um filtro 350, uma memória 360. O preditor 330 pode incluir um interpreditor 331 e um intrapreditor 332. O processador residual 320 pode incluir um desquantizador 321 e um transformador inverso 321. O decodificador por entropia 310, o processador residual 320, o preditor 330, o adicionador 340 e o filtro 350 podem ser configurados por um componente de hardware (por exemplo, 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.
[084] Quando um fluxo de bits incluindo informações de vídeo/imagem é 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 a decodificação usando um processador aplicado no aparelho de codificação. Assim, 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 quádrupla, estrutura de árvore binária e/ou estrutura de árvore ternária da unidade de árvore de codificação ou a maior unidade de codificação. Uma ou mais unidades de transformação podem ser derivadas da unidade de codificação. O sinal de imagem reconstruído decodificado e emitido através do aparelho de decodificação 300 pode ser reproduzido através de um aparelho de reprodução.
[085] O aparelho de decodificação 300 pode receber uma saída de sinal do aparelho de codificação da Figura 2 na forma de um fluxo de bits e o sinal recebido pode ser decodificado através do decodificador por entropia 310. Por exemplo, o decodificador por entropia 310 pode analisar o fluxo de bits para derivar informações (ex. informações de vídeo/ imagem) necessárias para a reconstrução de imagem (ou reconstrução de gravura). As informações de vídeo/imagem podem incluir ainda informações sobre vários conjuntos de parâmetros, como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de gravura (PPS), um conjunto de parâmetros de sequência (SPS) ou um conjunto de parâmetros de vídeo (VPS). Além disso, as informações de vídeo/imagem podem incluir informações de restrição geral. O aparelho de decodificação pode ainda decodificar a gravura com base nas informações no conjunto de parâmetros e/ou nas informações de restrição geral. Informações sinalizadas/recebidas e/ou elementos de sintaxe descritos posteriormente no presente documento podem ser decodificados e podem decodificar o procedimento de decodificação e obtidos a partir do fluxo de bits. Por exemplo, o decodificador por entropia 310 decodifica as informações no fluxo de bits com base em um método de codificação, como codificação exponencial de Golomb, CAVLC ou CABAC, e elementos de sintaxe de saída necessários para a reconstrução de imagem e valores quantizados de coeficientes de transformação para residual. Mais especificamente, o método de decodificação por entropia CABAC pode receber um bin correspondente a cada elemento de sintaxe no fluxo de bits, determinar um modelo de contexto usando umas informações de elemento de sintaxe de destino de decodificação, informações de decodificação de um bloco de destino de decodificação ou informações de um símbolo/bin decodificado em um estágio anterior, e realizar uma decodificação aritmética no bin, prevendo 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. Neste caso, o método de decodificação por entropia CABAC pode atualizar o modelo de contexto usando as informações do símbolo/bin decodificado 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 entre as informações decodificadas pelo decodificador por entropia 310 podem ser fornecidas ao preditor (o interpreditor 332 e o intrapreditor 331) e o valor residual no qual a decodificação por entropia foi realizada no decodificador por entropia 310, isto é, os coeficientes de transformada quantizados e as informações de parâmetro relacionadas podem ser inseridos no processador residual 320. O processador residual 320 pode derivar o sinal residual (o bloco residual, as amostras residuais, a matriz de amostra residual). Além disso, as informações sobre a filtragem entre as informações decodificadas pelo decodificador por entropia 310 podem ser fornecidas ao filtro 350. Enquanto isso, um receptor (não mostrado) para receber uma saída de sinal do aparelho de codificação pode ser ainda configurado como um elemento interno/externo do aparelho de decodificação 300, ou o receptor pode ser um componente do decodificador por entropia 310. Enquanto isso, o aparelho de decodificação de acordo com o presente 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 por 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
[086] O desquantizador 321 pode desquantizar os coeficientes de transformada quantizados e emitir os coeficientes de transformada. O desquantizador 321 pode reorganizar os coeficientes de transformada quantizados na forma de um bloco bidimensional. Neste 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 a desquantização nos coeficientes de transformada quantizados usando um parâmetro de quantização (por exemplo, informações de tamanho da etapa de quantização) e obter coeficientes de transformada.
[087] O transformador inverso 322 transforma inversamente os coeficientes de transformação para obter um sinal residual (bloco residual, matriz de amostra residual).
[088] O preditor pode realizar 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 sobre a saída de predição do decodificador por entropia 310 e pode determinar um modo específico de intra/interpredição .
[089] O preditor 320 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 só aplicar intrapredição ou interpredição para predizer um bloco, mas também aplicar simultaneamente intrapredição e interpredição. Isso pode ser chamado de interpredição e intrapredição combinada (CIIP). Além disso, o preditor pode ser com base em um modo de predição de cópia intrabloco (IBC) ou um modo de paleta para predição de um bloco. O modo de predição IBC ou modo paleta pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou semelhante, por exemplo, codificação de conteúdo de tela (SCC). O IBC basicamente realiza a predição na gravura atual, mas pode ser realizada de forma semelhante à interpredição em 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 no presente documento. O modo paleta pode ser considerado um exemplo de intracodificação ou intrapredição. Quando o modo paleta é aplicado, um valor de amostra dentro de uma gravura pode ser sinalizado com base nas informações da tabela da paleta e do índice da paleta.
[090] O intrapreditor 331 pode predizer o bloco atual referindo-se às amostras na gravura atual. As referidas amostras 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 usando um modo de predição aplicado a um bloco vizinho.
[091] O interpreditor 332 pode derivar um bloco predito para o bloco atual com base em um bloco de referência (matriz de amostra de referência) especificado por um vetor de movimento em uma gravura de referência. Neste 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 de L0, predição de L1, predição de 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 candidatos 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.
[092] O somador 340 pode gerar um sinal reconstruído (gravura reconstruída, bloco reconstruído, matriz de amostra reconstruída) adicionando o sinal residual obtido ao sinal de predição (bloco predito, matriz de amostra predita) de saída do preditor (incluindo o interpreditor 332 e/ou o intrapreditor 331). Se não houver resíduo para o bloco a ser processado, como quando o modo de salto é aplicado, o bloco predito pode ser usado como o bloco reconstruído.
[093] O somador 340 pode ser chamado de reconstrutor ou um gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para interpredição na de um próximo bloco a ser processado na gravura atual, pode ser enviado por meio de filtragem conforme descrito abaixo, ou pode ser usado para interpredição de uma gravura seguinte.
[094] Enquanto isso, o mapeamento luma com escala de croma (LMCS) pode ser aplicado no processo de decodificação de gravura.
[095] O filtro 350 pode melhorar a qualidade da imagem subjetiva/objetiva aplicando filtragem ao sinal reconstruído. Por exemplo, o filtro 350 pode gerar uma gravura reconstruída modificada aplicando 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 de desbloqueio, um deslocamento adaptativo de amostra, um filtro de loop adaptativo, um filtro bilateral e semelhantes.
[096] 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ídos. As informações de movimento armazenada pode ser transmitida para o interpreditor 260 de modo a ser utilizada 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 para o intrapreditor 331.
[097] Na presente revelação, as modalidades descritas no filtro 260, no interpreditor 221 e no intrapreditor 222 do aparelho de codificação 200 podem ser as mesmas ou aplicadas respectivamente para corresponder ao filtro 350, o interpreditor 332 e o intrapreditor 331 do aparelho de decodificação 300. O mesmo também pode se aplicar à unidade 332 e ao intrapreditor 331.
[098] Conforme descrito acima, ao realizar a codificação de vídeo, a predição é realizada para aumentar a eficiência de compactação. Portanto, um bloco predito incluindo as amostras de predição para o bloco atual que é um bloco alvo de codificação pode ser gerado. Aqui, o bloco predito inclui as amostras de predição em um domínio espacial (ou domínio de pixel). O bloco predito é derivado de forma idêntica no aparelho de codificação e no aparelho de decodificação, e o aparelho de codificação pode sinalizar informações no resíduo (informações residuais) entre o bloco original e o bloco predito, em vez do próprio valor da amostra original do bloco original, para o aparelho de decodificação, aumentando assim a eficiência de codificação de imagem. O aparelho de decodificação pode derivar um bloco residual incluindo amostras residuais com base nas informações residuais, gerar um bloco reconstruído incluindo amostras reconstruídas somando o bloco residual e o bloco predito e gerar uma gravura reconstruída incluindo os blocos reconstruídos.
[099] As informações residuais podem ser geradas por meio de procedimentos de transformação e quantização. Por exemplo, o aparelho de codificação pode sinalizar informações residuais relacionadas (através de um fluxo de bits) para o aparelho de decodificação derivando o bloco residual entre o bloco original e o bloco predito, derivando coeficientes de transformação realizando o procedimento de transformação para as amostras residuais (matriz de amostra residual) incluído no bloco residual, e derivando coeficientes de transformada quantizados realizando o procedimento de quantização para os coeficientes de transformada. Aqui, as informações residuais podem incluir informações como informações de valor, informações de posição, técnica de transformação, kernel de transformação e parâmetro de quantização dos coeficientes de transformada quantizados. O aparelho de decodificação pode executar procedimentos de desquantização/transformação inversa com base nas informações residuais e derivar as amostras residuais (ou blocos residuais). O aparelho de decodificação pode gerar uma gravura reconstruída com base no bloco predito e no bloco residual. O aparelho de codificação também pode desquantizar/transformar inversamente os coeficientes de transformada quantizados para referência para a interpredição da pós-gravura para derivar o bloco residual e gerar a gravura reconstruída com base nele.
[0100] Se a interpredição for aplicada, os preditores do aparelho de codificação/aparelho de decodificação podem derivar a amostra de predição realizando a interpredição em unidades de blocos. A interpredição pode ser uma predição derivada de uma maneira que é dependente de elementos de dados (por exemplo, valores de amostra, informações de movimento ou semelhantes) da (s) gravura (s) diferente da gravura atual. Se a interpredição for aplicada ao bloco atual, um bloco predito (matriz de amostra de predição) para o bloco atual pode ser induzido, com base em um bloco de referência (matriz de amostra de referência) especificado por um vetor de movimento na gravura de referência indicada por uma referência índice de gravuras. Neste momento, a fim de reduzir a quantidade de informações de movimento transmitidas em um modo de interpredição, as informações de movimento do bloco atual podem ser preditas em unidades de blocos, sub-blocos ou amostras com base na correlação das 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 pode incluir ainda umas informações do tipo de interpredição (predição L0, predição L1, predição Bi ou semelhantes). Se a interpredição for aplicada, o bloco vizinho pode incluir um bloco vizinho espacial existente na gravura atual e um bloco vizinho temporal saindo 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 chamado de bloco de referência colocado, um CU colocado (colCU) ou semelhante, e a gravura de referência incluindo o bloco vizinho temporal pode ser chamada de gravura colocada (colPic). Por exemplo, uma lista de candidatos de informações de movimento pode ser configurada com base nos blocos vizinhos do bloco atual e as informações de sinalizador ou índice indicando qual candidato é selecionado (usado) podem ser sinalizados para derivar o vetor de movimento e/ou índice de gravura de referência do bloco atual. A interpredição pode ser realizada com base em vários modos de predição e, por exemplo, no caso de um modo de salto e um modo de mesclagem (normal), as informações de movimento do bloco atual podem ser as mesmas que as informações de movimento de um bloco vizinho selecionado. No caso do modo de salto, ao contrário do modo de mesclagem, o sinal residual pode não ser transmitido. No caso de um modo de predição de vetor de movimento (MVP), o vetor de movimento do bloco vizinho selecionado pode ser usado como um preditor de vetor de movimento e uma diferença de vetor de movimento pode ser sinalizada. Neste caso, o vetor de movimento do bloco atual pode ser derivado usando a soma do preditor de vetor de movimento e a diferença do vetor de movimento.
[0101] Um procedimento de codificação de vídeo/imagem com base na interpredição pode incluir esquematicamente, por exemplo, o seguinte.
[0102] A Figura 4 ilustra um exemplo de um método de codificação de vídeo/imagem com base em interpredição.
[0103] O aparelho de codificação realiza a interpredição para o bloco atual (S400). O aparelho de codificação pode derivar o modo de interpredição e informações de movimento do bloco atual e gerar amostras de predição do bloco atual. Aqui, os procedimentos de determinação do modo de interpredição, derivação das informações de movimento e geração das amostras de predição podem ser realizados simultaneamente ou qualquer procedimento pode ser realizado antes dos outros procedimentos. Por exemplo, um interpreditor do aparelho de codificação pode incluir um determinador de modo de predição, um derivador de informações de movimento e um derivador de amostra de predição, e o determinador de modo de predição pode determinar o modo de predição para o bloco atual, o derivador de informações de movimento pode derivar o informações de movimento do bloco atual e o derivador de amostra de predição podem derivar as amostras de predição do bloco atual. Por exemplo, o interpreditor do aparelho de codificação pode procurar um bloco, semelhante ao bloco atual, em uma certa região (região de busca) das gravuras de referência por meio de estimativa de movimento e derivar o bloco de referência cuja diferença do bloco atual é mínimo ou uma certa referência ou menos. Com base nisso, um índice de gravura de referência indicando a gravura de referência na qual o bloco de referência está localizado pode ser derivado e um vetor de movimento pode ser derivado com base em uma diferença de posição entre o bloco de referência e o bloco atual. O aparelho de codificação pode determinar um modo aplicado ao bloco atual entre vários modos de predição. O aparelho de codificação pode comparar os custos de RD para os vários modos de predição e determinar um modo de predição ideal para o bloco atual.
[0104] Por exemplo, se o modo de salto ou o modo de mesclagem for aplicado ao bloco atual, o aparelho de codificação pode configurar uma lista de candidatos de mesclagem a ser descrita posteriormente e derivar o bloco de referência cuja diferença do bloco atual é mínima ou uma certa referência ou menos entre os blocos de referência indicados pelos candidatos à fusão incluídos na lista de candidatos à fusão. Neste caso, o candidato a mesclagem associado ao bloco de referência derivado pode ser selecionado e as informações de índice de mesclagem indicando o candidato a mesclagem selecionado podem ser geradas e sinalizadas para o aparelho de decodificação. As informações de movimento do bloco atual podem ser derivadas usando as informações de movimento do candidato a mesclagem selecionado.
[0105] Como outro exemplo, se um modo de (A)MVP for aplicado ao bloco atual, o aparelho de codificação pode configurar uma (A) lista de candidatos de MVP a ser descrita posteriormente e usar o vetor de movimento do candidato a preditor de vetor de movimento (mvp) selecionado, entre os candidatos mvp incluídos na lista de candidatos (A) MVP, como um mvp do bloco atual. Neste caso, por exemplo, o vetor de movimento que indica o bloco de referência derivado da estimativa de movimento descrita acima pode ser usado como o vetor de movimento do bloco atual, e o candidato de mvp cujo vetor de movimento cuja diferença do vetor de movimento do bloco atual é o menor entre os candidatos de mvp pode ser o candidato de mvp selecionado. Uma diferença de vetor de movimento (MVD) que é uma diferença obtida subtraindo o mvp do vetor de movimento do bloco atual pode ser derivada. Neste caso, as informações no MVD podem ser sinalizadas para o aparelho de decodificação. Além disso, se o modo de (A)MVP for aplicado, o valor do índice de gravura de referência pode ser configurado como informações de índice de gravura de referência e sinalizado separadamente para o aparelho de decodificação.
[0106] O aparelho de codificação pode derivar amostras residuais com base nas amostras de predição (S410). O aparelho de codificação pode derivar as amostras residuais comparando as amostras originais do bloco atual com as amostras de predição.
[0107] O aparelho de codificação codificas informações de imagem, incluindo informações de predição e informações residuais (S420). O aparelho de codificação pode emitir as informações de imagem codificadas na forma de um fluxo de bits. As informações de predição podem incluir informações sobre as informações de modo de predição (por exemplo, sinalizador de salto, sinalizador de mesclagem, índice de modo ou semelhantes) e informações de movimento como informações relacionadas ao procedimento de predição. As informações sobre as informações de movimento podem incluir informações de seleção de candidatos (por exemplo, índice de mesclagem, sinalizador de mvp ou índice de mvp), que são informações para derivar o vetor de movimento. Além disso, as informações sobre as informações de movimento podem incluir as informações sobre o MVD e/ou informações de índice de gravura de referência descritas acima. Além disso, as informações sobre as informações de movimento podem incluir informações que indicam se a predição L0, a predição L1 ou a bi-predição é aplicada. As informações residuais são informações sobre as amostras residuais. As informações residuais podem incluir informações sobre coeficientes de transformada quantizados para as amostras residuais.
[0108] O fluxo de bits de saída pode ser armazenado em uma mídia de armazenamento (digital) e entregue ao aparelho de decodificação, ou também pode ser entregue ao aparelho de decodificação por meio de uma rede.
[0109] Enquanto isso, como descrito acima, o aparelho de codificação pode gerar uma gravura reconstruída (incluindo amostras reconstruídas e bloco reconstruído) com base nas amostras de referência e nas amostras residuais. Isto é para derivar, pelo aparelho de codificação, o mesmo resultado de predição que aquele derivado pelo aparelho de decodificação e, portanto, é possível aumentar a eficiência da codificação. Portanto, o aparelho de codificação pode armazenar a gravura reconstruída (ou amostras reconstruídas, bloco reconstruído) em uma memória e usá- la como a gravura de referência para a interpredição. Conforme descrito acima, um procedimento de filtragem em laço ou semelhante pode ser posteriormente aplicado à gravura reconstruída.
[0110] Um procedimento de decodificação de vídeo/imagem com base na interpredição pode incluir esquematicamente, por exemplo, o seguinte.
[0111] A Figura 5 ilustra um exemplo de um método de decodificação de vídeo/imagem com base em interpredição.
[0112] Com referência à Figura 5, o aparelho de decodificação pode executar uma operação correspondente à operação realizada pelo aparelho de codificação. O aparelho de decodificação pode realizar predição para um bloco atual com base nas informações de predição recebidas e derivar amostras de predição.
[0113] Especificamente, o aparelho de decodificação pode determinar um modo de predição para o bloco atual com base nas informações de predição recebidas (S500). O aparelho de decodificação pode determinar um modo de interpredição aplicado ao bloco atual com base nas informações de modo de predição nas informações de predição.
[0114] Por exemplo, o aparelho de decodificação pode determinar se o modo de mesclagem é aplicado ao bloco atual ou o modo de (A)MVP é determinado, com base no sinalizador de mesclagem. Alternativamente, o aparelho de decodificação pode selecionar um dos vários candidatos de modo de interpredição com base no índice de modo. Os candidatos ao modo de interpredição podem incluir um modo de salto, um modo de mesclagem e/ou um modo de (A)MVP, ou podem incluir vários modos de interpredição a serem descritos posteriormente.
[0115] O aparelho de decodificação derivas informações de movimento do bloco atual com base no modo de interpredição determinado (S510). Por exemplo, se o modo de ignorar ou o modo de mesclagem for aplicado ao bloco atual, o aparelho de decodificação pode configurar uma lista de candidatos de mesclagem a ser descrita posteriormente e selecionar um candidato de mesclagem entre os candidatos de mesclagem incluídos na lista de candidatos de mesclagem. A seleção pode ser realizada com base nas informações de seleção descritas acima (índice de mesclagem). As informações de movimento do bloco atual podem ser derivadas usando as informações de movimento do candidato a mesclagem selecionado. As informações de movimento do candidato a mesclagem selecionado podem ser usadas como as informações de movimento do bloco atual.
[0116] Como outro exemplo, se o modo de (A)MVP for aplicado ao bloco atual, o aparelho de decodificação pode configurar uma (A) lista de candidatos de MVP a ser descrita posteriormente e usar o vetor de movimento do candidato a preditor de vetor de movimento (mvp) selecionado, entre os candidatos de mvp incluídos na lista de candidatos de (A) MVP, como o mvp do bloco atual. A seleção pode ser realizada com base nas informações de seleção descritas acima (sinalizador de mvp ou índice de mvp). Neste caso, o MVD do bloco atual pode ser derivado com base nas informações no MVD e o vetor de movimento do bloco atual pode ser derivado com base no mvp e MVD do bloco atual. Além disso, um índice de gravura de referência do bloco atual pode ser derivado com base nas informações de índice de gravura de referência. Uma gravura indicada pelo índice de gravura de referência na lista de gravuras de referência no bloco atual pode ser derivada como a gravura de referência referida para a interpredição do bloco atual.
[0117] Enquanto isso, conforme descrito posteriormente, as informações de movimento do bloco atual podem ser derivadas sem configurar a lista de candidatos e, neste caso, as informações de movimento do bloco atual podem ser derivadas de acordo com um procedimento revelado em um modo de predição a ser descrito posteriormente. Neste caso, a configuração da lista de candidatos descrita acima pode ser omitida.
[0118] O aparelho de decodificação pode gerar amostras de predição para o bloco atual com base nas informações de movimento do bloco atual (S520). Neste caso, o aparelho de decodificação pode derivar a gravura de referência com base no índice de gravura de referência do bloco atual e derivar as amostras de predição do bloco atual usando as amostras do bloco de referência indicado pelo vetor de movimento do bloco atual na gravura de referência. Neste caso, conforme descrito posteriormente, um procedimento de filtragem de amostra de predição para todas ou algumas das amostras de predição do bloco atual pode ser posteriormente realizado em alguns casos.
[0119] Por exemplo, um interpreditor do aparelho de decodificação pode incluir um determinador de modo de predição, um derivador de informações de movimento e um derivador de amostra de predição, e o determinador de modo de predição pode determinar o modo de predição para o bloco atual com base nas informações de modo de predição recebidas, o derivador de informações de movimento pode derivar as informações de movimento (como vetor de movimento e/ou índice de gravura de referência) do bloco atual com base nas informações sobre as informações de movimento recebidas e o derivador de amostra de predição pode derivar as amostras de predição do bloco atual.
[0120] O aparelho de decodificação gera amostras residuais para o bloco atual com base nas informações residuais recebidas (S530). O aparelho de decodificação pode gerar amostras reconstruídas para o bloco atual com base nas amostras de predição e nas amostras residuais e gerar uma gravura reconstruída com base nas mesmas (S540). Posteriormente, um procedimento de filtragem em laço ou semelhante pode ser ainda aplicado à gravura reconstruída como descrito acima.
[0121] A Figura 6 ilustra de modo exemplificativo um procedimento de interpredição.
[0122] Com referência à Figura 6, como descrito acima, o procedimento de interpredição pode incluir determinar um modo de interpredição, derivar informações de movimento de acordo com o modo de predição determinado e realizar predição (gerar uma amostra de predição) com base nas informações de movimento derivadas. O procedimento de interpredição pode ser realizado pelo aparelho de codificação e pelo aparelho de decodificação conforme descrito acima. O aparelho de codificação neste documento pode incluir o aparelho de codificação e/ou o aparelho de decodificação.
[0123] Com referência à Figura 6, o aparelho de codificação determina o modo de interpredição para o bloco atual (S600). Vários modos de interpredição podem ser usados para predição do bloco atual na gravura. Por exemplo, vários modos, como um modo de mesclagem, um modo de pular, um modo de predição de vetor de movimento (MVP), um modo afim, um modo de mesclagem de sub-bloco e um modo de mesclagem com MVD (MMVD), podem ser usados. Um modo de refinamento de vetor de movimento lateral do decodificador (DMVR), um modo de resolução de vetor de movimento adaptativo (AMVR), uma Bi-predição com peso de nível CU (BCW), um fluxo óptico bidirecional (BDOF) e semelhantes podem ser usados adicionalmente ou em vez dos modos como os modos incidentais. O modo afim pode ser chamado de modo de predição de movimento afim. O modo de MVP pode ser chamado de modo de predição de vetor de movimento avançado (AMVP). Neste documento, algum modo e/ou o candidato de informações de movimento derivado por alguns modos também pode ser incluído como um dos candidatos relacionados as informações de movimento em outro modo. Por exemplo, o candidato de HMVP pode ser adicionado como um candidato a mesclagem nos modos mesclar/ignorar, ou pode ser adicionado como um candidato de mvp no modo de MVP. Se o candidato de HMVP for usado como candidato as informações de movimento no modo de mesclagem ou no modo de pular, o candidato de HMVP pode ser chamado de candidato a mesclagem HMVP.
[0124] As informações de modo de predição indicando o modo de interpredição do bloco atual pode ser sinalizada a partir do aparelho de codificação para o aparelho de decodificação. As informações de modo de predição pode ser incluída em um fluxo de bits e recebida pelo aparelho de decodificação. As informações de modo de predição podem incluir informações de índice indicando um de uma pluralidade de modos candidatos. Alternativamente, as informações de modo de predição também pode indicar o modo de interpredição por meio de sinalização hierárquica de informações de bandeira. Neste caso, as informações de modo de predição podem incluir um ou mais sinalizadores. Por exemplo, as informações de modo de predição podem indicar se deve ser aplicado um modo de ignorar, sinalizando um sinalizador de salto, indicar se deseja aplicar o modo de mesclagem, sinalizando um sinalizador de mesclagem se o modo de salto não for aplicado e indicar que o modo de MVP é aplicado ou sinalizar adicionalmente um sinalizador para classificação adicional se o modo de mesclagem não for aplicado. O modo afim pode ser sinalizado como um modo independente ou pode ser sinalizado como um modo que depende do modo de mesclagem, do modo de MVP ou semelhante. Por exemplo, o modo afim pode incluir um modo de mesclagem afim e um modo de MVP afim.
[0125] O aparelho de codificação derivas informações de movimento para o bloco atual (S610). As informações de movimento podem ser derivadas com base no modo de interpredição.
[0126] O aparelho de codificação pode realizar a interpredição usando as informações de movimento do bloco atual. O aparelho de codificação pode derivar informações de movimento ideais para o bloco atual por meio de um procedimento de estimativa de movimento. Por exemplo, o aparelho de codificação pode procurar um bloco de referência semelhante com uma alta correlação em unidades de pixels fracionários em uma faixa de pesquisa predeterminada na gravura de referência, usando o bloco original na gravura original para o bloco atual, derivando assim o movimento em formação. A similaridade do bloco pode ser derivada com base na diferença entre os valores da amostra com base na fase. Por exemplo, a similaridade do bloco pode ser calculada com base no SAD entre o bloco atual (ou modelo do bloco atual) e o bloco de referência (ou modelo do bloco de referência). Neste caso, as informações de movimento podem ser derivadas com base em um bloco de referência com o menor SAD na região de pesquisa. As informações de movimento derivadas podem ser sinalizadas para o aparelho de decodificação de acordo com vários métodos com base no modo de interpredição.
[0127] O aparelho de codificação realiza a interpredição com base nas informações de movimento para o bloco atual (S620). O aparelho de codificação pode derivar a(s) amostra(s) de predição para o bloco atual com base nas informações de movimento. O bloco atual incluindo as amostras de predição pode ser chamado de bloco predito.
[0128] Enquanto isso, de acordo com a fusão convencional ou modo de AMVP na interpredição, um método para reduzir a quantidade de informações de movimento usando o vetor de movimento do bloco vizinho espacial/temporal do bloco atual como um candidato de informações de movimento foi usado. Por exemplo, os blocos vizinhos usados para derivar candidatos de informações de movimento do bloco atual podem incluir um bloco vizinho do canto inferior esquerdo, um bloco vizinho à esquerda, um bloco vizinho do canto superior direito, um bloco vizinho superior e um bloco vizinho do canto superior esquerdo do bloco atual.
[0129] A Figura 7 ilustra de modo exemplificativo blocos vizinhos espaciais usados para derivar um candidato de informações de movimento na fusão convencional ou modo de AMVP.
[0130] Basicamente, o bloco vizinho espacial foi limitado a um bloco em contato direto com o bloco atual. Isso é para aumentar a capacidade de implantação do hardware e porque um problema como um aumento em um buffer de linha ocorre para induzir as informações de um bloco distante do bloco atual. No entanto, o uso das informações de movimento de um bloco não vizinho para derivar o candidato de informações de movimento do bloco atual pode constituir vários candidatos, melhorando assim o desempenho. Um método de predição de vetor de movimento com base em histórico (HMVP) pode ser usado para usar as informações de movimento de um bloco não vizinho sem aumentar o buffer de linha. Neste documento, o HMVP pode representar uma predição de vetor de movimento baseada em histórico ou um preditor de vetor de movimento com base em histórico. De acordo com o presente documento, é possível realizar com eficiência a interpredição e suportar o processamento paralelo, utilizando o HMVP. Por exemplo, as modalidades do presente documento propõem vários métodos de gerenciamento de um buffer de histórico para processamento de paralelização e o processamento paralelo pode ser suportado com base nos métodos. No entanto, suportar o processamento paralelo não significa que o processamento paralelo seja necessariamente executado, e o aparelho de codificação pode ou não executar o processamento paralelo em consideração ao desempenho do hardware ou tipo de serviço. Por exemplo, se o aparelho de codificação tem um processador de multinúcleos, o aparelho de codificação pode processar algumas das fatias, tijolos e/ou blocos do tipo ladrilho em paralelo. Enquanto isso, mesmo quando o aparelho de codificação tem um processador de núcleo único ou tem um processador de vários núcleos, o aparelho de codificação pode realizar processamento sequencial enquanto reduz a carga de computação e memória.
[0131] O candidato de HMVP de acordo com o método de HMVP descrito acima pode incluir informações de movimento de um bloco codificado anteriormente. Por exemplo, as informações de movimento do bloco codificado anteriormente de acordo com a ordem de codificação do bloco na gravura atual não foi considerada como as informações de movimento do bloco atual se o bloco codificado anteriormente não for vizinho ao bloco atual. No entanto, o candidato de HMVP pode ser considerado como um candidato as informações de movimento (por exemplo, candidato a mesclagem ou candidato a MVP) do bloco atual sem considerar se o bloco codificado anteriormente é vizinho ao bloco atual. Neste caso, uma pluralidade de candidatos de HMVP pode ser armazenada em um buffer. Por exemplo, se o modo de mesclagem for aplicado ao bloco atual, o candidato de HMVP (candidato a mesclagem HMVP) pode ser adicionado à lista de candidatos de mesclagem. Nesse caso, o candidato de HMVP pode ser adicionado após os candidatos de mesclagem espacial e o candidato de mesclagem temporal incluído na lista de candidatos de mesclagem.
[0132] De acordo com o método de HMVP, as informações de movimento do bloco codificado anteriormente podem ser armazenadas na forma de uma tabela e usadas como o candidato de informações de movimento (por exemplo, candidato a mesclagem) do bloco atual. Uma tabela (ou buffer ou lista) incluindo uma pluralidade de candidatos de HMVP pode ser mantida durante os procedimentos de codificação/decodificação. A tabela (ou buffer ou lista) pode ser chamada de tabela de HMVP (ou buffer ou lista). De acordo com uma modalidade do presente documento, a tabela (ou buffer ou lista) pode ser inicializada ao encontrar uma nova fatia. Alternativamente, de acordo com uma modalidade do presente documento, a tabela (ou buffer ou lista) pode ser inicializada ao encontrar uma nova linha de CTU. Se a tabela for inicializada, o número de candidatos de HMVP incluídos na tabela pode ser definido como zero. O tamanho da tabela (ou buffer ou lista) pode ser fixado em um valor específico (por exemplo, 5 ou semelhante). Por exemplo, se existir um bloco intercodificado, as informações de movimento associadas podem ser adicionadas à última entrada da tabela como um novo candidato de HMVP. A tabela (HMVP) pode ser chamada de buffer (HMVP) ou lista (HMVP).
[0133] A Figura 8 ilustra esquematicamente um exemplo de um procedimento de decodificação com base em candidato de HMVP. Aqui, o procedimento de decodificação com base em candidato de HMVP pode incluir um procedimento de interpredição com base em candidato de HMVP.
[0134] Com referência à Figura 8, o aparelho de decodificação carrega a tabela de HMVP incluindo o (s) candidato (s) HMVP e decodifica o bloco com base em pelo menos um dos candidatos (s) HMVP. Especificamente, por exemplo, o aparelho de decodificação pode derivar as informações de movimento do bloco atual com base em pelo menos um dos candidatos de HMVP e derivar o bloco predito (incluindo a amostra de predição) realizando a interpredição para o bloco atual com base nas informações de movimento. Conforme descrito acima, um bloco reconstruído pode ser gerado com base no bloco predito. As informações de movimento derivadas do bloco atual podem ser atualizadas na tabela. Nesse caso, as informações de movimento podem ser adicionadas à última entrada da tabela como um novo candidato de HMVP. Se o número de candidatos de HMVP incluídos anteriormente na mesa for igual ao tamanho da mesa, o candidato que primeiro entra na mesa pode ser excluído e as informações de movimento derivadas podem ser adicionadas à última entrada da mesa como um novo HMVP candidato.
[0135] A Figura 9 ilustra de modo exemplificativo a atualização da tabela de HMVP de acordo com uma regra primeiro a entrar, primeiro a sair (FIFO), e a Figura 10 ilustra de modo exemplificativo a atualização da tabela de HMVP de acordo com uma regra FIFO limitada.
[0136] Uma regra FIFO pode ser aplicada à mesa. Por exemplo, se o tamanho de uma tabela (S) for 16, isso indica que 16 candidatos de HMVP podem ser incluídos na tabela. Se mais de 16 candidatos de HMVP forem gerados a partir dos blocos codificados anteriormente, uma regra FIFO pode ser aplicada e, portanto, a tabela pode incluir até 16 candidatos de informações de movimento codificados mais recentemente. Neste caso, como mostrado na Figura 9, a regra FIFO pode ser aplicada de modo que o candidato de HMVP mais antigo possa ser eliminado e um novo candidato de HMVP possa ser adicionado.
[0137] Entretanto, a fim de melhorar ainda mais a eficiência da codificação, uma regra FIFO limitada também pode ser aplicada, como mostrado na Figura 10 Com referência à Figura 10, quando o candidato de HMVP é inserido na tabela, uma verificação de redundância pode ser aplicada primeiro. Portanto, pode ser determinado se o candidato de HMVP com as mesmas informações de movimento já existe na tabela. Se o candidato de HMVP com as mesmas informações de movimento existir na tabela, o candidato de HMVP com as mesmas informações de movimento pode ser eliminado da tabela, os candidatos de HMVP após o candidato de HMVP eliminado podem se mover por um espaço (ou seja, respectivos Índices-1) e, em seguida, um novo candidato de HMVP pode ser inserido.
[0138] Conforme descrito acima, os candidatos de HMVP podem ser usados em um procedimento de configuração de lista de candidatos de mesclagem. Neste caso, por exemplo, todos os candidatos de HMVP inseríveis da última entrada para a primeira entrada na tabela podem ser inseridos após os candidatos de mesclagem espacial e o candidato de mesclagem temporal. Nesse caso, uma verificação de poda pode ser aplicada aos candidatos de HMVP. O número máximo de candidatos de mesclagem permitidos pode ser sinalizado e, se o número total de candidatos de mesclagem disponíveis atingir o número máximo de candidatos de mesclagem, o procedimento de configuração da lista de candidatos de mesclagem pode ser encerrado.
[0139] Da mesma forma, os candidatos de HMVP também podem ser usados no procedimento de configuração da lista de candidatos (A) MVP. Neste caso, os vetores de movimento dos últimos k candidatos de HMVP na tabela de HMVP podem ser adicionados após os candidatos TMVP configurando a lista de candidatos de MVP. Neste caso, por exemplo, um candidato de HMVP com a mesma gravura de referência que a gravura de referência alvo MVP pode ser usado para configurar a lista de candidatos de MVP. Aqui, a gravura de referência do alvo MVP pode representar a gravura de referência para a interpredição do bloco atual ao qual o modo de MVP foi aplicado. Nesse caso, a verificação de poda pode ser aplicada aos candidatos de HMVP. O k pode ser, por exemplo, 4. No entanto, este é um exemplo e k pode ter vários valores, como 1, 2, 3 e 4.
[0140] Enquanto isso, se o número total de candidatos de mesclagem for igual ou maior que 15, um método de binarização unário truncado mais comprimento fixo (com 3 bits) pode ser aplicado para codificação de índice de mesclagem como na Tabela 1 abaixo.
[0141] Tabela 1
Figure img0001
[0142] A tabela é baseada na suposição de que Nmrg = 15, onde Nmrg se refere ao número total de candidatos de mesclagem.
[0143] Enquanto isso, o processamento paralelo pode ser suportado na codificação de imagem/vídeo para otimizar a implementação ao desenvolver uma solução de aplicação de codec de vídeo.
[0144] A Figura 11 ilustra de modo exemplificativo o Processamento Paralelo de Frente de Onda (WPP), que é uma das técnicas para processamento paralelo.
[0145] Com referência à Figura 11, se o WPP for aplicado, o processamento de paralelização pode ser executado em unidades de linhas de CTU. Neste caso, ao codificar (codificar/decodificar) blocos marcados com X, existe uma posição e dependência indicada pela seta. Portanto, é necessário aguardar que a CTU superior direita do bloco a ser codificado no momento esteja completamente codificado. Além disso, se o WPP for aplicado, a inicialização da tabela de probabilidade CABAC (ou informações de contexto) pode ser realizada em unidades de fatias e, para realizar o processamento de paralelização, incluindo a codificação/decodificação por entropia, a tabela de probabilidade CABAC (ou informações de contexto) precisa ser inicializado em unidades de linhas de CTU. O WPP pode ser considerado uma tecnologia proposta para determinar uma posição de inicialização eficiente. Se o WPP for aplicado, as respectivas linhas LCT podem ser chamadas de subfluxo e o processamento paralelo pode ser suportado se o aparelho de codificação tiver uma pluralidade de núcleos de processamento. Por exemplo, no caso em que o WPP é aplicado, se três núcleos de processamento processam a decodificação em paralelo, um primeiro núcleo de processamento pode decodificar um subfluxo 0, um segundo núcleo de processamento pode decodificar um subfluxo 1 e um terceiro núcleo de processamento pode decodificar um subfluxo 2 Se o WPP for aplicado, a codificação pode ser realizada para um subfluxo ordenado em nésimo lugar (n é um número inteiro), a codificação pode ser concluída para uma CTU ou LCU ordenada em segundo lugar do subfluxo ordenado em nésimo lugar e, então, a codificação pode ser realizada para um subfluxo ordenado em n+1ésimo lugar. Por exemplo, no caso da codificação por entropia, se a codificação por entropia para a segunda LCU do subfluxo ordenado em nésimo lugar for concluída, a primeira LCU do subfluxo ordenado em n+1ésimo lugar é codificada por entropia com base nas informações de contexto para a segunda LCU do subfluxo ordenado em nésimo lugar. Neste momento, o número de subfluxos na fatia pode ser igual ao número de linhas de LCU. Além disso, o número de subfluxos na fatia pode ser igual ao número de pontos de entrada. Neste momento, o número de pontos de entrada pode ser especificado pelo número de deslocamentos de pontos de entrada. Por exemplo, o número de pontos de entrada pode ter um valor maior em 1 do que o número de deslocamentos de pontos de entrada. Informações sobre o número de deslocamentos de ponto de entrada e/ou informações sobre os valores dos deslocamentos podem ser incluídas nas informações de vídeo/imagem descritas acima e codificadas e podem ser sinalizadas para o aparelho de decodificação através do fluxo de bits. Enquanto isso, se o aparelho de codificação inclui um núcleo de processamento, o processamento de codificação pode ser executado em uma unidade de subfluxo, reduzindo assim a carga de memória e a dependência de codificação.
[0146] O método de HMVP descrito acima armazena, como candidato, informações de movimento derivadas de um procedimento de codificação de cada bloco pelo tamanho de um buffer predeterminado (tabela de HMVP). Neste caso, conforme revelado na Figura 9 sem qualquer condição adicional, os armazenamento temporários podem ser preenchidos com candidatos tantos quanto o número de armazenamento temporários, ou também podem ser preenchidos com candidatos que não são redundantes por meio da verificação de redundância entre o candidato recém- adicionado e o candidato existente no buffer (tabela de HMVP). Portanto, vários candidatos podem ser configurados. No entanto, ao desenvolver uma solução à qual o codec de vídeo é aplicado, geralmente é impossível saber quando o buffer está preenchido com os candidatos de HMVP, de modo que é impossível habilitar o processamento paralelo mesmo que o WPP seja aplicado ou o WPP não seja aplicado.
[0147] A Figura 12 ilustra de modo exemplificativo um problema ao aplicar um método de HMVP geral em consideração ao processamento paralelo.
[0148] Com referência à Figura 12, ao realizar a paralelização em unidades de cada linha de CTU como no WPP, pode ocorrer um problema de dependência do buffer de HMVP. Por exemplo, é porque o buffer de HMVP para a CTU ordenada em primeiro lugar em uma linha de CTU ordenada em N(N>=1)ésimo lugar pode ser preenchido apenas quando a codificação (codificação/decodificação) de um bloco existente em um linha de CTU ordenada em (N-1)ésimo lugar, por exemplo, um bloco na última CTU na linha de CTU ordenada em (N-1)ésimo lugar é concluído. Ou seja, se o processamento paralelo for aplicado sob a estrutura atual, o aparelho de decodificação pode não saber se os candidatos de HMVP atuais armazenados no buffer de HMVP correspondem ao buffer de HMVP usado para decodificar o bloco atual (alvo). Isso ocorre porque uma diferença pode ocorrer entre o buffer de HMVP derivado do ponto de tempo de codificação do bloco atual ao aplicar o processamento sequencial e o buffer de HMVP derivado do ponto de tempo de codificação do bloco atual ao aplicar o processamento paralelo.
[0149] Em uma modalidade do presente documento, a fim de resolver o problema acima, ao aplicar o HMVP, o buffer de gerenciamento de histórico (buffer de HMVP) é inicializado para que o processamento paralelo possa ser suportado.
[0150] A Figura 13 ilustra de modo exemplificativo um método de inicialização de um buffer de gerenciamento de histórico (buffer de HMVP) de acordo com uma modalidade do presente documento.
[0151] Com referência à Figura 13, o buffer de HMVP pode ser inicializado para cada CTU ordenada em primeiro lugar da linha de CTU. Isto é, ao codificar a CTU ordenada em primeiro lugar da linha de CTU, o buffer de HMVP pode ser inicializado de modo que o número de candidatos de HMVP incluídos no buffer de HMVP seja zero. Ao inicializar o buffer de HMVP para cada linha de CTU como descrito acima, mesmo quando o processamento paralelo é suportado, os candidatos de HMVP derivados do processo de codificação das CTUs localizadas na direção esquerda do bloco atual podem ser usados sem restrição. Neste caso, por exemplo, se o CU atual que é o bloco atual está localizado na CTU ordenada em primeiro lugar da linha de CTU, e o CU atual corresponde ao CU ordenado em primeiro lugar na CTU ordenada em primeiro lugar, o número de Os candidatos de HMVP incluídos no buffer de HMVP são zero. Além disso, por exemplo, se um CU codificado antes do CU atual na linha de CTU é codificado no modo interno, o candidato de HMVP pode ser derivado com base nas informações de movimento do CU codificado anteriormente e incluso no buffer de HMVP.
[0152] A Figura 14 ilustra de modo exemplificativo um método de gerenciamento de buffer de HMVP de acordo com uma modalidade.
[0153] Com referência à Figura 14, o buffer de HMVP pode ser inicializado em unidades de fatias, e pode ser determinado se uma CTU alvo de codificação (CTU atual) é a CTU ordenada em primeiro lugar em cada linha de CTU, mesmo em relação às CTUs na fatia. Na Figura 14, por exemplo, se (ctu_idx% Num) for zero, foi descrito como sendo determinado como a CTU ordenada em primeiro lugar. Neste momento, o Num significa o número de CTUs em cada linha de CTU. Como outro exemplo, no caso de usar o conceito de tijolo descrito acima, se (ctu_idx_in_brick% BrickWidth) for zero, pode ser determinado como sendo a CTU ordenada em primeiro lugar da linha de CTU (no tijolo correspondente). Aqui, o ctu_idx_in_brick se refere ao índice de CTU correspondente do tijolo, e BrickWidth se refere à largura do tijolo em unidades de CTUs. Ou seja, o BrickWidth pode se referir ao número de colunas CTU no tijolo correspondente. Se a CTU atual for a CTU ordenada em primeiro lugar da linha de CTU, o buffer de HMVP é inicializado (ou seja, o número de candidatos no buffer de HMVP é definido como zero), caso contrário, o buffer de HMVP é mantido. Depois disso, o processo de predição (por exemplo, com base na fusão ou modo de MVP) para cada CU na CTU correspondente é realizado e, neste momento, o candidato armazenado no buffer de HMVP pode ser incluído como um candidato as informações de movimento (por exemplo, candidato a mesclagem ou candidato a MVP) no modo de mesclagem ou no modo de MVP. As informações de movimento do bloco alvo (bloco atual) derivada no processo de interpredição com base no modo de mesclagem ou no modo de MVP é armazenada (atualizada) no buffer de HMVP como um novo candidato de HMVP. Neste caso, o processo de verificação de redundância descrito acima pode ser executado posteriormente. O procedimento descrito acima também pode ser repetido para o CU e o CTU.
[0154] Como outro exemplo, quando o HMVP é aplicado, a dependência da unidade CTU também pode ser eliminada inicializando o buffer de HMVP para cada CTU.
[0155] A Figura 15 ilustra de modo exemplificativo um método de gerenciamento de buffer de HMVP de acordo com outra modalidade.
[0156] Com referência à Figura 15, a inicialização do buffer de HMVP pode ser realizada para cada CTU sem determinar se a CTU atual é a CTU ordenada em primeiro lugar em cada linha de CTU. Neste caso, como o buffer de HMVP é inicializado em unidades de CTUs, as informações de movimento dos blocos existentes na CTU são armazenadas na tabela de HMVP. Neste caso, o candidato de HMVP pode ser derivado com base nas informações de movimento dos blocos (por exemplo, CUs) na mesma CTU, e a inicialização do buffer de HMVP pode ser realizada como segue, sem determinar se a CTU atual é a ordenada CTU em primeiro lugar em cada linha de CTU.
[0157] Conforme descrito acima, o buffer de HMVP pode ser inicializado em unidades de fatias e, portanto, é possível usar um vetor de movimento do bloco espacialmente espaçado do bloco atual. No entanto, neste caso, uma vez que o processamento paralelo pode não ser suportado na fatia, as modalidades descritas acima propuseram um método de inicialização do buffer em unidades de linhas de CTU ou CTUs. Isto é, de acordo com as modalidades do presente documento, o buffer de HMVP pode ser inicializado em unidades de fatias e pode ser inicializado em unidades de linhas de CTU na fatia.
[0158] Enquanto isso, na codificação de (codificar/decodificar) uma gravura, a gravura correspondente também pode ser dividida em unidades de fatias e/ou a gravura correspondente também pode ser dividida em unidades de blocos do tipo ladrilho. Por exemplo, a gravura correspondente pode ser dividida em unidades de fatias em consideração à resiliência ao erro, ou a gravura correspondente também pode ser dividida em unidades de blocos do tipo ladrilho para codificar/decodificar algumas regiões na gravura correspondente. Quando uma gravura é dividida em vários blocos do tipo ladrilho, no caso de aplicação do buffer de gerenciamento de HMVP, a inicialização em unidades de linhas de CTU na gravura correspondente, ou seja, a inicialização do buffer de HMVP na CTU ordenada em primeiro lugar em cada linha de CTU na gravura não é adequado para a estrutura de bloco do tipo ladrilho para codificar/decodificar uma porção da gravura.
[0159] A Figura 16 ilustra de modo exemplificativo um método de inicialização de buffer de HMVP na estrutura do bloco do tipo ladrilho.
[0160] Como na Figura 16, uma vez que o buffer de gerenciamento de HMVP não é inicializado para cada unidade de bloco do tipo ladrilho no caso de um bloco do tipo ladrilho 1 e um bloco do tipo ladrilho 3, a dependência (HMVP) em um bloco do tipo ladrilho 0 e um bloco do tipo ladrilho 2 ocorre. Portanto, quando existe um bloco do tipo ladrilho, é possível inicializar o buffer de HMVP pelo método a seguir.
[0161] Por exemplo, o buffer de HMVP pode ser inicializado em unidades de CTUs. É natural que este método possa ser aplicado sem distinguir o bloco do tipo ladrilho, a fatia e semelhantes.
[0162] Como outro exemplo, o buffer de HMVP pode ser inicializado para a CTU ordenada em primeiro lugar de cada bloco do tipo ladrilho.
[0163] A Figura 17 ilustra um exemplo de um método de inicialização de buffer de HMVP para uma CTU ordenada em primeiro lugar em um bloco do tipo ladrilho de acordo com outra modalidade.
[0164] Com referência à Figura 17, ao codificar a CTU ordenada em primeiro lugar de cada bloco do tipo ladrilho, o buffer de HMVP é inicializado. Ou seja, um buffer de HMVP 0 pode ser inicializado e usado ao codificar um bloco do tipo ladrilho 0 e um buffer de HMVP 1 pode ser inicializado e usado ao codificar um bloco do tipo ladrilho 1.
[0165] Ainda como outro exemplo, o buffer de HMVP pode ser inicializado para a CTU ordenada em primeiro lugar da linha de CTU em cada bloco do tipo ladrilho.
[0166] A Figura 18 é um diagrama que mostra um exemplo de um método de inicialização de buffer de gerenciamento de HMVP para uma CTU ordenada em primeiro lugar em uma linha de CTU em cada bloco do tipo ladrilho de acordo com ainda outra modalidade.
[0167] Com referência à Figura 18, um buffer de HMVP pode ser inicializado para cada linha de CTU de cada bloco do tipo ladrilho. Por exemplo, o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar da linha de CTU ordenada em primeiro lugar de um bloco do tipo ladrilho n, o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar linha de CTU ordenada em segundo lugar do bloco do tipo ladrilho n, e o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar da linha de CTU ordenada em terceiro lugar do bloco do tipo ladrilho n. Neste caso, se o aparelho de codificação incluir um processador de multinúcleos, o aparelho de codificação pode inicializar e usar um buffer de HMVP 0 para a linha de CTU ordenada em primeiro lugar do bloco do tipo ladrilho n, inicializar e usar um buffer de HMVP 1 para a linha de CTU ordenada em segundo lugar do bloco do tipo ladrilho n e inicializar e usar um buffer de HMVP 2 para a linha de CTU ordenada em terceiro lugar do bloco do tipo ladrilho n, suportando assim o processamento paralelo. Enquanto isso, se o aparelho de codificação inclui um processador de núcleo único, o aparelho de codificação pode inicializar e reutilizar o buffer de HMVP na CTU ordenada em primeiro lugar em cada linha de CTU em cada bloco do tipo ladrilho de acordo com a ordem de codificação.
[0168] Enquanto isso, de acordo com a estrutura de divisão do bloco do tipo ladrilho e a estrutura de divisão de fatia, o bloco do tipo ladrilho e a fatia podem existir simultaneamente em uma gravura.
[0169] A Figura 19 ilustra um exemplo de uma estrutura em que um bloco do tipo ladrilho e uma fatia existem simultaneamente.
[0170] A Figura 19 ilustra de modo exemplificativo um caso em que uma gravura é dividida em quatro blocos do tipo ladrilho e existem duas fatias em cada bloco do tipo ladrilho. Como na Figura 19, pode haver um caso em que a fatia e o bloco do tipo ladrilho existam em uma gravura, e é possível inicializar o buffer de HMVP como segue.
[0171] Por exemplo, o buffer de HMVP pode ser inicializado em unidades de CTUs. Tal método pode ser aplicado sem distinguir se a CTU está localizada no bloco do tipo ladrilho ou na fatia.
[0172] Como outro exemplo, o buffer de HMVP pode ser inicializado para a CTU ordenada em primeiro lugar em cada bloco do tipo ladrilho.
[0173] A Figura 20 ilustra um exemplo de um método de inicialização de um buffer de HMVP para uma CTU ordenada em primeiro lugar em cada bloco do tipo ladrilho.
[0174] Com referência à Figura 20, um buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar de cada bloco do tipo ladrilho. Mesmo se houver uma pluralidade de fatias em um bloco do tipo ladrilho, o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar no bloco do tipo ladrilho.
[0175] Ainda como outro exemplo, o buffer de HMVP também pode ser inicializado para cada fatia existente no bloco do tipo ladrilho.
[0176] A Figura 21 é um diagrama que mostra um exemplo de um método de inicialização de um buffer de HMVP para cada fatia em um bloco do tipo ladrilho.
[0177] Com referência à Figura 21, um buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar de cada fatia no bloco do tipo ladrilho. Portanto, se uma pluralidade de fatias existir em um bloco do tipo ladrilho, o buffer de HMVP pode ser inicializado para cada uma da pluralidade de fatias. Neste caso, o buffer de HMVP pode ser inicializado ao processar a CTU ordenada em primeiro lugar de cada fatia.
[0178] Enquanto isso, uma pluralidade de blocos do tipo ladrilho pode existir em uma gravura sem uma fatia. Alternativamente, uma pluralidade de blocos do tipo ladrilho também pode existir em uma fatia. Nesse caso, o buffer de HMVP pode ser inicializado como segue.
[0179] Por exemplo, um buffer de HMVP pode ser inicializado em unidades de cada grupo de blocos do tipo ladrilho.
[0180] A Figura 22 ilustra um exemplo de inicialização de um buffer de HMVP para uma CTU ordenada em primeiro lugar de um bloco do tipo ladrilho ordenado em primeiro lugar em um grupo de blocos do tipo ladrilho.
[0181] Com referência à Figura 22, uma gravura pode ser dividida em dois grupos de blocos do tipo ladrilho e cada grupo de blocos do tipo ladrilho (GrupodeBlocos0 ou GrupodeBlocos1) pode ser dividido em vários blocos do tipo ladrilho. Neste caso, o buffer de HMVP pode ser inicializado para a CTU ordenada em primeiro lugar do primeiro bloco do tipo ladrilho ordenado em um grupo de blocos do tipo ladrilho.
[0182] Como outro exemplo, o buffer de HMVP pode ser inicializado em unidades de blocos do tipo ladrilho no grupo de blocos do tipo ladrilho.
[0183] A Figura 23 é um diagrama que mostra um exemplo de inicialização de um buffer de HMVP para uma CTU ordenada em primeiro lugar de cada bloco do tipo ladrilho em um grupo de blocos do tipo ladrilho.
[0184] Com referência à Figura 23, uma gravura pode ser dividida em dois grupos de blocos do tipo ladrilho e cada grupo de blocos do tipo ladrilho (GrupodeBlocos0 ou GrupodeBlocos1) pode ser dividido em vários blocos do tipo ladrilho. Neste caso, o buffer de HMVP pode ser inicializado para a CTU ordenada em primeiro lugar de cada bloco do tipo ladrilho em um grupo de blocos do tipo ladrilho.
[0185] Ainda como outro exemplo, o buffer de HMVP pode ser inicializado para a linha de CTU de cada bloco do tipo ladrilho no grupo de blocos do tipo ladrilho.
[0186] A Figura 24 é um diagrama que mostra um exemplo de inicialização de um buffer de HMVP para uma linha de CTU de cada bloco do tipo ladrilho em um grupo de blocos do tipo ladrilho.
[0187] Com referência à Figura 24, uma gravura pode ser dividida em dois grupos de blocos do tipo ladrilho e cada grupo de blocos do tipo ladrilho (GrupodeBlocos0 ou GrupodeBlocos1) pode ser dividido em vários blocos do tipo ladrilho. Neste caso, o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar da linha de CTU de cada bloco em um grupo de blocos do tipo ladrilho.
[0188] Alternativamente, mesmo neste caso, o buffer de gerenciamento de HMVP também pode ser inicializado em unidades de CTUs. É natural que este método possa ser aplicado sem distinguir o bloco do tipo ladrilho, a fatia, o grupo de blocos do tipo ladrilho e semelhantes.
[0189] As Figuras 25 e 26 são diagramas que mostram esquematicamente um exemplo de um método de codificação de vídeo/imagem e componentes relacionados, incluindo um método de interpredição de acordo com uma modalidade do presente documento. O método revelado na Figura 25 pode ser realizado pelo aparelho de codificação revelado na Figura 2 Especificamente, por exemplo, S2500, S2510, S2520 e S2530 da Figura 25 pode ser realizado pelo preditor 220 do aparelho de codificação, S2540 da Figura 25 pode ser realizado pelo processador residual 230 do aparelho de codificação e S2550 da Figura 25 pode ser realizado pelo codificador por entropia 240 do aparelho de codificação. O método revelado na Figura 25 pode incluir as modalidades descritas acima no presente documento.
[0190] Com referência à Figura 25, o aparelho de codificação deriva um buffer de HMVP para um bloco atual (S2500). O aparelho de codificação pode executar os métodos de gerenciamento de buffer de HMVP descritos acima nas modalidades do presente documento. Por exemplo, o buffer de HMVP pode ser inicializado em unidades de fatias, blocos do tipo ladrilho ou grupos de blocos do tipo ladrilho e/ou o buffer de HMVP pode ser inicializado em unidades de linhas de CTU. Neste caso, o buffer de HMVP pode ser inicializado em unidades de linhas de CTU na fatia, no bloco do tipo ladrilho ou no grupo de blocos do tipo ladrilho. Aqui, o bloco do tipo ladrilho pode representar uma região retangular de CTUs na gravura. O bloco do tipo ladrilho pode ser especificado com base em uma linha de bloco do tipo ladrilho específica e uma coluna de bloco do tipo ladrilho específica na gravura. Por exemplo, pode haver um ou mais blocos do tipo ladrilho na gravura atual. Neste caso, o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar da linha de CTU incluindo o bloco atual no bloco do tipo ladrilho atual. Como alternativa, uma ou mais fatias podem existir na gravura atual. Neste caso, o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar da linha de CTU incluindo o bloco atual na fatia atual. Alternativamente, um ou mais grupos de blocos do tipo ladrilho podem existir na gravura atual. Neste caso, o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar da linha de CTU incluindo o bloco atual no grupo de blocos do tipo ladrilho atual.
[0191] O aparelho de codificação pode determinar se a CTU atual é a CTU ordenada em primeiro lugar da linha de CTU. Neste caso, o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar da linha de CTU onde a CTU atual incluindo o bloco atual está localizada. Ou seja, o buffer de HMVP pode ser inicializado ao processar a CTU ordenada em primeiro lugar da linha de CTU onde a CTU atual, incluindo o bloco atual, está localizada. Se for determinado que a CTU atual incluindo o bloco atual é a CTU ordenada em primeiro lugar da linha de CTU no bloco do tipo ladrilho atual, o buffer de HMVP pode incluir um candidato de HMVP derivado com base nas informações de movimento do bloco processado antes do bloco atual na CTU atual, e se for determinado que a CTU atual não é a CTU ordenada em primeiro lugar da linha de CTU no bloco do tipo ladrilho atual, o buffer de HMVP pode incluir um candidato de HMVP derivado com base nas informações de movimento do bloco processado antes o bloco atual na linha de CTU no bloco do tipo ladrilho atual. Além disso, por exemplo, se o CU atual que é o bloco atual está localizado na CTU ordenada em primeiro lugar da linha de CTU no bloco do tipo ladrilho atual, e o CU atual corresponde ao CU ordenado em primeiro lugar da CTU ordenada em primeiro lugar, o número de candidatos de HMVP incluídos no buffer de HMVP é zero. Além disso, por exemplo, se um CU codificado antes do CU atual na linha de CTU no bloco do tipo ladrilho atual (por exemplo, um CU codificado antes do CU atual no CTU atual e/ou um CU em um CTU codificado antes a CTU atual da linha de CTU atual) é codificada em um modo interno, um candidato de HMVP pode ser derivado com base nas informações de movimento da CU codificada anteriormente e incluída no buffer de HMVP.
[0192] Se a gravura atual for dividida em uma pluralidade de blocos do tipo ladrilho, o buffer de HMVP pode ser inicializado em unidades de linhas de CTU em cada bloco do tipo ladrilho.
[0193] O buffer de HMVP pode ser inicializado em unidades de linhas de CTU no bloco do tipo ladrilho ou na fatia. Por exemplo, se uma CTU específica da linha de CTU não for a CTU ordenada em primeiro lugar da linha de CTU na gravura atual e a CTU específica for a CTU ordenada em primeiro lugar da linha de CTU no bloco do tipo ladrilho atual ou na fatia atual, o buffer de HMVP pode ser inicializado na CTU específica.
[0194] Se o buffer de HMVP for inicializado, o número de candidatos de HMVP incluídos no buffer de HMVP pode ser definido como zero.
[0195] O aparelho de codificação configura uma lista de candidatos de informações de movimento com base no buffer de HMVP (S2510). O buffer de HMVP pode incluir um candidato de HMVP e a lista de candidatos de informações de movimento incluindo o candidato de HMVP pode ser configurada.
[0196] Por exemplo, se um modo de mesclagem for aplicado ao bloco atual, a lista de candidatos de informações de movimento pode ser uma lista de candidatos de mesclagem. Como outro exemplo, se o modo de (A)MVP for aplicado ao bloco atual, a lista de candidatos de informações de movimento pode ser uma lista de candidatos a MVP. Se o modo de mesclagem for aplicado ao bloco atual, o candidato de HMVP pode ser adicionado à lista de candidatos de mesclagem se o número de candidatos de mesclagem disponíveis (por exemplo, candidatos de mesclagem espacial e candidatos de mesclagem temporal) na lista de candidatos de mesclagem para o bloco atual é menor que o número máximo predeterminado de candidatos de mesclagem. Nesse caso, o candidato de HMVP pode ser inserido após os candidatos espaciais e os candidatos temporais na lista de candidatos de mesclagem. Ou seja, o candidato de HMVP pode ser atribuído com um valor de índice maior do que os valores de índice atribuídos aos candidatos espaciais e aos candidatos temporais na lista de candidatos de mesclagem. Se o modo de (A)MVP for aplicado ao bloco atual, o candidato de HMVP pode ser adicionado à lista de candidatos de MVP se o número de candidatos de MVP disponíveis (derivado com base em blocos vizinhos espaciais e blocos vizinhos temporais) na lista de candidatos de MVP para o bloco atual é menor que dois.
[0197] O aparelho de codificação pode derivar as informações de movimento do bloco atual com base na lista de candidatos de informações de movimento (S2520).
[0198] O aparelho de codificação pode derivar as informações de movimento do bloco atual com base na lista de candidatos de informações de movimento. Por exemplo, se o modo de mesclagem ou o modo de MVP for aplicado ao bloco atual, o candidato de HMVP incluso no buffer de HMVP pode ser usado como um candidato a mesclagem ou um candidato a MVP. Por exemplo, se o modo de mesclagem for aplicado ao bloco atual, o candidato de HMVP incluso no buffer de HMVP pode ser incluído como um candidato da lista de candidatos de mesclagem e o candidato de HMVP entre os candidatos incluídos na lista de candidatos de mesclagem pode ser indicado com base no índice de mesclagem. O índice de mesclagem pode ser incluído nas informações de imagem/vídeo para ser descrito posteriormente como informações relacionadas à predição. Nesse caso, o candidato de HMVP pode ser atribuído com um índice na lista de candidatos de mesclagem com uma prioridade mais baixa do que os candidatos de mesclagem espacial e os candidatos de mesclagem temporal incluídos na lista de candidatos de mesclagem. Ou seja, o valor de índice atribuído ao candidato de HMVP pode ser atribuído com um valor mais alto do que os valores de índice dos candidatos de mesclagem espacial e do candidato de mesclagem temporal. Como outro exemplo, se o modo de MVP for aplicado ao bloco atual, o candidato de HMVP incluso no buffer de HMVP pode ser incluído como um candidato da lista de candidatos de fusão e o candidato de HMVP entre os candidatos incluídos na lista de candidatos de MVP pode ser indicado com base em um sinalizador de MVP (ou índice de MVP). O sinalizador de MVP (ou índice de MVP) pode ser incluído nas informações de imagem/vídeo a serem descritas posteriormente como informações relacionadas à predição.
[0199] O aparelho de codificação gera amostras de predição para o bloco atual com base nas informações de movimento derivadas (S2530). O aparelho de codificação pode derivar amostras de predição usando amostras de referência indicadas pelas informações de movimento em uma gravura de referência executando interpredição (compensação de movimento) com base nas informações de movimento.
[0200] O aparelho de codificação gera amostras residuais com base nas amostras de predição (S2540). O aparelho de codificação pode gerar amostras residuais com base nas amostras originais para o bloco atual e nas amostras de predição para o bloco atual.
[0201] O aparelho de codificação derivas informações sobre as amostras residuais com base nas amostras residuais e codifica as informações de imagem/vídeo, incluindo as informações sobre as amostras residuais (S2550). As informações sobre as amostras residuais podem ser chamadas de informações residuais e podem incluir informações sobre os coeficientes de transformada quantizados. O aparelho de codificação pode derivar os coeficientes de transformada quantizados realizando procedimentos de transformação/quantização para as amostras residuais.
[0202] As informações de imagem/vídeo codificadas podem ser emitida na forma de um fluxo de bits. O fluxo de bits pode ser transmitido para o aparelho de decodificação por meio de uma rede ou meio de armazenamento. As informações de imagem/vídeo podem incluir ainda informações relacionadas à predição e as informações relacionadas à predição podem incluir ainda informações sobre vários modos de predição (por exemplo, modo de mesclagem, modo de MVP e semelhantes), informações de MVD e semelhantes.
[0203] As Figuras 27 e 28 são diagramas que mostram esquematicamente um exemplo de um método de decodificação de imagem e componentes relacionados, incluindo um método de interpredição de acordo com uma modalidade do presente documento. O método revelado na Figura 27 pode ser realizado pelo aparelho de decodificação revelado na Figura 3 Especificamente, por exemplo, S2700, S2710, S2720 e S2730 da Figura 27 pode ser realizado pelo preditor 330 do aparelho de decodificação e S2740 pode ser realizado pelo adicionador 340 do aparelho de decodificação. O método revelado na Figura 27 pode incluir as modalidades descritas acima no presente documento.
[0204] Com referência à Figura 27, o aparelho de decodificação deriva um buffer de HMVP para o bloco atual (S2700). O aparelho de decodificação pode executar os métodos de gerenciamento de buffer de HMVP descritos acima nas modalidades do presente documento. Por exemplo, o buffer de HMVP pode ser inicializado em unidades de fatias, blocos do tipo ladrilho ou grupos de blocos do tipo ladrilho e/ou o buffer de HMVP pode ser inicializado em unidades de linhas de CTU. Neste caso, o buffer de HMVP pode ser inicializado em unidades de linhas de CTU na fatia, no bloco do tipo ladrilho ou no grupo de blocos do tipo ladrilho. Aqui, o bloco do tipo ladrilho pode representar uma região retangular das CTUs na gravura. O bloco do tipo ladrilho pode ser especificado com base em uma linha de bloco do tipo ladrilho específica e uma coluna de bloco do tipo ladrilho específica na gravura. Por exemplo, pode haver um ou mais blocos do tipo ladrilho na gravura atual. Neste caso, o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar da linha de CTU incluindo o bloco atual no bloco do tipo ladrilho atual. Como alternativa, uma ou mais fatias podem existir na gravura atual. Neste caso, o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar da linha de CTU incluindo o bloco atual na fatia atual. Alternativamente, um ou mais grupos de blocos do tipo ladrilho podem existir na gravura atual. Neste caso, o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar da linha de CTU incluindo o bloco atual no grupo de blocos do tipo ladrilho atual.
[0205] O aparelho de decodificação pode determinar se a CTU atual é a CTU ordenada em primeiro lugar da linha de CTU. Neste caso, o buffer de HMVP pode ser inicializado na CTU ordenada em primeiro lugar da linha de CTU onde a CTU atual incluindo o bloco atual está localizada. Ou seja, o buffer de HMVP pode ser inicializado ao processar a CTU ordenada em primeiro lugar da linha de CTU onde a CTU atual, incluindo o bloco atual, está localizada. Se for determinado que a CTU atual incluindo o bloco atual é a CTU ordenada em primeiro lugar da linha de CTU no bloco do tipo ladrilho atual, o buffer de HMVP pode incluir o candidato de HMVP derivado com base nas informações de movimento do bloco processado antes do bloco atual na CTU atual, e se for determinado que a CTU atual não é a CTU ordenada em primeiro lugar da linha de CTU no bloco do tipo ladrilho atual, o buffer de HMVP pode incluir o candidato de HMVP derivado com base nas informações de movimento do bloco processado antes o bloco atual na linha de CTU no bloco do tipo ladrilho atual. Além disso, por exemplo, se o CU atual que é o bloco atual está localizado na CTU ordenada em primeiro lugar da linha de CTU no bloco do tipo ladrilho atual, e o CU atual corresponde ao CU ordenado em primeiro lugar da CTU ordenada em primeiro lugar, o número de candidatos de HMVP incluídos no buffer de HMVP é zero. Além disso, por exemplo, um CU codificado antes do CU atual na linha de CTU no bloco do tipo ladrilho atual (por exemplo, um CU codificado antes do CU atual no CTU atual e/ou um CU em um CTU codificado antes do CTU atual da linha de CTU atual) é codificado em um modo interno, um candidato de HMVP pode ser derivado com base nas informações de movimento do CU codificado anteriormente e incluso no buffer de HMVP.
[0206] Se a gravura atual for dividida em uma pluralidade de blocos do tipo ladrilho, o buffer de HMVP pode ser inicializado em unidades de linhas de CTU em cada bloco do tipo ladrilho.
[0207] O buffer de HMVP pode ser inicializado em unidades de linhas de CTU no bloco do tipo ladrilho ou na fatia. Por exemplo, se uma CTU específica da linha de CTU não for a CTU ordenada em primeiro lugar da linha de CTU na gravura atual e a CTU específica for a CTU ordenada em primeiro lugar da linha de CTU no bloco do tipo ladrilho atual ou na fatia atual, o buffer de HMVP pode ser inicializado na CTU específica.
[0208] Se o buffer de HMVP for inicializado, o número de candidatos de HMVP incluídos no buffer de HMVP pode ser definido como zero.
[0209] O aparelho de decodificação configura uma lista de candidatos de informações de movimento com base no buffer de HMVP (S2710). O buffer de HMVP pode incluir um candidato de HMVP e a lista de candidatos de informações de movimento incluindo o candidato de HMVP pode ser configurada.
[0210] Por exemplo, se um modo de mesclagem for aplicado ao bloco atual, a lista de candidatos de informações de movimento pode ser uma lista de candidatos de mesclagem. Como outro exemplo, se o modo de (A)MVP for aplicado ao bloco atual, a lista de candidatos de informações de movimento pode ser uma lista de candidatos a MVP. Se o modo de mesclagem for aplicado ao bloco atual, o candidato de HMVP pode ser adicionado à lista de candidatos de mesclagem se o número de candidatos de mesclagem disponíveis (por exemplo, candidatos de mesclagem espacial e candidatos de mesclagem temporal) na lista de candidatos de mesclagem para o bloco atual é menor que o número máximo predeterminado de candidatos de mesclagem. Nesse caso, o candidato de HMVP pode ser inserido após os candidatos espaciais e os candidatos temporais na lista de candidatos de mesclagem. Ou seja, o candidato de HMVP pode ser atribuído com um valor de índice maior do que os valores de índice atribuídos aos candidatos espaciais e aos candidatos temporais na lista de candidatos de mesclagem. Se o modo de (A)MVP for aplicado ao bloco atual, o candidato de HMVP pode ser adicionado à lista de candidatos de MVP se o número de candidatos de MVP disponíveis (derivado com base em blocos vizinhos espaciais e blocos vizinhos temporais) na lista de candidatos de MVP para o bloco atual é menor que dois.
[0211] O aparelho de decodificação pode derivar informações de movimento do bloco atual com base na lista de candidatos de informações de movimento (S2720).
[0212] O aparelho de decodificação pode derivar as informações de movimento do bloco atual com base na lista de candidatos de informações de movimento. Por exemplo, se um modo de mesclagem ou um modo de MVP é aplicado ao bloco atual, o candidato de HMVP incluso no buffer de HMVP pode ser usado como um candidato a mesclagem ou um candidato MVP. Por exemplo, se o modo de mesclagem for aplicado ao bloco atual, o candidato de HMVP incluso no buffer de HMVP pode ser incluído como um candidato de uma lista de candidatos de mesclagem e o candidato de HMVP entre os candidatos incluídos na lista de candidatos de mesclagem pode ser indicado com base no índice de mesclagem adquirido do fluxo de bits. Nesse caso, o candidato de HMVP pode ser atribuído com um índice na lista de candidatos de mesclagem com uma prioridade mais baixa do que os candidatos de mesclagem espacial e os candidatos de mesclagem temporal incluídos na lista de candidatos de mesclagem. Ou seja, o valor de índice atribuído ao candidato de HMVP pode ser atribuído com um valor mais alto do que os valores de índice dos candidatos de mesclagem espacial e do candidato de mesclagem temporal. Como outro exemplo, se o modo de MVP for aplicado ao bloco atual, o candidato de HMVP incluso no buffer de HMVP pode ser incluído como um candidato de uma lista de candidatos de fusão e o candidato de HMVP entre os candidatos incluídos na lista de candidatos de MVP pode ser indicado com base em um sinalizador de MVP (ou índice de MVP) adquirido do fluxo de bits.
[0213] O aparelho de decodificação gera amostras de predição para o bloco atual com base nas informações de movimento derivadas (S2730). O aparelho de decodificação pode derivar amostras de predição usando amostras de referência indicadas pelas informações de movimento em uma gravura de referência executando interpredição (compensação de movimento) com base nas informações de movimento. O bloco atual incluindo as amostras de predição pode ser chamado de bloco predito.
[0214] O aparelho de decodificação gera amostras reconstruídas com base nas amostras de predição (S2740). Conforme descrito acima, um bloco/gravura reconstruído pode ser gerado com base nas amostras reconstruídas. Conforme descrito acima, o aparelho de decodificação pode adquirir informações residuais (incluindo informações sobre coeficientes de transformada quantizados) do fluxo de bits, derivar as amostras residuais das informações residuais e gerar as amostras reconstruídas com base nas amostras de predição e nas amostras residuais. Depois disso, como descrito acima, um procedimento de filtragem em laço, como filtragem de desbloqueio, procedimento de SAO e/ou ALF, pode ser aplicado à gravura reconstruída a fim de melhorar a qualidade de gravura subjetiva/objetiva conforme necessário.
[0215] Na modalidade descrita acima, os métodos são descritos com base no fluxograma como uma série de etapas ou blocos, mas a modalidade correspondente não está limitada à ordem das etapas e uma determinada etapa pode ocorrer em ordem diferente ou simultaneamente com a etapa diferente da descrita acima. Além disso, aqueles versados na técnica entenderão que as etapas mostradas no fluxograma não são exclusivas e outras etapas podem ser incluídas ou uma ou mais etapas nos fluxogramas podem ser excluídas sem afetar o escopo das modalidades do presente documento.
[0216] O método acima descrito de acordo com as modalidades do presente documento pode ser implementado na forma de software e o aparelho de codificação e/ou o aparelho de decodificação de acordo com o presente documento pode ser incluído no aparelho para realizar o processamento de imagem de, para por exemplo, uma TV, um computador, um telefone inteligente, um decodificador, um dispositivo de exibição e semelhantes.
[0217] Quando as modalidades no presente documento são implantadas em software, o método descrito acima pode ser implementado como um módulo (processo, função e semelhantes) para executar a função descrita acima. O módulo pode ser armazenado em uma memória e executado por um processador. A memória pode estar localizada dentro ou fora do processador e pode ser acoplada ao processador por vários meios bem conhecidos. O processador pode incluir um circuito integrado específico de aplicativo (ASIC), outros chipsets, circuitos lógicos e/ou dispositivos de processamento de dados. A memória pode incluir uma memória somente leitura (ROM), uma memória de acesso aleatório (RAM), uma memória flash, um cartão de memória, uma mídia de armazenamento e/ou outros dispositivos de armazenamento. Ou seja, as modalidades descritas no presente documento podem ser implantadas e realizadas em um processador, um microprocessador, um controlador ou um chip. Por exemplo, as unidades funcionais mostradas em cada desenho podem ser implantadas e executadas em um computador, um processador, um microprocessador, um controlador ou um chip. Nesse caso, informações para implementação (por exemplo, informações sobre instruções) ou um algoritmo podem ser armazenados em uma mídia de armazenamento digital.
[0218] Além disso, o aparelho de decodificação e o aparelho de codificação aos quais uma (s) modalidade (s) do presente documento é (são) aplicada (s) podem ser incluídos em um dispositivo de transmissão e recepção de transmissão multimídia, um terminal de comunicação móvel, um dispositivo de vídeo de cinema em casa, um dispositivo digital dispositivo de vídeo de cinema, uma câmera de vigilância, um dispositivo de chat de vídeo, um dispositivo de comunicação em tempo real, como comunicação de vídeo, um dispositivo de transmissão contínua móvel, uma mídia de armazenamento, uma filmadora, um provedor de serviços de vídeo sob demanda (VoD), um vídeo over the top Dispositivo (OTT), um provedor de serviços de transmissão contínua de Internet, um dispositivo de vídeo 3D, um dispositivo de realidade virtual, um dispositivo de realidade aumentada (AR), um dispositivo de vídeo de telefonia de vídeo, um terminal de meio de transporte (por exemplo, um veículo (incluindo um veículo autônomo) terminal, um terminal de avião, um terminal de navio ou semelhante), um dispositivo de vídeo médico ou semelhante e pode ser usado para processar sinais de vídeo ou sinais de dados. Por exemplo, o dispositivo de vídeo over the top (OTT) pode incluir um console de jogo, um leitor de Blu-ray, uma TV com acesso à Internet, um sistema de home-theater, um telefone inteligente, um PC do tipo tablet, um gravador de vídeo digital (DVR) e similares.
[0219] Além disso, o método de processamento ao qual uma (s) modalidade (s) do presente documento é (são) aplicada (s) pode (m) ser produzido (s) na 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 (s) modalidade (s) do presente documento também podem ser armazenados na mídia de gravação legível por computador. O meio de gravação legível por computador inclui todos os tipos de dispositivos de armazenamento e dispositivos de armazenamento distribuídos nos quais os dados legíveis por computador são armazenados. O meio de gravação legível por computador pode incluir, por exemplo, um disco Blu-ray (BD), um barramento serial universal (USB), um ROM, um PROM, um EPROM, um EEPROM, um RAM, um CD-ROM, um fita magnética, um disquete e um dispositivo ótico de armazenamento de dados. Além disso, o meio de gravação legível por computador também inclui mídia implantada na forma de uma onda portadora (por exemplo, transmissão pela Internet). Além disso, o fluxo de bits gerado pelo método de codificação pode ser armazenado no meio de gravação legível por computador ou transmitido através de uma rede de comunicação com fio e sem fio.
[0220] Além disso, as modalidades do presente documento podem ser implantadas como um produto de programa de computador por um código de programa e o código de programa pode ser executado em um computador pelas modalidades do presente documento. O código de programa pode ser armazenado em uma portadora legível por um computador.
[0221] Figura 29 ilustra um exemplo de um sistema de transmissão contínua de conteúdo ao qual a presente revelação pode ser aplicada.
[0222] Com referência à Figura 29, o sistema de transmissão contínua de conteúdo ao qual a revelação é aplicada pode incluir amplamente um servidor de codificação, servidor de transmissão contínua, servidor da web, armazenamento de mídia, dispositivo de usuário e dispositivo de entrada de multimídia.
[0223] O servidor de codificação desempenha a função de gerar um fluxo de bits compactando a entrada de conteúdo de dispositivos de entrada de multimídia, como um telefone inteligente, câmera ou filmadora em dados digitais e transmitindo o fluxo de bits gerado para o servidor de fluxo. Como outro exemplo, se os dispositivos de entrada de multimídia, como um telefone inteligente, câmera ou filmadora, produzem diretamente um fluxo de bits, o servidor de codificação pode ser omitido.
[0224] 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 a presente revelação é aplicada e o servidor de fluxo pode armazenar temporariamente o fluxo de bits enquanto o fluxo de bits é transmitido ou recebido.
[0225] O servidor de transmissão contínua desempenha a função de transmitir dados multimídia para um dispositivo do usuário com base em uma solicitação do usuário por meio de um servidor da web, e o servidor da web desempenha a função de informar ao usuário quais serviços estão disponíveis. Se o usuário solicitar um serviço desejado do servidor da web, o servidor da web transmite a solicitação ao servidor de transmissão contínua e o servidor de transmissão contínua transmite os dados de multimídia para o usuário. Neste momento, o sistema de transmissão contínua de conteúdo pode incluir um servidor de controle separado e, neste caso, o servidor de controle desempenha a função de controlar comandos/respostas entre dispositivos dentro do sistema de transmissão contínua de conteúdo.
[0226] O servidor de transmissão contínua pode receber conteúdo de um armazenamento de mídia e/ou servidor de codificação. Por exemplo, se o conteúdo for recebido do servidor de codificação, o conteúdo pode ser recebido em tempo real. Neste caso, para fornecer um serviço de transmissão contínua suave, o servidor de transmissão contínua pode armazenar o fluxo de bits por um período de tempo predeterminado.
[0227] Exemplos do dispositivo do usuário podem incluir um telefone celular, telefone inteligente, computador do tipo laptop, terminal de transmissão digital, assistente digital pessoal (PDA), reprodutor multimídia portátil (PMP), terminal de navegação, PC do tipo slate, PC do tipo tablet, ultrabook, dispositivo vestível (por exemplo, um relógio inteligente ou um óculos inteligente), TV digital, computador do tipo desktop e sinalização digital.
[0228] Cada servidor individual dentro do sistema de transmissão contínua de conteúdo pode ser operado como um servidor distribuído e, neste caso, os dados recebidos por cada servidor podem ser processados de maneira distribuída.

Claims (13)

1. Método de decodificação de imagem realizado por um aparelho de decodi- ficação, o método CARACTERIZADO pelo fato de que compreende: derivar um buffer de predição de vetor de movimento com base em histórico, HMVP, para um bloco atual; configurar lista de candidatos de informações de movimento com base em um candidato de HMVP compreendido no buffer de HMVP; derivar informações de movimento do bloco atual com base na lista de candi-datos de informações de movimento; derivar um índice de gravura de referência do bloco atual com base nas informações de movimento; derivar um vetor de movimento do bloco atual com base nas informações de movimento; gerar amostras de predição para o bloco atual com base no índice de gravura de referência e no vetor de movimento; e gerar amostras reconstruídas com base nas amostras de predição, em que uma gravura atual inclui um ou mais blocos do tipo ladrilho, em que o bloco atual é para uma das unidades de codificação (CUs) divididas a partir de uma unidade de árvore de codificação (CTU), em que o buffer de HMVP é atualizado com base em informações de movi-mento de um bloco anterior, em que o buffer de HMVP é inicializado em uma CTU primeiramente ordenada por cada linha de CTU de cada bloco do tipo ladrilho, em que o método compreende adicionalmente: determinar se a CTU é uma CTU primeiramente ordenada em uma linha de CTU de um bloco do tipo ladrilho atual, em que o buffer de HMVP para o bloco atual é derivado com base no resultado da determinação, e em que, com base no resultado da determinação de que a CTU é a CTU pri-meiramente ordenada na linha de CTU do bloco do tipo ladrilho atual, o buffer de HMVP é inicializado para a CTU.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, com base no buffer de HMVP sendo inicializado, o número de candidatos de HMVP compreendidos no buffer de HMVP é definido como zero.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, com base na gravura atual sendo dividida em uma pluralidade de blocos do tipo ladrilho, o buffer de HMVP é inicializado em unidades de linhas de CTU em cada bloco do tipo ladrilho.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, com base no resultado da determinação de que a CTU que compreende o bloco atual é a CTU primeiramente ordenada da linha CTU no bloco do tipo ladrilho atual, o buffer de HMVP compreende um candidato de HMVP derivado com base em informações de movimento de um bloco processado anteriormente ao bloco atual na CTU, e em que, com base no resultado da determinação de que a CTU não é a CTU primeiramente ordenada da linha de CTU no bloco do tipo ladrilho atual, o buffer de HMVP compreende um candidato de HMVP derivado com base em informações de movimento processadas anteriormente ao bloco atual na linha de CTU no bloco do tipo ladrilho atual.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, com base em um modo de mesclagem ou um modo de predição de vetor de movimento, MVP, sendo aplicado ao bloco atual, a lista de candidatos de informações de movimento é configurada com base no candidato de HMVP compreendido no buffer de HMVP.
6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, com base em um modo de mesclagem sendo aplicado ao bloco atual, a lista de candidatos de informações de movimento é uma lista de candidatos de mesclagem, e o candidato de HMVP compreendido no buffer de HMVP é compreendido como um candidato da lista de candidatos de mesclagem, e em que o candidato de HMVP entre os candidatos compreendidos na lista de candidatos de mesclagem é indicado com base em um índice de mesclagem adquirido a partir de um fluxo de bits.
7. Método de codificação de imagem realizado por um aparelho de codificação, o método CARACTERIZADO pelo fato de que compreende: derivar um buffer de predição de vetor de movimento com base em histórico, HMVP, para um bloco atual; configurar lista de candidatos de informações de movimento com base em um candidato de HMVP compreendido no buffer de HMVP; derivar informações de movimento do bloco atual com base na lista de candi-datos de informações de movimento; derivar um índice de gravura de referência do bloco atual com base nas informações de movimento; derivar um vetor de movimento do bloco atual com base nas informações de movimento; gerar amostras de predição para o bloco atual com base no índice de gravura de referência e no vetor de movimento; derivar amostras residuais com base nas amostras de predição; e codificar informações de imagem que compreendem informações sobre as amostras residuais, em que um ou mais blocos do tipo ladrilho estão presentes em uma gravura atual, em que o bloco atual é para uma das unidades de codificação, CUs, divididas a partir de uma unidade de árvore de codificação, CTU, em que o buffer de HMVP é atualizado com base em informações de movi-mento de um bloco anterior, em que o buffer de HMVP é inicializado em uma CTU primeiramente ordenada por cada linha de CTU de cada bloco do tipo ladrilho, em que o método compreende adicionalmente: determinar se a CTU é uma CTU primeiramente ordenada em uma linha de CTU de um bloco do tipo ladrilho atual, em que o buffer de HMVP para o bloco atual é derivado com base no resultado da determinação, e em que, com base no resultado da determinação de que a CTU é a CTU pri-meiramente ordenada na linha de CTU do bloco do tipo ladrilho atual, o buffer de HMVP é inicializado para a CTU.
8. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que, com base no buffer de HMVP sendo inicializado, o número de candidatos de HMVP compreendidos no buffer de HMVP é definido como zero.
9. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que, com base na gravura atual sendo dividida em uma pluralidade de blocos do tipo ladrilho, o buffer de HMVP é inicializado em unidades de linhas de CTU em cada bloco do tipo ladrilho.
10. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que, com base no resultado da determinação de que a CTU que compreende o bloco atual é a CTU primeiramente ordenada da linha CTU no bloco do tipo ladrilho atual, o buffer de HMVP compreende um candidato de HMVP derivado com base em informações de movimento de um bloco processado anteriormente ao bloco atual na CTU, e em que, com base no resultado da determinação de que a CTU não é a CTU primeiramente ordenada da linha de CTU no bloco do tipo ladrilho atual, o buffer de HMVP compreende um candidato de HMVP derivado com base em informações de movimento processadas anteriormente ao bloco atual na linha de CTU no bloco do tipo ladrilho atual.
11. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que, com base em um modo de mesclagem ou um modo de predição de vetor de movimento, MVP, sendo aplicado ao bloco atual, a lista de candidatos de informações de movimento é configurada com base no candidato de HMVP compreendido no buffer de HMVP.
12. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que, com base em um modo de mesclagem sendo aplicado ao bloco atual, a lista de candidatos de informações de movimento é uma lista de candidatos de mesclagem, e o candidato de HMVP compreendido no buffer de HMVP é compreendido como um candidato da lista de candidatos de mesclagem, e em que um índice de mesclagem compreendido nas informações de imagem indica o candidato de HMVP entre candidatos incluídos na lista de candidatos de mes- clagem.
13. Mídia de armazenamento digital legível por computador não transitória, CARACTERIZADA pelo fato de que armazena informações codificadas, levando um aparelho de decodificação a realizar um método de decodificação de imagem, sendo que o método compreende: derivar um buffer de predição de vetor de movimento com base em histórico, HMVP, para um bloco atual; configurar lista de candidatos de informações de movimento com base em um candidato de HMVP compreendido no buffer de HMVP; derivar informações de movimento do bloco atual com base na lista de candi-datos de informações de movimento; derivar um índice de gravura de referência do bloco atual com base nas informações de movimento; derivar um vetor de movimento do bloco atual com base nas informações de movimento; gerar amostras de predição para o bloco atual com base no índice de gravura de referência e no vetor de movimento; e gerar amostras reconstruídas com base nas amostras de predição, em que uma gravura atual inclui um ou mais blocos do tipo ladrilho, em que o bloco atual é para uma das unidades de codificação, CUs, divididas a partir de uma unidade de árvore de codificação, CTU, em que o buffer de HMVP é atualizado com base em informações de movi-mento de um bloco anterior, em que o buffer de HMVP é inicializado em uma CTU primeiramente ordenada por cada linha de CTU de cada bloco do tipo ladrilho, em que o método compreende adicionalmente: determinar se a CTU é uma CTU primeiramente ordenada em uma linha de CTU de um bloco do tipo ladrilho atual, em que o buffer de HMVP para o bloco atual é derivado com base no resultado da determinação, e em que, com base no resultado da determinação de que a CTU é a CTU pri-meiramente ordenada na linha de CTU do bloco do tipo ladrilho atual, o buffer de HMVP é inicializado para a CTU.
BR112021006152-5A 2018-10-04 2019-10-04 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 digital legível por computador não transitória BR112021006152B1 (pt)

Priority Applications (4)

Application Number Priority Date Filing Date Title
BR122021011274-6A BR122021011274B1 (pt) 2018-10-04 2019-10-04 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
BR122021011268-1A BR122021011268B1 (pt) 2018-10-04 2019-10-04 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órias legíveis por computador
BR122021011306-8A BR122021011306B1 (pt) 2018-10-04 2019-10-04 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
BR122021011303-3A BR122021011303B1 (pt) 2018-10-04 2019-10-04 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

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862740972P 2018-10-04 2018-10-04
US62/740,972 2018-10-04
PCT/KR2019/012991 WO2020071829A1 (ko) 2018-10-04 2019-10-04 히스토리 기반 영상 코딩 방법 및 그 장치

Publications (2)

Publication Number Publication Date
BR112021006152A2 BR112021006152A2 (pt) 2021-07-06
BR112021006152B1 true BR112021006152B1 (pt) 2022-06-14

Family

ID=70055909

Family Applications (5)

Application Number Title Priority Date Filing Date
BR122021011268-1A BR122021011268B1 (pt) 2018-10-04 2019-10-04 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órias legíveis por computador
BR122021011274-6A BR122021011274B1 (pt) 2018-10-04 2019-10-04 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
BR122021011303-3A BR122021011303B1 (pt) 2018-10-04 2019-10-04 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
BR122021011306-8A BR122021011306B1 (pt) 2018-10-04 2019-10-04 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
BR112021006152-5A BR112021006152B1 (pt) 2018-10-04 2019-10-04 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 digital legível por computador não transitória

Family Applications Before (4)

Application Number Title Priority Date Filing Date
BR122021011268-1A BR122021011268B1 (pt) 2018-10-04 2019-10-04 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órias legíveis por computador
BR122021011274-6A BR122021011274B1 (pt) 2018-10-04 2019-10-04 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
BR122021011303-3A BR122021011303B1 (pt) 2018-10-04 2019-10-04 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
BR122021011306-8A BR122021011306B1 (pt) 2018-10-04 2019-10-04 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

Country Status (15)

Country Link
US (4) US11025945B2 (pt)
EP (2) EP3846467B1 (pt)
JP (2) JP7342116B2 (pt)
KR (2) KR20230088839A (pt)
CN (5) CN117857786A (pt)
BR (5) BR122021011268B1 (pt)
CA (1) CA3114769A1 (pt)
ES (1) ES2966115T3 (pt)
FI (1) FI3846467T3 (pt)
HR (1) HRP20231695T1 (pt)
HU (1) HUE064704T2 (pt)
MX (1) MX2021003682A (pt)
PL (1) PL3846467T3 (pt)
SI (1) SI3846467T1 (pt)
WO (1) WO2020071829A1 (pt)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117676163A (zh) * 2018-07-06 2024-03-08 寰发股份有限公司 解码器的视频解码方法及装置
EP3815358A1 (en) 2018-08-10 2021-05-05 Huawei Technologies Co., Ltd. Video processing method, video processing apparatus, encoder, decoder, medium and computer program
CN116781930A (zh) 2018-08-13 2023-09-19 Lg电子株式会社 图像编码/解码方法、图像数据发送方法和存储介质
EP3843405A4 (en) 2018-10-05 2021-10-27 LG Electronics Inc. IMAGE CODING PROCESS USING HISTORY-BASED MOVEMENT INFORMATION, AND ASSOCIATED DEVICE
CN118042117A (zh) 2018-12-07 2024-05-14 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法、解码方法和计算机可读取介质
WO2020125738A1 (en) * 2018-12-21 2020-06-25 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods using history based motion vector prediction
CN112425170B (zh) * 2018-12-28 2024-03-22 知识产权之桥一号有限责任公司 动图像编码装置、动图像编码方法、动图像编码程序、动图像解码装置、动图像解码方法以及动图像解码程序
CN112470476A (zh) 2018-12-28 2021-03-09 Jvc建伍株式会社 图像编码装置、图像编码方法、图像编码程序、图像解码装置、图像解码方法及图像解码程序
WO2020141914A1 (ko) * 2019-01-01 2020-07-09 엘지전자 주식회사 히스토리 기반 모션 벡터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
AU2020214083B2 (en) 2019-02-02 2023-06-01 Beijing Bytedance Network Technology Co., Ltd. Buffer management for intra block copy in video coding
CN117395439A (zh) 2019-03-01 2024-01-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于方向的预测
CN117640927A (zh) 2019-03-04 2024-03-01 北京字节跳动网络技术有限公司 视频编解码中的帧内块复制中的实施方式方面
US10979716B2 (en) * 2019-03-15 2021-04-13 Tencent America LLC Methods of accessing affine history-based motion vector predictor buffer
KR102664876B1 (ko) * 2019-03-22 2024-05-10 로즈데일 다이나믹스 엘엘씨 Dmvr 및 bdof 기반의 인터 예측 방법 및 장치
CN114175645B (zh) 2019-07-06 2024-04-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的虚拟预测缓冲
CA3146391A1 (en) 2019-07-10 2021-01-14 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding
EP3981146A4 (en) * 2019-07-11 2022-08-03 Beijing Bytedance Network Technology Co., Ltd. BITSTREAM CONFORMITY RESTRICTIONS FOR INTRA-BLOCK COPY IN VIDEO ENCODING
US11223840B2 (en) 2019-08-19 2022-01-11 Tencent America LLC Method and apparatus for video coding
US11575941B2 (en) * 2021-03-23 2023-02-07 Tencent America LLC Parallel processing in video coding

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007114612A1 (en) * 2006-03-30 2007-10-11 Lg Electronics Inc. A method and apparatus for decoding/encoding a video signal
US20110274162A1 (en) * 2010-05-04 2011-11-10 Minhua Zhou Coding Unit Quantization Parameters in Video Coding
CN108965892B (zh) * 2012-01-30 2021-02-19 三星电子株式会社 用于视频解码的设备
KR102132784B1 (ko) * 2012-03-22 2020-07-13 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
CN104620584B (zh) * 2012-04-13 2019-10-18 Ge视频压缩有限责任公司 可缩放数据流及网络实体
BR112016012417B1 (pt) * 2013-12-18 2023-04-11 Hfi Innovation Inc Método e aparelho para inicialização e gerenciamento de paleta
KR101895295B1 (ko) * 2014-02-12 2018-09-05 주식회사 칩스앤미디어 동영상 처리 방법 및 장치
CN106664414B (zh) * 2014-06-19 2019-07-05 寰发股份有限公司 视频编码中用于单个样本模式的候选生成的方法及装置
KR102330740B1 (ko) * 2014-09-30 2021-11-23 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 파면 병렬 프로세싱이 인에이블되는 경우의 인트라 픽쳐 예측 모드에 대한 규칙
US10523957B2 (en) * 2014-10-08 2019-12-31 Vid Scale, Inc. Optimization using multi-threaded parallel processing framework
KR101903231B1 (ko) 2016-06-22 2018-10-04 전자부품연구원 압전 에너지 하베스팅을 위한 고효율 정류기
EP3791587A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Resetting of look up table per slice/tile/lcu row
US10491902B1 (en) * 2018-07-16 2019-11-26 Tencent America LLC Method and apparatus for history-based motion vector prediction
CN116781930A (zh) * 2018-08-13 2023-09-19 Lg电子株式会社 图像编码/解码方法、图像数据发送方法和存储介质
US11212550B2 (en) * 2018-09-21 2021-12-28 Qualcomm Incorporated History-based motion vector prediction for affine mode

Also Published As

Publication number Publication date
CN112789852A (zh) 2021-05-11
PL3846467T3 (pl) 2024-04-08
FI3846467T3 (fi) 2023-12-28
US20210274207A1 (en) 2021-09-02
CN112789852B (zh) 2024-02-13
KR102542000B1 (ko) 2023-06-13
JP7342116B2 (ja) 2023-09-11
US20200186821A1 (en) 2020-06-11
EP3846467B1 (en) 2023-11-29
WO2020071829A1 (ko) 2020-04-09
MX2021003682A (es) 2021-05-31
US20230421798A1 (en) 2023-12-28
US11729414B2 (en) 2023-08-15
SI3846467T1 (sl) 2024-02-29
KR20210042996A (ko) 2021-04-20
KR20230088839A (ko) 2023-06-20
EP3846467A4 (en) 2021-10-27
US11445209B2 (en) 2022-09-13
US20220377347A1 (en) 2022-11-24
CN117857787A (zh) 2024-04-09
EP4294007A2 (en) 2023-12-20
CN117857788A (zh) 2024-04-09
BR122021011268A2 (pt) 2021-07-20
CA3114769A1 (en) 2020-04-09
ES2966115T3 (es) 2024-04-18
EP3846467A1 (en) 2021-07-07
BR122021011274B1 (pt) 2022-06-14
CN117857786A (zh) 2024-04-09
BR112021006152A2 (pt) 2021-07-06
JP2023162356A (ja) 2023-11-08
HRP20231695T1 (hr) 2024-03-15
CN117857785A (zh) 2024-04-09
BR122021011306A2 (pt) 2021-07-20
BR122021011306B1 (pt) 2022-06-14
EP4294007A3 (en) 2024-02-21
BR122021011303B1 (pt) 2022-06-14
US11025945B2 (en) 2021-06-01
BR122021011274A2 (pt) 2021-07-20
BR122021011303A2 (pt) 2021-07-20
JP2022504173A (ja) 2022-01-13
HUE064704T2 (hu) 2024-04-28
BR122021011268B1 (pt) 2022-06-14

Similar Documents

Publication Publication Date Title
BR112021006152B1 (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 digital legível por computador não transitória
CN112585966B (zh) 以基于历史的运动向量为基础的帧间预测方法及其装置
CN112823521B (zh) 使用基于历史的运动信息的图像编码方法及其装置
BR122021009784A2 (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
US20230421771A1 (en) Method and device for signaling information on chroma format
BR112021013735A2 (pt) Método de codificação de imagens e dispositivo para executar intrapredição baseada em mrl
BR112021005152A2 (pt) método de codificação de nível de fator de conversão e dispositivo para o mesmo
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
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
BR122022005509B1 (pt) Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação, método de transmissão de dados para uma imagem , aparelho de decodificação/codificação para decodificação/codificação de imagem, aparelho de transmissão para transmissão de dados para uma imagem e mídia de armazenamento não transitória legível por computador

Legal Events

Date Code Title Description
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 04/10/2019, OBSERVADAS AS CONDICOES LEGAIS