BR112021006108A2 - método de codificação de imagem usando informações de movimento baseadas em histórico e dispositivo para o mesmo - Google Patents

método de codificação de imagem usando informações de movimento baseadas em histórico e dispositivo para o mesmo Download PDF

Info

Publication number
BR112021006108A2
BR112021006108A2 BR112021006108-8A BR112021006108A BR112021006108A2 BR 112021006108 A2 BR112021006108 A2 BR 112021006108A2 BR 112021006108 A BR112021006108 A BR 112021006108A BR 112021006108 A2 BR112021006108 A2 BR 112021006108A2
Authority
BR
Brazil
Prior art keywords
ctu
hmvp
current
candidate
information
Prior art date
Application number
BR112021006108-8A
Other languages
English (en)
Inventor
Naeri PARK
Junghak NAM
Hyeongmoon JANG
Jaeho Lee
Original Assignee
Lg Electronics Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lg Electronics Inc. filed Critical Lg Electronics Inc.
Priority to BR122021010912-5A priority Critical patent/BR122021010912A2/pt
Priority to BR122021010905-2A priority patent/BR122021010905A2/pt
Publication of BR112021006108A2 publication Critical patent/BR112021006108A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/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/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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/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/423Methods 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 characterised by memory arrangements
    • 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/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • 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

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 MEIO DE ARMAZENAMENTO DIGITAL LEGÍVEL POR COMPUTADOR NÃO TEMPORÁRIO. De acordo com uma modalidade revelada no presente documento: um conjunto de candidatos de predição de vetor de movimento baseada em histórico (HMVP) para um bloco atual é derivado com base em um histórico; o conjunto de candidatos de HMVP pode ser atualizado ou inicializado de acordo com uma condição; as informações de movimento do bloco atual podem ser derivadas com base no conjunto de candidatos de HMVP; e, dessa forma, a eficiência de predição inter pode ser aumentada através do mesmo.

Description

“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 MEIO DE ARMAZENAMENTO DIGITAL LEGÍVEL POR COMPUTADOR NÃO TEMPORÁRIO” CAMPO DA TÉCNICA
[001] A presente revelação se refere à codificação de imagem e, mais particularmente, a um método de codificação de imagem que usa informações de movimento baseadas em histórico e um aparelho para o método.
ANTECEDENTES
[002] Recentemente, a demanda por imagem/vídeo de alta resolução e alta qualidade, como imagem/vídeo 4K ou 8K de Ultra-Alta Definição (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 os dados convencionais de imagem/vídeo. Portanto, se os dados de imagem/vídeo forem transmitidos por meio de um meio como uma linha de banda larga com fio/sem fio existente ou armazenados em um meio de armazenamento herdado, os custos de transmissão e armazenamento aumentam rapidamente.
[003] Além disso, os interesses e a demanda por conteúdos de realidade virtual (VR) e realidade artificial (AR), e mídias imersivas, como holograma estão crescendo; e a transmissão de imagens/vídeos que exibem características de imagem/vídeo diferentes daqueles 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 com eficiência imagens/vídeos de alta qualidade mostrando várias características, conforme descrito acima.
SUMÁRIO
[005] Um objetivo da técnica do presente relatório descritivo é fornecer um método para aprimorar a eficiência de codificação de imagem e um aparelho para o método.
[006] Outro objetivo da técnica do presente relatório descritivo é fornecer um método de interpredição eficiente e um aparelho para o método.
[007] Ainda outro objetivo da técnica do presente relatório descritivo é fornecer um método para derivar um vetor de movimento baseado em histórico e um aparelho para o método.
[008] Ainda outro objetivo da técnica do presente relatório descritivo é fornecer um método para derivar com eficiência um candidato de predição de vetor baseado em histórico (HMVP) e um aparelho para o método.
[009] Ainda outro objetivo da técnica do presente relatório descritivo é fornecer um método para atualizar com eficiência um buffer de HMVP e um aparelho para o método.
[010] Ainda outro objetivo da técnica adicional do presente relatório descritivo é fornecer um método para inicializar com eficiência um buffer de HMVP e um aparelho para o método.
[011] De acordo com uma modalidade do presente relatório descritivo, é fornecido um método de decodificação de imagem realizado por um aparelho de decodificação. O método compreende derivar um conjunto de candidatos de predição de vetor de movimento baseada em histórico (HMVP) em relação a um bloco atual; construir uma lista de candidatos de informações de movimento com base em candidatos de HMVP que pertencem ao conjunto de candidatos 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, em que o conjunto de candidatos de HMVP é atualizado com base nas informações de movimento de um bloco anterior em uma linha de CTU em um ladrilho (tile) atual, em que a linha de CTU compreende o bloco atual, em que o conjunto de candidatos de HMVP é inicializado em uma CTU específica na linha de CTU que compreende o bloco atual, e a CTU específica é uma CTU primeiramente ordenada entre as CTUs da linha de CTU em uma gravura atual ou a CTU específico é uma CTU primeiramente ordenada entre as CTUs da linha de CTU no ladrilho atual.
[012] De acordo com outra modalidade do presente relatório descritivo, é fornecido um aparelho de decodificação que realiza a decodificação de imagem. O aparelho de decodificação compreende um preditor para derivar um conjunto de candidatos de predição de vetor de movimento baseada em histórico (HMVP) em relação a um bloco atual, construir uma lista de candidatos de informações de movimento com base em candidatos de HMVP que pertencem ao conjunto de candidatos de HMVP, derivar informações de movimento do bloco atual com base na lista de candidatos de informações de movimento, e gerar amostras de predição para o bloco atual com base nas informações de movimento; e um reconstrutor para gerar amostras reconstruídas com base nas amostras de predição, em que o conjunto de candidatos de HMVP é atualizado com base nas informações de movimento de um bloco anterior em uma linha de CTU em um ladrilho atual, em que a linha de CTU compreende o bloco atual, em que o conjunto de candidatos de HMVP é inicializado em uma CTU específica na linha de CTU que compreende o bloco atual, e a CTU específica é uma CTU primeiramente ordenada entre as CTUs da linha de CTU em uma gravura atual ou a CTU específico é uma CTU primeiramente ordenada entre as CTUs da linha de CTU no ladrilho atual.
[013] De acordo com ainda outra modalidade do presente relatório descritivo, é fornecido um método de codificação de imagem realizado por um aparelho de codificação. O método compreende derivar um conjunto de candidatos de predição de vetor de movimento baseada em histórico (HMVP) em relação a um bloco atual; construir uma lista de candidatos de informações de movimento com base em candidatos de HMVP que pertencem ao conjunto de candidatos 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, em que o conjunto de candidatos de HMVP é atualizado com base nas informações de movimento de um bloco anterior em uma linha de CTU em um ladrilho atual, em que a linha de CTU compreende o bloco atual, em que o conjunto de candidatos de HMVP é inicializado em uma CTU específica na linha de CTU que compreende o bloco atual, e a CTU específica é uma CTU primeiramente ordenada entre as CTUs da linha de CTU em uma gravura atual ou a CTU específico é uma CTU primeiramente ordenada entre as CTUs da linha de CTU no ladrilho atual.
[014] De acordo com ainda outra modalidade do presente relatório descritivo, é fornecido um aparelho de codificação que realiza a codificação de imagem. O aparelho de codificação compreende um preditor para derivar um conjunto de candidatos de predição de vetor de movimento baseada em histórico (HMVP) em relação a um bloco atual, construir uma lista de candidatos de informações de movimento com base em candidatos de HMVP que pertencem ao conjunto de candidatos de HMVP, derivar informações de movimento do bloco atual com base na lista de candidatos de informações de movimento, e gerar amostras de predição para o bloco atual com base nas informações de movimento; um processador residual que deriva amostras residuais com base nas amostras de predição; e um codificador de entropia que codifica informações de imagem incluindo informações sobre as amostras residuais samples, em que o conjunto de candidatos de HMVP é atualizado com base nas informações de movimento de um bloco anterior em uma linha de CTU em um ladrilho atual, em que a linha de CTU compreende o bloco atual, em que o conjunto de candidatos de HMVP é inicializado em uma CTU específica na linha de CTU que compreende o bloco atual, e a CTU específica é uma CTU primeiramente ordenada entre as CTUs da linha de CTU em uma gravura atual ou a CTU específico é uma CTU primeiramente ordenada entre as CTUs da linha de CTU no ladrilho atual.
[015] De acordo com ainda outra modalidade do presente relatório descritivo, é fornecido um meio de armazenamento digital que armazena dados de imagem incluindo informações de imagens codificadas geradas de acordo com um método de codificação de imagem realizado por um aparelho de codificação.
[016] De acordo com uma modalidade adicional do presente relatório descritivo, é fornecido um meio de armazenamento digital que armazena dados de imagem incluindo informações de imagens codificadas que dispara o método de decodificação de imagem para ser realizado por um aparelho de decodificação.
[017] De acordo com uma modalidade do presente relatório descritivo, a eficiência de compactação de imagem/vídeo total pode ser aprimorada.
[018] De acordo com uma modalidade do presente relatório descritivo, a quantidade de dados transmitidos para processamento de resíduos pode ser reduzida através de interpredição eficiente.
[019] De acordo com uma modalidade do presente relatório descritivo, buffers de HMVP podem ser gerenciados com eficiência.
[020] De acordo com uma modalidade do presente relatório descritivo, o processamento paralelo pode ser suportado através de gerenciamento de buffer de HMVP eficiente.
[021] De acordo com uma modalidade do presente relatório descritivo, um vetor de movimento para interpredição pode ser derivado com eficiência.
BREVE DESCRIÇÃO DOS DESENHOS
[022] A Figura 1 ilustra um exemplo de um sistema de codificação de vídeo/imagem ao qual as modalidades do presente relatório descritivo podem ser aplicadas.
[023] A Figura 2 ilustra uma estrutura de um aparelho de codificação de vídeo/imagem ao qual as modalidades do presente relatório descritivo podem ser aplicadas.
[024] A Figura 3 ilustra uma estrutura de um aparelho de decodificação de vídeo/imagem ao qual as modalidades do presente relatório descritivo podem ser aplicadas.
[025] A Figura 4 ilustra um exemplo de um método de codificação de vídeo/imagem baseado em interpredição.
[026] A Figura 5 ilustra um exemplo de um método de decodificação de vídeo/imagem baseado em interpredição.
[027] A Figura 6 ilustra um procedimento de interpredição.
[028] A Figura 7 ilustra blocos vizinhos espaciais usados para derivar candidatos de informações de movimento no modo de mesclagem ou AMVP herdado.
[029] A Figura 8 ilustra um exemplo de um processo de decodificação baseado em candidato de HMVP.
[030] A Figura 9 ilustra uma atualização de tabela de HMVP de acordo com a regra FIFO.
[031] A Figura 10 ilustra uma atualização de tabela de HMVP de acordo com uma regra FIFO limitada.
[032] A Figura 11 ilustra um Processamento Paralelo em Frente de Onda (WPP), uma das técnicas de processamento paralelo.
[033] A Figura 12 ilustra um problema encontrado quando um método de HMVP geral é aplicado levando-se em consideração o processamento paralelo.
[034] A Figura 13 ilustra um método para inicializar um buffer de gerenciamento de histórico (buffer de HMVP) de acordo com uma modalidade do presente relatório descritivo.
[035] A Figura 14 ilustra um método de gerenciamento de buffer de HMVP de acordo com uma modalidade.
[036] A Figura 15 ilustra um método de gerenciamento de buffer de HMVP de acordo com outra modalidade.
[037] A Figura 16 ilustra um método para inicializar um buffer de HMVP em uma estrutura de ladrilho.
[038] A Figura 17 ilustra um exemplo de um método para inicializar um buffer de HMVP em relação a uma CTU primeiramente ordenada de um ladrilho de acordo com outra modalidade.
[039] A Figura 18 ilustra um exemplo de um método para inicializar um buffer de gerenciamento de HMVP em relação a uma CTU primeiramente ordenada de uma linha de CTU em cada ladrilho de acordo com ainda outra modalidade.
[040] A Figura 19 ilustra um exemplo de uma estrutura em que os ladrilhos e fatias coexistem.
[041] A Figura 20 ilustra um exemplo de um método para inicializar um buffer de HMVP em relação a uma CTU primeiramente ordenada dentro de cada ladrilho.
[042] A Figura 21 ilustra um exemplo de um método para inicializar um buffer de HMVP em relação a cada fatia dentro de um ladrilho.
[043] A Figura 22 ilustra um exemplo de inicialização de um buffer de HMVP em relação a uma CTU primeiramente ordenada de um primeiro ladrilho dentro de um grupo de ladrilhos.
[044] A Figura 23 ilustra um exemplo de inicialização de um buffer de HMVP em relação a uma CTU primeiramente ordenada de cada ladrilho dentro de um grupo de ladrilhos.
[045] A Figura 24 ilustra um exemplo de inicialização de um buffer de HMVP em relação a uma linha de CTU de cada ladrilho dentro de um grupo de ladrilhos.
[046] A Figura 25 ilustra uma estrutura de camada de uma imagem/vídeo codificado.
[047] As Figuras 26 e 27 ilustram um exemplo de um método de codificação de vídeo/imagem incluindo um método de interpredição e componentes relacionados de acordo com uma modalidade (ou modalidades) do presente relatório descritivo.
[048] As Figuras 28 e 29 ilustram um exemplo de um método de decodificação de imagem incluindo um método de interpredição e componentes relacionados de acordo com uma modalidade do presente relatório descritivo.
[049] A Figura 30 ilustra um exemplo de um sistema de streaming de conteúdo ao qual as modalidades reveladas no presente relatório descritivo podem ser aplicadas.
DESCRIÇÃO DE MODALIDADES EXEMPLIFICADORAS
[050] Este documento se refere à codificação de vídeo/imagem. Por exemplo, o método/modalidade revelado neste 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 neste 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), no padrão de codificação de áudio e vídeo de 2 a geração (AVS2) ou no padrão de codificação de vídeo/imagem de próxima geração (por exemplo, H.267 ou H.268, etc.).
[051] Este documento apresenta várias modalidades de codificação de vídeo/imagem, e as modalidades podem ser realizadas em combinação umas com as outras, exceto onde mencionado em contrário.
[052] O método apresentado neste documento pode ser modificado de várias formas, e exemplos específicos do mesmo serão descritos e ilustrados nos desenhos. Os termos usados na seguinte descrição são usados meramente para descrever uma modalidade específica, porém não se destinam a limitar a ideia técnica do método apresentado neste 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" se destinam a indicar que existem recursos, números, etapas, operações, elementos, componentes ou combinações dos mesmos usados na descrição a seguir e, dessa forma, deve ser entendido que a possibilidade de existência ou adição de um ou mais recursos, números, etapas, operações, elementos, componentes diferentes ou combinações dos mesmos não é excluída.
[053] Entretanto, as respectivas estruturas nos desenhos do presente relatório descritivo são fornecidas independentemente umas das outras por uma questão de conveniência de descrever diferentes funções características, o que, no entanto, não indica que cada estrutura deve ser implementada por hardware separado ou software separado. Por exemplo, cada estrutura pode ser implementada 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.
[054] No que se segue, com referência aos desenhos anexos, as modalidades do presente relatório descritivo serão descritas em mais detalhes. A seguir, os mesmos símbolos de referência são usados para os mesmos elementos nos desenhos, e as descrições repetidas dos mesmos elementos serão omitidas.
[055] A Figura 1 ilustra um exemplo de um sistema de codificação de vídeo/imagem ao qual as modalidades do presente relatório descritivo podem ser aplicadas.
[056] Com referência à Figura 1, um sistema de codificação de vídeo/imagem pode incluir um primeiro aparelho (dispositivo de origem) e um segundo aparelho (dispositivo de recepção). O dispositivo de origem pode transmitir informações ou dados de vídeo/imagem codificados ao dispositivo de recepção através de um meio de armazenamento digital ou rede sob a forma de um arquivo ou streaming.
[057] O dispositivo de origem pode incluir uma fonte de vídeo, um aparelho de codificação e um transmissor. O dispositivo de recepção pode incluir um receptor, um aparelho de decodificação e um renderizador. O aparelho de codificação pode ser chamado de um aparelho de codificação de vídeo/imagem, e o aparelho de decodificação pode ser chamado de um aparelho de decodificação de vídeo/imagem. O transmissor pode estar incluído no aparelho de codificação. O receptor pode estar 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.
[058] A fonte de vídeo pode adquirir vídeo/imagem através de um processo para capturar, sintetizar ou gerar o vídeo/imagem. A fonte de vídeo pode incluir um dispositivo de captura de vídeo/imagem e/ou um dispositivo de geração de vídeo/imagem. O dispositivo de captura de vídeo/imagem pode incluir, por exemplo, uma ou mais câmeras, arquivos de vídeo/imagem incluindo vídeo/imagens anteriormente capturados, e similares. O dispositivo de geração de vídeo/imagem pode incluir, por exemplo, computadores, tablets e smartphones, e pode gerar (eletronicamente) vídeo/imagens. Por exemplo, um vídeo/imagem virtual pode ser gerado através de um computador ou similares. Nesse caso, o processo de captura de vídeo/imagem pode ser substituído por um processo de geração de dados relacionados.
[059] 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, transformada e quantização para eficiência de compactação e codificação. Os dados codificados (informações de vídeo/imagem codificadas) podem ser emitidos sob a forma de um fluxo de bits.
[060] O transmissor pode transmitir as informações ou dados de imagem/imagem codificados sob a forma de um fluxo de bits ao receptor do dispositivo de recepção através de um meio de armazenamento digital ou uma rede sob a forma de um arquivo ou streaming. O meio de armazenamento digital pode incluir vários meios de armazenamento como USB, SD, CD, DVD, Blu-ray, HDD, SSD, e similares. O transmissor pode incluir um elemento para gerar um arquivo de mídia através de um formato de arquivo predeterminado e pode incluir um elemento para transmissão através de uma rede de difusão/comunicação. O receptor pode receber/extrair o fluxo de bits e transmitir o fluxo de bits recebido ao aparelho de decodificação.
[061] O aparelho de decodificação pode decodificar o vídeo/imagem realizando uma série de procedimentos como desquantização, transformada inversa e predição correspondente à operação do aparelho de codificação.
[062] O renderizador pode renderizar o vídeo/imagem decodificado. O vídeo/imagem renderizado pode ser exibido através da tela.
[063] Nesse documento, um vídeo pode se referir a uma série de imagens ao longo do tempo. Uma gravura se refere, em geral, à unidade que representa uma imagem em um período específico, e uma fatia/ladrilho se refere à unidade que constitui a gravura em termos de codificação. Uma fatia/ladrilho pode incluir uma ou mais unidades de árvore de codificação (CTUs). Uma gravura pode consistir em uma ou mais fatias/ladrilhos.
Uma gravura pode consistir em uma ou mais grupos de ladrilhos.
Um grupo de ladrilhos pode incluir um ou mais ladrilhos.
Um tijolo (brick)
pode representar uma região retangular de linhas de CTU dentro de um ladrilho em uma gravura.
Um ladrilho pode ser particionado em múltiplos tijolos, cada um dos quais consiste em uma ou mais linhas de CTU dentro do ladrilho.
Um ladrilho que não é particionado em múltiplos tijolos também pode ser chamado de um tijolo.
Uma varredura de tijolo é uma ordenação sequencial específica de CTUs que particionam uma gravura em que as CTUs estão ordenadas consecutivamente na varredura raster de CTU em um tijolo, os tijolos dentro de um ladrilho são ordenados consecutivamente em uma varredura raster dos tijolos do ladrilho, e os ladrilhos em uma gravura são ordenados consecutivamente em uma varredura raster dos ladrilhos da gravura.
Um ladrilho é uma região retangular de CTUs dentro de uma coluna de ladrilho específica e uma linha de ladrilho específica em uma gravura.
A coluna de ladrilho é uma região retangular de CTUs que tem uma altura igual à altura da gravura e uma largura especificada por elementos de sintaxe no conjunto de parâmetro de gravura.
A linha de ladrilho é uma região retangular de CTUs que tem uma altura especificada por elementos de sintaxe no conjunto de parâmetros de gravura e uma largura igual à largura da gravura.
Uma varredura de ladrilho é uma ordenação sequencial específica de CTUs que particionam uma gravura em que as CTUs estão ordenadas consecutivamente na varredura raster de CTU em um ladrilho, enquanto os ladrilhos de uma gravura são ordenados consecutivamente em uma varredura raster dos ladrilhos da gravura.
Uma fatia inclui um número inteiro de tijolos de uma gravura que pode estar exclusivamente contido em uma única unidade de NAL.
Uma fatia pode consistir em vários ladrilhos completos ou apenas uma sequência consecutiva de tijolos completos de um ladrilho.
Neste documento, um grupo de ladrilhos e uma fatia podem ser usados de forma intercambiável.
Por exemplo, neste documento, um grupo de ladrilhos/cabeçalho de grupo de ladrilhos pode também ser chamado de uma fatia/cabeçalho de fatia.
[064] Um pixel ou um pel pode significar a menor unidade que constitui uma gravura (ou imagem). Também, ‘amostra’ pode ser usada como um termo correspondente a um pixel. Uma amostra pode, em geral, representar um pixel ou um valor de um pixel, e pode representar apenas um pixel/valor de pixel de um componente luma ou apenas um pixel/valor de pixel de um componente croma.
[065] Uma unidade pode representar uma unidade básica de processamento de imagens. A unidade pode incluir pelo menos uma dentre uma região específica da gravura e informações relacionadas à região. Uma unidade pode incluir um bloco luma e dois blocos croma (por exemplo, cb, cr). A unidade pode ser usada de forma intercambiável com termos como bloco ou área em alguns casos. Em um caso geral, um bloco M×N pode incluir amostras (ou matrizes de amostras) ou um conjunto (ou matriz) de coeficientes de transformada de M colunas e N linhas.
[066] Neste documento, o termo “/” “e“, deve ser interpretado para indicar “e/ou”. Por exemplo, a expressão “A/B” pode significar “A e/ou B”. Ademais, “A, B” pode significar “A e/ou B”. Ademais, “A/B/C” pode significar “pelo menos um dentre A, B e/ou C”. Também, “A/B/C” pode significar “pelo menos um dentre A, B e/ou C”.
[067] Ademais, 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) tanto A como B. Em outras palavras, o termo “ou” neste documento deve ser interpretado para indicar “adicional ou alternativamente”.
[068] A Figura 2 ilustra uma estrutura de um aparelho de codificação de vídeo/imagem ao qual as 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.
[069] 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 de entropia 240, um somador 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 adicionalmente um subtrator 231. O somador 250 pode ser chamado de um reconstrutor ou um gerador de bloco reconstruído. O particionador de imagem 210, o preditor 220, o processador residual 230, o codificador de entropia 240, o somador 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 decodificado (DPB) ou pode ser configurada por um meio de armazenamento digital.
O componente de hardware pode incluir adicionalmente a memória 270 como um componente interno/externo.
[070] O particionador de imagem 210 pode particionar uma imagem de entrada (ou uma gravura ou um quadro) inserida no aparelho de codificação 200 em um ou mais processadores. Por exemplo, o processador pode ser chamado de uma unidade de codificação (CU). Nesse caso, a unidade de codificação pode ser recursivamente particionada de acordo com uma estrutura de árvore quaternária, árvore binária, árvore ternária (QTBTTT) de uma unidade de árvore de codificação (CTU) ou uma grande unidade de codificação (LCU). Por exemplo, uma unidade de codificação pode ser particionada em uma pluralidade de unidades de codificação de uma profundidade maior com base em uma estrutura de árvore quaternária, uma estrutura de árvore binária e/ou uma estrutura ternária. Nesse caso, por exemplo, a estrutura de árvore quaternária pode ser aplicada primeiro e a estrutura de árvore binária e/ou estrutura ternária pode ser aplicada posteriormente. Alternativamente, a estrutura de árvore binária pode ser aplicada primeiro. O procedimento de codificação de acordo com este documento pode ser realizado com base na unidade de codificação final que não é mais particionada. Nesse caso, a grande unidade de codificação pode ser usada como a unidade de codificação final com base na eficiência de codificação de acordo com características de imagem, ou se necessário, a unidade de codificação pode ser recursivamente particionada em unidades de codificação de maior profundidade e uma unidade de codificação que tem um tamanho ideal pode ser usada 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 adicionalmente uma unidade de predição (PU) ou uma unidade de transformação (TU). Nesse caso, a unidade de predição e a unidade de transformação podem ser divididas a partir da unidade de codificação final supracitada. 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 transformada e/ou uma unidade para derivar um sinal residual do coeficiente de transformação.
[071] A unidade pode ser usada de forma intercambiável com termos como bloco ou área em alguns casos. Em um caso geral, um bloco M×N pode representar um conjunto de amostras de coeficientes de transformada composto de M colunas e N linhas. Uma amostra pode, em geral, representar um pixel ou um valor de um pixel, pode representar apenas um pixel/valor de pixel de um componente luma ou representar apenas um pixel/valor de 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.
[072] No aparelho de codificação 200, um sinal de predição (bloco previsto, matriz de amostra de predição) emitido do interpreditor 221 ou o intrapreditor 222 é subtraído 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 ao transformador 232. Nesse caso, conforme mostrado, uma unidade para subtrair um sinal de predição (bloco previsto, matriz de amostra de predição) a partir do sinal de imagem de entrada (bloco original, matriz de amostra original) no codificador 200 pode ser chamada de um subtrator 231. O preditor pode realizar a predição e um bloco que será processado (mais adiante neste documento, chamado de um bloco atual) e gerar um bloco previsto incluindo amostras de predição para o bloco atual. O preditor pode determinar se a 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 geradas ao codificador de entropia
240. As informações na predição podem ser codificadas no codificador de entropia 240 e emitidas sob a forma de um fluxo de bits.
[073] O intrapreditor 222 pode prever o bloco atual referindo-se às amostras na gravura atual. As amostras referidas podem estar situadas na vizinhança do bloco atual ou podem estar situadas separadas de acordo com o modo de predição. Na intrapredição, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O modo não direcional pode incluir, por exemplo, um modo DC e um modo plano. O modo direcional pode incluir, por exemplo, 33 modos de predição direcionais ou 65 modos de predição direcionais de acordo com o grau de detalhes da direção de predição. Entretanto, esse é meramente um exemplo, mais ou menos modos de predição direcionais podem ser usados dependendo de uma congravura. 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.
[074] O interpreditor 221 pode derivar um bloco previsto 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, para reduzir a quantidade de informações de movimento transmitidas no modo de interpredição, as informações de movimento podem ser previstas 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 adicionalmente as informações de direção de interpredição (predição L0, predição L1, Bi-predição, 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 um bloco de referência colocalizado, uma CU colocalizada (colCU), e similares, e a gravura de referência incluindo o bloco vizinho temporal pode ser chamada de uma gravura colocalizada (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 salto 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 não pode ser transmitido. No caso do modo de vetor de movimento predição (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 de vetor de movimento.
[075] 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 prever um bloco, como também aplicar simultaneamente tanto intrapredição como interpredição. Isto pode ser chamado de interpredição e intra combinada (CIIP). Além disso, o preditor pode ser baseado em um modo de predição de cópia de bloco intra (IBC) ou modo de paleta para a predição de um bloco. O modo de predição de IBC ou modo de paleta pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou similares, por exemplo, codificação de conteúdo de tela (SCC). A IBC basicamente realiza a predição na gravura atual, porém pode ser realizada de modo similar à interpredição pelo fato de que um bloco de referência é derivado na gravura atual. Ou seja, a IBC pode usar pelo menos uma das técnicas de interpredição descritas neste documento. O modo de paleta pode ser considerado como um exemplo de codificação intra ou intrapredição. Quando o modo de paleta é aplicado, um valor de amostra dentro de uma gravura pode ser sinalizado com base nas informações na tabela de paleta e no índice de paleta.
[076] 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 transformada pela aplicação de uma técnica de transformada ao sinal residual. Por exemplo, a técnica de transformada pode incluir pelo menos uma dentre uma transformada discreta de cosseno (DCT), uma transformada discreta de seno (DST), uma transformada baseada em gráfico (GBT), ou uma transformada condicionalmente não linear (CNT). Aqui, a GBT significa transformada obtida a partir de um gráfico quando as informações de relação entre os pixels são representadas pelo gráfico. A CNT se refere à transformada gerada com base em um sinal de predição gerado usando todos os pixels anteriormente reconstruídos. 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.
[077] O quantizador 233 pode quantizar os coeficientes de transformada e transmitir os mesmos ao codificador de entropia 240 e o codificador de entropia 240 pode codificar o sinal quantizado (informações sobre os coeficientes de transformada quantizados) e emitir um fluxo de bits. As informações sobre os coeficientes de transformada quantizados podem ser chamadas de informações residuais. O quantizador 233 pode rearranjar os coeficientes de transformada quantizados tipo bloco em uma forma de vetor unidimensional com base em uma ordem de varredura de coeficiente e gerar informações sobre os coeficientes de transformada quantizados com base nos coeficientes de transformada quantizados na forma de vetor unidimensional. Informações sobre os coeficientes de transformada podem ser geradas. O codificador de entropia 240 pode realizar vários métodos de codificação como, por exemplo, Golomb exponencial, codificação de comprimento variável adaptável ao contexto (CAVLC), codificação aritmética binária adaptável ao contexto (CABAC) e similares. O codificador de entropia 240 pode codificar as informações necessárias para a reconstrução de vídeo/imagem em vez de coeficientes de transformada quantizados (por exemplo, valores de elementos de sintaxe, etc.) em conjunto 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) sob a forma de um fluxo de bits. As informações de vídeo/imagem podem incluir adicionalmente 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 adicionalmente informações de restrição. Nesse documento, as informações e/ou elementos de sintaxe transmitidas/sinalizadas do aparelho de codificação ao aparelho de decodificação podem estar incluídas 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ídas no fluxo de bits. O fluxo de bits pode ser transmitido através de uma rede ou pode ser armazenado em um meio de armazenamento digital. A rede pode incluir uma rede de difusã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 similares. Um transmissor (não mostrado) que transmite um sinal emitido do codificador de entropia 240 e/ou uma unidade de armazenamento (não mostrada) que armazena o sinal pode estar incluído como elemento interno/externo do aparelho de codificação 200, e alternativamente, o transmissor pode estar incluído no codificador de entropia
240.
[078] Os coeficientes de transformada quantizados emitidos 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 pela aplicação de desquantização e transformada inversa aos coeficientes de transformada quantizados através do desquantizador 234 e do transformador inverso 235. O somador 250 soma o sinal residual reconstruído ao sinal de predição emitido 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 que será processado, como um caso em que o modo de salto é aplicado, o bloco previsto pode ser usado como o bloco reconstruído. O somador 250 pode ser chamado de um reconstrutor ou um gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para intrapredição de um próximo bloco que será processado na gravura atual e pode ser usado para interpredição de uma próxima gravura através de filtragem, conforme descrito a seguir.
[079] No entanto, o mapeamento luma com escalonamento croma (LMCS) pode ser aplicado durante a codificação e/ou reconstrução de gravura.
[080] O filtro 260 pode aprimorar a qualidade de imagem subjetiva/objetiva pela aplicação de filtragem ao sinal reconstruído. Por exemplo, o filtro 260 pode gerar uma gravura reconstruída modificada pela aplicação de 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 deblocagem, um deslocamento adaptável à amostra, um filtro de loop adaptável, um filtro bilateral, e similares. O filtro 260 pode gerar várias informações relacionadas à filtragem e transmitir as informações geradas ao codificador de entropia 240 como descrito posteriormente na descrição de cada método de filtragem. As informações relacionadas à filtragem podem ser codificadas pelo codificador de entropia 240 e emitidas sob a forma de um fluxo de bits.
[081] A gravura reconstruída modificada transmitida à memória 270 pode ser usada como a gravura de referência no interpreditor 221. Quando a interpredição é 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 aprimorada.
[082] 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ídas. As informações de movimento armazenadas podem ser transmitidas ao interpreditor 221 e usadas como as informações de movimento do bloco vizinho espacial ou as informações de movimento do bloco vizinho temporal. A memória 270 pode armazenar as amostras reconstruídas de blocos reconstruídos na gravura atual e pode transferir as amostras reconstruídas para o intrapreditor 222.
[083] A Figura 3 ilustra uma estrutura de um aparelho de decodificação de vídeo/imagem ao qual as modalidades do presente relatório descritivo podem ser aplicadas.
[084] Com referência à Figura 3, o aparelho de decodificação 300 pode incluir um decodificador de entropia 310, um processador residual 320, um preditor 330, um somador 340, um filtro 350 e 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 de entropia 310, o processador residual 320, o preditor 330, o somador 340 e o filtro 350 podem ser configurados por um componente de hardware (por exemplo, um chipset codificador ou processador) de acordo com uma modalidade. Além disso, a memória 360 pode incluir um buffer de gravura decodificado (DPB) ou pode ser configurada por um meio de armazenamento digital. O componente de hardware pode incluir adicionalmente a memória 360 como um componente interno/externo.
[085] Quando um fluxo de bits incluindo informações de vídeo/imagem for inserido, o aparelho de decodificação 300 pode reconstruir uma imagem correspondente a um processo em que 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 do fluxo de bits. O aparelho de decodificação 300 pode realizar a decodificação usando um processador aplicado no aparelho de codificação. Dessa forma, o processador de decodificação pode ser uma unidade de codificação, por exemplo, e a unidade de codificação pode ser particionada de acordo com uma estrutura de árvore quaternária, estrutura de árvore binária e/ou estrutura de árvore ternária da unidade de árvore de codificação ou da grande unidade de codificação. Uma ou mais unidades de transformada podem ser derivadas da unidade de codificação. O sinal de imagem reconstruída decodificado e emitido através do aparelho de decodificação 300 pode ser reproduzido através de um aparelho de reprodução
[086] O aparelho de decodificação 300 pode receber um sinal emitido do aparelho de codificação da Figura 2 sob a forma de um fluxo de bits, e o sinal recebido pode ser decodificado através do decodificador de entropia 310. Por exemplo, o decodificador de entropia 310 pode analisar o fluxo de bits para derivar informações (por exemplo, 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 adicionalmente 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 adicionalmente informações de restrição. O aparelho de decodificação pode decodificar adicionalmente a gravura com base nas informações no conjunto de parâmetros e/ou nas informações de restrição gerais. As informações sinalizadas/recebidas e/ou elementos de sintaxe descritos posteriormente neste documento podem ser decodificadas para decodificar o procedimento de decodificação e obtidas do fluxo de bits. Por exemplo, o decodificador de entropia 310 decodifica as informações no fluxo de bits com base em um método de codificação como codificação de Golomb exponencial, CAVLC ou CABAC, e elementos de sintaxe de saída necessários para reconstrução de imagem e valores quantizados de coeficientes de transformada para resíduo. Mais especificamente, o método de decodificação de entropia CABAC pode receber um bin correspondente a cada elemento de sintaxe no fluxo de bits, determinar um modelo de contexto usando informações de elemento de sintaxe de destino 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-se uma probabilidade de ocorrência de um bin de acordo com o modelo de contexto determinado, e gerar um símbolo correspondente ao valor de cada elemento de sintaxe. Nesse caso, o método de decodificação de entropia 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 de entropia 310 podem ser fornecidas ao preditor (o interpreditor 332 e o intrapreditor 331), e o valor residual em que a decodificação de entropia foi realizada no decodificador de entropia 310, ou seja, os coeficientes de transformada quantizados e informações de parâmetro relacionadas, pode ser inserido 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 filtragem entre as informações decodificadas pelo decodificador de entropia 310 podem ser fornecidas ao filtro 350. Entretanto, um receptor (não mostrado) para receber um sinal emitido do aparelho de codificação pode ser adicionalmente configurado como um elemento interno/externo do aparelho de decodificação 300, ou o receptor pode ser um componente do decodificador de entropia 310. Entretanto, o aparelho de decodificação de acordo com esse documento pode ser chamado de um aparelho de decodificação de vídeo/imagem/gravura, e o aparelho de decodificação pode ser classificado em um decodificador de informações (decodificador de informações de vídeo/imagem/gravura) e um decodificador de amostra (decodificador de amostra de vídeo/imagem/gravura). O decodificador de informações pode incluir o decodificador de entropia 310, e o decodificador de amostra pode incluir pelo menos um dentre o desquantizador 321, o transformador inverso 322, o somador 340, o filtro 350, a memória 360, o interpreditor 332 e o intrapreditor 331.
[087] O desquantizador 321 pode desquantizar os coeficientes de transformada quantizados e emitir os coeficientes de transformada. O desquantizador 321 pode rearranjar os coeficientes de transformada quantizados sob a forma de uma forma de bloco bidimensional. Nesse caso, o rearranjo pode ser realizado com base na ordem de varredura de coeficiente realizada no aparelho de codificação. O desquantizador 321 pode realizar a desquantização nos coeficientes de transformada quantizados usando um parâmetro de quantização (por exemplo, informações de tamanho de etapa de quantização) e obter coeficientes de transformada.
[088] O transformador inverso 322 transforma inversamente os coeficientes de transformada para obter um sinal residual (bloco residual, matriz de amostra residual).
[089] O preditor pode realizar a predição no bloco atual e gerar um bloco previsto incluindo amostras de predição para o bloco atual. O preditor pode determinar se a intrapredição ou interpredição é aplicada ao bloco atual com base nas informações na predição emitida do decodificador de entropia 310 e pode determinar um modo de intrapredição/inter específico.
[090] 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 prever um bloco, como também aplicar simultaneamente intrapredição e interpredição. Isto pode ser chamado de interpredição e intra combinada (CIIP). Além disso, o preditor pode ser baseado em um modo de predição de cópia de bloco intra (IBC) ou modo de paleta para a predição de um bloco. O modo de predição de IBC ou modo de paleta pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou similares, por exemplo, codificação de conteúdo de tela (SCC). A IBC basicamente realiza a predição na gravura atual, porém pode ser realizada de modo similar à interpredição pelo fato de que um bloco de referência é derivado na gravura atual. Ou seja, a IBC pode usar pelo menos uma das técnicas de interpredição descritas neste documento. O modo de paleta pode ser considerado como um exemplo de codificação intra ou intrapredição. Quando o modo de paleta é aplicado, um valor de amostra dentro de uma gravura pode ser sinalizado com base nas informações na tabela de paleta e no índice de paleta.
[091] O intrapreditor 331 pode prever o bloco atual referindo-se às amostras na gravura atual. As amostras referidas podem estar situadas na vizinhança do bloco atual ou podem estar situadas 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.
[092] O interpreditor 332 pode derivar um bloco previsto 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. Nesse caso, para reduzir a quantidade de informações de movimento transmitidas no modo de interpredição, as informações de movimento podem ser previstas 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 adicionalmente as informações de direção de interpredição (predição L0, predição L1, predição Bi, etc.). No caso de f 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 nos 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 indicando um modo de interpredição para o bloco atual.
[093] O somador 340 pode gerar um sinal reconstruído (gravura reconstruída, bloco reconstruído, matriz de amostra reconstruída) pela soma do sinal residual obtido ao sinal de predição (bloco previsto, matriz de amostra prevista) emitido do preditor (incluindo o interpreditor 332 e/ou o intrapreditor 331). Se não houver resíduo para o bloco que será processado, como quando o modo de salto é aplicado, o bloco previsto pode ser usado como o bloco reconstruído.
[094] O somador 340 pode ser chamado de reconstrutor ou um gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para intrapredição de um próximo bloco que será processado na gravura atual, pode ser emitido através da filtragem, conforme descrito a seguir, ou pode ser usado para interpredição de uma próxima gravura.
[095] No entanto, o mapeamento luma com escalonamento croma (LMCS) pode ser aplicado no processo de decodificação de gravura.
[096] O filtro 350 pode aprimorar a qualidade de imagem subjetiva/objetiva pela aplicação de filtragem ao sinal reconstruído. Por exemplo, o filtro 350 pode gerar uma gravura reconstruída modificada pela aplicação de 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 deblocagem, um deslocamento adaptável à amostra, um filtro de loop adaptável, um filtro bilateral, e similares.
[097] A gravura reconstruída (modificada) armazenada no DPB da memória 360 pode ser usada como uma gravura de referência no interpreditor 332. A memória 360 pode armazenar as informações de movimento do bloco a partir do qual as informações de movimento na gravura atual são derivadas (ou decodificadas) e/ou as informações de movimento dos blocos na gravura que já foram reconstruídas. As informações de movimento armazenadas podem ser transmitidas ao interpreditor 260 para serem usadas 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 as amostras reconstruídas de blocos reconstruídos na gravura atual e transferir as amostras reconstruídas para o intrapreditor 331.
[098] Na presente revelação, as modalidades descritas no filtro 260, o interpreditor 221 e o intrapreditor 222 do aparelho de codificação 200 podem ser iguais ou respectivamente aplicados para corresponderem ao filtro 350, ao interpreditor 332 e ao intrapreditor 331 do aparelho de decodificação 300. O mesmo também pode se aplicar à unidade 332 e ao intrapreditor 331.
[099] Conforme descrito acima, ao realizar a codificação de vídeo, a predição é realizada para aumentar a eficiência de compactação. Com isso, um bloco de predição incluindo amostras de predição em relação a um bloco atual, que é um bloco de destino de codificação, pode ser gerado. Aqui, o bloco de predição inclui amostras de predição no domínio espacial (ou domínio de pixel). O bloco de predição é derivado tanto do aparelho de codificação como de decodificação, em que o aparelho de codificação pode aumentar a eficiência de codificação de imagem sinalizando informações sobre resíduos (informações residuais) entre um bloco original e o bloco de predição, em vez de valores de amostra original do bloco original, ao aparelho de decodificação. 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 combinando-se o bloco residual e o bloco de predição, e gerar uma gravura reconstruída incluindo blocos reconstruídos.
[0100] As informações residuais podem ser geradas através de uma transformada e processos de quantização. Por exemplo, o aparelho de codificação pode derivar um bloco residual entre o bloco original e o bloco de predição, derivar coeficientes de transformada realizando o processo de transformada para amostras residuais (matriz de amostra residual) incluídas no bloco residual, derivar coeficientes de transformada quantizados realizando o processo de quantização nos coeficientes de transformada e informações residuais relacionadas a sinal para o aparelho de decodificação (através de um fluxo de bits). Aqui, as informações residuais podem incluir informações sobre os valores dos coeficientes de transformada quantizados, informações de posição, técnica de transformada, kernel de transformada e parâmetros de quantização. O aparelho de decodificação pode realizar um processo de quantização inversa/transformada inversa com base nas informações residuais e derivar amostras residuais (ou bloco residual). O aparelho de decodificação pode gerar uma gravura reconstruída com base em um bloco de predição e no bloco residual. Também, o aparelho de codificação pode derivar um bloco residual realizando-se a quantização inversa/transformada inversa nos coeficientes de transformada quantizados para obter uma referência para interpredição de uma gravura subsequente e gerar uma gravura reconstruída usando o bloco reconstruído derivado.
[0101] Se a interpredição for aplicada, a unidade de predição do aparelho de codificação/decodificação pode derivar amostras de predição realizando-se a interpredição em unidades de blocos. A interpredição pode ser uma predição derivada de maneira que é dependente de elemento de dados (por exemplo, valores de amostra ou informações de movimento) de gravura(ou gravuras) em vez da gravura atual. Se a interpredição for aplicada ao bloco atual, um bloco de predição (matriz de amostra de predição) em relação ao bloco atual pode ser derivado 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 indicada por um índice de gravura de referência.
Nesse momento, para reduzir a quantidade de informações de movimento transmitidas no modo de interpredição, as informações de movimento do bloco atual podem ser previstas em unidades de blocos, sub-blocos, ou amostras com base na correlação de informações de movimento entre um 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 adicionalmente as informações de tipo de interpredição (predição L0, predição L1 e predição Bi). Se a interpredição for aplicada, os blocos vizinhos podem incluir blocos vizinhos espaciais existentes dentro da gravura atual e blocos vizinhos temporais existentes nas gravuras de referência.
A gravura de referência contendo o bloco de referência pode ou não ser igual à gravura de referência contendo o bloco vizinho temporal.
O bloco vizinho temporal pode ser chamado de um bloco de referência colocalizado ou CU colocalizada (colCU), e uma gravura de referência contendo o bloco vizinho temporal pode ser chamada de uma gravura colocalizada (colPic). Por exemplo, uma lista de candidatos de informações de movimento pode ser construída com base nos blocos vizinhos do bloco atual, e um sinalizador ou informações de índice indicando qual candidato é selecionado (usado) para derivar um vetor de movimento e/ou um índice de gravura de referência do bloco atual pode ser sinalizado.
A interpredição pode realizada com base em vários modos de predição;
por exemplo, no caso de um modo de salto e um nó de mesclagem (normal), as informações de movimento do bloco atual podem ser iguais às informações de movimento de um bloco vizinho selecionado.
No caso de modo de salto, diferente do caso de modo de mesclagem, um sinal residual não pode ser transmitido.
No caso de modo de vetor de movimento predição (MVP), um vetor de movimento de um bloco vizinho selecionado é usado como um vetor de movimento predição, e uma diferença de vetor de movimento pode ser sinalizada. Nesse caso, um vetor de movimento do bloco atual pode ser derivado usando uma soma do preditor de vetor de movimento e da diferença de vetor de movimento.
[0102] Um processo de codificação de vídeo/imagem com base na interpredição pode incluir brevemente as seguintes etapas, conforme descrito a seguir.
[0103] A Figura 4 ilustra um exemplo de um método de codificação de vídeo/imagem baseado em interpredição.
[0104] O aparelho de codificação realiza a interpredição em um bloco atual S400. O aparelho de codificação pode derivar o modo de interpredição e as informações de movimento do bloco atual e gerar amostras de predição do bloco atual. Aqui, os procedimentos para determinar o modo de interpredição, derivar informações de movimento e gerar amostras de predição podem ser realizados simultaneamente ou um procedimento pode preceder os outros. Por exemplo, a unidade de interpredição do aparelho de codificação pode incluir uma unidade de determinação de modo de predição, uma unidade de derivação de informações de movimento e uma unidade de derivação de amostra de predição, em que a unidade de derivação de modo de predição pode determinar um modo de predição em relação ao bloco atual, a unidade de derivação de informações de movimento pode derivar informações de movimento do bloco atual e a unidade de derivação de amostra de predição pode derivar amostras de predição do bloco atual. Por exemplo, a unidade de interpredição do aparelho de codificação pode pesquisar uma região predeterminada (região de pesquisa) de gravuras de referência para um bloco similar ao bloco atual através de estimativa de movimento e derivar um bloco de referência cuja diferença do bloco atual é um mínimo ou menos do que um limite predeterminado. Com base no bloco de referência derivado, um índice de gravura de referência indicando uma gravura de referência em que o bloco de referência está contido, 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 em relação aos vários modos de predição e determinar o modo de predição ideal para o bloco atual.
[0105] Por exemplo, se o modo de salto ou o modo de mesclagem for aplicado ao bloco atual, o aparelho de codificação pode construir uma lista de candidatos de mesclagem que serão descritos posteriormente e entre os blocos de referência indicados pelos candidatos de mesclagem que pertencem à lista de candidatos de mesclagem, derivar um bloco de referência, cuja diferença do bloco atual é um mínimo ou menos do que um limite predeterminado. Nesse caso, um candidato de mesclagem associado ao bloco de referência derivado é selecionado, e as informações de índice de mesclagem indicando o candidato de mesclagem selecionado são geradas e sinalizadas ao aparelho de decodificação. Com o uso das informações de movimento do candidato de mesclagem selecionado, as informações de movimento do bloco atual podem ser derivadas.
[0106] Como outro exemplo, se o modo de (A)MVP for aplicado ao bloco atual, o aparelho de codificação pode construir uma lista de candidatos de (A)MVP que serão descritos posteriormente e usar um vetor de movimento de um candidato de MVP selecionado dentre candidato de preditor de vetor de movimento (MVP) que pertencem à lista de candidatos de (A)MVP como o MVP do bloco atual. Nesse caso, por exemplo, um vetor de movimento indicando um bloco de referência derivado da estimativa de movimento pode ser usado como um vetor de movimento do bloco atual, e o candidato de MVP que tem um vetor de movimento que exibe a menor diferença do vetor de movimento do bloco atual entre os candidatos de MVP pode se tornar o candidato de MVP selecionado. Uma diferença de vetor de movimento (MVD) que é uma diferença obtida pela subtração do MVP do vetor de movimento do bloco atual pode ser derivada. Nesse caso, as informações sobre a MVD podem ser sinalizadas ao aparelho de decodificação. Também, se o modo de (A)MVP for aplicado, o valor do índice de gravura de referência pode ser configurado como imagem de índice de gravura de referência e sinalizado ao aparelho de decodificação.
[0107] 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 através da comparação entre amostras originais do bloco atual e as amostras de predição.
[0108] O aparelho de codificação codifica 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 sob a forma de um fluxo de bits.
As informações de predição são relacionadas ao processo de predição, que inclui informações de modo de predição (por exemplo, sinalizador de salto, sinalizador de mesclagem ou índice de modo) e informações sobre informações de movimento. As informações sobre informações de movimento podem incluir informações de seleção de candidato (por exemplo, índice de mesclagem, sinalizador de MVP ou índice de MVP) que consiste nas informações para derivar um vetor de movimento. Também, as informações sobre informações de movimento podem incluir informações sobre a MVD e/ou informações de índice de gravura de referência. Também, as informações sobre informações de movimento podem incluir informações sobre a possibilidade de a predição L0, predição L1 ou bi-predição ser aplicada. As informações residuais são as informações relacionadas às amostras residuais. As informações residuais podem incluir informações sobre coeficientes de transformada quantizados em relação às amostras residuais.
[0109] O fluxo de bits de saída pode ser armazenado em um meio de armazenamento (digital) e transmitido ao aparelho de decodificação ou transmitido ao aparelho de decodificação através de uma rede.
[0110] Entretanto, conforme descrito acima, o aparelho de codificação pode gerar uma gravura reconstruída (incluindo amostras reconstruídas e blocos reconstruídos) com base nas amostras de referência e nas amostras residuais.
Pretende-se, assim, obter o mesmo resultado de predição do aparelho de codificação realizado no aparelho de decodificação, através do qual a eficiência da codificação pode ser aprimorada. Portanto, o aparelho de codificação pode armazenar a gravura reconstruída (ou amostras reconstruídas ou blocos reconstruídos) em uma memória e usar a gravura reconstruída como uma gravura de referência para interpredição. Conforme descrito acima, um processo de filtragem em loop pode ser adicionalmente aplicado à gravura reconstruída.
[0111] Um processo de decodificação de vídeo/imagem com base na interpredição pode incluir brevemente as seguintes etapas, conforme descrito a seguir.
[0112] A Figura 5 ilustra um exemplo de um método de decodificação de vídeo/imagem baseado em interpredição.
[0113] Com referência à Figura 5, o aparelho de decodificação pode realizar uma operação correspondente à operação realizada pelo aparelho de codificação. O aparelho de decodificação pode realizar a predição em relação a um bloco atual e derivar amostras de predição com base nas informações de predição recebidas.
[0114] Mais especificamente, o aparelho de decodificação pode determinar um modo de predição em relação ao bloco atual com base nas informações de predição recebidas S500. O aparelho de decodificação pode determinar qual modo de interpredição é aplicado ao bloco atual com base nas informações de modo de predição dentro das informações de predição.
[0115] Por exemplo, a possibilidade de o modo de mesclagem ser aplicado ou o modo de (A)MVP ser aplicado ao bloco atual é determinada com base no sinalizador de mesclagem. Ou, um entre vários candidatos de modo de interpredição pode ser selecionado com base no índice de modo. Os candidatos de modo de interpredição podem incluir o modo de salto, modo de mesclagem e/ou modo de (A)MVP, ou vários modos de interpredição que serão descritos posteriormente.
[0116] O aparelho de decodificação deriva informações de movimento do bloco atual com base no modo de interpredição determinado S510. Por exemplo, se o modo de salto ou o modo de mesclagem for aplicado ao bloco atual, o aparelho de decodificação pode construir uma lista de candidatos de mesclagem que será descrita posteriormente e selecionar um candidato de mesclagem entre os candidatos de mesclagem que pertencem à lista de candidatos de mesclagem. A seleção pode ser realizada com base no índice de mesclagem supracitado. Com o uso das informações de movimento do candidato de mesclagem selecionado, as informações de movimento do bloco atual podem ser derivadas. As informações de movimento do candidato de mesclagem selecionado podem ser usadas como as informações de movimento do bloco atual.
[0117] Como outro exemplo, se o modo de (A)MVP for aplicado ao bloco atual, o aparelho de decodificação pode construir uma lista de candidatos de (A)MVP que serão descritos posteriormente e usar um vetor de movimento de um candidato de MVP selecionado dentre candidato de preditor de vetor de movimento (MVP) que pertencem à 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. Nesse caso, com base nas informações sobre a MVD, uma MVD do bloco atual pode ser derivada, e um vetor de movimento do bloco atual pode ser derivado com base no MVP e na MVD do bloco atual.
Também, com base nas informações de índice de gravura de referência, um índice de gravura de referência do bloco atual pode ser derivado. Uma gravura indicada pelo índice de gravura de referência dentro de uma lista de gravura de referência sobre o bloco atual pode ser derivada como uma gravura de referência referenciada para interpredição do bloco atual.
[0118] Entretanto, conforme descrito a seguir, as informações de movimento do bloco atual podem ser derivadas sem construir uma lista de candidatos, e nesse caso, as informações de movimento do bloco atual podem ser derivadas de acordo com o procedimento revelado no modo de predição descrito a seguir. Nesse caso, a construção de uma lista de candidatos, conforme descrito acima, pode ser omitida.
[0119] O aparelho de decodificação pode gerar amostras de predição em relação ao bloco atual com base nas informações de movimento do bloco atual S520. Nesse caso, a gravura de referência pode ser derivada com base no índice de gravura de referência do bloco atual, e as amostras de predição do bloco atual podem ser derivadas usando amostras de um bloco de referência indicadas na gravura de referência pelo vetor de movimento do bloco atual. Nesse caso, conforme descrito a seguir, dependendo das situações, um processo de filtragem de amostra de predição pode ser adicionalmente realizado no total ou em parte das amostras de predição do bloco atual.
[0120] Por exemplo, a unidade de interpredição do aparelho de decodificação pode incluir uma unidade de derivação de modo de predição, uma unidade de derivação de informações de movimento e uma unidade de derivação de amostra de predição; determinar um modo de predição em relação ao bloco atual com base nas informações de modo de predição recebidas da unidade de determinação de modo de predição, derivar informações de movimento do bloco atual (vetor de movimento e/ou índice de gravura de referência) com base nas informações sobre informações de movimento recebidas da unidade de derivação de informações de movimento; e derivar amostras de predição do bloco atual na unidade de derivação de amostra de predição.
[0121] O aparelho de decodificação gera amostras residuais em relação ao bloco atual com base nas informações residuais recebidas S530. O aparelho de decodificação pode gerar amostras reconstruídas em relação ao bloco atual com base nas amostras de predição e as amostras residuais; e gerar uma gravura reconstruída com base nas amostras reconstruídas geradas S540. Conforme descrito acima, um processo de filtragem em loop pode ser adicionalmente aplicado à gravura reconstruída.
[0122] A Figura 6 ilustra um procedimento de interpredição.
[0123] Com referência à Figura 6, conforme descrito acima, o procedimento de interpredição pode incluir determinar um modo de interpredição, derivar informações de movimento de acordo com um modo de predição determinado, e realizar a predição (geração de amostra de predição) com base nas informações de movimento derivadas. O procedimento de interpredição pode ser realizado no aparelho de codificação e decodificação, conforme descrito acima. No presente relatório descritivo, um aparelho de codificação pode incluir o aparelho de codificação e/ou o aparelho de decodificação.
[0124] Com referência à Figura 6, um aparelho de codificação determina um modo de interpredição em relação a um bloco atual S600. Vários modos de interpredição podem ser usados para a predição de um bloco atual em uma gravura.
Por exemplo, vários modos como modo de mesclagem, modo de salto, modo de Predição de Vetor de Movimento (MVP), modo afim, modo de mesclagem de sub- bloco, e modo de Mesclagem com MVD (MMVD) podem ser usados. Como um modo adicional, o modo de Refinamento de Vetor de Movimento de lado de Decodificação (DMVR), modo de Resolução de Vetor de Movimento Adaptável (AMVR), Bi-predição com peso de nível de CU (BCW), ou Fluxo Óptico Bidirecional (BDOF) podem ser adicionalmente usados ou podem ser usados em seu lugar. O modo afim pode também ser chamado de um modo de predição de movimento afim. O modo de MVP pode também ser chamado de um modo de Predição de Vetor de
Movimento Avançada (AMVP). No presente relatório descritivo, um candidato de informações de movimento derivado por parte dos modos pode ser incorporado em um dos candidatos relacionados a informações de movimento de outros modos. Por exemplo, um candidato de HMVP pode ser adicionado como um candidato de mesclagem do modo de mesclagem/salto ou adicionado como um candidato de MVP do modo de MVP. Se o candidato de HMVP for usado como um candidato de informações de movimento do modo de mesclagem ou modo de salto, o candidato de HMVP pode ser chamado de um candidato de mesclagem de HMVP.
[0125] As informações de modo de predição indicando o modo de interpredição do bloco atual podem ser sinalizadas pelo aparelho de codificação ao aparelho de decodificação. As informações de modo de predição podem ser incluídas em um fluxo de bits e recebidas pelo aparelho de decodificação. As informações de modo de predição podem incluir informações de índice indicando um dentre uma pluralidade de modos de candidato. Ou, as informações de modo de predição podem indicar o modo de interpredição através de sinalização em camadas de informações de sinalizador. Nesse caso, as informações de modo de predição podem incluir um ou mais sinalizadores. Por exemplo, a possibilidade de aplicar o modo de salto pode ser indicada através da sinalização de um sinalizador de salto, a possibilidade de aplicar o modo de mesclagem pode ser indicada através da sinalização de um sinalizador de mesclagem se a aplicação do modo de salto não for permitida, ou a aplicação do modo de MVP pode ser indicada ou um sinalizador para delineamento adicional pode ser sinalizado se a aplicação do modo de mesclagem não for permitida. O modo afim pode ser sinalizado como um modo independente ou sinalizado como um modo dependente do modo de mesclagem ou MVP. Por exemplo, o modo afim pode incluir o modo de mesclagem afim e o modo de MVP afim.
[0126] O aparelho de codificação deriva informações de movimento sobre o bloco atual S610. As informações de movimento podem ser derivadas com base no modo de interpredição.
[0127] O aparelho de codificação pode realizar a interpredição usando informações de movimento do bloco atual. O aparelho de codificação pode derivar informações de movimento ideais em relação ao bloco atual através de um procedimento de estimativa de movimento. Por exemplo, o aparelho de codificação pode pesquisar uma região de pesquisa predeterminada dentro de uma gravura de referência para um bloco de referência com uma alta similaridade em unidades fracionárias de pixel usando o bloco original dentro da gravura original em relação ao bloco atual, por meio do qual as informações de movimento podem ser derivadas. A similaridade de um bloco pode ser derivada com base em uma diferença de valores de amostra baseados em fase. Por exemplo, a similaridade de um bloco pode ser derivada com base em uma SAD entre o bloco atual (ou um modelo do bloco atual) e o bloco de referência (ou um modelo do bloco de referência). Nesse caso, as informações de movimento podem ser derivadas com base em um bloco de referência produzindo a menor SAD na região de pesquisa. As informações de movimento derivadas podem ser sinalizadas ao aparelho de decodificação de acordo com vários métodos com base no modo de interpredição.
[0128] O aparelho de codificação realiza a interpredição com base nas informações de movimento em relação ao bloco atual S620. O aparelho de codificação pode derivar uma amostra (ou amostras) de predição em relação ao bloco atual com base nas informações de movimento. O bloco atual incluindo as amostras de predição pode ser chamado de um bloco de predição.
[0129] Entretanto, em relação à interpredição, de acordo com o modo de mesclagem ou AMVP herdado, um vetor de movimento de um bloco espacial ou temporalmente adjacente a um bloco atual foi usado como um candidato de informações de movimento para reduzir a quantidade de informações de movimento.
Por exemplo, os blocos vizinhos usados para derivar candidatos de informações de movimento de um bloco atual incluíam um bloco vizinho no canto inferior esquerdo, um bloco vizinho no lado esquerdo, um bloco vizinho no canto superior direito, um bloco vizinho no lado superior e um bloco vizinho no canto superior esquerdo do bloco atual.
[0130] A Figura 7 ilustra blocos vizinhos espaciais usados para derivar candidatos de informações de movimento no modo de mesclagem ou AMVP herdado.
[0131] Basicamente, o bloco vizinho espacial foi limitado a um bloco que é contíguo a um bloco atual. Esse layout pretende aumentar a possibilidade de implementação de hardware, que leva em consideração o fato de que um problema de hardware como aumento de um buffer de linha ocorre para derivar informações de um bloco separado distante do bloco atual. Entretanto, visto que o uso de informações de movimento de um bloco distante para derivar um candidato de informações de movimento do bloco atual permite configurar vários candidatos, o aprimoramento de desempenho pode ser obtido. Para usar informações de movimento de um bloco distante sem aumentar o buffer de linha, um método de predição de vetor de movimento baseada em histórico (HMVP) pode ser usado. No presente relatório descritivo, o HMVP pode indicar Predição de Vetor de Movimento baseado em Histórico ou Preditor de Vetor de Movimento baseado em Histórico. De acordo com o presente relatório descritivo, a interpredição pode ser realizada com eficiência usando HMVP, e o processamento paralelo pode ser suportado. Por exemplo, as modalidades do presente relatório descritivo propõem vários métodos para gerenciar um buffer de histórico para processamento paralelo, com base nisso o processamento paralelo é suportado. Entretanto, deve ser observado que o suporte de processamento paralelo não indica que o processamento paralelo é necessariamente realizado, porém o aparelho de codificação pode ou não realizar o processamento paralelo em consideração de desempenho de hardware ou tipo de serviço. Por exemplo, se o aparelho de codificação for equipado com um processador multinúcleo, o aparelho de codificação pode processar parte de fatias, tijolos e/ou ladrilhos em paralelo. Entretanto, mesmo que o aparelho de codificação seja equipado com um processador de núcleo único ou multinúcleo, o aparelho de codificação pode realizar processamento sequencial, reduzindo a carga computacional e o uso de memória.
[0132] O candidato de HMVP de acordo com o método de HMVP pode incluir informações de movimento de um bloco anteriormente codificado. Por exemplo, de acordo com uma ordem de codificação de bloco dentro de uma gravura atual, se um bloco anteriormente codificado não estiver adjacente a um bloco atual, as informações de movimento do bloco anteriormente codificado não são consideradas como as informações de movimento do bloco atual. Entretanto, um candidato de HMVP pode ser considerado como um candidato de informações de movimento (por exemplo, um candidato de mesclagem ou um candidato de MVP) do bloco atual sem levar em consideração se o bloco anteriormente codificado está adjacente ao bloco atual. Nesse caso, uma pluralidade de candidatos de HMVP pode ser armazenada em um buffer. Por exemplo, se o modo de mesclagem for aplicado a um bloco atual, um candidato de HMVP (candidato de mesclagem de HMVP) pode ser adicionado a uma lista de candidatos de mesclagem. Nesse caso, o candidato de HMVP pode ser adicionado próximo aos candidatos de mesclagem espaciais e ao candidato de mesclagem temporal incluído na lista de candidatos de mesclagem.
[0133] De acordo com o método de HMVP, as informações de movimento de um bloco anteriormente codificado podem ser armazenadas sob a forma de uma tabela e podem ser usadas como um candidato de informações de movimento (por exemplo, candidato de mesclagem) de um bloco atual. Uma tabela (buffer, lista ou conjunto) incluindo uma pluralidade de candidatos de HMVP pode ser mantida durante o processo de codificação/decodificação. A tabela (buffer, lista ou conjunto) pode ser chamada de uma tabela de HMVP (buffer, lista ou conjunto) ou uma tabela de candidato de HMVP (buffer, lista ou conjunto). De acordo com uma modalidade do presente relatório descritivo, a tabela (buffer, lista ou conjunto) pode ser inicializada se uma nova fatia for encontrada. Ou, de acordo com uma modalidade do presente relatório descritivo, a tabela (buffer, lista ou conjunto) pode ser inicializada se uma nova linha de CTU for encontrada. Se a tabela for inicializada, o número de candidatos de HMVP que pertencem à tabela pode ser definido como 0.
O tamanho da tabela (buffer ou lista) pode ser fixado em um valor específico (por exemplo, 5). Por exemplo, na presença de um bloco codificado inter, 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), lista (HMVP) ou conjunto (HMVP).
[0134] A Figura 8 ilustra um exemplo de um processo de decodificação baseado em candidato de HMVP. Aqui, o processo de decodificação baseado em candidato de HMVP pode incluir um processo de interpredição baseado em candidato de HMVP.
[0135] Com referência à Figura 8, o aparelho de decodificação carrega uma tabela de HMVP incluindo um candidato(s) de HMVP e decodifica um bloco baseado em pelo menos um do(s) candidato(s) de HMVP. Mais especificamente, por exemplo, o aparelho de decodificação pode derivar informações de movimento de um bloco atual com base em pelo menos um do(s) candidato(s) de HMVP e derivar um bloco de predição (incluindo amostras de predição) realizando a interpredição em relação ao bloco atual com base nas informações de movimento. Conforme descrito acima, um bloco reconstruído pode ser gerado com base no bloco de predição. A tabela pode ser atualizada com as informações de movimento derivadas do bloco atual.
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 existentes incluído na tabela for igual ao tamanho da tabela, um candidato que foi adicionado primeiro à tabela pode ser deletado, e as informações de movimento derivadas podem ser adicionadas à última entrada da tabela como um novo candidato de HMVP.
[0136] A Figura 9 ilustra uma atualização de tabela de HMVP de acordo com a regra FIFO, e a Figura 10 ilustra uma atualização de tabela de HMVP de acordo com uma regra FIFO limitada.
[0137] A regra primeiro a entrar, primeiro a sair (PEPS) pode ser aplicada à tabela. Por exemplo, se o tamanho da 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 de blocos anteriormente codificados, a regra PEPS pode ser aplicada, através da qual a tabela pode incluir até 16 candidatos de informações de movimento mais recentemente codificados. Nesse caso, conforme mostrado na Figura 9, a regra PEPS é aplicada para remover o candidato de HMVP mais antigo, e um novo candidato de HMVP pode ser adicionado.
[0138] Entretanto, para aprimorar ainda mais a eficiência de codificação, conforme mostrado na Figura 10, uma regra PEPS limitada pode ser aplicada. Com referência à Figura 10, quando um candidato de HMVP é inserido em uma tabela, a verificação de redundância pode ser aplicada primeiro. Através dessa operação, pode ser determinado se um candidato de HMVP que tem as mesmas informações de movimento já existe na tabela. Se houver um candidato de HMVP que tem as mesmas informações de movimento na tabela, o candidato de HMVP que tem as mesmas informações de movimento é removido da tabela, e os candidatos de HMVP subsequentes ao candidato de HMVP removido são deslocados em uma posição (isto é, cada índice – 1), após isso, um novo candidato de HMVP pode ser inserido.
[0139] Como descrito acima, o candidato de HMVP pode ser usado no processo de construção de candidato de mesclagem. Nesse caso, por exemplo, todos os candidatos de HMVP que podem ser inseridos na região da última entrada até a primeira entrada dentro da tabela podem ser inseridos próximos aos candidatos de mesclagem espaciais e ao candidato de mesclagem temporal. Nesse caso, uma verificação de remoção pode ser aplicada a candidatos de HMVP. O número máximo permitido de candidatos de mesclagem 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 processo de construção de lista de candidatos de mesclagem pode terminar.
[0140] De modo similar, os candidatos de HMVP podem ser usados para o processo de construção de lista de candidatos de (A)MVP. Nesse caso, os vetores de movimento dos últimos k candidatos de HMVP dentro da tabela de HMVP podem ser adicionados próximos ao candidato de TMVP que constitui a lista de candidatos de MVP. Nesse caso, por exemplo, um candidato de HMVP que tem a mesma gravura de referência que uma gravura de referência de destino de MVP pode ser usado para construir a lista de candidatos de MVP. Aqui, a gravura de referência de destino de MVP pode representar uma gravura de referência para interpredição de um bloco atual ao qual o modo de MVP foi aplicado. Nesse caso, uma verificação de remoção pode ser aplicada a candidatos de HMVP. O k pode ser 4, por exemplo.
Entretanto, esse valor específico de k é um mero exemplo, e k pode assumir vários valores como 1, 2, 3 e 4.
[0141] Entretanto, se o número total de candidatos de mesclagem for igual ou maior que 15, uma método de binarização unário truncado mais comprimento fixo (com 3 bits) pode ser aplicado para codificação de índice de mesclagem, conforme mostrado na Tabela 1 abaixo. Tabela 1
[0142] Na tabela acima, presume-se que = 15, e representa o número total de candidatos de mesclagem.
[0143] Entretanto, ao desenvolver uma solução que emprega codec de vídeo, para otimização da implementação, o processamento paralelo pode ser suportado para codificação de imagem/vídeo.
[0144] A Figura 11 ilustra um Processamento Paralelo em Frente de Onda (WPP), uma das técnicas de processamento paralelo.
[0145] Com referência à Figura 11, se WPP for aplicado, o processamento paralelo pode ser realizado em unidades de linhas de CTU. Nesse caso, se os blocos marcados por X forem codificados (codificação/decodificação), a dependência ocorre na posição indicada por uma seta. Portanto, para codificar um bloco marcado atual com X, o mesmo deve aguardar que a CTU em sua posição superior direita seja concluída para a codificação. Além disso, se o WPP for aplicado, a inicialização de uma tabela de probabilidade CABAC (ou informações de contexto) pode ser realizada em unidades de fatias, e a tabela de probabilidade CABAC (ou informações de contexto) deve ser inicializada em unidades de linhas de CTU para processamento paralelo, incluindo codificação/decodificação de entropia. A WPP pode ser considerada uma técnica proposta para determinar uma posição de inicialização eficiente.
Se a WPP for aplicada, cada linha de LCT pode ser chamada de subfluxo e o processamento paralelo pode ser suportado para um caso em que o aparelho de codificação é equipado com uma pluralidade de núcleos de processamento.
Por exemplo, se a WPP for aplicada e três núcleos de processamento processarem a decodificação em paralelo, o primeiro núcleo de processamento pode decodificar o subfluxo 0, o segundo núcleo de processamento pode decodificar o subfluxo 1 e o terceiro núcleo de processamento pode decodificar o subfluxo 2. Se a WPP for aplicada, a codificação do (n+1)-ésimo (em que n é um número inteiro) subfluxo pode ser realizada após a codificação do n-ésimo subfluxo ser realizada e a codificação da segunda CTU ou LCU do n-ésimo subfluxo é concluída.
Por exemplo, no caso de codificação de entropia, se a codificação de entropia da segunda LCU do n-ésimo subfluxo for concluída, a codificação de entropia da primeira LCU do (n+1)-ésimo subfluxo pode ser realizada com base em informações de contexto sobre a segunda LCU do n-ésimo subfluxo.
Nesse momento, o número de subfluxos dentro de uma fatia pode ser igual ao número de linhas de LCU.
Também, o número de subfluxos dentro de uma fatia pode ser igual ao número de pontos de entrada.
Nesse momento, o número de pontos de entrada pode ser especificado pelo número de deslocamentos de ponto de entrada.
Por exemplo, o número de pontos de entrada pode ser maior que o número de deslocamentos de ponto de entrada mais um.
Informações sobre a quantidade de deslocamentos de pontos de entrada e/ou informações sobre valores de deslocamento podem ser codificadas por serem incluídas nas informações de vídeo/imagem ou sinalizadas ao aparelho de decodificação por meio de um fluxo de bits.
Entretanto, se o aparelho de codificação estiver equipado com um núcleo de processamento, a codificação pode ser realizada em uma única unidade de subfluxo, através da qual a carga de memória e a dependência de codificação podem ser reduzidas.
[0146] O método de HMVP armazena as informações de movimento derivadas do processo de codificação de cada bloco em até um tamanho de buffer predeterminado (tabela de HMVP). Nesse caso, conforme revelado na Figura 9 sem uma condição adicional, a tabela de HMVP pode ser preenchida com tantos candidatos quanto o número de buffers ou pode ser preenchida com candidatos de modo que um candidato recentemente adicionado não se sobreponha aos candidatos já existentes no buffer (tabela de HMVP) através de uma verificação de redundância. Através desta operação, vários candidatos podem ser configurados.
Entretanto, quando se desenvolve uma solução que emprega codec de vídeo, geralmente não é possível saber em que momento os candidatos de HMVP preenchem o buffer. Portanto, é impossível implementar o processamento paralelo, independentemente de o WPP ser aplicado ou não.
[0147] A Figura 12 ilustra um problema encontrado quando um método de HMVP geral é aplicado levando-se em consideração o processamento paralelo.
[0148] Com referência à Figura 12, se o processamento paralelo for executado em unidades de linhas de CTU como no WPP, ocorre um problema de dependência no buffer de HMVP. Por exemplo, um buffer de HMVP para a CTU primeiramente ordenada na N-ésima (N 1) linha de CTU pode ser preenchido apenas após a codificação de blocos na (N-1)-ésima linha de CTU, por exemplo, blocos na última CTU da (N-1)-ésima linha de CTU ser concluída. Em outras palavras, na estrutura atual, se o processamento paralelo for aplicado, o aparelho de decodificação não sabe se os candidatos de HMVP armazenados em um buffer de HMVP atual são relevantes para o buffer de HMVP usado para a decodificação de um bloco atual (de destino). Isso se deve ao fato de que um buffer de HMVP derivado no momento da codificação de um bloco atual através do processamento sequencial pode ser diferente de um buffer de HMVP derivado no momento da codificação do bloco atual através do processamento paralelo.
[0149] Em uma modalidade do presente relatório descritivo, para resolver o problema acima, o processamento paralelo pode ser suportado pela inicialização de um buffer de gerenciamento de histórico (buffer de HMVP) quando o HMVP é aplicado.
[0150] A Figura 13 ilustra um método para inicializar um buffer de gerenciamento de histórico (buffer de HMVP) de acordo com uma modalidade do presente relatório descritivo.
[0151] Com referência à Figura 13, um buffer de HMVP pode ser inicializado para cada CTU primeiramente ordenada de uma linha de CTU. Em outras palavras, se a CTU primeiramente ordenada de uma linha de CTU for codificada, um buffer de HMVP pode ser inicializado de modo que o número de candidatos de HMVP incluídos no buffer de HMVP seja 0. Conforme descrito acima, ao inicializar um buffer de HMVP de cada linha de CTU, os candidatos de HMVP derivados durante o processo de codificação de CTUs localizadas à esquerda de um bloco atual podem ser usados sem restrição, mesmo que o processamento paralelo seja suportado.
Nesse caso, por exemplo, se uma CU atual, que é o bloco atual, estiver situada na CTU primeiramente ordenada de uma linha de CTU, e a CU atual correspondente à primeira CU da CTU primeiramente ordenada, o número de candidatos de HMVP incluídos no buffer de HMVP é 0. Além disso, por exemplo, se uma CU codificada antes da CU atual na linha de CTU for codificada no modo inter, um candidato de HMVP pode ser derivado com base nas informações de movimento da CU anteriormente codificadas e incluídas no buffer de HMVP.
[0152] A Figura 14 ilustra um método de gerenciamento de buffer de HMVP de acordo com uma modalidade.
[0153] Com referência à Figura 14, um buffer de HMVP pode ser inicializado em unidades de fatia, e a possibilidade de uma CTU de destino (CTU atual) para codificação ser a CTU primeiramente ordenada de cada linha de CTU pode ser determinada para CTUs dentro de uma fatia. Na Figura 14, como exemplo, presume- se que se (ctu_idx % Num) for 0, a CTU de destino é determinada como a CTU primeiramente ordenada. Nesse momento, Num representa o número de CTUs em cada linha de CTU. Como outro exemplo, se o conceito de tijolo supracitado for empregado, se (ctu_idx_in_brick % BrickWidth) for 0, pode ser determinado que a CTU de destino é a CTU primeiramente ordenada de uma linha de CTU (dentro do tijolo correspondente). Aqui, ctu_idx_in_brick representa o índice da CTU correspondente dentro do tijolo, e BrickWdith representa a largura do tijolo correspondente em unidades de CTU. Em outras palavras, BrickWidth pode representar o número de colunas de CTU dentro do tijolo correspondente. Se uma CTU atual for a CTU primeiramente ordenada de uma linha de CTU, o buffer de HMVP é inicializado (isto é, o número de candidatos dentro do buffer de HMVP é ajustado para 0). De outro modo, o buffer de HMVP é retido. Posteriormente, um processo de predição (por exemplo, um processo de predição baseado no modo de mesclagem ou MVP) é aplicado a cada CU dentro da CTU correspondente, em que um candidato armazenado no buffer de HMVP pode ser incluído como informações de movimento do candidato no modo de mesclagem ou MVP (por exemplo, um candidato a mesclagem ou um candidato de MVP). As informações de movimento de um bloco de destino (bloco atual) derivadas durante o processo de interpredição baseado no modo de mesclagem ou MVP são armazenadas (atualizadas) como um novo candidato de HMVP no buffer de HMVP. Nesse caso, o processo de verificação de redundância descrito acima pode ser adicionalmente realizado. Posteriormente, o processo descrito acima pode ser aplicado repetidamente para Cus e CTUs subsequentes.
[0154] Como outro exemplo, a dependência em unidades de CTU pode ser removida inicializando-se o buffer de HMVP para cada CTU quando o HMVP é aplicado.
[0155] A Figura 15 ilustra um método de gerenciamento de buffer de HMVP de acordo com outra modalidade.
[0156] Com referência à Figura 15, a inicialização de buffer de HMVP pode ser realizada para cada CTU sem envolver a determinação para verificar se uma CTU atual é a CTU primeiramente ordenada de cada linha de CTU. Nesse caso, visto que um buffer de HMVP é inicializado em unidades de CTU, informações de movimento de blocos existentes dentro de uma CTU são armazenadas na tabela de HMVP. Nesse caso, um candidato de HMVP pode ser derivado com base nas informações de movimento de blocos (por exemplo, CUs) que pertencem à mesma CTU, e a inicialização de buffer de HMVP se torna possível sem envolver a determinação para verificar se a CTU atual é a CTU primeiramente ordenada de cada linha de CTU, conforme descrito a seguir.
[0157] Conforme descrito acima, um buffer de HMVP pode ser inicializado em unidades de fatia, através das quais permite-se que um vetor de movimento de um bloco espacialmente separado de um bloco atual seja usado. Nesse caso, entretanto, visto que é impossível suportar o processamento paralelo dentro de uma fatia, as modalidades descritas acima propõem um método para inicializar um buffer em unidades de linhas de CTU ou CTUs. Em outras palavras, de acordo com as modalidades do presente relatório descritivo, um buffer de HMVP pode ser inicializado em unidades de fatia e pode ser inicializado em unidades de linha de CTU dentro de uma fatia.
[0158] Entretanto, uma gravura pode ser particionada em unidades de fatia quando a gravura é codificada (codificada/decodificada) e/ou a gravura correspondente pode ser particionada em unidades de ladrilho. Por exemplo, a gravura correspondente pode ser particionada em unidades de fatia levando-se em consideração a resiliência de erro, ou a gravura correspondente pode ser particionada em unidades de ladrilho para codificar/decodificar parte de regiões dentro da gravura correspondente. Se um buffer de gerenciamento de HMVP for aplicado quando uma gravura é particionada em múltiplos ladrilhos, realizar a inicialização em unidades de linhas de CTU dentro da gravura correspondente, isto é, inicializar um buffer de HMVP na CTU primeiramente ordenada de cada linha de CTU dentro da gravura não é adequado para a estrutura de ladrilho em que apenas parte de uma gravura é codificada/decodificada.
[0159] A Figura 16 ilustra um método para inicializar um buffer de HMVP em uma estrutura de ladrilho.
[0160] Conforme mostrado na Figura 16, visto que um buffer de gerenciamento de HMVP não é inicializado em unidades de ladrilho para os casos de ladrilho 1 e 3, ocorre a dependência de ladrilho 0 e ladrilho 2. Portanto, é possível inicializar um buffer de HMVP usando o seguinte método na existência de um ladrilho.
[0161] Como um exemplo, um buffer de HMVP pode ser inicializado em unidades de CTU. É óbvio que essa inicialização pode ser aplicada sem distinguir ladrilhos e fatias.
[0162] Como outro exemplo, um buffer de HMVP pode ser inicializado em relação à CTU primeiramente ordenada de cada ladrilho.
[0163] A Figura 17 ilustra um exemplo de um método para inicializar um buffer de HMVP em relação a uma CTU primeiramente ordenada de um ladrilho de acordo com outra modalidade.
[0164] Com referência à Figura 17, ao codificar a CTU primeiramente ordenada de cada ladrilho, um buffer de HMVP é inicializado. Em outras palavras, quando o ladrilho 0 é codificado, o buffer de HMVP 0 é inicializado, e quando o ladrilho 1 é codificado, o buffer de HMVP 1 é inicializado.
[0165] Como outro exemplo, um buffer de HMVP pode ser inicializado em relação à CTU primeiramente ordenada de uma linha de CTU dentro de cada ladrilho.
[0166] A Figura 18 ilustra um exemplo de um método para inicializar um buffer de gerenciamento de HMVP em relação a uma CTU primeiramente ordenada de uma linha de CTU em cada 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 ladrilho. Por exemplo, um buffer de HMVP pode ser inicializado na CTU primeiramente ordenada da linha de CTU primeiramente ordenada de ladrilho n, um buffer de HMVP é inicializado na CTU primeiramente ordenada da segunda linha de CTU de ladrilho n, e um buffer de HMVP pode ser inicializado na CTU primeiramente ordenada da terceira linha de CTU de ladrilho n.
Nesse caso, se o aparelho de codificação for equipado com um processador multinúcleo, o buffer de HMVP 0 para a linha de CTU primeiramente ordenada de ladrilho n pode ser inicializado para ser usado, o buffer de HVMP 1 para a second linha de CTU de ladrilho n pode ser inicializado para ser usado, e o buffer de HMVP 2 para a terceira linha de CTU de ladrilho n pode ser inicializado para ser usado, através do qual o processamento paralelo pode ser suportado. Entretanto, se o aparelho de codificação for equipado com um processador de núcleo único, o aparelho de codificação pode reutilizar um buffer de HVMP inicializando-se o buffer de HVMP na CTU primeiramente ordenada de cada linha de CTU dentro de cada ladrilho de acordo com uma ordem de codificação.
[0168] Entretanto, de acordo com uma estrutura de particionamento de ladrilho e uma estrutura de particionamento de fatia, os ladrilhos e fatias podem existir simultaneamente dentro de uma gravura.
[0169] A Figura 19 ilustra um exemplo de uma estrutura em que os ladrilhos e fatias coexistem.
[0170] A Figura 19 ilustra um caso em que uma gravura é particionada em quatro ladrilhos, e cada ladrilho contém duas fatias. Conforme mostrado na Figura 19, tanto uma fatia como um ladrilho podem existir em conjunto dentro de uma gravura, e é possível inicializar um buffer de HMVP da seguinte forma.
[0171] Como um exemplo, um buffer de HMVP pode ser inicializado em unidades de CTU. Esse método pode ser aplicado independentemente da possibilidade de uma CTU estar situada em um ladrilho ou em uma fatia.
[0172] Como outro exemplo, um buffer de HMVP pode ser inicializado em relação à CTU primeiramente ordenada dentro de cada ladrilho.
[0173] A Figura 20 ilustra um exemplo de um método para inicializar um buffer de HMVP em relação a uma CTU primeiramente ordenada dentro de cada ladrilho.
[0174] Com referência à Figura 20, um buffer de HMVP pode ser inicializado na CTU primeiramente ordenada de cada ladrilho. Mesmo que exista uma pluralidade de fatias dentro de um ladrilho, a inicialização de buffer de HMVP pode ser realizada na CTU primeiramente ordenada dentro do ladrilho.
[0175] Como ainda outro exemplo, a inicialização de buffer de HMVP pode ser realizada em relação a cada fatia existente dentro de um ladrilho.
[0176] A Figura 21 ilustra um exemplo de um método para inicializar um buffer de HMVP em relação a cada fatia dentro de um ladrilho.
[0177] Com referência à Figura 21, um buffer de HMVP pode ser inicializado na CTU primeiramente ordenada de cada fatia dentro de um ladrilho. Portanto, se existir uma pluralidade de fatias dentro de um ladrilho, a inicialização de buffer de HMVP pode ser realizada para cada uma dentre a pluralidade de fatias. Nesse caso, a inicialização de buffer de HMVP pode ser realizada quando a CTU primeiramente ordenada de cada fatia é processada.
[0178] Entretanto, pode existir uma pluralidade de ladrilhos dentro de uma gravura sem fatias. Ou, pode existir uma pluralidade de ladrilhos dentro de uma fatia.
Nesse caso, a inicialização de buffer de HMVP pode ser realizada da seguinte forma.
[0179] Como um exemplo, um buffer de HMVP pode ser inicializado para cada grupo de ladrilhos.
[0180] A Figura 22 ilustra um exemplo de inicialização de um buffer de HMVP em relação a uma CTU primeiramente ordenada de um primeiro ladrilho dentro de um grupo de ladrilhos.
[0181] Com referência à Figura 22, uma gravura pode ser particionada em dois grupos de ladrilhos, e cada grupo de ladrilhos (TileGroup0, TileGroup1) pode ser particionado em múltiplos ladrilhos. Nesse caso, um buffer de HMVP pode ser inicializado em relação à CTU primeiramente ordenada do primeiro ladrilho dentro de um grupo de ladrilhos.
[0182] Como outro exemplo, um buffer de HMVP pode ser inicializado em unidades de ladrilho dentro de um grupo de ladrilhos.
[0183] A Figura 23 ilustra um exemplo de inicialização de um buffer de HMVP em relação a uma CTU primeiramente ordenada de cada ladrilho dentro de um grupo de ladrilhos.
[0184] Com referência à Figura 23, uma gravura pode ser particionada em dois grupos de ladrilhos, e cada grupo de ladrilhos (TileGroup0, TileGroup1) pode ser particionado em múltiplos ladrilhos. Nesse caso, um buffer de HMVP pode ser inicializado em relação à CTU primeiramente ordenada de cada ladrilho dentro de um grupo de ladrilhos.
[0185] Como ainda outro exemplo, um buffer de HMVP pode ser inicializado em relação a uma linha de CTU de cada ladrilho dentro de um grupo de ladrilhos.
[0186] A Figura 24 ilustra um exemplo de inicialização de um buffer de HMVP em relação a uma linha de CTU de cada ladrilho dentro de um grupo de ladrilhos.
[0187] Com referência à Figura 24, uma gravura pode ser particionada em dois grupos de ladrilhos, e cada grupo de ladrilhos (TileGroup0, TileGroup1) pode ser particionado em múltiplos ladrilhos. Nesse caso, um buffer de HMVP pode ser inicializado na CTU primeiramente ordenada de uma linha de CTU de cada ladrilho dentro de um grupo de ladrilhos.
[0188] Ou, nesse caso, também, um buffer de gerenciamento de HMVP pode ser inicializado em unidades de CTU. É óbvio que essa inicialização pode ser aplicada sem distinguir ladrilhos e fatias.
[0189] Entretanto, um vídeo/imagem codificado de acordo com o presente relatório descritivo pode ser processado de acordo com uma camada e estrutura de codificação descritas a seguir.
[0190] A Figura 25 ilustra uma estrutura de camada de uma imagem/vídeo codificado.
[0191] Com referência à Figura 25, uma imagem/vídeo codificado compreende uma camada de codificação de vídeo (VCL) que lida com a decodificação de uma imagem/vídeo e a própria decodificação, um subsistema que transmite e armazena informações codificadas, e uma camada de abstração de rede (NAL) localizada entre a VCL e o subsistema e responsável por uma função de adaptação de rede.
[0192] Na VCL, os dados de VCL incluindo dados de imagem compactados (dados de fatia) podem ser gerados; ou um conjunto de parâmetros incluindo informações como um conjunto de parâmetros de gravura (PPS), conjunto de parâmetros de sequência (SPS), e conjunto de parâmetros de vídeo (VPS) ou uma mensagem de informações suplementares de enriquecimento (SEI) adicionalmente necessários para um processo de decodificação de imagem podem ser gerados.
[0193] Na NAL, uma unidade de NAL pode ser gerada pela adição de informações de cabeçalho (cabeçalho de unidade de NAL) à Carga Útil de
Sequência Bytes Brutos (RBSP) gerada na VCL. Nesse momento, RBSP se refere aos dados de fatia, conjunto de parâmetros e mensagem SEI gerados na VCL. O cabeçalho de unidade de NAL pode incluir informações do tipo de unidade de NAL especificadas de acordo com os dados de RBSP incluídos na unidade de NAL correspondente.
[0194] Conforme mostrado na figura, a unidade de NAL pode ser dividida em uma unidade de NAL de VCL e uma unidade de NAL Não VCL de acordo com a RBSP gerada na VCL. A unidade de NAL de VCL pode se referir à unidade de NAL incluindo informações (dados de fatia) sobre uma imagem, e a unidade de NAL Não VCL pode se referir à unidade de NAL incluindo informações (conjunto de parâmetros ou mensagem SEI) necessárias para decodificar uma imagem.
[0195] A unidade de NAL de VCL e a unidade de NAL Não VCL supracitadas podem ser transmitidas através de uma rede anexando informações de cabeçalho de acordo com especificações de dados do subsistema. Por exemplo, a unidade de NAL pode ser modificada em tipos de dados de especificações predeterminadas como formato de arquivo H.266/VVC, Protocolo de Transporte em Tempo Real (RTP) ou Fluxo de Transporte (TS) e transmitida através de vários tipos de redes.
[0196] Conforme descrito acima, o tipo de unidade de NAL da unidade de NAL pode ser especificado de acordo com a estrutura de dados de RBSP incluída na unidade de NAL correspondente, e informações sobre o tipo de unidade de NAL podem ser armazenadas no cabeçalho de unidade de NAL e sinalizadas como tais.
[0197] Por exemplo, de acordo com a possibilidade de a unidade de NAL incluir informações sobre uma imagem (dados de fatia), a unidade de NAL pode ser amplamente dividida em tipo de unidade de NAL de VCL e tipo de unidade de NAL Não VCL. O tipo de unidade de NAL de VCL pode ser classificado de acordo com as características e o tipo de uma gravura incluídos na unidade de NAL de VCL, e o tipo de unidade de NAL Não VCL pode ser classificado de acordo com o tipo do conjunto de parâmetros.
[0198] A seguir, é fornecido um exemplo de um tipo de unidade de NAL especificado de acordo com o tipo do conjunto de parâmetros incluído no tipo de unidade de NAL Não VCL.
- Unidade de NAL de Conjunto de Parâmetros de Adaptação (APS): tipo de unidade de NAL incluindo APS - Unidade de NAL de Conjunto de Parâmetros de Decodificação (DPS): tipo de unidade de NAL incluindo DPS - Unidade de NAL de Conjunto de Parâmetros de Vídeo (VPS): tipo de unidade de NAL incluindo VPS - Unidade de NAL de Conjunto de Parâmetros de Sequência (SPS): tipo de unidade de NAL incluindo SPS - Unidade de NAL de Conjunto de Parâmetros de Gravura (PPS): tipo de unidade de NAL incluindo PPS
[0199] Os tipos de unidade de NAL incluem informações de sintaxe para o tipos de unidade de NAL, e as informações de sintaxe podem ser armazenadas no cabeçalho de unidade de NAL e sinalizadas como tais. Por exemplo, as informações de sintaxe podem ser nal_unit_type, e os tipos de unidade de NAL podem ser especificados pelo valor de nal_unit_type.
[0200] O cabeçalho de fatia (sintaxe de cabeçalho de fatia) pode incluir informações/parâmetro que podem ser aplicados comumente à fatia. O APS (sintaxe de APS) ou PPS (sintaxe de PPS) pode incluir informações/parâmetro que podem ser comumente aplicados a uma ou mais fatias ou gravuras. O SPS (sintaxe de SPS) pode incluir informações/parâmetro que podem ser comumente aplicados a uma ou mais sequências. O VPS (sintaxe de VPS) pode incluir informações/parâmetro que podem ser comumente aplicados a múltiplas camadas. O DPS (sintaxe de DPS) pode incluir informações/parâmetro que podem ser comumente aplicados a todo o vídeo. O DPS pode incluir informações/parâmetro relacionados à concatenação de sequências de vídeo codificadas (CVSs). A sintaxe de alto nível (HLS) no presente relatório descritivo pode incluir pelo menos uma dentre sintaxe de APS, sintaxe de PPS, sintaxe de SPS, sintaxe de VPS, sintaxe de DPS e sintaxe de cabeçalho de fatia.
[0201] No presente relatório descritivo, informações de imagem/vídeo codificadas e sinalizadas sob a forma de um fluxo de bits a partir do aparelho de codificação ao aparelho de decodificação podem incluir não só informações relacionadas ao particionamento em gravura, informações de intrapredição/inter, informações residuais, informações de filtragem em loop, porém também informações incluídas no cabeçalho de fatia, informações incluídas no APS, informações incluídas no PPS, informações incluídas no SPS e/ou informações incluídas no VPS.
[0202] Entretanto, conforme descrito acima, se um buffer de HMVP (conjunto de candidatos de HMVP) for inicializado em unidades de fatia ou em unidades de linhas de CTU dentro de uma fatia, a sintaxe relacionada pode ser expressa da seguinte forma.
Tabela 2 Tabela 3
[0203] A Tabela 2 mostra um exemplo de inicialização de um buffer de HMVP em unidades de fatia, e a Tabela 3 mostra um exemplo de inicialização de um buffer de HMVP em unidades de CTUs dentro de uma fatia. Uma fatia pode incluir uma pluralidade de CTUs dentro de uma gravura no domínio espacial. Também, uma fatia pode compreender um cabeçalho de fatia que contém informações de cabeçalho na camada de codificação de vídeo (VCL) e os dados de fatia que contêm dados de imagem compactados. Aqui, slice_type pode representar um elemento de sintaxe indicando o tipo de codificação de uma fatia. O tipo de fatia pode ser derivado como fatia I, fatia B ou fatia P com base no slice_type.
[0204] Por exemplo, conforme mostrado na Tabela 2, uma pluralidade de CTUs pode estar incluída dentro de uma fatia, e quando a sintaxe de dados de fatia relacionada à fatia é decodificada, o buffer de HMVP pode ser inicializado. Nesse caso, o número de candidatos de HMVP (por exemplo, HMVPcandNum) pode ser definido como 0.
[0205] Também, por exemplo, conforme mostrado na Tabela 3, uma pluralidade de CTUs pode estar incluída em uma fatia, e as CTUs podem ser codificadas (codificadas/decodificadas) sequencialmente. Se a CTU correspondente corresponder à CTU primeiramente ordenada de uma linha de CTU dentro de uma gravura (por exemplo, CtbAddrInRs % PicWidthInCtbsY == 0) ou se a CTU correspondente corresponder à CTU primeiramente ordenada dentro de uma fatia (por exemplo, CtbAddrInRs == slice_address), um buffer de HMVP pode ser inicializado na CTU correspondente. Nesse caso, o número de candidatos de HMVP
(por exemplo, HMVPcandNum) pode ser definido como 0.
[0206] As Figuras 26 e 27 ilustram um exemplo de um método de codificação de vídeo/imagem incluindo um método de interpredição e componentes relacionados de acordo com uma modalidade (ou modalidades) do presente relatório descritivo. O método revelado na Figura 26 pode ser realizado pelo aparelho de codificação revelado na Figura 2. Mais especificamente, por exemplo, S2600 a S2630 da Figura 26 podem ser realizados pelo preditor 220 do aparelho de codificação, e S2640 da Figura 26 pode ser realizado pelo processador residual 230 do aparelho de codificação, e S2650 da Figura 26 pode ser realizado pelo codificador de entropia 240 do aparelho de codificação. O método revelado na Figura 26 pode incluir as modalidades descritas no presente relatório descritivo.
[0207] Com referência à Figura 26, o aparelho de codificação deriva um conjunto de candidatos de HMVP em relação a um bloco atual S2600. O aparelho de codificação pode realizar o método de gerenciamento de conjunto de candidatos de HMVP (ou método de gerenciamento de buffer de HMVP) descrito nas modalidades do presente relatório descritivo. Por exemplo, o conjunto de candidatos de MVP pode ser atualizado com base nas informações de movimento de um bloco anterior.
Aqui, o bloco anterior pode indicar um bloco codificado/processado anteriormente dentro de uma linha de CTU, em uma gravura atual, um ladrilho atual ou uma fatia atual, em que o bloco atual está situado. Também, por exemplo, o conjunto de candidatos de HMVP pode ser inicializado em uma CTU específica entre as CTUs da linha de CTU incluindo o bloco atual. Mais especificamente, por exemplo, a CTU específica pode ser a CTU primeiramente ordenada entre as CTUs da linha de CTU dentro de uma gravura atual ou a CTU primeiramente ordenada entre as CTUs da linha de CTU dentro de um ladrilho atual (ou CTU primeiramente ordenada dentro de uma fatia atual). Também, mais especificamente, por exemplo, o conjunto de candidatos de HMVP pode ser inicializado em unidades de fatia, ladrilho ou grupo de ladrilhos. E/ou o conjunto de candidatos de HMVP pode ser inicializado em unidades de linhas de CTU. O conjunto de candidatos de HMVP pode ser inicializado por linha de CTU em cada fatia, ladrilho ou grupo de ladrilhos. O ladrilho pode ser representado como uma região retangular de CTUs dentro de uma gravura. O ladrilho pode ser especificado com base em uma linha de ladrilho específica e especificar uma coluna de ladrilho dentro da gravura. Por exemplo, um ou mais ladrilhos podem estar presentes dentro de uma gravura atual. Nesse caso, o conjunto de candidatos de HMVP pode ser inicializado em uma CTU primeiramente ordenada de uma linha de CTU incluindo o bloco atual dentro de um ladrilho atual.
Ou, uma ou mais fatias podem estar presentes dentro da gravura atual. Nesse caso, o conjunto de candidatos de HMVP pode ser inicializado em uma CTU primeiramente ordenada de uma linha de CTU incluindo o bloco atual dentro de uma fatia atual. Ou, um ou mais grupos de ladrilhos podem estar presentes dentro da gravura atual. Nesse caso, o conjunto de candidatos de HMVP pode ser inicializado em uma CTU primeiramente ordenada de uma linha de CTU incluindo o bloco atual dentro de um grupo de ladrilhos atual. O aparelho de codificação pode determinar se a CTU atual é a CTU primeiramente ordenada da linha de CTU. Nesse caso, o conjunto de candidatos de HMVP pode ser inicializado na CTU primeiramente ordenada de uma linha de CTU em que a CTU atual incluindo o bloco atual está situada. Em outras palavras, o conjunto de candidatos de HMVP pode ser inicializado se a CTU primeiramente ordenada de uma linha de CTU em que a CTU atual incluindo o bloco atual é processada. Se for determinado que a CTU atual é a CTU primeiramente ordenada da linha de CTU dentro do ladrilho atual, o conjunto de candidatos de HMVP pode incluir um candidato de HMVP derivado com base nas informações de movimento de um bloco processado antes do bloco atual dentro da CTU atual. Se for determinado que a CTU atual não é a CTU primeiramente ordenada da linha de CTU dentro do ladrilho atual, o conjunto de candidatos de
HMVP pode incluir um primeiro candidato de HMVP derivado com base nas informações de movimento de um bloco processado antes do bloco atual dentro da CTU atual e um segundo candidato de HMVP derivado com base nas informações de movimento de um bloco processado antes dentro de uma CTU anterior da CTU atual da linha de CTU dentro do ladrilho atual. Também, por exemplo, se a CU atual, que é um bloco atual, estiver situada na CTU primeiramente ordenada da linha de CTU, e a CU atual corresponder à primeira CU da CTU primeiramente ordenada, o número de candidatos de HMVP incluídos no conjunto de candidatos de HMVP é 0.
Também, por exemplo, se uma CU codificada antes da CU atual na linha de CTU (por exemplo, uma CU codificada antes da CU atual na CTU atual e/ou uma CU dentro de uma CTU codificada antes da CTU atual na linha de CTU atual) é codificada no modo inter, um candidato de HMVP pode ser derivado com base nas informações de movimento da CU codificada anteriormente e incluída no conjunto de candidatos de HMVP.
[0208] Se a imagem atual for dividida em uma pluralidade de ladrilhos, o buffer de HMVP é inicializado por cada linha de CTU em cada ladrilho.
[0209] O conjunto de candidatos de HMVP pode ser inicializado nas unidades de linhas de CTU dentro de um ladrilho ou uma fatia. Por exemplo, se uma CTU específica da linha de CTU não for a CTU primeiramente ordenada da linha de CTU dentro de uma gravura atual, porém a CTU específica for a CTU primeiramente ordenada dentro de um ladrilho atual ou uma fatia atual, o conjunto de candidatos de HMVP pode ser inicializado na CTU específica.
[0210] Se o conjunto de candidatos de HMVP for inicializado, o número de candidatos de HMVP incluídos no conjunto de candidatos de HMVP pode ser definido como 0.
[0211] O aparelho de codificação constrói uma lista de candidatos de informações de movimento com base no conjunto de candidatos de HMVP S2610. O conjunto de candidatos 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 construída.
[0212] Como um exemplo, se o 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 de 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, incluindo candidatos de mesclagem espaciais e candidatos de mesclagem temporais) dentro da lista de candidatos de MVP em relação ao bloco atual for menor que o número máximo de candidatos de mesclagem. Nesse caso, o candidato de HMVP pode ser inserido na parte posterior dos candidatos espaciais e temporais dentro da lista de candidatos de mesclagem. Em outras palavras, um índice mais alto que os índices atribuídos aos candidatos espaciais e temporais dentro da lista de candidatos de mesclagem pode ser atribuído ao candidato de HMVP. 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 (derivados com base em blocos vizinhos espaciais e blocos vizinhos temporais) dentro da lista de candidatos de MVP em relação ao bloco atual for menor que 2.
[0213] O aparelho de codificação pode derivar informações de movimento do bloco atual com base na lista de candidatos de informações de movimento S2620.
[0214] O aparelho de codificação pode derivar 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 modo de MVP for aplicado ao bloco atual, o candidato de HMVP que pertence ao conjunto de candidatos de HMVP pode ser usado como um candidato de mesclagem ou candidato de MVP. Por exemplo, se o modo de mesclagem for aplicado ao bloco atual, o candidato de HMVP que pertence ao conjunto de candidatos de HMVP é incluído como um candidato de uma lista de candidatos de mesclagem, e o candidato de HMVP pode ser indicado com base em um índice de mesclagem entre os candidatos que pertencem à lista de candidatos de mesclagem. O índice de mesclagem pode estar incluído nas informações de imagem/vídeo descritas posteriormente como informações relacionadas à predição.
Nesse caso, um índice pode ser atribuído ao candidato de HMVP dentro da lista de candidatos de mesclagem com prioridade mais baixa do que os candidatos de mesclagem espacial e o candidato de mesclagem temporal que pertencem à lista de candidatos de mesclagem. Em outras palavras, o índice cujo valor é mais alto que os valores de índice dos candidatos de mesclagem espacial e o candidato de mesclagem temporal pode ser atribuído ao candidato de HMVP. Como outro exemplo, se o modo de MVP for aplicado ao bloco atual, o candidato de HMVP que pertence ao conjunto de candidatos de HMVP pode estar incluído como um candidato da lista de candidatos de mesclagem, e o candidato de HMVP pode ser indicado entre os candidatos que pertencem à lista de candidatos de MVP com base em um sinalizador de MVP (ou índice de MVP). O sinalizador de MVP (ou índice de MVP) pode estar incluído nas informações de imagem/vídeo descritas posteriormente como informações relacionadas à predição.
[0215] O aparelho de codificação gera amostras de predição em relação ao bloco atual com base nas informações de movimento derivadas S2630. O aparelho de codificação pode realizar a interpredição (compensação de movimento) com base nas informações de movimento e derivar amostras de predição usando amostras de referência indicadas pelas informações de movimento em uma gravura de referência.
[0216] O aparelho de codificação gera amostras residuais com base nas amostras de predição S2640. O aparelho de codificação pode gerar amostras residuais com base nas amostras originais em relação ao bloco atual e as amostras de predição em relação ao bloco atual.
[0217] O aparelho de codificação deriva informações sobre amostras residuais com base nas amostras residuais e codifica informações de imagem/vídeo incluindo informações sobre as amostras residuais S2650. As informações sobre amostras residuais podem ser chamadas de informações residuais, que podem incluir informações sobre coeficientes de transformada quantizada. O aparelho de codificação pode realizar um processo de transformada/quantização nas amostras residuais e derivar coeficientes de transformada quantizada.
[0218] As informações de imagem/vídeo codificadas podem ser emitidas sob a forma de um fluxo de bits. O fluxo de bits pode ser transmitido ao aparelho de decodificação através de uma rede ou um meio de armazenamento. As informações de imagem/vídeo podem incluir adicionalmente informações relacionadas à predição, e as informações relacionadas à predição podem incluir adicionalmente informações sobre vários modos de predição (por exemplo, modo de mesclagem ou modo de MVP) e informações de MVD.
[0219] As informações de imagem codificadas podem incluir sintaxe de dados de fatia. A sintaxe de dados de fatia pode incluir um arquivo sobre uma ou mais CTUs dentro de uma fatia, e as informações indicando a CTU específica em que o conjunto de candidatos de HMVP é inicializado podem estar incluídas na sintaxe de dados de fatia.
[0220] As Figuras 28 e 29 ilustram um exemplo de um método de decodificação de imagem incluindo um método de interpredição e componentes relacionados de acordo com uma modalidade do presente relatório descritivo. O método revelado na Figura 28 pode ser realizado pelo aparelho de decodificação revelado na Figura 3. Mais especificamente, por exemplo, S2800 a S2830 da Figura
28 podem ser realizados pelo preditor 330 do aparelho de decodificação, e S2840 pode ser realizado pelo somador 340 do aparelho de decodificação. O método revelado na Figura 28 pode incluir as modalidades descritas no presente relatório descritivo.
[0221] Com referência à Figura 28, o aparelho de decodificação deriva um conjunto de candidatos de HMVP em relação a um bloco atual S2800. O aparelho de decodificação pode realizar o método de gerenciamento de conjunto de candidatos de HMVP (ou método de gerenciamento de buffer de HMVP) descrito nas modalidades do presente relatório descritivo. Por exemplo, o conjunto de candidatos de MVP pode ser atualizado com base nas informações de movimento de um bloco anterior. Aqui, o bloco anterior pode indicar um bloco codificado/processado anteriormente dentro de uma linha de CTU, em uma gravura atual, um ladrilho atual ou uma fatia atual, em que o bloco atual está situado. Também, por exemplo, o conjunto de candidatos de HMVP pode ser inicializado em uma CTU específica entre as CTUs da linha de CTU incluindo o bloco atual. Mais especificamente, por exemplo, a CTU específica pode ser a CTU primeiramente ordenada entre as CTUs da linha de CTU dentro de uma gravura atual ou a CTU primeiramente ordenada entre as CTUs da linha de CTU dentro de um ladrilho atual (ou CTU primeiramente ordenada dentro de uma fatia atual). Também, mais especificamente, por exemplo, o conjunto de candidatos de HMVP pode ser inicializado em unidades de fatia, ladrilho ou grupo de ladrilhos. E/ou o conjunto de candidatos de HMVP pode ser inicializado em unidades de linhas de CTU. O conjunto de candidatos de HMVP pode ser inicializado por linha de CTU em cada fatia, ladrilho ou grupo de ladrilhos. O ladrilho pode ser representado como uma região retangular de CTUs dentro de uma gravura.
O ladrilho pode ser especificado com base em uma linha de ladrilho específica e especificar uma coluna de ladrilho dentro da gravura. Por exemplo, um ou mais ladrilhos podem estar presentes dentro de uma gravura atual. Nesse caso, o conjunto de candidatos de HMVP pode ser inicializado em uma CTU primeiramente ordenada de uma linha de CTU incluindo o bloco atual dentro de um ladrilho atual.
Ou, uma ou mais fatias podem estar presentes dentro da gravura atual. Nesse caso, o conjunto de candidatos de HMVP pode ser inicializado em uma CTU primeiramente ordenada de uma linha de CTU incluindo o bloco atual dentro de uma fatia atual. Ou, um ou mais grupos de ladrilhos podem estar presentes dentro da gravura atual. Nesse caso, o conjunto de candidatos de HMVP pode ser inicializado em uma CTU primeiramente ordenada de uma linha de CTU incluindo o bloco atual dentro de um grupo de ladrilhos atual. O aparelho de decodificação pode determinar se a CTU atual é a CTU primeiramente ordenada da linha de CTU. Nesse caso, o conjunto de candidatos de HMVP pode ser inicializado na CTU primeiramente ordenada de uma linha de CTU em que a CTU atual incluindo o bloco atual está situada. Em outras palavras, o conjunto de candidatos de HMVP pode ser inicializado se a CTU primeiramente ordenada de uma linha de CTU em que a CTU atual incluindo o bloco atual é processada. Se for determinado que a CTU atual é a CTU primeiramente ordenada da linha de CTU dentro do ladrilho atual, o conjunto de candidatos de HMVP pode incluir um candidato de HMVP derivado com base nas informações de movimento de um bloco processado antes do bloco atual dentro da CTU atual. Se for determinado que a CTU atual não é a CTU primeiramente ordenada da linha de CTU dentro do ladrilho atual, o conjunto de candidatos de HMVP pode incluir um primeiro candidato de HMVP derivado com base nas informações de movimento de um bloco processado antes do bloco atual dentro da CTU atual e um segundo candidato de HMVP derivado com base nas informações de movimento de um bloco processado antes dentro de uma CTU anterior da CTU atual da linha de CTU dentro do ladrilho atual. Também, por exemplo, se a CU atual, que é um bloco atual, estiver situada na CTU primeiramente ordenada da linha de CTU, e a CU atual corresponder à primeira CU da CTU primeiramente ordenada, o número de candidatos de HMVP incluídos no conjunto de candidatos de HMVP é 0.
Também, por exemplo, se uma CU codificada antes da CU atual na linha de CTU (por exemplo, uma CU codificada antes da CU atual na CTU atual e/ou uma CU dentro de uma CTU codificada antes da CTU atual na linha de CTU atual) é codificada no modo inter, um candidato de HMVP pode ser derivado com base nas informações de movimento da CU codificada anteriormente e incluída no conjunto de candidatos de HMVP.
[0222] Se a imagem atual for dividida em uma pluralidade de ladrilhos, o buffer de HMVP é inicializado por cada linha de CTU em cada ladrilho.
[0223] O conjunto de candidatos de HMVP pode ser inicializado nas unidades de linhas de CTU dentro de um ladrilho ou uma fatia. Por exemplo, se uma CTU específica da linha de CTU não for a CTU primeiramente ordenada da linha de CTU dentro de uma gravura atual, porém a CTU específica for a CTU primeiramente ordenada dentro de um ladrilho atual ou uma fatia atual, o conjunto de candidatos de HMVP pode ser inicializado na CTU específica.
[0224] Se o conjunto de candidatos de HMVP for inicializado, o número de candidatos de HMVP incluídos no conjunto de candidatos de HMVP pode ser definido como 0.
[0225] A sintaxe de dados de fatia pode incluir um arquivo sobre uma ou mais CTUs dentro de uma fatia, e as informações indicando a CTU específica em que o conjunto de candidatos de HMVP é inicializado podem estar incluídas na sintaxe de dados de fatia.
[0226] O aparelho de decodificação constrói uma lista de candidatos de informações de movimento com base no conjunto de candidatos de HMVP S2810. O conjunto de candidatos 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 construída.
[0227] Como um exemplo, se o 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 de 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, incluindo candidatos de mesclagem espaciais e candidatos de mesclagem temporais) dentro da lista de candidatos de MVP em relação ao bloco atual for menor que o número máximo de candidatos de mesclagem. Nesse caso, o candidato de HMVP pode ser inserido na parte posterior dos candidatos espaciais e temporais dentro da lista de candidatos de mesclagem. Em outras palavras, um índice mais alto que os índices atribuídos aos candidatos espaciais e temporais dentro da lista de candidatos de mesclagem pode ser atribuído ao candidato de HMVP. 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 (derivados com base em blocos vizinhos espaciais e blocos vizinhos temporais) dentro da lista de candidatos de MVP em relação ao bloco atual for menor que 2.
[0228] 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 S2820.
[0229] 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. Por exemplo, se o modo de mesclagem ou modo de MVP for aplicado ao bloco atual, o candidato de HMVP que pertence ao conjunto de candidatos de HMVP pode ser usado como um candidato de mesclagem ou candidato de MVP. Por exemplo, se o modo de mesclagem for aplicado ao bloco atual, o candidato de HMVP que pertence ao conjunto de candidatos de HMVP é incluído como um candidato de uma lista de candidatos de mesclagem, e o candidato de HMVP pode ser indicado com base em um índice de mesclagem obtido a partir de um fluxo de bits entre os candidatos que pertencem à lista de candidatos de mesclagem. Nesse caso, um índice pode ser atribuído ao candidato de HMVP dentro da lista de candidatos de mesclagem com prioridade mais baixa do que os candidatos de mesclagem espacial e o candidato de mesclagem temporal que pertencem à lista de candidatos de mesclagem. Em outras palavras, o índice cujo valor é mais alto que os valores de índice dos candidatos de mesclagem espacial e o candidato de mesclagem temporal pode ser atribuído ao candidato de HMVP. Como outro exemplo, se o modo de MVP for aplicado ao bloco atual, o candidato de HMVP que pertence ao conjunto de candidatos de HMVP pode estar incluído como um candidato da lista de candidatos de mesclagem, e o candidato de HMVP pode ser indicado entre os candidatos que pertencem à lista de candidatos de MVP com base em um sinalizador de MVP (ou índice de MVP) obtido a partir de um fluxo de bits.
[0230] O aparelho de decodificação gera amostras de predição em relação ao bloco atual com base nas informações de movimento derivadas S2830. O aparelho de decodificação pode realizar a interpredição (compensação de movimento) com base nas informações de movimento e derivar amostras de predição usando amostras de referência indicadas pelas informações de movimento em uma gravura de referência.
[0231] O aparelho de decodificação gera amostras reconstruídas com base nas amostras de predição S2840. 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 obter informações residuais (incluindo informações sobre coeficientes de transformada quantizada) do fluxo de bits, derivar amostras residuais com base nas informações residuais, e gerar as amostras reconstruídas com base nas amostras residuais. Posteriormente, conforme descrito acima, um processo de filtragem em loop, como filtragem de deblocagem, o processo de SAO e/ou ALF pode ser aplicado à gravura reconstruída para aprimorar a qualidade de imagem subjetiva/objetiva dependendo das necessidades.
[0232] Nas modalidades descritas acima, os métodos são descritos de acordo com um diagrama de fluxo usando uma série de etapas e blocos. Entretanto, a modalidade correspondente não se limita a uma ordem específica das etapas, e algumas etapas podem ser realizadas com etapas diferentes e em uma ordem diferente daquelas descritas acima ou simultaneamente. Também, deve ser entendido pelos versados na técnica que as etapas mostradas no diagrama de fluxo não são exclusivas, outras etapas podem ser incluídas adicionalmente, ou uma ou mais etapas do diagrama de fluxo podem ser excluídas sem influenciar o escopo técnico do modalidades do presente relatório descritivo.
[0233] O método de acordo com as modalidades do presente relatório descritivo pode ser implementado sob a forma de software, e o aparelho de codificação e/ou aparelho de decodificação de acordo com o presente relatório descritivo pode ser incluído em um aparelho que realiza o processamento de imagens, como TV, computador, smartphone, decodificador de sinais e dispositivo de exibição.
[0234] Quando as modalidades do presente relatório descritivo são implementadas por software, o método anteriormente mencionado pode ser implementado por um módulo (processo ou função) que realiza a função supracitada. O módulo pode ser armazenado em uma memória e executado por um processador. A memória pode estar situada dentro ou fora do processador, e pode ser conectada ao processador usando vários meios bem conhecidos. O processador pode incluir um Circuito Integrado para Aplicação Específica (ASIC), outro chipset, circuito lógico e/ou dispositivo de processamento de dados. A memória pode incluir
Memória de Leitura (ROM), Memória de Acesso Aleatório (RAM), memória flash, cartão de memória, meio de armazenamento e/ou outro dispositivo de armazenamento. Em outras palavras, as modalidades descritas no presente documento podem ser implementadas e realizadas em um processador, microprocessador, controlador ou chip. Por exemplo, as unidades de função ilustradas em cada desenho podem ser implementadas e realizadas em um computador, processador, microprocessador, controlador ou chip. Nesse caso, as informações (por exemplo, informações em instruções) ou algoritmo para implementação podem ser armazenadas em um meio de armazenamento digital.
[0235] Também, o aparelho de decodificação e o aparelho de codificação aos quais as modalidades do presente relatório descritivo são aplicadas podem incluir um dispositivo de transmissão e recepção de difusão multimídia, terminal de comunicação móvel, dispositivo de vídeo de cinema em casa, dispositivo de vídeo de cinema digital, câmera de vigilância, dispositivo de comunicação de vídeo, dispositivo de comunicação em tempo real para comunicação de vídeo, dispositivo de streaming móvel, meio de armazenamento, filmadora, dispositivo de prestação de serviço de vídeo sob demanda (VoD), dispositivo de vídeo Over the top (OTT), dispositivo de prestação de serviço de streaming por Internet, dispositivo de vídeo 3D, dispositivo de realidade virtual (VR), dispositivo de realidade aumentada (AR), dispositivo de telefone de vídeo, terminal de meio de transporte (por exemplo, terminal de veículo (incluindo veículos autônomos), terminal de avião e terminal de navio) e dispositivo de vídeo médico; e podem ser usados para processar um sinal de vídeo ou um sinal de dados. Por exemplo, os dispositivos de vídeo OTT podem incluir um console de jogo, reprodutor Bluray, TV com conexão à Internet, sistema de home theater, smartphone, tablet e gravador de vídeo digital (DVR).
[0236] Além disso, um método de processamento ao qual uma modalidade do presente relatório descritivo é aplicada pode ser produzido sob a forma de um programa executado por um computador e pode ser armazenado em um meio de gravação legível por computador. Os dados de multimídia com uma estrutura de dados de acordo com a(s) modalidade(s) do presente relatório descritivo também podem ser armazenados em um meio 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 Bluray (BD), barramento serial universal (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, fita magnética, disquete e dispositivo de armazenamento óptico de dados. Também, o meio de gravação legível por computador inclui um meio implementado sob a forma de uma portadora (por exemplo, transmissão através da Internet). Também, um fluxo de bits gerado de acordo com o método de codificação pode ser armazenado em um meio de gravação legível por computador ou transmitido através de uma rede de comunicação com fio ou sem fio.
[0237] Também, a(s) modalidade(s) do presente relatório descritivo pode(m) ser implementada(s) como um produto de programa de computador sob a forma de código do programa, e o código do programa pode ser executado por um computador de acordo com a(s) modalidade(s) do presente relatório descritivo. O código do programa pode ser armazenado em uma portadora legível por computador.
[0238] A Figura 30 ilustra um exemplo de um sistema de streaming de conteúdo ao qual as modalidades reveladas no presente relatório descritivo podem ser aplicadas.
[0239] Com referência à Figura 30, o sistema de streaming de conteúdo ao qual as modalidades do presente relatório descritivo são aplicadas pode incluir amplamente um servidor de codificação, servidor de streaming, servidor da web,
armazenamento de mídia, dispositivo de usuário e dispositivo de entrada de multimídia.
[0240] O servidor de codificação exerce a função de gerar um fluxo de bits ao compactar a entrada de conteúdo de dispositivos de entrada de multimídia, como um smartphone, câmera ou filmadora, em dados digitais e transmitir o fluxo de bits gerado para o servidor de streaming. Como outro exemplo, se os dispositivos de entrada de multimídia como um smartphone, câmera ou filmadora produzem diretamente um fluxo de bits, o servidor de codificação pode ser omitido.
[0241] O fluxo de bits pode ser gerado por um método de codificação ou um método para gerar um fluxo de bits ao qual as modalidades do presente relatório descritivo são aplicadas, e o servidor de streaming pode armazenar temporariamente o fluxo de bits enquanto o fluxo de bits é transmitido ou recebido.
[0242] O servidor de streaming exerce a função de transmitir dados de multimídia para um dispositivo do usuário com base em uma solicitação do usuário através de um servidor da web, e o servidor da web exerce 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 streaming e o servidor de streaming transmite os dados de multimídia ao usuário.
Neste momento, o sistema de streaming de conteúdo pode incluir um servidor de controle separado e, neste caso, o servidor de controle exerce a função de controlar comandos/respostas entre dispositivos dentro do sistema de streaming de conteúdo.
[0243] O servidor de streaming 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 streaming suave, o servidor de streaming pode armazenar o fluxo de bits por um período de tempo predeterminado.
[0244] Exemplos do dispositivo do usuário podem incluir um telefone celular,
smartphone, laptop, terminal de difusão digital, assistente digital pessoal (PDA), reprodutor multimídia portátil (PMP), terminal de navegação, slate PC, tablet, ultrabook, dispositivo vestível (por exemplo, um relógio inteligente ou um vidro inteligente), TV digital, computador desktop e sinal digital.
[0245] Cada servidor individual dentro do sistema de streaming de conteúdo pode ser operado como um servidor distribuído e, nesse caso, os dados recebidos por cada servidor podem ser processados de maneira distribuída.

Claims (15)

REIVINDICAÇÕES
1. Método de decodificação de imagem realizado por um aparelho de decodificação, CARACTERIZADO pelo fato de que compreende: derivar um conjunto de candidatos de predição de vetor de movimento baseada 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 compreendido no conjunto de candidatos 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, em que o conjunto de candidatos de HMVP é atualizado com base em informações de movimento de um bloco anterior em uma linha de CTU em um ladrilho atual, em que a linha de CTU compreende o bloco atual, em que para CTUs da linha de CTU no ladrilho atual, o conjunto de candidatos de HMVP é apenas inicializado em uma CTU entre as CTUs da linha de CTU no ladrilho atual, e a CTU específica é uma CTU primeiramente ordenada entre as CTUs da linha de CTU no ladrilho atual.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que uma sintaxe de dados de fatia inclui um campo para uma ou mais CTUs em uma fatia, e em que as informações que representam a CTU específica na qual o conjunto de candidatos de HMVP é inicializado estão incluídas na sintaxe de dados de fatia.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, com base no conjunto de candidatos de HMVP que é inicializado, o número de candidatos de HMVP que pertencem ao conjunto de candidatos de HMVP é definido como 0.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, com base na CTU específica que não é a CTU primeiramente ordenada da linha de CTU dentro de uma imagem atual, porém a CTU primeiramente ordenada da linha de CTU dentro do ladrilho atual, o conjunto de candidatos de HMVP é inicializado na CTU específica.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, com base em uma CTU atual incluindo o bloco atual que é determinado para ser a CTU primeiramente ordenada da linha de CTU dentro do ladrilho atual, o conjunto de candidatos de HMVP inclui um candidato de HMVP derivado com base em informações de movimento de um bloco processado antes do bloco atual dentro da CTU atual, e com base em uma determinação de que a CTU atual não é a CTU primeiramente ordenada da linha de CTU dentro do ladrilho atual, o conjunto de candidatos de HMVP inclui um primeiro candidato de HMVP derivado com base em informações de movimento de um bloco processado antes do bloco atual dentro da CTU atual e um segundo candidato de HMVP derivado com base em informações de movimento de um bloco processado antes dentro de uma CTU anterior da CTU atual da linha de CTU dentro do ladrilho atual.
6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, com base na imagem atual que é dividida em uma pluralidade de ladrilhos, o buffer de HMVP é inicializado por cada linha de CTU em cada ladrilho.
7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, com base em um modo de mesclagem que é aplicado ao bloco atual, a lista de candidatos de informações de movimento é uma lista de candidatos de mesclagem,
e o candidato de HMVP que pertence ao conjunto de candidatos de HMVP é incluído como um candidato da lista de candidatos de mesclagem; e o candidato de HMVP é indicado com base em um índice de mesclagem obtido a partir de um fluxo de bits entre os candidatos que pertencem à lista de candidatos de mesclagem.
8. Método de codificação de imagem realizado por um aparelho de codificação, CARACTERIZADO pelo fato de que compreende: derivar um conjunto de candidatos de predição de vetor de movimento baseada em histórico (HMVP) em relação a um bloco atual; construir uma lista de candidatos de informações de movimento com base em candidatos de HMVP que pertencem ao conjunto de candidatos 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, em que o conjunto de candidatos de HMVP é atualizado com base em informações de movimento de um bloco anterior em uma linha de CTU em um ladrilho atual, em que a linha de CTU compreende o bloco atual, em que para CTUs da linha de CTU no ladrilho atual, o conjunto de candidatos de HMVP é inicializado apenas em uma CTU específica entre as CTUs da linha de CTU no ladrilho atual, e a CTU específica é uma CTU primeiramente ordenada entre as CTUs da linha de CTU no ladrilho atual.
9. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que uma sintaxe de dados de fatia inclui um campo para uma ou mais CTUs em uma fatia, e em que as informações que representam a CTU específica na qual o conjunto de candidatos de HMVP é inicializado estão incluídas na sintaxe de dados de fatia.
10. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que, com base na CTU específica que não é a CTU primeiramente ordenada da linha de CTU dentro da imagem atual, porém a CTU primeiramente ordenada da linha de CTU dentro do ladrilho atual, o conjunto de candidatos de HMVP é inicializado na CTU específica.
11. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que, com base no conjunto de candidatos de HMVP que é inicializado, o número de candidatos de HMVP que pertencem ao conjunto de candidatos de HMVP é definido como 0.
12. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que, com base em uma CTU atual incluindo o bloco atual que é determinado para ser a CTU primeiramente ordenada da linha de CTU dentro do ladrilho atual, o conjunto de candidatos de HMVP inclui um candidato de HMVP derivado com base em informações de movimento de um bloco processado antes do bloco atual dentro da CTU atual, e com base em uma determinação de que a CTU atual não é a CTU primeiramente ordenada da linha de CTU dentro do ladrilho atual, o conjunto de candidatos de HMVP inclui um primeiro candidato de HMVP derivado com base em informações de movimento de um bloco processado antes do bloco atual dentro da CTU atual e um segundo candidato de HMVP derivado com base em informações de movimento de um bloco processado antes dentro de uma CTU anterior da CTU atual da linha de CTU dentro do ladrilho atual.
13. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que, com base na gravura atual que é dividida em uma pluralidade de ladrilhos, o buffer de HMVP é inicializado por cada linha de CTU em cada ladrilho.
14. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que, com base em um modo de mesclagem que é aplicado ao bloco atual, a lista de candidatos de informações de movimento é uma lista de candidatos de mesclagem, e o candidato de HMVP que pertence ao conjunto de candidatos de HMVP é incluído como um candidato da lista de candidatos de mesclagem; e um índice de mesclagem incluído nas informações de imagem indica o candidato de HMVP entre candidatos que pertencem à lista de candidatos de mesclagem.
15. Meio de armazenamento digital legível por computador não temporário, CARACTERIZADO pelo fato de que o meio de armazenamento digital armazena informações de instrução que fazem com que um processador realize o método de decodificação de imagem, conforme definido na reivindicação 1.
BR112021006108-8A 2018-10-05 2019-10-04 método de codificação de imagem usando informações de movimento baseadas em histórico e dispositivo para o mesmo BR112021006108A2 (pt)

Priority Applications (2)

Application Number Priority Date Filing Date Title
BR122021010912-5A BR122021010912A2 (pt) 2018-10-05 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, mídia de armazenamento não transitória legível por computador, aparelho de decodificação para decodificação de imagem e aparelho de codificação para codificação de imagem
BR122021010905-2A BR122021010905A2 (pt) 2018-10-05 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, mídia de armazenamento não transitória legível por computador, aparelho de decodificação para decodificação de imagem e aparelho de codificação para codificação de imagem

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862742269P 2018-10-05 2018-10-05
US62/742,269 2018-10-05
PCT/KR2019/012992 WO2020071830A1 (ko) 2018-10-05 2019-10-04 히스토리 기반 움직임 정보를 이용한 영상 코딩 방법 및 그 장치

Publications (1)

Publication Number Publication Date
BR112021006108A2 true BR112021006108A2 (pt) 2021-07-20

Family

ID=70055110

Family Applications (3)

Application Number Title Priority Date Filing Date
BR112021006108-8A BR112021006108A2 (pt) 2018-10-05 2019-10-04 método de codificação de imagem usando informações de movimento baseadas em histórico e dispositivo para o mesmo
BR122021010905-2A BR122021010905A2 (pt) 2018-10-05 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, mídia de armazenamento não transitória legível por computador, aparelho de decodificação para decodificação de imagem e aparelho de codificação para codificação de imagem
BR122021010912-5A BR122021010912A2 (pt) 2018-10-05 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, mídia de armazenamento não transitória legível por computador, aparelho de decodificação para decodificação de imagem e aparelho de codificação para codificação de imagem

Family Applications After (2)

Application Number Title Priority Date Filing Date
BR122021010905-2A BR122021010905A2 (pt) 2018-10-05 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, mídia de armazenamento não transitória legível por computador, aparelho de decodificação para decodificação de imagem e aparelho de codificação para codificação de imagem
BR122021010912-5A BR122021010912A2 (pt) 2018-10-05 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, mídia de armazenamento não transitória legível por computador, aparelho de decodificação para decodificação de imagem e aparelho de codificação para codificação de imagem

Country Status (6)

Country Link
US (3) US10911754B2 (pt)
EP (1) EP3843405A4 (pt)
KR (2) KR20230132897A (pt)
CN (5) CN116684588A (pt)
BR (3) BR112021006108A2 (pt)
WO (1) WO2020071830A1 (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112369030B (zh) * 2018-07-06 2023-11-10 寰发股份有限公司 解码器的视频解码方法及装置
KR20230085219A (ko) * 2018-08-13 2023-06-13 엘지전자 주식회사 히스토리 기반 움직임 벡터에 기반한 인터 예측 방법 및 그 장치
BR112021006108A2 (pt) * 2018-10-05 2021-07-20 Lg Electronics Inc. método de codificação de imagem usando informações de movimento baseadas em histórico e dispositivo para o mesmo
CN112840658B (zh) * 2018-10-10 2023-04-28 华为技术有限公司 帧间预测方法及装置
US11025935B2 (en) * 2019-01-10 2021-06-01 Tencent America LLC Method and apparatus for history based motion information buffer update with parallel processing capability
CA3127848C (en) 2019-02-02 2024-06-11 Beijing Bytedance Network Technology Co., Ltd. Buffer management for intra block copy in video coding
CN117119200A (zh) * 2019-02-02 2023-11-24 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的缓冲区中的数据存储
CN113508597B (zh) 2019-03-01 2023-11-21 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于方向的预测
JP7284284B2 (ja) 2019-03-04 2023-05-30 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーの実装形態の態様
US10979716B2 (en) * 2019-03-15 2021-04-13 Tencent America LLC Methods of accessing affine history-based motion vector predictor buffer
JP7058329B2 (ja) * 2019-03-22 2022-04-21 エルジー エレクトロニクス インコーポレイティド Dmvrおよびbdofベースのインター予測方法および装置
JP7403245B2 (ja) * 2019-06-21 2023-12-22 キヤノン株式会社 画像復号装置、画像復号方法
CN114175633B (zh) 2019-07-10 2023-12-29 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的样点标识
US11595694B2 (en) * 2020-04-01 2023-02-28 Tencent America LLC Method and apparatus for video coding
CN117501694A (zh) * 2021-06-17 2024-02-02 北京达佳互联信息技术有限公司 用于视频编解码中的仿射运动补偿的具有双向匹配的运动细化
JP2024524402A (ja) * 2021-06-28 2024-07-05 ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド 動きベクトル改良による幾何区画モードのための方法およびデバイス

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2569491T3 (es) * 1999-02-09 2016-05-11 Sony Corporation Sistema de codificación y método asociado
JP5017223B2 (ja) * 2008-09-19 2012-09-05 株式会社東芝 映像処理装置、映像圧縮符号化装置、映像復号再生装置及び映像再生方法
US9143795B2 (en) * 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
KR20140105039A (ko) * 2012-01-20 2014-09-01 주식회사 아이벡스피티홀딩스 Amvp 모드에서의 예측 블록 생성 방법
US9729873B2 (en) * 2012-01-24 2017-08-08 Qualcomm Incorporated Video coding using parallel motion estimation
US9838684B2 (en) * 2012-04-11 2017-12-05 Qualcomm Incorporated Wavefront parallel processing for video coding
US20140098851A1 (en) * 2012-10-04 2014-04-10 Qualcomm Incorporated Indication of video properties
US9578339B2 (en) * 2013-03-05 2017-02-21 Qualcomm Incorporated Parallel processing for video coding
FR3012004A1 (fr) * 2013-10-15 2015-04-17 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
WO2015138008A1 (en) * 2014-03-10 2015-09-17 Euclid Discoveries, Llc Continuous block tracking for temporal prediction in video encoding
WO2015192780A1 (en) * 2014-06-19 2015-12-23 Mediatek Singapore Pte. Ltd. Method and apparatus of candidate generation for single sample mode in video coding
US10382791B2 (en) * 2015-03-06 2019-08-13 Qualcomm Incorporated Data structure for video coding unit
US10291923B2 (en) * 2016-05-24 2019-05-14 Qualcomm Incorporated Mapping of tile grouping and samples in HEVC and L-HEVC file formats
FI20165547A (fi) 2016-06-30 2017-12-31 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten
US10491902B1 (en) * 2018-07-16 2019-11-26 Tencent America LLC Method and apparatus for history-based motion vector prediction
BR122021011303B1 (pt) 2018-10-04 2022-06-14 Lg Electronics Inc 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
BR112021006108A2 (pt) * 2018-10-05 2021-07-20 Lg Electronics Inc. método de codificação de imagem usando informações de movimento baseadas em histórico e dispositivo para o mesmo

Also Published As

Publication number Publication date
US11601640B2 (en) 2023-03-07
US20210120236A1 (en) 2021-04-22
KR102578820B1 (ko) 2023-09-15
CN112823521B (zh) 2023-07-14
US20230171399A1 (en) 2023-06-01
CN116684588A (zh) 2023-09-01
CN112823521A (zh) 2021-05-18
KR20210044889A (ko) 2021-04-23
US10911754B2 (en) 2021-02-02
EP3843405A4 (en) 2021-10-27
US20200260072A1 (en) 2020-08-13
EP3843405A1 (en) 2021-06-30
CN116684586A (zh) 2023-09-01
KR20230132897A (ko) 2023-09-18
BR122021010905A2 (pt) 2021-07-20
CN116684587A (zh) 2023-09-01
WO2020071830A1 (ko) 2020-04-09
CN116684585A (zh) 2023-09-01
BR122021010912A2 (pt) 2021-07-20

Similar Documents

Publication Publication Date Title
BR112021006108A2 (pt) método de codificação de imagem usando informações de movimento baseadas em histórico e dispositivo para o mesmo
ES2966115T3 (es) Métodos de codificación de imagen basados en historial
BR112021002604A2 (pt) método de predição inter baseado no vetor de movimento baseado em histórico e dispositivo do mesmo
BR112021013735A2 (pt) Método de codificação de imagens e dispositivo para executar intrapredição baseada em mrl
BR112021004556A2 (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
BR112021005152A2 (pt) método de codificação de nível de fator de conversão e dispositivo para o mesmo
BR112021006580A2 (pt) método e aparelho de projeto de sintaxe para realizar codificação utilizando-se sintaxe
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
BR122023023080A2 (pt) Método e dispositivo de codificação de imagem/vídeo
BR122023022919A2 (pt) Aparelho de decodificação para uma decodificação de vídeo, aparelho de codificação para uma codificação de vídeo e aparelho para transmissão de dados para um vídeo
BR122023024708A2 (pt) Aparelho de decodificação de vídeo, aparelho de codificação de vídeo e aparelho para transmissão de dados para um vídeo
BR122023022586A2 (pt) Método e aparelho para sinalizar informações de particionamento de gravura
BR122023022608A2 (pt) Aparelho de decodificação para decodificação de imagens, aparelho de codificação de imagem para codificação de imagens e aparelho para transmissão de dados para uma informação de imagem

Legal Events

Date Code Title Description
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]
B12B Appeal against refusal [chapter 12.2 patent gazette]