BR112021000750A2 - método e aparelho para codificar/decodificar imagens e mídia de gravação na qual um fluxo de bits é armazenado - Google Patents

método e aparelho para codificar/decodificar imagens e mídia de gravação na qual um fluxo de bits é armazenado Download PDF

Info

Publication number
BR112021000750A2
BR112021000750A2 BR112021000750-4A BR112021000750A BR112021000750A2 BR 112021000750 A2 BR112021000750 A2 BR 112021000750A2 BR 112021000750 A BR112021000750 A BR 112021000750A BR 112021000750 A2 BR112021000750 A2 BR 112021000750A2
Authority
BR
Brazil
Prior art keywords
candidate list
block
information
list
motion information
Prior art date
Application number
BR112021000750-4A
Other languages
English (en)
Inventor
Jung Won Kang
Ha Hyun LEE
Sung Chang LIM
Jin Ho Lee
Hui Yong KIM
Gwang Hoon Park
Tae Hyun Kim
Dae Young Lee
Original Assignee
Electronics And Telecommunications Research Institute
University-Industry Cooperation Group Of Kyung Hee University
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 Electronics And Telecommunications Research Institute, University-Industry Cooperation Group Of Kyung Hee University filed Critical Electronics And Telecommunications Research Institute
Publication of BR112021000750A2 publication Critical patent/BR112021000750A2/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/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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Abstract

MÉTODO E APARELHO PARA CODIFICAR/DECODIFICAR IMAGENS E MÍDIA DE GRAVAÇÃO NA QUAL UM FLUXO DE BITS É ARMAZENADO. No presente relatório, é revelado um método de codificação/decodificação de imagens. Um método de codificação/decodificação de imagens de acordo com a presente invenção compreende as etapas de: derivar uma primeira lista de candidatos para o bloco atual usando informações de movimento de blocos vizinhos ao bloco atual; derivar uma segunda lista de candidatos para o bloco atual usando informações de movimento previamente reconstruídas; derivar uma terceira lista de candidatos usando a primeira lista de candidatos e a segunda lista de candidatos; e derivar um bloco de previsão para o bloco atual usando a terceira lista de candidatos.

Description

"MÉTODO E APARELHO PARA CODIFICAR/DECODIFICAR IMAGENS E MÍDIA DE GRAVAÇÃO NA QUAL UM FLUXO DE BITS É ARMAZENADO " CAMPO TÉCNICO
[001]A presente invenção refere-se a um método e aparelho para codificar/decodificar uma imagem e a um meio de gravação que armazena um fluxo de bits. Mais particularmente, a presente invenção refere-se a um método e aparelho para codificar/decodificar uma imagem e a um meio de gravação que armazena um fluxo de bits baseado em uma lista de candidatos e uma lista de modos de intraprevisão.
ANTECEDENTES DA INVENÇÃO
[002]Recentemente, a demanda por imagens em alta resolução e de alta qualidade, tais como imagens de alta definição (HD) e imagens de altíssima definição (UHD), vem crescendo em vários campos de aplicação. No entanto, imagens em resolução mais alta e de qualidade mais alta possuem quantidades crescentes de dados em comparação aos dados de imagens convencionais. Logo, ao transmitir os dados de imagem usando um meio, tal como redes de banda larga convencionais com fio e sem fio, ou ao armazenar dados de imagem usando um meio de armazenamento convencional, os custos de transmissão e armazenamento aumentam. A fim de solucionar esses problemas que ocorrem com o aumento na resolução e na qualidade dos dados de imagem, técnicas para codificar/decodificar imagens com alta eficácia fazem-se necessárias para imagens em resolução mais alta e de qualidade mais alta.
[003]A tecnologia para compressão de imagens inclui várias técnicas, inclusive: uma técnica de interprevisão para prever um valor de pixel incluído em uma cena atual com base em uma cena anterior ou subsequente à cena atual; uma técnica de intraprevisão para prever um valor de pixel incluído em uma cena atual usando de informações de pixel na cena atual; uma técnica de transformada e quantização para comprimir a energia de um sinal residual; uma técnica de codificação entrópica para atribuir um código curto a um valor com uma frequência de aparição alta e atribuir um código longo a um valor com uma frequência de aparição baixa; etc. Os dados de imagem podem ser comprimidos com eficácia usando tal tecnologia para compressão de imagens e podem ser transmitidos ou armazenados.
REVELAÇÃO PROBLEMA TÉCNICO
[004]Um objetivo da presente invenção consiste em propor um método e aparelho para codificar/decodificar uma imagem com uma eficácia de compressão aprimorada e um meio de gravação que armazene um fluxo de bits gerado pelo método e aparelho para codificar/decodificar a imagem.
[005]Além disso, um objetivo da presente invenção consiste em propor um método e aparelho para codificar/decodificar uma imagem e um meio de gravação que armazene um fluxo de bits que possui uma eficácia de compressão aprimorada usando uma lista de candidatos.
[006]Outro objetivo da presente invenção consiste em propor um método e aparelho para codificar/decodificar uma imagem e um meio de gravação que armazene um fluxo de bits que possui eficácia de compressão aprimorada usando uma lista de modos de intraprevisão.
SOLUÇÃO TÉCNICA
[007]De acordo com a presente invenção, um método para a decodificação de imagens compreende derivar uma primeira lista de candidatos para um bloco atual usando informações de movimento de um bloco vizinho ao bloco atual, derivar uma segunda lista de candidatos para o bloco atual usando informações de movimento previamente reconstruídas, derivar uma terceira lista de candidatos usando a primeira lista de candidatos e a segunda lista de candidatos, e gerar um bloco de previsão para o bloco atual usando a terceira lista de candidatos.
[008]No método de decodificação de vídeo, o bloco vizinho inclui ao menos um de um bloco vizinho espacial e um bloco vizinho temporal.
[009]No método de decodificação de vídeo, a derivação da segunda lista de candidatos inclui adicionar as informações de movimento previamente reconstruídas à segunda lista de candidatos, em que as informações de movimento previamente reconstruídas são informações de movimento de um bloco de codificação decodificado imediatamente antes da decodificação do bloco atual.
[010]O método de decodificação de vídeo compreende ainda inicializar a segunda lista de candidatos, em que a segunda lista de candidatos é inicializada com base na divisa de uma fileira de unidades de árvore de codificação (CTU).
[011]O método de decodificação de vídeo compreende ainda, quando o número de informações de movimento incluídas na segunda lista de candidatos for de um valor predeterminado, excluir informações de movimento incluídas na segunda lista de candidatos primeiramente dentre as informações de movimento incluídas na segunda lista de candidatos.
[012]No método de decodificação de vídeo, as informações de movimento previamente reconstruídas são adicionadas em uma próxima ordem de informações de movimento incluídas na segunda lista de candidatos por último.
[013]O método de decodificação de vídeo compreende ainda, quando informações de movimento iguais às informações de movimento previamente reconstruídas já estiverem incluídas na segunda lista de candidatos, excluir as informações de movimento iguais da segunda lista de candidatos.
[014]No método de decodificação de vídeo, as informações de movimento previamente reconstruídas são adicionadas em uma próxima ordem de informações de movimento incluídas na segunda lista de candidatos por último.
[015]No método de decodificação de vídeo, o número máximo de informações de movimento que podem ser incluídas na segunda lista de candidatos é predeterminado.
[016]O método de decodificação de vídeo compreende ainda derivar informações de movimento médias calculando a média de várias informações de movimento incluídas na terceira lista de candidatos e adicionar as informações de movimento médias à terceira lista de candidatos.
[017]O método de decodificação de vídeo compreende ainda dividir o bloco atual em uma primeira região e uma segunda região, em que gerar o bloco de previsão para o bloco atual inclui gerar blocos de previsão para a primeira região e a segunda região usando a terceira lista de candidatos.
[018]No método de codificação de vídeo, utiliza-se a terceira lista de candidatos para gerar um bloco de previsão de cópia intrabloco (IBC) para o bloco atual.
[019]De acordo com a presente invenção, o método de decodificação de imagens compreende determinar informações de movimento de um bloco atual, derivar uma primeira lista de candidatos para o bloco atual usando informações de movimento de um bloco vizinho ao bloco atual, derivar uma segunda lista de candidatos para o bloco atual usando informações de movimento previamente codificadas e derivar uma terceira lista de candidatos usando a primeira lista de candidatos e a segunda lista de candidatos.
[020]No método de codificação de vídeo, a derivação da segunda lista de candidatos inclui adicionar as informações de movimento previamente codificadas à segunda lista de candidatos, em que as informações de movimento previamente codificadas são informações de movimento de um bloco de codificação codificado imediatamente antes da codificação do bloco atual.
[021]O método de codificação de vídeo compreende ainda inicializar a segunda lista de candidatos, em que a segunda lista de candidatos é inicializada com base na divisa de uma fileira de unidades de árvore de decodificação (CTU).
[022]O método de decodificação de vídeo compreende ainda, quando o número de informações de movimento incluídas na segunda lista de candidatos for de um valor predeterminado, excluir informações de movimento incluídas na segunda lista de candidatos primeiramente dentre as informações de movimento incluídas na segunda lista de candidatos.
[023]O método de decodificação de vídeo compreende ainda, quando mesmas informações de movimento iguais às informações de movimento previamente codificadas já estiverem incluídas na segunda lista de candidatos, excluir as informações de movimento iguais da segunda lista de candidatos.
[024]No método de codificação de vídeo, o número de informações de movimento que podem ser incluídas na segunda lista de candidatos é predeterminado.
[025]De acordo com a presente invenção, é proposto um meio de gravação legível por computador que armazena um fluxo de bits que é recebido por um aparelho decodificador de imagens e usado para reconstruir um bloco atual incluído em uma cena atual, em que o fluxo de bits inclui informações sobre a previsão do bloco atual, as informações sobre a previsão sendo usadas para derivar uma primeira lista de candidatos para o bloco atual usando informações de movimento de um bloco vizinho ao bloco atual, as informações sobre a previsão sendo usadas para derivar uma segunda lista de candidatos para o bloco atual usando informações de movimento previamente reconstruídas, e a primeira lista de candidatos e a segunda lista de candidatos sendo usadas para derivar uma terceira lista de candidatos usada para gerar um bloco de previsão para o bloco atual.
EFEITOS VANTAJOSOS
[026]De acordo com a presente invenção, é possível propor um método e aparelho para codificar/decodificar uma imagem com uma eficácia de compressão aprimorada e um meio de gravação que armazene um fluxo de bits gerado pelo método e aparelho para codificar/decodificar a imagem.
[027]Além disso, de acordo com a presente invenção, é possível propor um método e aparelho para codificar/decodificar uma imagem e um meio de gravação que armazene um fluxo de bits que possui uma eficácia de compressão aprimorada usando uma lista de candidatos.
[028]Além disso, de acordo com a presente invenção, é possível propor um método e aparelho para codificar/decodificar uma imagem e um meio de gravação que armazene um fluxo de bits que possui uma eficácia de compressão aprimorada usando uma lista de modos de intraprevisão.
DESCRIÇÃO DOS DESENHOS
[029]A FIG. 1 é uma vista de um diagrama em blocos que ilustra uma configuração de um aparelho codificador ao qual a presente invenção se aplica.
[030]A FIG. 2 é uma vista de um diagrama em blocos que ilustra uma configuração de um aparelho decodificador ao qual a presente invenção se aplica.
[031]A FIG. 3 é uma vista que ilustra esquematicamente uma estrutura de partição ao codificar e decodificar uma imagem.
[032]A FIG. 4 é uma vista que ilustra um exemplo de intraprevisão.
[033]A FIG. 5 é uma vista que ilustra um exemplo de interprevisão.
[034]A FIG. 6 é uma vista que ilustra um exemplo de transformada e quantização.
[035]A FIG. 7 é uma vista que ilustra amostras de referência que são úteis para a intraprevisão.
[036]A FIG. 8 é um diagrama que ilustra uma unidade de previsão superior (UPU) usada em algumas modalidades da presente invenção.
[037]A FIG. 9 é um diagrama que ilustra uma estrutura de um codificador de acordo com uma modalidade da presente invenção.
[038]A FIG. 10 é um diagrama que ilustra uma estrutura de um decodificador de acordo com uma modalidade da presente invenção.
[039]A FIG. 11 é um fluxograma que ilustra um método de codificação/decodificação de acordo com uma modalidade da presente invenção.
[040]A FIG. 12 é um diagrama que ilustra a estrutura de um codificador e decodificador de acordo com outra modalidade da presente invenção.
[041]A FIG. 13 é um diagrama que ilustra uma lista de candidatos de acordo com uma modalidade da presente invenção.
[042]A FIG. 14 é um diagrama que ilustra um método para adicionar informações de movimento a uma lista de candidatos de acordo com uma modalidade da presente invenção.
[043]A FIG. 15 é outro diagrama que ilustra um método para adicionar informações de movimento a uma lista de candidatos de acordo com uma modalidade da presente invenção.
[044]A FIG. 16 é um diagrama que ilustra um método para adicionar informações de movimento a uma lista de candidatos de acordo com uma modalidade da presente invenção.
[045]As FIGs. 17 a 20 são diagramas que ilustram uma estrutura sintática de acordo com algumas modalidades da presente invenção.
[046]As FIGs. 21 e 22 são diagramas que ilustram fluxogramas de um codificador e um decodificador para aproximar as informações de movimento de acordo com algumas modalidades da presente invenção.
[047]As FIGs. 23 e 24 são diagramas que ilustram a estrutura de um codificador e decodificador para aproximar as informações de movimento de acordo com algumas modalidades da presente invenção.
[048]As FIGs. 25 e 26 são diagramas que ilustram um método para calcular o potencial de uma lista de candidatos de acordo com algumas modalidades da presente invenção.
[049]As FIGs. 27 e 28 são diagramas que ilustram a estrutura de um codificador e decodificador para calcular o potencial de uma lista de candidatos de acordo com algumas modalidades da presente invenção.
[050]A FIG. 29 é um diagrama que ilustra a estrutura de um codificador e decodificador para calcular o potencial de previsão de uma lista de candidatos de acordo com algumas modalidades da presente invenção.
[051]A FIG. 30 é um diagrama que ilustra a geração de uma lista de candidatos mista de acordo com uma modalidade da presente invenção.
[052]As FIGs. 31 e 32 são diagramas que ilustram um método para inicializar uma lista de candidatos de acordo com algumas modalidades da presente invenção.
[053]A FIG. 33 é um diagrama que ilustra o escalonamento de informações de movimento.
[054]A FIG. 34 é um diagrama que ilustra o escalonamento de informações de movimento de acordo com uma modalidade da presente invenção.
[055]As FIGs. 35 a 39 são diagramas que ilustram um método para atualizar e compartilhar uma lista de candidatos de acordo com algumas modalidades da presente invenção.
[056]A FIG. 40 é um diagrama que ilustra uma lista de candidatos composta por uma única UPU e uma lista de candidatos composta por várias UPUs de acordo com uma modalidade da presente invenção.
[057]A FIG. 41 é um fluxograma que ilustra um método de decodificação de acordo com uma modalidade da presente invenção.
[058]A FIG. 42 é um fluxograma que ilustra um método de codificação de acordo com uma modalidade da presente invenção.
[059]As FIGs. 43 e 44 são diagramas que ilustram os candidatos a MPM.
[060]A FIG. 45 é um diagrama que ilustra um exemplo de seleção de um modo de intraprevisão.
[061]A FIG. 46 é um diagrama que ilustra um caso no qual um modo de intraprevisão de um bloco atual não é incluído em uma lista de MPM.
[062]A FIG. 47 é um diagrama que ilustra um método para configurar uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[063]A FIG. 48 é outro diagrama que ilustra um método para configurar uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[064]A FIG. 49 ilustra um método que ilustra uma lista de modos de intraprevisão baseada na contagem de acordo com uma modalidade da presente invenção.
[065]A FIG. 50 é um diagrama que ilustra um método para configurar uma lista de modos de intraprevisão baseada no custo de acordo com uma modalidade da presente invenção.
[066]As FIGs. 51 e 52 são diagramas que ilustram um método para mudar o índice de uma lista de modos de intraprevisão de acordo com algumas modalidades da presente invenção.
[067]As FIGs. 53 e 54 são diagramas que ilustram uma região configurando uma lista de modos de intraprevisão de acordo com algumas modalidades da presente invenção.
[068]A FIG. 55 é um diagrama que ilustra um método para configurar uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[069]As FIGs. 56 a 58 são diagramas que ilustram um método para alocar um índice de um modo de intraprevisão de acordo com algumas modalidades da presente invenção.
[070]A FIG. 59 é um diagrama que ilustra um método para configurar várias listas de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[071]As FIGs. 60 e 61 são diagramas que ilustram um método para configurar várias listas de modos de intraprevisão levando em consideração a direção de um modos de previsão de acordo com uma modalidade da presente invenção.
[072]A FIG. 62 é um diagrama que ilustra a estrutura de um codificador e decodificador para adicionar uma lista de intraprevisão de acordo com uma modalidade da presente invenção.
[073]A FIG. 63 é um diagrama que ilustra um método para adicionar uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[074]A FIG. 64 é um diagrama que ilustra um método para mudar a ordem de substituição levando em consideração o modo intraprevisão de um bloco vizinho de acordo com uma modalidade da presente invenção.
[075]A FIG. 65 é um diagrama que ilustra um método para aplicar uma lista de modos de intraprevisão a um modo MPM de acordo com uma modalidade da presente invenção. A FIG. 66 é um diagrama para descrever um método para aplicar uma lista de modos de intraprevisão a um modo não MPM por um codificador de acordo com uma modalidade da presente invenção.
[076]A FIG. 66 é um diagrama que ilustra um método para aplicar uma lista de modos de intraprevisão a um modo não MPM por um codificador de acordo com uma modalidade da presente invenção.
[077]A FIG. 67 é um diagrama que ilustra um método para aplicar uma lista de modos de intraprevisão a um modo não MPM por um decodificador de acordo com uma modalidade da presente invenção.
[078]A FIG. 68 é um diagrama que ilustra um método para codificar/decodificar uma imagem usando uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[079]A FIG. 69 é um diagrama que ilustra um método para configurar uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[080]As FIGs. 70 e 71 são diagramas que ilustram um método de codificação/decodificação de acordo com algumas modalidades da presente invenção.
[081]A FIG. 72 é um diagrama que ilustra um método para inicializar uma lista de intraprevisão de acordo com uma modalidade da presente invenção.
[082]A FIG. 73 é um diagrama que ilustra a sintaxe de uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
MELHOR MODO
[083]Uma variedade de modificações pode ser feita à presente invenção, e há várias modalidades da presente invenção, exemplos das quais serão dados doravante com referência aos desenhos e descritos em detalhes. No entanto, a presente invenção não se limita a esses, embora as modalidades exemplificativas possam ser interpretadas como se incluíssem todas as modificações, equivalentes ou substituintes em um conceito técnico e um âmbito técnico da presente invenção. Números semelhantes referem-se a funções iguais ou semelhantes em vários aspectos. Nos desenhos, os formatos e dimensões dos elementos podem ser exagerados para fins de clareza. Na descrição detalhada da presente invenção a seguir, far-se-á referência aos desenhos anexos, que representam, à guisa de ilustração, modalidades específicas nas quais a invenção pode ser praticada.
Essas modalidades são descritas em detalhes suficientes para permitir que os versados na técnica implementem a presente revelação. Deve-se ter em mente que várias modalidades da presente revelação, embora diferentes, não são necessariamente se excluem mutuamente. Por exemplo, traços, estruturas e características específicos descritos neste documento com relação a uma modalidade podem ser implementados em outras modalidades sem divergir do âmbito nem da essência da presente invenção. Além disso, deve-se ter em mente que a localização ou disposição de elementos individuais dentro de cada modalidade revelada podem ser modificadas sem divergir do âmbito nem da essência da presente invenção. A descrição detalhada a seguir, portanto, não deve ser interpretada de maneira exaustiva, sendo o âmbito da presente invenção definido pelas reivindicações apensas, interpretadas de maneira apropriada, junto com a gama total de equivalentes que as reivindicações reclamam.
[084]No presente relatório, os termos "primeiro", "segundo" etc. são usados para descrever vários componentes, mas esses componentes não serão interpretados como se fossem por eles limitados. Tais termos são usados tão somente para diferenciar um componente do outro. Por exemplo, o 'primeiro' componente poderia ser chamado de 'segundo' componente sem divergir do âmbito da presente invenção, e o 'segundo' componente, outrossim, também poderia ser chamado de 'primeiro' componente. O termo 'e/ou' inclui uma combinação de vários itens ou qualquer um de vários termos.
[085]Entender-se-á que, quando se diz simplesmente que um elemento 'conecta-se' ou 'acopla-se' a outro sem que 'conecte-se diretamente' ou 'acople-se diretamente' a outro, ele poderá 'conectar-se diretamente' ou 'acoplar-se diretamente' ao outro elemento ou conectar-se ou acoplar-se ao outro elemento com um elemento intermediário entre eles. Em contrapartida, deve-se ter em mente que, quando se diz que um elemento "acopla-se diretamente" ou "conecta- se diretamente" a outro, é porque não há elementos intermediários presentes.
[086]Além disso, as partes constitutivas representadas nas modalidades da presente invenção são ilustradas independentemente a fim de representar funções características diferentes umas das outras. Logo, isso não significa que cada parte constitutiva constitua uma unidade constitutiva de hardware ou software separadas. Em outras palavras, cada parte constitutiva inclui cada uma das partes constitutivas enumeradas para fins de conveniência. Logo, ao menos duas partes constitutivas de cada parte constitutiva podem ser combinadas para formar uma parte constitutiva ou uma parte constitutiva pode ser dividida em várias partes constitutivas para desempenhar cada função. A modalidade na qual cada parte constitutiva é combinada e a modalidade na qual uma parte constitutiva é dividida incluem-se no âmbito da presente invenção, contanto que não divirjam da essência desta.
[087]Os termos no presente relatório são usados meramente para descrever modalidades específicas, e não visam a limitar a presente invenção. Uma expressão usada no singular abrange a mesma expressão no plural, salvo quando o contexto ditar um significado claramente distinto. No presente relatório, deve-se ter em mente que termos como "incluir", "ter" etc. visam a indicar a existência dos traços, números, etapas, ações, elementos, partes ou combinações dos mesmos revelados no relatório e não visam a impossibilitar que um ou mais outros traços, números, etapas, ações, elementos, partes ou combinações dos mesmos coexistam ou possam ser adicionados. Em outras palavras, quando diz-se que um termo específico é "incluído", elementos diferentes do elemento correspondente não são excluídos, mas, em vez disso, elementos adicionais podem ser incluídos em modalidades da presente invenção ou no âmbito da presente invenção.
[088]No mais, alguns constituintes podem não ser indispensáveis ao desempenho de funções essenciais da presente invenção, mas sim ser constituintes seletos que simplesmente melhoram o desempenho da mesma. A presente invenção pode ser implementada incluindo somente as partes constitutivas indispensáveis para implementar sua essência, excetuando-se os constituintes usados para melhorar seu desempenho. A estrutura que inclui somente os constituintes indispensáveis, executando-se os constituintes seletos usados tão somente para melhorar o desempenho, também está incluída no âmbito da presente invenção.
[089]Doravante, descrever-se-ão modalidades da presente invenção em detalhes e com referência aos desenhos anexos. Na descrição de modalidades exemplificativas da presente invenção, funções ou estruturas familiares não serão descritas em detalhes, uma vez que estes poderiam obscurecer desnecessariamente a compreensão da presente invenção. Elementos constitutivos iguais nos desenhos são indicados por números de referência iguais, e descrições redundantes dos mesmos elementos serão omitidas.
[090]Doravante, uma imagem pode significar uma cena configurando um vídeo ou pode significar o próprio vídeo. Por exemplo, "codificar ou decodificar uma imagem, ou ambos" pode significar "codificar ou decodificar uma cena móvel, ou ambos" e pode significar "codificar ou decodificar uma das imagens de uma cena móvel, ou ambos".
[091]Doravante, os termos "cena móvel" e "vídeo" podem ser usados com o mesmo significado ou substituir um ao outro.
[092]Doravante, uma imagem alvo pode ser uma imagem alvo de codificação, que é um alvo de codificação, e/ou uma imagem alvo de decodificação, que é um alvo de decodificação. Ademais, uma imagem alvo pode ser uma imagem de entrada que chega a um aparelho codificador e uma imagem de entrada que chega a um aparelho de decodificação. Aqui, uma imagem alvo pode ter o mesmo significado que a imagem atual.
[093]Doravante, os termos "imagem", "cena", "quadro" e "tela" podem ser usados com o mesmo significado e substituir uns aos outros.
[094]Doravante, um bloco alvo pode ser um bloco alvo de codificação, que é um alvo de codificação, e/ou um bloco alvo de decodificação, que é um alvo de decodificação. Ademais, um bloco alvo pode ser o bloco atual que é um alvo de codificação e/ou decodificação atual. Por exemplo, os termos "bloco alvo" e "bloco atual" podem ser usados com o mesmo significado e substituir um ao outro.
[095]Doravante, os termos "bloco" e "unidade" podem ser usados com o mesmo significado ou substituir um ao outro. Ou um "bloco" pode representar uma unidade específica.
[096]Doravante, os termos "região" e "segmento" podem substituir um ao outro.
[097]Doravante, um sinal específico podem ser um sinal representando um bloco específico. Por exemplo, um sinal original pode ser um sinal representando um bloco alvo. Um sinal de previsão pode ser um sinal representando um bloco de previsão. Um sinal residual pode ser um sinal representando um bloco residual.
[098]Em algumas modalidades, cada um de informação, dados, flag, índice, elemento, atributo etc. específicos pode ter um valor. Um valor de informação, dados, flag, índice, elemento e atributo igual a "0" pode representar uma lógica falsa ou o primeiro valor predefinido. Em outras palavras, valor "0", falso, lógica falsa e primeiro valor predefinido podem substituir uns aos outros. Um valor de informação, dados, flag, índice, elemento e atributo igual a "1" pode representar uma lógica verdadeira ou o segundo valor predefinido. Em outras palavras, valor "1", verdadeiro, lógica verdadeira e segundo valor predefinido podem substituir uns aos outros.
[099]Quando uma variável i ou j é usada para representar uma coluna, uma fileira ou um índice, o valor de i pode ser um número inteiro igual ou superior a 0, ou igual ou superior a 1. Ou seja, a coluna, fileira, índice etc. podem ser contabilizados a partir de 0 ou podem ser contabilizados a partir de 1.
DESCRIÇÃO DOS TERMOS
[0100]Codificador: significa um aparelho que desempenha procedimentos de codificação. Ou seja, significa um aparelho codificador.
[0101]Decodificador: significa um aparelho que desempenha procedimentos de decodificação. Ou seja, significa um aparelho decodificador.
[0102]Bloco: é um arranjo MxN de uma amostra. Neste documento, M e N podem significar números inteiros positivos médios, e o bloco pode significar um arranjo de amostra de uma forma bidimensional. O bloco pode referir-se a uma unidade. Um bloco atual pode significar um bloco alvo de codificação, que torna-se alvo quando da codificação, ou um bloco alvo de decodificação, que torna-se um alvo quando da decodificação. Além disso, o bloco atual pode ser ao menos um de um bloco de codificação, um bloco de previsão, um bloco residual e um bloco de transformada.
[0103]Amostra: é uma unidade básica que constitui um bloco. Ela pode ser expressa por um valor de 0 a 2Bd - 1 de acordo com uma profundidade de bit (Bd).
Na presente invenção, a amostra pode ser usada com o significado de um pixel. Ou seja, uma amostra, um pel e um pixel têm o mesmo significado.
[0104]Unidade: pode referir-se a uma unidade de codificação e decodificação. Quando da codificação e decodificação de uma imagem, a unidade pode ser uma região gerada ao particionar uma imagem simples. Além disso, a unidade pode significar uma unidade subdividida quando uma imagem simples é particionada em unidades subdivididas durante a codificação ou decodificação. Ou seja, uma imagem pode ser particionada em várias unidades. Quando da codificação e decodificação de uma imagem, pode ser executado um processo predeterminado para cada unidade. Uma unidade simples pode ser particionada em subunidades com tamanhos menores do que o tamanho da unidade. Dependendo das funções, a unidade pode significar um bloco, um macrobloco, uma unidade de árvore de codificação, uma unidade de codificação, um bloco de codificação, uma unidade de previsão, um bloco de previsão, uma unidade residual, um bloco residual, uma unidade de transformada, um bloco de transformada etc. Além disso, a fim de distinguir entre uma unidade e um bloco, a unidade pode incluir um bloco de componente luma, um bloco de componente croma associado ao bloco de componente luma, e um elemento sintático do bloco de componente de cada cor. A unidade pode ter vários tamanhos e formatos, e, em particular, o formato da unidade pode ser uma figura geométrica bidimensional, tal como um formato quadrado, um formato retangular, um formato trapezoide, um formato triangular, um formato pentagonal etc. Além disso, informações de unidade podem incluir ao menos um de um tipo de unidade indicando a unidade de codificação, a unidade de previsão, a unidade de transformada etc., e um tamanho de unidade, uma profundidade de unidade, uma sequência de codificação e decodificação de uma unidade etc.
[0105]Unidade de árvore de codificação: é configurada com um único bloco de árvore de codificação de um componente luma Y e dois blocos de árvore de codificação relacionados a componentes croma Cb e Cr. Além disso, pode significar uma unidade de árvore de codificação incluindo os blocos e um elemento sintático de cada bloco. Cada unidade de árvore de codificação pode ser particionada usando ao menos um de um método de particionamento em árvore quaternária, um método de particionamento em árvore binária e um método de particionamento em árvore terciária para configurar uma unidade menor, tal como uma unidade de codificação, unidade de previsão, unidade de transformada etc..
Ela pode ser usada como um termo para designar um bloco de amostra que torna- se uma unidade de processo ao codificar/decodificar uma imagem como uma imagem de entrada. Aqui, a árvore quaternária pode ser chamada de quadtree.
[0106]Quando o tamanho do bloco de codificação encontra-se dentro de uma faixa predeterminada, a divisão usando somente o particionamento em árvore quaternária é possível. Aqui, a faixa predeterminada pode ser definida por ao menos um de um tamanho máximo e um tamanho mínimo de um bloco de codificação no qual a divisão é possível usando somente o particionamento em árvore quaternária. Informações indicando o tamanho máximo/mínimo de um bloco de codificação no qual o particionamento em árvore quaternária é permitido podem ser sinalizadas através de um fluxo de bits, e as informações podem ser sinalizadas em ao menos uma unidade de uma sequência, um parâmetro de cena, um grupo de tiles ou uma fatia (segmento). Como alternativa, o tamanho máximo/mínimo do bloco de codificação pode ser um tamanho fixo predeterminado no codificador/decodificador. Por exemplo, quando o tamanho do bloco de codificação corresponde a 256x256 a 64x64, a divisão só é possível usando o particionamento em árvore quaternária. Como alternativa, quando o tamanho do bloco de codificação é maior do que o tamanho do bloco de conversão máximo, a divisão só é possível usando o particionamento em árvore quaternária. Neste documento, o bloco a ser dividido pode ser ao menos um de um bloco de codificação e um bloco de transformada. Nesse caso, informações indicando a divisão do bloco codificado (por exemplo, split_flag) podem ser uma flag indicando se deve-se ou não realizar o particionamento em árvore quaternária. Quando o tamanho do bloco de codificação enquadra-se em uma faixa predeterminada, a divisão só é possível usando o particionamento em árvore binária ou terciária. Nesse caso, a descrição acima do particionamento em árvore quaternária pode ser aplicada da mesma maneira ao particionamento em árvore binária ou particionamento em árvore terciária.
[0107]Bloco de árvore de codificação: pode ser usado como um termo para designar qualquer um de um bloco de árvore de codificação Y, bloco de árvore de codificação Cb e bloco de árvore de codificação Cr.
[0108]Bloco vizinho: pode significar um bloco adjacente a um bloco atual. O bloco adjacente ao bloco atual pode significar um bloco que faz contato com um limite do bloco atual, ou um bloco posicionado dentro de uma distância predeterminada em relação ao bloco atual. O bloco vizinho pode significar um bloco adjacente ao vértice do bloco atual. Neste documento, o bloco adjacente ao vértice do bloco atual pode significar um bloco verticalmente adjacente a um bloco vizinho que é horizontalmente adjacente ao bloco atual, ou um bloco horizontalmente adjacente a um bloco vizinho que é verticalmente adjacente ao bloco atual.
[0109]Bloco vizinho reconstruído: pode significar um bloco vizinho adjacente a um bloco atual e que já foi espacial/temporalmente codificado ou decodificado. Neste documento, o bloco vizinho reconstruído pode significar uma unidade vizinha reconstruída. Um bloco vizinho espacial reconstruído pode ser um bloco dentro de uma cena atual e que já foi reconstruído através de codificação ou decodificação, ou ambas. Um bloco vizinho temporal reconstruído é um bloco em uma posição correspondente ao bloco atual da cena atual dentro de uma imagem de referência, ou um bloco vizinho do mesmo.
[0110]Profundidade de unidade: pode significar o grau de particionamento de uma unidade. Em uma estrutura de árvore, o nó mais alto (Nó Raiz) pode corresponder à primeira unidade que não é particionada. Ademais, o nó mais alto pode ter o menor valor de profundidade. Nesse caso, o nó mais alto pode ter uma profundidade de nível 0. Um nó com uma profundidade de nível 1 pode representar uma unidade gerada particionando uma vez a primeira unidade. Um nó com uma profundidade de nível 2 pode representar uma unidade gerada particionando duas vezes a primeira unidade. Um nó com uma profundidade de nível n pode representar uma unidade gerada particionando n vezes a primeira unidade. Um Nó Folha pode ser o nó mais baixo e um nó que não pode ser mais particionado. A profundidade de um Nó Folha pode ser o nível máximo. Por exemplo, um valor predefinido do nível máximo pode ser 3. A profundidade de um nó raiz pode ser a menos profunda, e a profundidade de um nó folha pode ser a mais profunda. Além disso, quando uma unidade é expressa como uma estrutura de árvore, o nível no qual a unidade se faz presente pode significar a profundidade da unidade.
[0111]Fluxo de bits: pode significar um fluxo de bits que inclui informações de imagem de codificação.
[0112]Conjunto de parâmetros: corresponde às informações de cabeçalho entre uma configuração dentro de um fluxo de bits. Ao menos um de um conjunto de parâmetros de vídeo, um conjunto de parâmetros de sequência, um conjunto de parâmetros de cena e um conjunto de parâmetros de adaptação pode ser incluído em um conjunto de parâmetros. Além disso, um conjunto de parâmetros pode incluir um cabeçalho de fatia, um cabeçalho de grupo de tiles e informações de cabeçalho de tile. O termo "grupo de tiles" significa um grupo de tiles e tem o mesmo significado que uma fatia.
[0113]Análise sintática: pode significar a determinação de um valor de um elemento sintático ao desempenhar a decodificação entrópica, ou pode significar a própria decodificação entrópica.
[0114]Símbolo: pode significar ao menos um de um elemento sintático, um parâmetro de codificação e um valor de coeficiente de transformada de uma unidade alvo de codificação/decodificação. Além disso, o símbolo pode significar um alvo de codificação entrópica ou um resultado de decodificação entrópica.
[0115]Modo de previsão: pode ser informações indicando um modo codificado/decodificado com intraprevisão ou um modo codificado/decodificado com interprevisão.
[0116]Unidade de previsão: pode significar uma unidade básica quando executando uma previsão, tal como interprevisão, intraprevisão, intercompensação, intracompensação e compensação de movimento. Uma unidade de previsão simples pode ser particionada em uma pluralidade de partições de menor tamanho, ou pode ser particionada em uma pluralidade de unidades de previsão menores. Uma pluralidade de partições pode ser uma unidade básica na execução de uma previsão ou compensação. Uma partição que é gerada dividindo uma unidade de previsão também pode ser uma unidade de previsão.
[0117]Partição de unidade de previsão: pode significar uma forma obtida particionando uma unidade de previsão.
[0118]Lista de cenas de referência pode referir-se a uma lista que inclui uma ou mais cenas de referência usadas para a interprevisão ou compensação de movimento. Há vários tipos de listas de cenas de referência úteis, incluindo LC (Lista combinada), L0 (Lista 0), L1 (Lista 1), L2 (Lista 2), L3 (Lista 3).
[0119]Indicador de interprevisão pode referir-se à direção de interprevisão (previsão unidirecional, previsão bidirecional etc.) de um bloco atual. Como alternativa, pode referir-se ao número de cenas de referência usadas para gerar um bloco de previsão de um bloco atual. Como alternativa, pode referir-se ao número de blocos de previsão usados na hora da interprevisão ou compensação de movimento em um bloco atual.
[0120]Flag de utilização de lista de previsão indica se um bloco de previsão é gerado usando ao menos uma cena de referência em uma lista de cenas de referência específica. Um indicador de interprevisão pode ser derivado usando uma flag de utilização de lista de previsão e, de modo oposto, uma flag de utilização de lista de previsão pode ser derivada usando um indicador de interprevisão. Por exemplo, quando a flag de utilização de lista de previsão possui um primeiro valor zero (0), significa que uma cena de referência em uma lista de cenas de referência não é usada para gerar um bloco de previsão. Por outro lado, quando a flag de utilização de lista de previsão possui um segundo valor um (1), significa que uma lista de cenas de referência é usada para gerar um bloco de previsão.
[0121]Índice de cena de referência pode referir-se a um índice indicando uma cena de referência específica em uma lista de cenas de referência.
[0122]Cena de referência pode significar uma cena de referência que é aludida por um bloco específico para os fins de interprevisão ou compensação de movimento do bloco específico. Como alternativa, a cena de referência pode ser uma cena que inclui um bloco de referência aludido por um bloco atual para a interprevisão ou compensação de movimento. Doravante, os termos "cena de referência" e "imagem de referência" têm o mesmo significado e podem ser intercambiados.
[0123]Vetor de movimento pode ser um vetor bidimensional usado para a interprevisão ou compensação de movimento. O vetor de movimento pode significar um desvio entre um bloco alvo de codificação/decodificação e um bloco de referência. Por exemplo, (mvX, mvY) pode representar um vetor de movimento.
Aqui, mvX pode representar um componente horizontal e mvY pode representar um componente vertical.
[0124]Faixa de pesquisa pode ser uma região bidimensional que é buscada para recuperar um vetor de movimento durante uma interprevisão. Por exemplo, o tamanho da faixa de pesquisa pode ser MxN. Aqui, ambos M e N são números inteiros.
[0125]Candidato a vetor de movimento pode referir-se a um bloco candidato a previsão ou a um vetor de movimento do bloco candidato a previsão quando da previsão de um vetor de movimento. Além disso, um candidato a vetor de movimento pode ser incluído em uma lista de candidatos a vetor de movimento.
[0126]A lista de candidatos a vetor de movimento pode significar uma lista composta por um ou mais candidatos a vetor de movimento.
[0127]Índice de candidato a vetor de movimento pode significar um indicador que denota um candidato a vetor de movimento em uma lista de candidatos a vetor de movimento. Como alternativa, ele pode ser um índice de um previsor de vetor de movimento.
[0128]Informações de movimento podem significar informações incluindo ao menos um dos itens que incluem um vetor de movimento, um índice de cena de referência, um indicador de interprevisão, uma flag de utilização de lista de previsão, informações de lista de cenas de referência, uma cena de referência, um candidato a vetor de movimento, um índice de candidato a vetor de movimento, um candidato a fusão e um índice de fusão.
[0129]Lista de candidatos a fusão pode significar uma lista composta por um ou mais candidatos a fusão.
[0130]Candidato a fusão pode significar um candidato a fusão espacial, um candidato a fusão temporal, um candidato a fusão combinada, um candidato a fusão bipreditiva combinada ou um candidato a fusão zero. O candidato a fusão pode incluir informações de movimento como um indicador de interprevisão, um índice de cena de referência para cada lista, um vetor de movimento, uma flag de utilização de lista de previsão e um indicador de interprevisão.
[0131]Índice de fusão pode significar um indicador que detona um candidato a fusão em uma lista de candidatos a fusão. Como alternativa, o índice de fusão pode indicar um bloco do qual um candidato a fusão foi derivado, dentre blocos reconstruídos espacial/temporalmente adjacentes a um bloco atual. Como alternativa, o índice de fusão pode indicar ao menos uma informação de movimento de um candidato a fusão.
[0132]Unidade de transformada: pode significar uma unidade básica que executa a codificação/decodificação, tal como uma transformada, transformada inversa, quantização, desquantização, codificação/decodificação de um sinal residual com coeficiente de transformada. Uma unidade de transformada simples pode ser particionada em uma pluralidade de unidades de transformada de nível mais baixo com um tamanho menor. Aqui, transformada/transformada inversa podem compreender ao menos uma dentre a primeira transformada/primeira transformada inversa e a segunda transformada/segunda transformada inversa.
[0133]Escalonamento: pode significar um processo de multiplicar um nível quantizado por um fator. Um coeficiente de transformada pode ser gerado ao escalonar um nível quantizado. O escalonamento também pode ser chamado de desquantização.
[0134]Parâmetro de quantização: pode significar um valor usado quando da geração de um nível quantizado usando um coeficiente de transformada durante a quantização. O parâmetro de quantização também pode significar um valor usado quando da geração de um coeficiente de transformada ao escalonar um nível quantizado durante a desquantização. O parâmetro de quantização pode ser um valor mapeado sobre um tamanho de etapa de quantização.
[0135]Parâmetro de quantização delta: pode significar um valor de diferença entre um parâmetro de quantização previsto e um parâmetro de quantização de uma unidade alvo de codificação/decodificação.
[0136]Varredura: pode significar um método para sequenciar coeficientes dentro de uma unidade, bloco ou matriz. Por exemplo, a transformação de uma matriz de coeficientes bidimensional em uma matriz unidirecional pode ser chamada de varredura, e a transformação de uma matriz de coeficientes unidirecional em uma matriz bidirecional pode ser chamada de varredura ou varredura inversa.
[0137]Coeficiente de transformada: pode significar um valor de coeficiente gerado depois de executar a transformada em um codificador. Pode significar um valor de coeficiente gerado depois de realizar ao menos uma dentre decodificação entrópica e desquantização em um decodificador. Um nível quantizado obtido ao quantizar um coeficiente de transformada ou um sinal residual ou mesmo um nível de coeficiente de transformada quantizado também enquadram-se no significado do coeficiente de transformada.
[0138]Nível quantizado: pode significar um valor gerado ao quantizar um coeficiente de transformada ou um sinal residual em um codificador. Como alternativa, o nível quantizado pode significar um valor que é um alvo de desquantização para submissão a desquantização em um decodificador. À semelhança, um nível de coeficiente de transformada quantizado, que é o resultado da transformada e quantização, também enquadra-se no significado do nível quantizado.
[0139]Coeficiente de transformada não zero: pode significar um coeficiente de transformada com um valor diferente de zero, um nível de coeficiente de transformada ou um nível quantizado com um valor diferente de zero.
[0140]Matriz de quantização: pode significar uma matriz usada em um processo de quantização ou processo de desquantização realizado para aprimorar a qualidade de imagem subjetiva ou objetiva. A matriz de quantização também pode ser chamada de lista de escalonamento.
[0141]Coeficiente de matriz de quantização: pode significar cada elemento dentro de uma matriz de quantização. O coeficiente de matriz de quantização também pode ser chamado de coeficiente de matriz.
[0142]Matriz padrão: pode significar uma matriz de quantização predeterminada definida preliminarmente em um codificador ou decodificador.
[0143]Matriz não padrão: pode significar uma matriz de quantização que não é definida preliminarmente em um codificador ou decodificador, mas que é sinalizada por um usuário.
[0144]Valor estatístico: um valor estatístico para ao menos um dentre uma variável, um parâmetro de codificação, um valor constante etc. que têm um valor específico computável pode ser um ou mais dentre uma média, uma soma, uma média ponderada, uma soma ponderada, o valor mínimo, o valor máximo, o valor mais frequente, uma mediana, um valor interpolado dos valores específicos correspondentes.
[0145]A FIG. 1 é um diagrama em blocos que representa uma configuração de um aparelho codificador de acordo com uma modalidade à qual a presente invenção se aplica.
[0146]Um aparelho codificador 100 pode ser um codificador, um aparelho codificador de vídeo ou um aparelho codificador de imagens. Um vídeo pode incluir ao menos uma imagem. O aparelho codificador 100 pode codificar sequencialmente ao menos uma imagem.
[0147]Com referência à FIG. 1, o aparelho codificador 100 pode incluir uma unidade de previsão de movimento 111, uma unidade de compensação de movimento 112, uma unidade de intraprevisão 120, uma chave 115, um subtrator 125, uma unidade de transformada 130, uma unidade de quantização 140, uma unidade de codificação entrópica 150, uma unidade de desquantização 160, uma unidade de transformada inversa 170, um aditor 175, uma unidade de filtro 180 e um buffer de cenas de referência 190.
[0148]O aparelho codificador 100 pode executar a codificação de uma imagem de entrada usando um modo intra ou um modo inter, ou ambos. Além disso, o aparelho codificador 100 pode gerar um fluxo de bits que inclui informações codificadas pela codificação da imagem de entrada e emitir o fluxo de bits gerado. O fluxo de bits gerado pode ser armazenado em um meio de gravação legível por computador ou pode ser transmitido através de um meio de transmissão com fio/sem fio. Quando um modo intra é usado como modo de previsão, a chave 115 é comutada para intra. Como alternativa, quando um modo inter é usado como modo de previsão, a chave 115 é comutada para modo inter. Neste documento, modo intra pode significar um modo de intraprevisão, e modo inter pode significar um modo de interprevisão. O aparelho codificador 100 pode gerar um bloco de previsão para um bloco de entrada da imagem de entrada. Além disso, o aparelho codificador 100 pode codificar um bloco residual usando um residual do bloco de entrada e o bloco de previsão após o bloco de previsão ser gerado. A imagem de entrada pode ser chamada de imagem atual, que é o alvo de codificação atual. O bloco de entrada pode ser chamado de bloco atual, que é o alvo de codificação atual, ou bloco alvo de codificação.
[0149]Quando o modo de previsão é um modo intra, a unidade de intraprevisão 120 pode usar uma amostra de um bloco que já foi codificado/decodificado e que é adjacente ao bloco atual como amostra de referência. A unidade de intraprevisão 120 pode executar a previsão espacial para o bloco atual usando uma amostra de referência, ou gerar amostras de previsão de um bloco de entrada ao executar a previsão espacial. Neste documento, intraprevisão pode significar intrapredição.
[0150]Quando o modo de previsão é um modo inter, a unidade de previsão de movimento 111 pode recuperar, de uma imagem de referência, uma região que melhor corresponda a um bloco de entrada ao executar a previsão de movimento, e deduzir um vetor de movimento usando a região recuperada. Nesse caso, uma região de pesquisa pode ser usada como a região. A imagem de referência pode ser armazenada no buffer de cenas de referência 190. Aqui, quando a codificação/decodificação da imagem de referência é realizada, ela pode ser armazenada no buffer de cenas de referência 190.
[0151]A unidade de compensação de movimento 112 pode gerar um bloco de previsão ao executar a compensação de movimento para o bloco atual usando um vetor de movimento. Neste documento, interprevisão pode significar interpredição ou compensação de movimento.
[0152]Quando o valor do vetor de movimento não é um número inteiro, a unidade de previsão de movimento 111 e a unidade de compensação de movimento 112 podem gerar o bloco de previsão aplicando um filtro de interpolação a uma região parcial da imagem de referência. A fim de realizar a interprevisão de cena ou compensação de movimento sobre uma unidade de codificação, pode-se determinar qual modo dentre um modo de pulo, um modo de fusão, um modo de previsão de vetor de movimento avançada (AMVP) e um modo de referência à cena atual é usado para a previsão de movimento e compensação de movimento de uma unidade de previsão incluída na unidade de codificação correspondente. Em seguida, a interprevisão de cena ou compensação de movimento podem ser realizadas diferentemente dependendo do modo determinado.
[0153]O subtrator 125 pode gerar um bloco residual usando a diferença de um bloco de entrada e um bloco de previsão. O bloco residual pode ser chamado de sinal residual. O sinal residual pode significar a diferença entre um sinal original e um sinal de previsão. Além disso, o sinal residual pode ser um sinal gerado transformando ou quantizando, ou transformando e quantizando, a diferença entre o sinal original e o sinal de previsão. O bloco residual pode ser um sinal residual de uma unidade de bloco.
[0154]A unidade de transformada 130 pode gerar um coeficiente de transformada realizando a transformada de um bloco residual, e emitir o coeficiente de transformada gerado. Neste documento, o coeficiente de transformada pode ser um valor de coeficiente gerado ao realizar a transformada do bloco residual.
Quando um modo de pulo da transformada é aplicado, a unidade de transformada 130 pode pular a transformada do bloco residual.
[0155]Um nível quantizado pode ser gerado aplicando-se quantização ao coeficiente de transformada e ao sinal residual. Neste documento, o nível quantizado também pode ser chamado de coeficiente de transformada nas modalidades.
[0156]A unidade de quantização 140 pode gerar uma quantidade quantizada ao quantizar o coeficiente de transformada ou o sinal residual de acordo com um parâmetro, e emitir o nível quantizado gerado. Neste documento, a unidade de quantização 140 pode quantizar o coeficiente de transformada usando uma matriz de quantização.
[0157]A unidade de codificação entrópica 150 pode gerar um fluxo de bits ao realizar a codificação de entropia de acordo com uma distribuição de probabilidades sobre valores calculados pela unidade de quantização 140 ou sobre valores de parâmetro de codificação calculados quando da codificação, e emitir o fluxo de dados gerado. A unidade de codificação entrópica 150 pode realizar a codificação entrópica das informações de amostra de uma imagem e das informações para decodificar uma imagem. Por exemplo, as informações para decodificar a imagem podem incluir um elemento sintático.
[0158]Quando a codificação entrópica é aplicada, os símbolos são representados de tal modo que um número menor de bits seja atribuído a um símbolo com alta chance de ser gerado e um número maior de bits seja atribuído a um símbolo com baixa chance de ser gerado, e, assim, o tamanho do fluxo de bits para símbolos a ser codificados pode ser reduzido. A unidade de codificação entrópica 150 pode utilizar um método de codificação para a codificação entrópica, tal como Golomb, codificação de comprimento variável adaptável ao contexto (CAVLC), codificação aritmética binária adaptável ao contexto (CABAC) etc. Por exemplo, a unidade de codificação entrópica 150 pode realizar a codificação entrópica usando uma tabela de codificação/código de comprimento variável (VLC). Além disso, a unidade de codificação entrópica 150 também pode deduzir um método de binarização de um símbolo alvo e um modelo de probabilidade de um símbolo/bin alvo, e realizar a codificação aritmética usando o método de binarização deduzido, e um modelo de contexto.
[0159]A fim de codificar um nível de coeficiente de transformada (nível quantizado), a unidade de codificação entrópica 150 pode transformar um coeficiente em forma de bloco bidimensional em uma forma de vetor unidirecional usando um método de varredura com coeficiente de transformada.
[0160]Um parâmetro de codificação pode incluir informações (flag, índice etc.) tais como um elemento sintático que é codificado em um codificador e sinalizado a um decodificador, e informações derivadas quando da codificação ou decodificação. O parâmetro de codificação pode significar as informações necessárias quando da codificação ou decodificação de uma imagem. Por exemplo, ao menos um valor ou uma forma combinada de um tamanho de unidade/bloco, uma profundidade de unidade/bloco, informações de partição de unidade/bloco, formato de unidade/bloco, estrutura de partição de unidade/bloco, se particionar em forma de árvore quaternária, se particionar em forma de árvore binária, uma direção de partição em forma de árvore binária (direção horizontal ou direção vertical), uma forma de partição em forma de árvore binária (partição simétrica ou partição assimétrica), se ou não uma unidade de codificação atual é particionada por particionamento em árvore ternária, direção (horizontal ou vertical) do particionamento em árvore ternária, tipo (simétrico ou assimétrico) do particionamento em árvore ternária, se uma unidade de codificação atual é particionada por particionamento em árvore multitipo, direção (horizontal ou vertical) do particionamento em árvore multitipo, tipo (simétrico ou assimétrico) do particionamento em árvore multitipo, e uma estrutura de árvore (binária ou ternária) do particionamento em árvore multitipo, um modo de previsão (intraprevisão ou interprevisão), um modo/direção de intraprevisão luma, um modo/direção de intraprevisão croma, informações de intrapartição, informações de interpartição,
uma flag de partição de bloco de codificação, uma flag de partição de bloco de previsão, uma flag de partição de bloco de transformada, um método de filtragem de amostras de referência, uma aba de filtro de amostras de referência, um coeficiente de filtro de amostras de referência, um método de filtragem de blocos de previsão, uma aba de filtro de blocos de previsão, um coeficiente de filtro de blocos de previsão, um método de filtragem de limites de bloco de previsão, uma aba de filtro de limites de bloco de previsão, um coeficiente de filtro de limites de bloco de previsão, um modo de intraprevisão, um modo de interprevisão,
informações de movimento, um vetor de movimento, uma diferença de vetores de movimentos, um índice de cena de referência, um ângulo de interprevisão, um indicador de interprevisão, uma flag de utilização de lista de previsão, uma lista de cenas de referência, uma cena de referência, um índice de previsor de vetor de movimento, um candidato a previsor de vetor de movimento, uma lista de candidatos a vetor de movimento, se usar um modo de fusão, um índice de fusão, um candidato a fusão, uma lista de candidatos a fusão, se usar um modo de pulo, um tipo de filtro de interpolação, uma aba de filtro de interpolação, um coeficiente de filtro de interpolação, um tamanho de vetor de movimento, uma precisão de apresentação de um vetor de movimento, um tipo de transformada, um tamanho de transformada, informações de se ou não uma transformada primária (primeira) é usada, informações de se ou não uma transformada secundária é usada, um índice de transformada primária, um índice de transformada secundária,
informações de se ou não um sinal residual se faz presente, um padrão de bloco codificado, uma flag de bloco codificado (CBF), um parâmetro de quantização, um resíduo de parâmetro de quantização, uma matriz de quantização, se aplicar um filtro de intraloop, um coeficiente de filtro de intraloop, uma aba de filtro de intraloop, um formato/forma de filtro de intraloop, se aplicar um filtro de desblocamento, um coeficiente de filtro de desblocamento, uma aba de filtro de desblocamento, uma força de filtro de desblocamento, um formato/forma de filtro de desblocamento, se aplicar um desvio de amostra adaptativo, um valor de desvio de amostra adaptativo, uma categoria de desvio de amostra adaptativo, um tipo de desvio de amostra adaptativo, se aplicar um filtro de loop adaptativo, um coeficiente de filtro de loop adaptativo, uma aba de filtro de loop adaptativo, um formato/forma de filtro de loop adaptativo, um método de binarização/binarização inversa, um método para determinar o modelo de contexto, um método para atualizar o modelo de contexto, se executar um modo regular, se executar um modo de contorno, um bin de contexto, um bin de contorno, uma flag de coeficiente significativo, uma última flag de coeficiente significativo, uma flag codificada para uma unidade de um grupo de coeficientes, uma posição do último coeficiente significativo, uma flag para se um valor de um coeficiente for maior que 1, uma flag para se um valor de um coeficiente for maior que 2, uma flag para se um valor de um coeficiente for maior que 3, informações sobre um valor de coeficiente remanescente, uma informação de sinal, uma amostra luma reconstruída, uma amostra croma reconstruída, uma amostra luma residual, uma amostra croma residual, um coeficiente de transformada luma, um coeficiente de transformada croma, um nível luma quantizado, um nível croma quantizado, um método para varrer o nível de coeficiente de transformada, um tamanho de uma área de pesquisa de tamanho de vetor de movimento em um lado do decodificador, um formato de uma área de pesquisa de vetor de movimento em um lado do decodificador, um tempo de uma pesquisa de vetor de movimento em um lado do decodificador, informações sobre um tamanho de CTU, informações sobre um tamanho de bloco mínimo, informações sobre um tamanho de bloco máximo, informações sobre uma profundidade de bloco máxima, informações sobre uma profundidade de bloco mínima, uma sequência de exibição/saída de imagens, informações de identificação de fatia, um tipo de fatia, informações de partição de fatia, informações de identificação de tile, um tipo de tile, informações de partição de tile, informações de identificação de grupo de tiles, um tipo de grupo de tiles, informações de partição de grupo de tiles, um tipo de cena, uma profundidade de bit de uma amostra de entrada, uma profundidade de bit de uma amostra de reconstrução, uma profundidade de bit de uma amostra residual, uma profundidade de bit de um coeficiente de transformada, uma profundidade de bit de um nível quantizado, e informações sobre um sinal luma ou informações sobre um sinal croma podem ser incluídos no parâmetro de codificação.
[0161]Neste documento, sinalizar a flag ou índice pode significar que uma flag ou índice correspondente é codificado por entropia e incluído em um fluxo de bits por um codificador, e pode significar que a flag ou índice correspondente é decodificado por entropia a partir de um fluxo de bits por um decodificador.
[0162]Quando o aparelho de codificação 100 realiza a codificação por interprevisão, uma imagem atual codificada pode ser usada como imagem de referência para outra imagem que é processada em seguida. Logo, o aparelho codificador 100 pode reconstruir ou decodificar a imagem atual codificada ou armazenar a imagem reconstruída ou decodificada como uma imagem de referência em um buffer de cenas de referência 190.
[0163]Um nível quantizado pode ser desquantizado na unidade de desquantização 160, ou pode ser transformado inversamente na unidade de transformada inversa 170. Um coeficiente desquantizado ou transformado inversamente, ou ambos, pode ser adicionado a um bloco de previsão pelo aditor
175. Ao adicionar o coeficiente desquantizado ou transformado inversamente, ou ambos, ao bloco de previsão, um bloco reconstruído pode ser gerado. Neste documento, o coeficiente desquantizado ou transformado inversamente, ou ambos, pode significar um coeficiente sobre o qual ao menos uma de desquantização ou transformada inversa é realizada, e pode significar um bloco residual reconstruído.
[0164]Um bloco reconstruído pode atravessar a unidade de filtro 180. A unidade de filtro 180 pode aplicar ao menos um de um filtro de desblocamento, um desvio adaptativo de amostra (SAO) e um filtro de loop adaptativo (ALF) para uma amostra reconstruída, um bloco reconstruído ou uma imagem reconstruída. A unidade de filtro 180 pode ser chamada de filtro in-loop.
[0165]O filtro de desblocamento pode remover a distorção de bloco gerada nos limites entre blocos. A fim de determinar se aplicar ou não um filtro de desblocagem, pode-se determinar se aplicar ou não um filtro de desblocagem a um bloco atual com base em amostras incluídas em várias fileiras ou colunas que são incluídas no bloco. Quando um filtro de desblocagem é aplicado a um bloco, outro filtro pode ser aplicado de acordo com uma força de filtragem de desblocagem necessária.
[0166]A fim de compensar um erro de codificação, um valor de desvio apropriado pode ser adicionado a um valor de amostra usando um desvio adaptativo de amostra. O desvio adaptativo de amostra pode corrigir um desvio de uma imagem desblocada a partir de uma imagem original por uma unidade de amostra. Um método para particionar amostras de uma imagem em um número predeterminado de regiões, determinar uma região à qual um desvio é aplicado e aplicar o desvio à região determinada ou um método para aplicar um desvio levando em consideração as informações de borda em cada amostra podem ser usados.
[0167]O filtro de loop adaptativo pode realizar a filtragem com base no resultado da comparação entre a imagem reconstruída filtrada e a imagem original.
As amostras incluídas em uma imagem podem ser particionadas em grupos predeterminados, um filtro para aplicação a cada grupo pode ser determinado, e a filtragem diferencial pode ser realizada para cada grupo. Informações sobre se ou não aplicar o ALF podem ser sinalizadas por unidades de codificação (CUs), e a forma e coeficiente do ALF que será aplicado a cada bloco pode variar.
[0168]O bloco reconstruído ou a imagem reconstruída, tendo atravessado a unidade de filtro 180, podem ser armazenados no buffer de cenas de referência
190. Um bloco reconstruído processado pela unidade de filtro 180 pode fazer parte de uma imagem de referência. Ou seja, uma imagem de referência é uma imagem reconstruída composta por blocos reconstruídos processados pela unidade de filtro
180. A imagem de referência armazenada pode ser usada mais tarde na interprevisão ou compensação de movimento.
[0169]A FIG. 2 é um diagrama em blocos que representa uma configuração de um aparelho decodificador de imagens de acordo com uma modalidade exemplificativa e à qual a presente invenção se aplica.
[0170]Um aparelho decodificador 200 pode ser um decodificador, um aparelho decodificador de vídeo ou um aparelho decodificador de imagens.
[0171]Com referência à FIG. 2, o aparelho decodificador 200 pode incluir uma unidade de decodificação entrópica 210, uma unidade de desquantização 220, uma unidade de transformada inversa 230, uma unidade de intraprevisão 240, uma unidade de compensação de movimento 250, um aditor 225, uma unidade de filtro 260 e um buffer de cenas de referência 270.
[0172]O aparelho decodificador 200 pode receber um fluxo de bits advindo do aparelho codificador 100. O aparelho decodificador 200 pode receber um fluxo de bits armazenado em um meio de gravação legível por computador, ou pode receber um fluxo de bits que é transmitido através de um meio de transmissão com fio/sem fio. O aparelho decodificador 200 pode decodificar o fluxo de bits usando um modo intra ou um modo inter. Além disso, o aparelho decodificador 200 pode gerar uma imagem reconstruída gerada por decodificação ou uma imagem decodificada, e emitir a imagem reconstruída ou imagem decodificada.
[0173]Quando o modo de previsão usado quando da decodificação é um modo intra, uma chave pode ser comutada para intra. Como alternativa, quando o modo de previsão usado quando da decodificação é um modo inter, uma chave pode ser comutada para modo inter.
[0174]O aparelho decodificador 200 pode obter um bloco residual reconstruído ao decodificar o fluxo de bits de entrada, e gerar um bloco de previsão. Quando o bloco residual reconstruído e o bloco de previsão são obtidos, o aparelho decodificador 200 pode gerar um bloco reconstruído que se torna um alvo de decodificação ao adicionar o bloco residual reconstruído ao bloco de previsão. O bloco de alvo de decodificação pode ser chamado de bloco atual.
[0175]A unidade de decodificação entrópica 210 pode gerar símbolos pela decodificação entrópica do fluxo de bits de acordo com uma distribuição de probabilidades. Os símbolos gerados podem incluir um símbolo de uma forma de nível quantizado. Neste documento, um método de decodificação entrópica pode ser um processo inverso do método de codificação entrópica descrito neste documento.
[0176]A fim de decodificar um nível de coeficiente de transformada (nível quantizado), a unidade de decodificação entrópica 210 pode transformar um coeficiente em forma de vetor unidirecional em uma forma de vetor bidirecional usando um método de varredura com coeficiente de transformada.
[0177]Um nível quantizado pode ser desquantizado na unidade de desquantização 220, ou transformado inversamente na unidade de transformada inversa 230. O nível quantizado pode ser resultado da desquantização ou transformada inversa, ou ambas, e pode ser gerado como um bloco residual reconstruído. Neste documento, a unidade de desquantização 220 pode aplicar uma matriz de quantização ao nível quantizado.
[0178]Quando um modo intra é usado, a unidade de intraprevisão 240 pode gerar um bloco de previsão ao executar, para o bloco atual, uma previsão espacial que utiliza um valor de amostra de um bloco adjacente a um bloco alvo de decodificação e que já foi decodificado.
[0179]Quando um modo inter é usado, a unidade de compensação de movimento 250 pode gerar um bloco de previsão ao executar, para o bloco corrente, uma compensação de movimento que utiliza um vetor de movimento e uma imagem de referência armazenada no buffer de cenas de referência 270.
[0180]O aditor 225 pode gerar um bloco reconstruído ao adicionar o bloco residual reconstruído ao bloco de previsão. A unidade de filtro 260 pode aplicar ao menos um de um filtro de desblocagem, um desvio adaptativo de amostra e um filtro de loop adaptativo ao bloco reconstruído ou imagem reconstruída. A unidade de filtro 260 pode emitir a imagem reconstruída. O bloco reconstruído ou imagem reconstruída podem ser armazenados no buffer de cenas de referência 270 e utilizados ao executar a interprevisão. Um bloco reconstruído processado pela unidade de filtro 260 pode fazer parte de uma imagem de referência. Ou seja, uma imagem de referência é uma imagem reconstruída composta por blocos reconstruídos processados pela unidade de filtro 260. A imagem de referência armazenada pode ser usada mais tarde na interprevisão ou compensação de movimento.
[0181]A FIG. 3 é uma vista que ilustra esquematicamente uma estrutura de partição de uma imagem quando da codificação e decodificação da mesma. A FIG.
3 ilustra esquematicamente um exemplo de particionar uma unidade simples em várias unidades menores.
[0182]A fim de particionar uma imagem com eficácia, quando da codificação e decodificação, uma unidade de codificação (CU) pode ser usada. A unidade de codificação pode ser usada como uma unidade básica quando da codificação/decodificação da imagem. Além disso, a unidade de codificação pode ser usada como uma unidade para distinguir entre um modo de intraprevisão e um modo de interprevisão quando da codificação/decodificação da imagem. A unidade de codificação pode ser uma unidade básica usada para a previsão, transformada, quantização, transformada inversa, desquantização ou um processo de codificação/decodificação de um coeficiente de transformada.
[0183]Com referência à FIG. 3, uma imagem 300 é particionada em sequência em uma unidade de codificação maior (LCU), e uma unidade LCU é determinada como uma estrutura de partição. Neste documento, a LCU pode ser usada com o mesmo significado que uma unidade de árvore de codificação (CTU). O particionamento de uma unidade pode significar particionar um bloco associado à unidade. Nas informações de partição do bloco, informações de profundidade da unidade podem ser incluídas. As informações de profundidade podem representar o número de vezes ou o grau, ou ambos, em que uma unidade é particionada.
Uma unidade simples pode ser particionada em várias unidades de nível mais baixo associadas hierarquicamente a informações de profundidade com base em uma estrutura de árvore. Em outras palavras, uma unidade e uma unidade de nível mais baixo gerada ao particionar a unidade podem corresponder a um nó e um nó filho do nó, respectivamente. Cada uma das unidades particionadas mais baixas pode ter informações de profundidade. Informações de profundidade podem ser informações que representam o tamanho de uma CU e podem ser armazenadas em cada CU. A profundidade de uma unidade representa as vezes e/ou graus relacionados ao particionamento da unidade. Logo, as informações de particionamento de uma unidade de nível mais baixo podem compreender informações sobre o tamanho da unidade de nível mais baixo.
[0184]Uma estrutura de partição pode significar a distribuição de uma unidade de codificação (CU) dentro de uma LCU 310. Essa distribuição pode ser determinada de acordo com se particionar ou não uma CU simples em várias (número inteiro positivo igual ou maior que 2 incluindo 2, 4, 8, 16 etc.) CUs. Um tamanho horizontal e um tamanho vertical da CU gerada por particionamento podem ser, respectivamente, a metade de um tamanho horizontal e um tamanho vertical da CU antes do particionamento, ou podem ser tamanhos respectivamente menores que um tamanho horizontal e um tamanho vertical antes de particionar de acordo com o número de vezes do particionamento. A CU pode ser particionada recursivamente em várias CUs. Com o particionamento recursivo, ao menos uma dentre a altura e a largura de uma CU após o particionamento pode diminuir em comparação a ao menos uma dentre a altura e a largura de uma CU antes do particionamento. O particionamento da CU pode ser realizado recursivamente até uma profundidade predefinida ou tamanho predefinido. Por exemplo, a profundidade de uma LCU pode ser igual a 0 e a profundidade de uma unidade de codificação menor (SCU) pode ser uma profundidade máxima predefinida. Neste documento, a LCU pode ser uma unidade de codificação com um tamanho de unidade de codificação máximo, e a SCU pode ser uma unidade de codificação com um tamanho de unidade de codificação mínimo conforme descrito acima. O particionamento é iniciado a partir da LCU 310, a profundidade da CU aumenta em 1 à medida que o tamanho horizontal ou tamanho vertical, ou ambos, da CU diminuem com o particionamento. Por exemplo, para cada profundidade, uma CU que não é particionada pode ter um tamanho de 2Nx2N. Ademais, no caso de uma CU que é particionada, uma CU com um tamanho de 2Nx2N pode ser particionada em quatro CUs com um tamanho de NxN. Um tamanho N pode diminuir à metade à medida que a profundidade aumenta em 1.
[0185]Além disso, informações de se ou não a CU é particionada podem ser representadas usando informações de partição da CU. As informações de partição podem ser informações de 1 bit. Todas as CUs, salvo uma SCU, podem incluir informações de partição. Por exemplo, quando um valor das informações de partição é um primeiro valor, a CU pode não ser particionada, quando um valor das informações de partição é um segundo valor, a CU pode ser particionada.
[0186]Com referência à FIG. 3, uma LCU com profundidade 0 pode ser um bloco 64x64. Zero pode ser uma profundidade mínima. Uma SCU com profundidade 3 pode ser um bloco 8x8. Três pode ser a profundidade máxima.
Uma CU de um bloco 32x32 e um bloco 16x16 pode ser representada, respectivamente, com uma profundidade 1 e uma profundidade 2.
[0187]Por exemplo, quando uma unidade de codificação simples é particionada em quatro unidades de codificação, um tamanho horizontal e um tamanho vertical das quatro unidades de codificação particionadas pode ser a metade de um tamanho horizontal e um tamanho vertical da CU antes de ser particionada. Em uma modalidade, quando uma unidade de codificação com tamanho 32x32 é particionada em quatro unidades de codificação, cada uma das quatro unidades de codificação particionadas pode ter um tamanho 16x16. Quando uma unidade de codificação simples é particionada em quatro unidades de codificação, pode-se dizer que a unidade de codificação é particionada em uma forma de árvore quaternária.
[0188]Por exemplo, quando uma unidade de codificação é particionada em duas subunidades de codificação, o tamanho horizontal ou vertical (largura ou altura) de cada uma das duas subunidades de codificação pode ser a metade do tamanho horizontal ou vertical da unidade de codificação original. Por exemplo, quando uma unidade de codificação com tamanho 32x32 é particionada verticalmente em duas subunidades de codificação, cada uma das duas unidades de subcodificação tem um tamanho 16x32. Por exemplo, quando uma unidade de codificação com tamanho 8x32 é particionada horizontalmente em duas subunidades de codificação, cada uma das duas unidades de subcodificação pode ter um tamanho 8x16. Quando uma unidade de codificação é particionada em duas subunidades de codificação, pode-se dizer que a unidade de codificação é particionada binariamente ou é particionada por uma estrutura de partição em árvore binária.
[0189]Por exemplo, quando uma unidade de codificação é particionada em três subunidades de codificação, o tamanho horizontal ou vertical da unidade de codificação podem ser particionados com uma razão de 1:2:1, produzindo assim três subunidades de codificação cujos tamanhos horizontais ou verticais têm uma razão de 1:2:1. Por exemplo, quando uma unidade de codificação com um tamanho 16x32 é particionada horizontalmente em três subunidades de codificação, as três subunidades de codificação podem ter tamanhos de 16x8, 16x16 e 16x8, respectivamente, na ordem da subunidade de codificação mais superior para a mais inferior. Por exemplo, quando uma unidade de codificação com tamanho 32x32 é dividida verticalmente em três subunidades de codificação, as três subunidades de codificação podem ter tamanhos de 8x32, 16x32 e 8x32, respectivamente, na ordem da subunidade de codificação esquerda para a direita. Quando uma unidade de codificação é particionada em três subunidades de codificação, pode-se dizer que a unidade de codificação é particionada ternariamente ou particionada por uma estrutura de partição em árvore ternária.
[0190]Na FIG. 3, uma unidade de árvore de codificação (CTU) 320 é um exemplo de uma CTU à qual uma estrutura de partição em árvore quaternária, uma estrutura de partição em árvore binária e uma estrutura de partição em árvore ternária são todas aplicadas.
[0191]Conforme descrito acima, a fim de particionar a CTU, ao menos uma de uma estrutura de partição em árvore quaternária, uma estrutura de partição em árvore binária e uma estrutura de partição em árvore ternária podem ser aplicadas.
Várias estruturas de partição em árvore podem ser aplicadas em sequência à CTU, de acordo com uma ordem de prioridade predeterminada. Por exemplo, a estrutura de partição em árvore quaternária pode ser preferivelmente aplicada à CTU. Uma unidade de codificação que não pode mais ser particionada usando uma estrutura de partição em árvore quaternária pode corresponder a um nó folha de uma árvore quaternária. Uma unidade de codificação correspondente a um nó folha de uma árvore quaternária pode servir como nó raiz de uma estrutura de partição em árvore binária e/ou ternária. Ou seja, uma unidade de codificação correspondente a um nó folha de uma árvore quaternária pode ser adicionalmente particionada por uma estrutura de partição em árvore binária ou uma estrutura de partição em árvore ternária, ou pode não ser adicionalmente particionada. Logo, ao impedir um bloco de codificação que resulta do particionamento em árvore binária ou particionamento em árvore ternária de uma unidade de codificação correspondente a um nó folha de uma árvore quaternária de ser submetido a novo particionamento em árvore quaternária, o particionamento do bloco e/ou a sinalização de informações de partição podem ser realizados com eficácia.
[0192]O fato de que uma unidade de codificação correspondente a um nó de uma árvore quaternária é particionada pode ser sinalizado usando informações de partição quaternária. As informações de partição quaternária com um primeiro valor (por exemplo, "1") podem indicar que uma unidade de codificação atual é particionada pela estrutura de partição em árvore quaternária. As informações de partição quaternária com um segundo valor (por exemplo, "0") podem indicar que uma unidade de codificação atual não é particionada pela estrutura de partição em árvore quaternária. As informações de partição quaternária podem ser uma flag com um comprimento predeterminado (por exemplo, de um bit).
[0193]Pode não haver prioridade entre o particionamento em árvore binária e o particionamento em árvore ternária. Ou seja, uma unidade de codificação correspondente a um nó folha de uma árvore quaternária pode ser submetida ainda a particionamento arbitrário entre o particionamento em árvore binária e o particionamento em árvore ternária. Além disso, uma unidade de codificação gerada através do particionamento em árvore binária ou do particionamento em árvore ternária pode ser submetida a um novo particionamento em árvore binária ou novo particionamento em árvore ternária, ou pode não ser adicionalmente particionada.
[0194]Uma estrutura de árvore na qual não há prioridade entre o particionamento em árvore binária e o particionamento em árvore ternária é chamada de uma estrutura de árvore multitipo. Uma unidade de codificação correspondente a um nó folha de uma árvore quaternária pode servir como nó raiz de uma árvore multitipo. Se particionar uma unidade de codificação que corresponde a um nó de uma árvore multitipo pode ser sinalizado usando ao menos uma de informações de indicação de partição em árvore multitipo,
informações da direção de partição e informações de árvore de partição. Para particionar uma unidade de codificação correspondente a um nó de uma árvore multitipo, as informações de indicação de partição em árvore multitipo, a direção de partição e as informações de árvore de partição podem ser sinalizadas em sequência.
[0195]As informações de indicação de partição em árvore multitipo com um primeiro valor (por exemplo, "1") podem indicar que uma unidade de codificação atual será submetida a particionamento em árvore multitipo. As informações de indicação de partição em árvore multitipo com um segundo valor (por exemplo, "0") podem indicar que uma unidade de codificação atual não será submetida a particionamento em árvore multitipo.
[0196]Quando uma unidade de codificação correspondente a um nó de uma árvore multitipo é adicionalmente particionada por uma estrutura de partição em árvore multitipo, a unidade de codificação pode incluir informações da direção de partição. As informações da direção de partição podem indicar em qual direção uma unidade de codificação atual será particionada para o particionamento em árvore multitipo. As informações da direção de partição com um primeiro valor (por exemplo, "1") podem indicar que uma unidade de codificação atual será particionada verticalmente. As informações da direção de partição com um segundo valor (por exemplo, "0") podem indicar que uma unidade de codificação atual será particionada horizontalmente.
[0197]Quando uma unidade de codificação correspondente a um nó de uma árvore multitipo é adicionalmente particionada por uma estrutura de partição em árvore multitipo, a unidade de codificação atual pode incluir informações de árvore de partição. As informações de árvore de partição podem indicar uma estrutura de partição em árvore que será usada para particionar um nó de uma árvore multitipo. As informações de árvore de partição com um primeiro valor (por exemplo, "1") podem indicar que uma unidade de codificação atual será particionada por uma estrutura de partição em árvore binária. As informações de árvore de partição com um segundo valor (por exemplo, "0") podem indicar que uma unidade de codificação atual será particionada por uma estrutura de partição em árvore ternária.
[0198]As informações de indicação de partição, as informações de árvore de partição e as informações da direção de partição, cada uma delas pode ser uma flag com um comprimento predeterminado (por exemplo, de um bit).
[0199]Ao menos qualquer uma das informações de indicação de partição em árvore quaternária, informações de indicação de partição em árvore multitipo, informações da direção de partição e informações de árvore de partição podem ser codificadas/decodificadas por entropia. Para a codificação/decodificação entrópica desses tipos de informação, informações sobre uma unidade de codificação vizinha adjacente à unidade de codificação atual podem ser usadas. Por exemplo, existe uma alta probabilidade de que o tipo de partição (particionado ou não particionado, a árvore de partição e/ou a direção de partição) de uma unidade de codificação vizinha esquerda e/ou uma unidade de codificação vizinha superior de uma unidade de codificação atual seja semelhante ao da unidade de codificação atual. Logo, as informações de contexto para codificação/decodificação entrópica das informações sobre a unidade de codificação atual podem ser derivadas das informações sobre as unidades de codificação vizinhas. As informações sobre as unidades de codificação vizinhas podem incluir ao menos qualquer um de informações de partição quaternária, informações de indicação de partição em árvore multitipo, informações da direção de partição e informações de árvore de partição.
[0200]Em outro exemplo, entre o particionamento em árvore binária e o particionamento em árvore ternária, o particionamento em árvore binária pode ser preferido. Ou seja, uma unidade de codificação atual pode ser primeiramente submetida a particionamento em árvore binária, e, em seguida, uma unidade de codificação correspondente a um nó folha da árvore binária pode ser definida como nó raiz para o particionamento em árvore ternária. Nesse caso, nem o particionamento em árvore quaternária nem o particionamento em árvore binária podem ser realizados na unidade de codificação correspondente a um nó de uma árvore ternária.
[0201]Uma unidade de codificação não pode ser particionada por uma estrutura de partição em árvore quaternária, uma estrutura de partição em árvore binária e/ou uma estrutura de partição em árvore ternária torna-se uma unidade básica para a codificação, previsão e/ou transformação. Ou seja, a unidade de codificação não pode ser adicionalmente particionada para a previsão e/ou transformação. Logo, as informações de estrutura de partição e as informações de partição usadas para particionar uma unidade de codificação em unidades de previsão e/ou unidades de transformada podem não se fazer presentes em um fluxo de bits.
[0202]No entanto, quando o tamanho de uma unidade de codificação (isto é, uma unidade básica para particionamento) é maior do que o tamanho de um bloco de transformação máximo, a unidade de codificação pode ser recursivamente particionada até que o tamanho da unidade de codificação seja reduzido para que seja igual ou menor que o tamanho do bloco de transformação máximo. Por exemplo, quando o tamanho de uma unidade de codificação é 64x64 e quando o tamanho de um bloco de transformação máximo é 32x32, a unidade de codificação pode ser particionada em quatro blocos 32x32 para transformação. Por exemplo, quando o tamanho de uma unidade de codificação é 32x64 e o tamanho de um bloco de transformação máximo é 32x32, a unidade de codificação pode ser particionada em dois blocos 32x32 para transformação. Nesse caso, o particionamento da unidade de codificação para transformação não é sinalizado em separado, e pode ser determinado pela comparação entre o tamanho horizontal ou vertical da unidade de codificação e o tamanho horizontal ou vertical do bloco de transformação máximo. Por exemplo, quando o tamanho horizontal (largura) da unidade de codificação é maior do que o tamanho horizontal (largura) do bloco de transformação máximo, a unidade de codificação pode ser cortada verticalmente ao meio. Por exemplo, quando o tamanho vertical (comprimento) da unidade de codificação é maior do que o tamanho horizontal vertical (comprimento) do bloco de transformação máximo, a unidade de codificação pode ser cortada horizontalmente ao meio.
[0203]Informações do tamanho máximo e/ou mínimo da unidade de codificação e informações do tamanho máximo e/ou mínimo do bloco de transformação podem ser sinalizadas ou determinadas em um nível superior da unidade de codificação. O nível superior pode ser, por exemplo, um nível de sequência, um nível de cena, um nível de fatia, um nível de grupo de tiles, um nível de tile, ou seus semelhantes. Por exemplo, o tamanho mínimo da unidade de codificação pode ser determinado como 4x4. Por exemplo, o tamanho máximo do bloco de transformação pode ser determinado como 64x64. Por exemplo, o tamanho mínimo do bloco de transformação pode ser determinado como 4x4.
[0204]Informações sobre o tamanho mínimo (tamanho mínimo de árvore quaternária) de uma unidade de codificação correspondente a um nó folha de uma árvore ternária e/ou informações sobre a profundidade máxima (a profundidade de árvore máxima de uma árvore multitipo) de um nó raiz para um nó folha da árvore multitipo podem ser sinalizadas ou determinadas em um nível superior da unidade de codificação. Por exemplo, o nível superior pode ser um nível de sequência, um nível de cena, um nível de fatia, um nível de grupo de tiles, um nível de tile, ou seus semelhantes. Informações do tamanho mínimo de uma árvore quaternária e/ou informações da profundidade máxima de uma árvore multitipo podem ser sinalizadas ou determinadas para cada uma de uma fatia intracena e uma fatia entre cenas.
[0205]Informações de diferença entre o tamanho de uma CTU e o tamanho máximo de um bloco de transformação podem ser sinalizadas ou determinadas em um nível superior da unidade de codificação. Por exemplo, o nível superior pode ser um nível de sequência, um nível de cena, um nível de fatia, um nível de grupo de tiles, um nível de tile, ou seus semelhantes. Informações sobre o tamanho máximo das unidades de codificação correspondentes aos respectivos nós de uma árvore binária (doravante, chamado de tamanho máximo de uma árvore binária) podem ser determinadas com base no tamanho da unidade de árvore de codificação e das informações de diferença. O tamanho máximo das unidades de codificação correspondentes aos respectivos nós de uma árvore ternária (doravante, chamado de tamanho máximo de uma árvore ternária) pode variar dependendo do tipo de fatia. Por exemplo, no caso de uma fatia intracena, o tamanho máximo de uma árvore ternária pode ser 32x32. Por exemplo, no caso de uma fatia entre cenas, o tamanho máximo de uma árvore ternária pode ser 128x128. Por exemplo, o tamanho mínimo das unidades de codificação correspondentes aos respectivos nós de uma árvore binária (doravante, chamado de tamanho mínimo de uma árvore binária) e/ou o tamanho mínimo das unidades de codificação correspondentes aos respectivos nós de uma árvore ternária (doravante chamado de tamanho mínimo de uma árvore ternária) podem ser definidos como o tamanho mínimo de um bloco de codificação.
[0206]Em outro exemplo, o tamanho máximo de uma árvore binária e/ou o tamanho máximo de uma árvore ternária podem ser sinalizados ou determinados no nível da fatia. Como alternativa, o tamanho mínimo da árvore binária e/ou o tamanho mínimo da árvore ternária podem ser sinalizados ou determinados no nível da fatia.
[0207]Dependendo das informações de tamanho e profundidade dos vários blocos descritos acima, informações de partição quaternária, informações de indicação de partição em árvore multitipo, informações de árvore de partição e/ou informações da direção de partição podem ser incluídas ou não em um fluxo de bits.
[0208]Por exemplo, quando o tamanho da unidade de codificação não é maior que o tamanho mínimo de uma árvore quaternária, a unidade de codificação não contém informações de partição quaternária. Assim, as informações de partição quaternária podem ser deduzidas de um segundo valor.
[0209]Por exemplo, quando os tamanhos (horizontal e vertical) de uma unidade de codificação correspondente a um nó de uma árvore multitipo são maiores do que os tamanhos máximos (horizontal e vertical) de uma árvore binária e/ou do que os tamanhos máximos (horizontal e vertical) de uma árvore ternária, a unidade de codificação não pode ser particionada binária ou ternariamente. Logo, as informações de indicação de partição em árvore multitipo podem não ser sinalizadas mas deduzidas de um segundo valor.
[0210]Como alternativa, quando os tamanhos (horizontal e vertical) de uma unidade de codificação correspondente a um nó de uma árvore multitipo são iguais aos tamanhos máximos (horizontal e vertical) de uma árvore binária e/ou são duas vezes os tamanhos máximos (horizontal e vertical) de uma árvore ternária, a unidade de codificação não pode ser adicionalmente particionada binária ou ternariamente. Logo, as informações de indicação de partição em árvore multitipo podem não ser sinalizadas mas derivadas de um segundo valor. Isso porque, quando uma unidade de codificação é particionada por uma estrutura de partição em árvore binária e/ou uma estrutura de partição em árvore ternária, gera-se uma unidade de codificação menor do que o tamanho mínimo de uma árvore binária e/ou o tamanho mínimo de uma árvore ternária.
[0211]Como alternativa, o particionamento em árvore binária ou o particionamento em árvore ternária podem ser limitados com base no tamanho de uma unidade de dados de pipeline virtual (doravante tamanho de buffer de pipeline). Por exemplo, quando a unidade de codificação é dividida em subunidades de codificação que não se encaixam no tamanho de buffer de pipeline pelo particionamento em árvore binária ou particionamento em árvore ternária, o particionamento em árvore binária ou árvore ternária correspondente pode ser limitado. O tamanho do buffer de pipeline pode ser o tamanho do bloco de transformada máximo (por exemplo, 64x64). Por exemplo, quando o tamanho do buffer de pipeline é 64X64, a divisão abaixo pode ser limitada. - NxM (N e/ou M é 128) Particionamento em árvore ternária para unidades de codificação - 128xN (N ≤ 64) Particionamento em árvore binária na direção horizontal para unidades de codificação - Nx128 (N ≤ 64) Particionamento em árvore binária na direção vertical para unidades de codificação
[0212]Como alternativa, quando a profundidade de uma unidade de codificação correspondente a um nó de uma árvore multitipo é igual à profundidade máxima da árvore multitipo, a unidade de codificação não pode ser adicionalmente particionada binária e/ou ternariamente. Logo, as informações de indicação de partição em árvore multitipo podem não ser sinalizadas mas deduzidas de um segundo valor.
[0213]Como alternativa, só quando ao menos um dentre o particionamento em árvore binária na direção vertical, particionamento em árvore binária na direção horizontal, particionamento em árvore ternária na direção vertical e particionamento em árvore ternária na direção horizontal é possível para uma unidade de codificação correspondente a um nó de uma árvore multitipo, as informações de indicação de partição em árvore multitipo podem ser sinalizadas. Do contrário, a unidade de codificação não pode ser particionada binária e/ou ternariamente. Logo, as informações de indicação de partição em árvore multitipo podem não ser sinalizadas mas deduzidas de um segundo valor.
[0214]Como alternativa, só quando ambos o particionamento em árvore binária na direção vertical e o particionamento em árvore binária na direção horizontal ou ambos o particionamento em árvore ternária na direção vertical e o particionamento em árvore ternária na direção horizontal são possíveis para uma unidade de codificação correspondente a um nó de uma árvore multitipo, as informações de direção de partição podem ser sinalizadas. Do contrário, as informações da direção de partição podem não ser sinalizadas mas derivadas de um valor que indica possíveis direções de particionamento.
[0215]Como alternativa, só quando ambos o particionamento em árvore binária na direção vertical e o particionamento em árvore ternária na direção vertical ou ambos o particionamento em árvore binária na direção horizontal e o particionamento em árvore ternária na direção horizontal são possíveis para uma árvore de codificação correspondente a um nó de uma árvore multitipo, as informações de árvore de partição podem ser sinalizadas. Do contrário, as informações de árvore de partição podem não ser sinalizadas mas deduzidas de um valor que indica uma possível estrutura de árvore de particionamento.
[0216]A FIG. 4 é uma vista que ilustra um processo de intraprevisão.
[0217]As setas do centro para fora na FIG. 4 podem representar direções de previsão dos modos de intraprevisão.
[0218]A intracodificação e/ou intradecodificação podem ser realizadas usando uma amostra de referência de um bloco vizinho ao bloco atual. Um bloco vizinho pode ser um bloco vizinho reconstruído. Por exemplo, a intracodificação e/ou intradecodificação podem ser realizadas usando um parâmetro de codificação ou um valor de uma amostra de referência incluídos em um bloco vizinho reconstruído.
[0219]Um bloco de previsão pode significar um bloco gerado realizando intraprevisão. Um bloco de previsão pode corresponder a ao menos uma dentre CU, PU e TU. Uma unidade de um bloco de previsão pode ter o tamanho de uma dentre CU, PU e TU. Um bloco de previsão pode ser um bloco quadrado com tamanho de 2x2, 4x4, 16x16, 32x32, 64x64 etc. ou pode ser um bloco retangular com tamanho de 2x8, 4x8, 2x16, 4x16 e 8x16 etc.
[0220]A intraprevisão pode ser realizada de acordo com o modo de intraprevisão para o bloco atual. O número de modos de intraprevisão que o bloco atual pode ter pode ser um valor fixo e pode ser um valor predeterminado outra maneira de acordo com um atributo de um bloco de previsão. Por exemplo, um atributo de um bloco de previsão pode compreender o tamanho de um bloco de previsão e o formato de um bloco de previsão etc.
[0221]O número de modos de intraprevisão pode ser fixado em N independentemente do tamanho do bloco. Ou o número de modos de intraprevisão pode ser de 3, 5, 9, 17, 34, 35, 36, 65 ou 67 etc. Como alternativa, o número de modos de intraprevisão pode variar de acordo com o tamanho ou tipo de componente de cor de um bloco, ou ambos. Por exemplo, o número de modos de intraprevisão pode variar de acordo com se o componente de cor é um sinal luma ou um sinal croma. Por exemplo, à medida que o tamanho de um bloco aumenta, o número de modos de intraprevisão pode aumentar. Como alternativa, o número de modos de intraprevisão de um bloco de componente luma pode ser maior que o número de modos de intraprevisão de um bloco de componente croma.
[0222]Um modo de intraprevisão pode ser um modo não angular ou um modo angular. O modo não angular pode ser um modo DC ou um modo plano, e o modo angular pode ser um modo de previsão com uma direção ou ângulo específicos. O modo de intraprevisão pode ser expresso por ao menos um de um número de modo, um valor de modo, um numeral de modo, um ângulo de modo e uma direção de modo. O número de modos de intraprevisão pode ser M, que é maior que 1, incluindo os modos não angular e angular. A fim de intraprever um bloco atual, uma etapa de determinar se ou não amostras incluídas em um bloco vizinho reconstruído podem ser usadas como amostras de referência do bloco atual pode ser realizada. Quando uma amostra que não é útil como amostra de referência do bloco atual se faz presente, um valor obtido dobrando ou realizando a interpolação sobre ao menos um valor de amostra dentre amostras incluídas no bloco vizinho reconstruído, ou ambos, pode ser usado para substituir um valor de amostra inútil de uma amostra, assim o valor de amostra substituído é usado como uma amostra de referência do bloco atual.
[0223]A FIG. 7 é um diagrama ilustrando amostras de referência que podem ser usadas para intraprevisão.
[0224]Conforme ilustra a FIG. 7, ao menos uma da linha de amostras de referência 0 à linha de amostras de referência 3 pode ser usada para a intraprevisão do bloco atual. Na FIG. 7, as amostras de um segmento A e um segmento F podem ser preenchidas com as amostras mais próximas a um segmento B e um segmento E, respectivamente, em vez de recuperá-las do bloco vizinho reconstruído. Informações de índice indicando a linha de amostras de referência que será usada para a intraprevisão do bloco atual podem ser sinalizadas. Quando o limite superior do bloco atual é o limite da CTU, somente a linha de amostras de referência 0 pode estar disponível. Logo, nesse caso, as informações de índice podem não ser sinalizada. Quando uma linha de amostras de referência que não a linha de amostras de referência 0 é usada, a filtragem para um bloco de previsão, que será descrita adiante, pode não ser realizada.
[0225]Quando da intraprevisão, um filtro pode ser aplicado a ao menos uma de uma amostra de referência e uma amostra de previsão com base em um modo de intraprevisão e um tamanho do bloco atual.
[0226]No caso de um modo plano, quando da geração de um bloco de previsão de um bloco atual, de acordo com a posição de uma amostra alvo de previsão dentro de um bloco de previsão, um valor de amostra da amostra alvo de previsão pode ser gerado usando a soma ponderada de uma amostra de referência dos lados superior e esquerdo de uma amostra atual, e uma amostra de referência dos lados superior direito e inferior esquerdo do bloco atual. Além disso, no caso de um modo DC, quando da geração de um bloco de previsão de um bloco atual, um valor médio das amostras de referência do lado superior e lado esquerdo do bloco atual pode ser usado. Além disso, no caso de um modo angular, um bloco de previsão pode ser gerado usando amostras de referência do lado superior, lado esquerdo, lado superior direito e/ou lado inferior esquerdo do bloco atual. A fim de gerar um valor de amostra de previsão, a interpolação de uma unidade de número real pode ser realizada.
[0227]No caso de intraprevisão entre componentes de cor, um bloco de previsão para o bloco atual do segundo componente de cor pode ser gerado com base no bloco reconstruído correspondente do primeiro componente de cor. Por exemplo, o primeiro componente de cor pode ser um componente luma, e o segundo componente de cor pode ser um componente croma. Para a intraprevisão entre os componentes de cor, os parâmetros do modelo linear entre o primeiro componente de cor e o segundo componente de cor podem ser derivados com base no template. O template pode incluir as amostras vizinhas superior e/ou esquerda do bloco atual e as amostras vizinhas superior e/ou esquerda do bloco reconstruído do primeiro componente de cor correspondente ao mesmo. Por exemplo, os parâmetros do modelo linear podem ser derivados usando um valor de amostra de um primeiro componente de cor com um valor máximo entre as amostras em um template e um valor de amostra de um segundo componente de cor correspondente ao mesmo, e um valor de amostra de um primeiro componente de cor com um valor mínimo entre as amostras no template e um valor de amostra de um segundo componente correspondente ao mesmo. Quando os parâmetros do modelo linear são derivados, um bloco reconstruído pode ser aplicado ao modelo linear para gerar um bloco de previsão para o bloco atual. De acordo com um formato de vídeo, a subamostragem pode ser realizada nas amostras vizinhas do bloco reconstruído do primeiro componente de cor e do bloco reconstruído correspondente. Por exemplo, quando uma amostra do segundo componente de cor corresponde a quatro amostras do primeiro componente de cor, quatro amostras do primeiro componente de cor podem ser subamostradas para computar uma amostra correspondente. Nesse caso, a derivação de parâmetro do modelo linear e a intraprevisão entre os componentes de cor podem ser realizadas com base nas amostras subamostradas correspondentes. Se ou não realizar a intraprevisão entre componentes de cor e/ou a faixa do template pode ser sinalizado como o modo de intraprevisão.
[0228]O bloco atual pode ser particionado em dois ou quatro sub-blocos na direção horizontal ou vertical. Os sub-blocos particionados podem ser reconstruídos em sequência. Ou seja, a intraprevisão pode ser realizada no sub- bloco para gerar o bloco de subprevisão. Além disso, a desquantização e/ou transformada inversa podem ser realizadas sobre os sub-blocos para gerar sub- blocos residuais. Um sub-bloco reconstruído pode ser gerado adicionando-se o bloco de subprevisão ao bloco sub-residual. O sub-bloco reconstruído pode ser usado como uma amostra de referência para a intraprevisão dos sub-sub-blocos.
O sub-bloco pode ser um bloco que inclui um número predeterminado (por exemplo, 16) ou mais de amostras. Logo, por exemplo, quando o bloco atual é um bloco 8x4 ou um bloco 4x8, o bloco atual pode ser particionado em dois sub- blocos. Além disso, quando o bloco atual é um bloco 4x4, o bloco atual pode não ser particionado em sub-blocos. Quando o bloco atual possui outros tamanhos, o bloco atual pode ser particionado em quatro sub-blocos. Informações sobre se ou não realizar a intraprevisão com base nos sub-blocos e/ou na direção de particionamento (horizontal ou vertical) podem ser sinalizadas. A intraprevisão com base nos sub-blocos pode ter sua realização limitada a só quando a linha de amostras de referência 0 for usada. Quando a intraprevisão com base no sub- bloco é realizada, a filtragem para o bloco de previsão, que será descrita mais adiante, não pode ser realizada.
[0229]O bloco de previsão final pode ser gerado realizando a filtragem sobre o bloco de previsão que é intraprevisto. A filtragem pode ser realizada aplicando pesos predeterminados à amostra alvo de filtragem, à amostra de referência esquerda, à amostra de referência superior e/ou à amostra de referência superior esquerda. O peso e/ou a amostra de referência (faixa, posição etc.) usados para a filtragem podem ser determinados com base em ao menos um de um tamanho de bloco, um modo de intraprevisão e uma posição da amostra alvo de filtragem no bloco de previsão. A filtragem só pode ser realizada no caso de um modo de intraprevisão predeterminado (por exemplo, DC, plano, vertical, horizontal, diagonal e/ou diagonal adjacente). O modo diagonal adjacente pode ser um modo no qual k é adicionado ao modo diagonal ou subtraído do mesmo. Por exemplo, k pode ser um número inteiro positivo igual a 8 ou menos.
[0230]Um modo de intraprevisão de um bloco atual pode ser codificado/decodificado por entropia ao prever um modo de intraprevisão de um bloco presente adjacente ao bloco atual. Quando os modos de intraprevisão do bloco atual e bloco vizinho são idênticos, a informação de que os modos de intraprevisão do bloco atual e bloco vizinho são idênticos pode ser sinalizada usando informações flag predeterminadas. Além disso, informações indicadoras de um modo de intraprevisão que é idêntico ao modo de intraprevisão do bloco atual dentre os modos de intraprevisão de vários blocos vizinhos podem ser sinalizadas. Quando os modos de intraprevisão do bloco atual e bloco vizinho são diferentes, as informações do modo de intraprevisão do bloco atual podem ser codificadas/decodificadas por entropia realizando a codificação/decodificação entrópica com base no modo de intraprevisão do bloco vizinho.
[0231]A FIG. 5 é um diagrama ilustrando uma modalidade de um processo de interprevisão de cena.
[0232]Na FIG. 5, um retângulo representa uma cena. Na FIG. 5, uma seta representa uma direção de previsão. As cenas podem ser categorizadas em intracenas (cenas I), cenas preditivas (cenas P) e cenas bipreditivas (cenas B) de acordo com o tipo de codificação das mesmas.
[0233]A cena I pode ser decodificada por intraprevisão sem a necessidade de interprevisão de cena. A cena P pode ser codificada por interprevisão de cena usando uma cena de referência que se faz presente em uma direção (isto é, direção progressiva ou direção regressiva) em relação a um bloco atual. A cena B pode ser codificada por interprevisão de cena usando cenas de referência que se fazem presentes em duas direções (isto é, a direção progressiva e a direção regressiva) em relação a um bloco atual. Quando a interprevisão de cena é usada, o codificador pode realizar a interprevisão de cena ou compensação de movimento, e o decodificador pode executar a compensação de movimento correspondente.
[0234]Doravante, uma modalidade da interprevisão de cena será descrita em detalhes.
[0235]A interprevisão ou compensação de movimento podem ser realizadas usando uma cena de referência e informações de movimento.
[0236]As informações de movimento de um bloco atual podem ser derivadas durante a interprevisão de cena por cada um do aparelho codificador 100 e aparelho decodificador 200. As informações de movimento do bloco atual podem ser derivadas usando informações de movimento de um bloco vizinho reconstruído, informações de movimento de um bloco colocalizado (também chamado de bloco col) e/ou um bloco adjacente ao bloco colocalizado. O bloco colocalizado pode significar um bloco que localiza-se espacialmente na mesma posição que o bloco atual, dentro de uma cena colocalizada (também chamada de cena col ou cena colocalizada) previamente reconstruída. A cena colocalizada pode ser uma cena entre uma ou mais cenas de referência incluídas em uma lista de cenas de referência.
[0237]O método de derivação das informações de movimento pode ser diferente dependendo do modo de previsão do bloco atual. Por exemplo, um modo de previsão aplicado para interprevisão inclui um modo AMVP, um modo de fusão, um modo de pulo, um modo de fusão com diferença dos vetores de movimentos, um modo de fusão de sub-blocos, um modo de partição triangular, um modo combinado de interprevisão e intraprevisão, um modo afim, e seus semelhantes. Neste documento, o modo de fusão pode ser chamado de modo de fusão de movimento.
[0238]Por exemplo, quando o AMVP é usado como o modo de previsão, ao menos um dos vetores de movimento dos blocos vizinhos reconstruídos, vetores de movimento dos blocos colocalizados, vetores de movimento de blocos adjacentes aos blocos colocalizados e um vetor de movimento (0, 0) podem ser determinados como candidatos a vetor de movimento para o bloco atual, e uma lista de candidatos a vetor de movimento é gerada usando os candidatos a vetor de movimento. O candidato a vetor de movimento do bloco atual pode ser derivado usando a lista de candidatos a vetor de movimento gerada. As informações de movimento do bloco atual podem ser determinadas com base no candidato a vetor de movimento derivado. Os vetores de movimento dos blocos colocalizados ou os vetores de movimento dos blocos adjacentes aos blocos colocalizados podem ser chamados de candidatos a vetor de movimento temporais, e os vetores de movimento dos blocos vizinhos reconstruídos podem ser chamados de candidatos a vetor de movimento espaciais.
[0239]O aparelho codificador 100 pode calcular uma diferença dos vetores de movimentos (MVD) entre o vetor de movimento do bloco atual e o candidato a vetor de movimento e pode realizar a codificação entrópica da diferença dos vetores de movimentos (MVD). Além disso, o aparelho codificador 100 pode realizar a codificação entrópica de um índice de candidato a vetor de movimento e gerar um fluxo de bits. O índice de candidato a vetor de movimento pode indicar um candidato a vetor de movimento ideal dentre os candidatos a vetor de movimento incluídos na lista de candidatos a vetor de movimento. O aparelho decodificador pode realizar a decodificação entrópica do índice de candidato a vetor de movimento incluído no fluxo de bits e pode selecionar um candidato a vetor de movimento de um bloco alvo de decodificação dentre os candidatos a vetor de movimento incluídos na lista de candidatos a vetor de movimento usando o índice de candidato a vetor de movimento decodificado por entropia. Além disso, o aparelho decodificador 200 pode adicionar a MVD decodificada por entropia e o candidato a vetor de movimento extraído por decodificação entrópica, derivando assim o vetor de movimento do bloco alvo de decodificação.
[0240]Por outro lado, o aparelho codificador 100 pode codificar por entropia as informações de resolução da MVD calculada. O aparelho decodificador 200 pode ajustar a resolução da MVD decodificada por entropia usando as informações de resolução da MVD.
[0241]Por outro lado, o aparelho codificador 100 calcula a diferença dos vetores de movimento (MVD) entre um vetor de movimento e um candidato a vetor de movimento no bloco atual com base em um modelo afim e realiza a codificação entrópica da MVD. O aparelho decodificador 200 deriva um vetor de movimento para cada sub-bloco derivando um vetor de movimento controle afim de um bloco alvo decodificador através da soma da MVD decodificada por entropia e de um candidato a vetor de movimento controle afim.
[0242]O fluxo de bits pode incluir um índice de cena de referência indicando uma cena de referência. O índice de cena de referência pode ser codificado por entropia pelo aparelho codificador 100 e, em seguida, ser sinalizado como um fluxo de bits ao aparelho decodificador 200. O aparelho decodificador 200 pode gerar um bloco de previsão do bloco alvo de decodificação com base no vetor de movimento derivado e nas informações de índice de cena de referência.
[0243]Outro exemplo do método para derivar as informações de movimento do bloco atual pode ser o modo de fusão. O modo de fusão pode significar um método para fundir o movimento vários blocos. O modo de fusão pode significar um modo para derivar as informações de movimento do bloco atual a partir das informações de movimento dos blocos vizinhos. Quando o modo de fusão é aplicado, a lista de candidatos a fusão pode ser gerada usando as informações de movimento dos blocos vizinhos reconstruídos e/ou as informações de movimento dos blocos colocalizados. As informações de movimento podem incluir ao menos um vetor de movimento, um índice de cena de referência e um indicador de interprevisão de cena. O indicador de previsão pode indicar a previsão unidirecional (previsão L0 ou previsão L1) ou predições bidimensionais (previsão L0 e previsão L1).
[0244]A lista de candidatos a fusão pode ser uma lista de informações de movimento armazenadas. As informações de movimento incluídas na lista de candidatos a fusão podem ser ao menos uma de informações de movimento (candidato a fusão espacial) de um bloco vizinho adjacente ao bloco atual, informações de movimento (candidato a fusão temporal) do bloco colocalizado do bloco atual na cena de referência, novas informações de movimento geradas por uma combinação das informações de movimento existentes na lista de candidatos a fusão, informações de movimento (candidato a fusão com base no histórico) do bloco que é codificado/decodificado antes do bloco atual, e zero candidatos a fusão.
[0245]O aparelho codificador 100 pode gerar um fluxo de bits realizando a codificação entrópica de ao menos um de uma flag de fusão e um índice de fusão e pode sinalizar o fluxo de bits ao aparelho decodificador 200. A flag de fusão pode ser informações indicando se ou não realizar o modo de fusão para cada bloco, e o índice de fusão pode ser informações indicando qual bloco vizinho, dentre os blocos vizinhos ao bloco atual, é um bloco alvo de fusão. Por exemplo, os blocos vizinhos ao bloco atual podem incluir um bloco vizinho esquerdo no lado esquerdo do bloco atual, um bloco vizinho superior sobre o bloco atual, e um bloco vizinho temporal temporalmente adjacente ao bloco atual.
[0246]Por outro lado, o aparelho codificador 100 executa a codificação entrópica das informações de correção para corrigir o vetor de movimento dentre as informações de movimento do candidato a fusão e sinaliza as mesmas ao aparelho decodificador 200. O aparelho decodificador 200 pode corrigir o vetor de movimento do candidato a fusão selecionado pelo índice de fusão com base nas informações de correção. Aqui, as informações de correção podem incluir ao menos uma de informações sobre se ou não realizar a correção, informações da direção de correção e informações do tamanho da correção. Conforme descrito acima, o modo de previsão que corrige o vetor de movimento do candidato a fusão com base nas informações de correção sinalizadas pode ser chamado de modo de fusão com a diferença dos vetores de movimento.
[0247]O modo de pulo pode ser um modo no qual as informações de movimento do bloco vizinho são aplicadas ao bloco atual tais quais. Quando o modo de pulo é aplicado, o aparelho codificador 100 pode executar a codificação entrópica de informações do fato de que as informações de movimento de qual bloco serão usadas como as informações de movimento do bloco atual para gerar um fluxo de bits, e pode sinalizar o fluxo de bits ao aparelho decodificador 200. O aparelho decodificador 100 pode não sinalizar um elemento sintático referente a ao menos uma de qualquer uma das informações de diferença dos vetores de movimento, flag do bloco de codificação e nível do coeficiente de transformada ao aparelho decodificador 200.
[0248]O modo de fusão de sub-blocos pode significar um modo que deriva as informações de movimento em unidades de sub-blocos de um bloco de codificação (CU). Quando o modo de fusão de sub-blocos é aplicado, uma lista de candidatos a fusão de sub-blocos pode ser gerada usando informações de movimento (candidato a fusão temporal baseada em sub-blocos) do sub-bloco colocalizado ao sub-bloco atual na imagem de referência e/ou um candidato a fusão de vetores de movimento em ponto controle afim.
[0249]O modo de partição triangular pode significar um modo que deriva informações de movimento ao particionar o bloco atual em direções diagonais, deriva cada amostra de previsão usando cada uma das informações de movimento derivadas, e deriva a amostra de previsão do bloco atual ponderando cada uma das amostras de previsão derivadas.
[0250]O modo combinado de interprevisão e intraprevisão pode significar um modo que deriva uma amostra de previsão do bloco atual ao ponderar uma amostra de previsão gerada por interprevisão e uma amostra de previsão gerada por intraprevisão.
[0251]O aparelho decodificador 200 pode corrigir as informações de movimento derivadas ele próprio. O aparelho decodificador 200 pode buscar a região predeterminada com base no bloco de referência indicado pelas informações de movimento derivadas e derivar as informações de movimento com o SAD mínimo como as informações de movimento corrigidas.
[0252]O aparelho decodificador 200 pode compensar uma amostra de previsão derivada via interprevisão usando um fluxo óptico.
[0253]A FIG. 6 é um diagrama que ilustra um processo de transformada e quantização.
[0254]Conforme ilustra a FIG. 6, um processo de transformada e/ou quantização é realizado sobre um sinal residual para gerar um sinal de nível quantizado. O sinal residual é uma diferença entre um bloco original e um bloco de previsão (isto é, um bloco de intraprevisão ou um bloco interprevisão). O bloco de previsão é um bloco gerado por intraprevisão ou interprevisão. A transformada pode ser uma transformada primária, uma transformada secundária, ou ambos. A transformada primária do sinal residual resulta em coeficientes de transformada, e a transformada secundária dos coeficientes de transformada resulta em coeficientes de transformada secundária.
[0255]Ao menos um esquema selecionado dentre vários esquemas de transformada que são definidos preliminarmente é usado para executar a transformada primária. Por exemplo, exemplos dos esquemas de transformada predefinidos incluem transformada discreta de cosseno (DCT), transformada discreta de seno (DST) e transformada de Karhunen-Loève (KLT). Os coeficientes de transformada gerados através da transformada primária podem ser submetidos à transformada secundária. Os esquemas de transformada usados para a transformada primária e/ou transformada secundária podem ser determinados de acordo com parâmetros de codificação do bloco atual e/ou de blocos vizinhos ao bloco atual Como alternativa, informações de transformada que indiquem o esquema de transformada podem ser sinalizadas. A transformada baseada na DCT pode incluir, por exemplo, DCT-2, DCT-8 e seus semelhantes. A transformada baseada na DST pode incluir, por exemplo, DST-7.
[0256]Um sinal de nível quantizado (coeficientes de quantização) pode ser gerado realizando a quantização sobre o sinal residual ou um resultado de realizar a transformada primária e/ou a transformada secundária. O sinal de nível quantizado pode ver varrido de acordo com ao menos uma de uma varredura diagonal de cima para a direita, uma varredura vertical e uma varredura horizontal, dependendo do modo de intraprevisão e/ou tamanho/formato de um bloco. Por exemplo, à medida que os coeficientes são varridos em uma varredura diagonal de cima para a direita, os coeficientes em uma forma de bloco transformam-se em uma forma de vetor unidimensional. Fora a varredura diagonal de cima para a direita, a varredura horizontal de uma forma de coeficientes em bloco bidimensional ou a varredura vertical de uma forma de coeficientes em bloco bidimensional podem ser usadas dependendo do modo de intraprevisão e/ou do tamanho de um bloco de transformada. Os coeficientes de nível quantizado varridos podem ser codificados por entropia para ser inseridos em um fluxo de bits.
[0257]Um decodificador decodifica por entropia o fluxo de bits para obter os coeficientes de nível quantizado. Os coeficientes de nível quantizado podem ser organizados em uma forma de bloco bidimensional através de uma varredura inversa. Para a varredura inversa, ao menos uma de uma varredura diagonal de cima para a direita, uma varredura vertical e uma varredura horizontal pode ser usada.
[0258]Os coeficientes de nível quantizado podem ser então desquantizados, em seguida secundariamente transformados inversamente de acordo com o necessário e, por fim, primariamente transformados inversamente de acordo com o necessário para gerar um sinal residual reconstruído.
[0259]O mapeamento inverso em uma faixa dinâmica pode ser realizado para um componente luma reconstruído por intraprevisão ou interprevisão antes da filtragem in-loop. A faixa dinâmica pode ser dividida em 16 partes iguais, e a função de mapeamento para cada parte pode ser sinalizada. A função de mapeamento pode ser sinalizada no nível de fatia ou no nível de grupo de tiles.
Uma função de mapeamento inverso para realizar o mapeamento inverso pode ser derivada com base na função de mapeamento. A filtragem in-loop, o armazenamento de cenas de referência e a compensação de movimento são realizados em uma região mapeada inversamente, e um bloco de previsão gerado por interprevisão é convertido em uma região mapeada via mapeamento usando a função de mapeamento e, em seguida, usado para gerar o bloco reconstruído. No entanto, como a intraprevisão é realizada na região mapeada, o bloco de previsão gerado via intraprevisão pode ser usado para gerar o bloco reconstruído sem mapear/mapear inversamente.
[0260]Quando o bloco atual é um bloco residual de um componente croma, o bloco residual pode ser convertido em uma região mapeada inversamente realizando o escalonamento sobre o componente croma da região mapeada. A disponibilidade do escalonamento pode ser sinalizada no nível de fatia ou no nível de grupo de tiles. O escalonamento pode ser aplicado só quando o mapeamento para o componente luma se faz disponível e a divisão do componente luma e a divisão do componente croma seguem a mesma estrutura de árvore. O escalonamento pode ser realizado com base na média dos valores de amostra de um bloco de previsão luma correspondente ao bloco de diferença de cor. Nesse caso, quando o bloco atual utiliza de interprevisão, o bloco de previsão luma pode significar um bloco de previsão luma mapeado. Um valor necessário para o escalonamento pode ser derivado referindo-se a uma tabela de consulta usando um índice de uma parte à qual uma média de valores de amostra de um bloco de previsão luma pertence. Por fim, ao escalonar o bloco residual usando o valor derivado, o bloco residual pode ser comutado para a região mapeada inversa. Em seguida, a restauração do bloco de componente croma, intraprevisão, interprevisão, filtragem in-loop e armazenamento de cenas de referência podem ser realizados em uma área mapeada inversamente.
[0261]Informações indicando se o mapeamento/mapeamento inverso do componente luma e componente croma está disponível podem ser sinalizadas através de um conjunto de parâmetros de sequência.
[0262]O bloco de previsão do bloco atual pode ser gerado com base em um vetor de bloco que indica um deslocamento entre o bloco atual e o bloco de referência na cena atual. Dessa forma, um modo de previsão para gerar um bloco de previsão com referência à cena atual é chamado de um modo de cópia intrabloco (IBC). O modo IBC pode ser aplicado a unidades de codificação MxN (M ≤ 64, N ≤ 64). O modo IBC pode incluir um modo de pulo, um modo de fusão, um modo AMVP e seus semelhantes. No caso de um modo de pulo ou um modo de fusão, uma lista de candidatos a fusão é construída e o índice de fusão é sinalizado de modo que um candidato a fusão possa ser especificado. O vetor de bloco do candidato de fusão especificado pode ser usado como um vetor de bloco do bloco atual. A lista de candidatos a fusão pode incluir ao menos um candidato espacial, um candidato baseado no histórico, um candidato baseado na média de dois candidatos e um candidato de fusão zero. No caso de um modo AMVP, o vetor de bloco de diferença pode ser sinalizado. Além disso, o vetor de bloco de previsão pode ser derivado a partir do bloco vizinho esquerdo e do bloco vizinho superior do bloco atual. O índice sobre qual bloco vizinho usar pode ser sinalizado.
O bloco de previsão no modo IBC é incluído na CTU atual ou na CTU esquerda e limitado a um bloco na área já reconstruída. Por exemplo, um valor do vetor de bloco pode ser limitado de tal modo que o bloco de previsão do bloco atual seja posicionado em uma área de três blocos 64x64 precedendo o bloco 64x64 ao qual o bloco atual pertence na ordem de codificação/decodificação. Ao limitar o valor do vetor de bloco dessa maneira, o consumo de memória e a complexidade do dispositivo, de acordo com a implementação do modo IBC, podem ser reduzidos.
[0263]Doravante, descrever-se-á um método de codificação/decodificação de imagens de acordo com a presente invenção com base na descrição acima.
[0264]Na presente invenção, descrever-se-á um método para gerar uma lista de candidatos para realizar a previsão de movimento. Na modalidade a seguir, a lista de candidatos pode significar uma lista de ocorrência de vetores de movimento adaptativos (AMVOL). Em outro exemplo, na modalidade a seguir, a lista de candidatos pode significar uma lista de previsores de vetores de movimento com base no histórico (AMVOL). O codificador ou decodificador podem realizar a previsão de movimento com mais precisão e eficácia ao gerar e utilizar uma lista de candidatos de acordo com a presente invenção, aumentando assim a eficácia da codificação.
[0265]De acordo com a presente invenção, ao realizar a previsão de movimento, o codificador ou decodificador podem executar a previsão de movimento usando as informações de movimento derivadas em uma seção ou região predeterminada.
[0266]As informações de movimento podem ser armazenadas e usadas em uma unidade com nível mais alto do que uma unidade na qual a previsão de informações de movimento é realizada. Um exemplo de uma unidade na qual a previsão de movimento é realizada inclui uma CU, uma PU, um bloco, um macrobloco, e seus semelhantes. A unidade com nível mais alto do que uma unidade na qual a previsão de informações de movimento é realizada pode ser todas as unidades maiores do que uma unidade na qual a previsão de informações de movimento é realizada. Por exemplo, a unidade com nível mais alto neste documento pode incluir ao menos uma de um bloco, uma CTU, um tijolo, um tile, uma fatia, uma subcena, uma cena, um quadro e um grupo de cena (GOP) composto por uma ou mais CUs.
[0267]Nas modalidades a seguir, uma unidade superior maior do que uma unidade na qual a previsão de informações de movimento é realizada pode ser representada por uma unidade de previsão superior (UPU). Ou seja, nas modalidades a seguir, a UPU pode significar ao menos um de um bloco, uma CTU, um tijolo, um tile, uma fatia, uma subcena, uma cena, um quadro e um grupo de cena (GOP) composto por uma ou mais CUs.
[0268]A FIG. 8 é um diagrama que ilustra uma unidade de previsão superior (UPU) usada em algumas modalidades da presente invenção.
[0269]No presente relatório, uma UPU pode significar um conjunto de unidades nas quais a previsão de movimento é realizada e uma estrutura com uma ou mais listas de candidatos. Doravante, um bloco pertencente a uma UPU específica pode ser expresso como um bloco com nível mais baixo do que a UPU correspondente ou um bloco incluído na UPU. A lista de candidatos para uma UPU específica pode ser construída usando informações de movimento geradas a partir de blocos com nível mais baixo do que a UPU. A lista de candidatos pode ser configurada para armazenar todas ou parte das informações de movimento geradas a partir de blocos com nível mais baixo do que a UPU. Os tamanhos ou unidades de diferentes UPUs podem ser iguais ou podem ser definidos de maneira diferente.
[0270]Com referência à FIG. 8, é descrita uma UPU que pode ser usada em algumas modalidades da presente invenção. A cena na FIG. 8 inclui vários blocos de codificação.
[0271]A FIG. 8(a) ilustra um caso em que várias cenas pertencem a uma UPU. Ou seja, a FIG. 8(a) ilustra um caso em que a UPU é uma unidade GOP. Nesse caso, a UPU pode ter uma lista de candidatos gerada usando informações de movimento geradas a partir de cenas incluídas na UPU.
[0272]A FIG. 8(b) ilustra um caso em que uma cena pertence a uma UPU.
Nesse caso, a UPU pode ter uma lista de candidatos gerada usando informações de movimento geradas em cada cena.
[0273]As FIGs. 8(c) a 8(e) ilustram casos em que uma cena inclui várias UPUs. Ou seja, as FIGs. 8(c) a 8(e) ilustram casos em que a UPU é uma unidade com nível mais baixo do que uma cena. Por exemplo, a UPU pode ser definida realizando a partição quaternária sobre a cena horizontalmente (FIG. 8(c)) ou realizando a partição quaternária sobre a cena verticalmente. Em outro exemplo, a UPU pode ser definida realizando o particionamento em n partições sobre a cena.
[0274]Por outro lado, a FIG. 8(d) pode ser um exemplo em que a UPU é composta por CTUs compondo uma fileira. Ou seja, a UPU pode ser definida em uma unidade de fileira da CTU. Neste documento, a UPU pode ter uma lista de candidatos gerada usando informações de movimento geradas em cada fileira de CTU.
[0275]Embora não ilustrada na FIG. 8, a UPU pode ser definida em uma unidade da CTU e pode ser definida em uma unidade de fatia, tijolo e várias CUs.
[0276]Doravante, as informações de movimento incluídas na lista de candidatos podem incluir ao menos uma de informações necessárias para a previsão de movimento, tais como um vetor de movimento, um número de cena de referência (índice, identificador etc.), uma lista de cenas de referência, uma direção da previsão de movimento, e seus semelhantes.
[0277]Uma unidade na qual informações de movimento geradas em blocos incluídos na UPU é armazenada pode ser chamada de uma lista de candidatos. As informações de movimento armazenadas na lista de candidatos podem ser utilizadas quando o codificador ou decodificador operarem no modo de interprevisão ou modo IBC. A lista de candidatos podem incluir informações adicionais que podem ser usadas para utilizar a lista de candidatos em aditamento às informações de movimento. As informações adicionais que podem ser incluídas na lista de candidatos podem incluir, por exemplo, informações da frequência de ocorrência de informações de movimento, informações da posição onde as informações de movimento ocorrem, e seus semelhantes.
[0278]A FIG. 9 é um diagrama que ilustra uma estrutura de um codificador de acordo com uma modalidade da presente invenção.
[0279]De acordo com a FIG. 9, informações de movimento geradas como resultado da interprevisão podem ser adicionadas a uma lista de candidatos de acordo com a presente invenção. Em outro exemplo, embora não ilustrado na FIG. 9, informações de movimento geradas como resultado da previsão IBC podem ser adicionadas a uma lista de candidatos de acordo com a presente invenção. Subsequentemente, a lista de candidatos pode ser usada para a interprevisão ou IBC, aprimorando assim a eficácia da codificação.
[0280]A FIG. 10 é um diagrama que ilustra uma estrutura de um decodificador de acordo com uma modalidade da presente invenção.
[0281]De acordo com a FIG. 10, informações de movimento reconstruídas por interprevisão podem ser adicionadas a uma lista de candidatos de acordo com a presente invenção. Em outro exemplo, embora não ilustrado na FIG. 10, informações de movimento reconstruídas por previsão IBC podem ser adicionadas a uma lista de candidatos de acordo com a presente invenção. Subsequentemente, a lista de candidatos pode ser usada na interprevisão ou IBC novamente para reconstruir informações de movimento para o bloco atual.
[0282]A FIG. 11 é um fluxograma que ilustra um método de codificação/decodificação de acordo com uma modalidade da presente invenção.
[0283]A FIG. 11(a) ilustra um método de codificação de um codificador ao qual a presente invenção se aplica. A previsão de informações de movimento genérica por um codificador pode referir-se a um método de previsão de informações de movimento realizado pelo codificador na técnica relacionada. A previsão de informações de movimento por lista de candidatos pode significar a previsão de informações de movimento usando uma lista de candidatos de acordo com a presente invenção. A etapa de previsão de movimento significa uma etapa para prever o movimento do bloco atual, e o resultado da previsão de informações de movimento pode ser utilizado nesse processo. A seleção da previsão ideal pode significar selecionar a previsão mais ideal para codificação a partir dos resultados de previsão de informações de movimento derivados da previsão de informações de movimento genérica e dos resultados de previsão de informações de movimento derivados da previsão de informações de movimento usando a lista de candidatos. A codificação das informações de movimento pode significar uma etapa do método de codificação de acordo com um resultado de seleção da previsão ideal, informações adicionais relacionadas a ele, e informações relacionadas a informações de movimento. A adição das informações de movimento à lista de candidatos pode incluir adicionar informações de movimento previamente geradas à lista de candidatos. As informações de movimento adicionadas na adição das informações de movimento à lista de candidatos podem ser usadas mais tarde na interprevisão do codificador.
[0284]A FIG. 11(a) ilustra um método de decodificação de um decodificador ao qual a presente invenção se aplica.
A decodificação das informações de movimento pode ser uma etapa de decodificar um sinal codificado pelo codificador.
O sinal decodificado pode incluir um método de decodificação para decodificar o bloco atual, informações adicionais acerca do método de decodificação e informações relacionadas às informações de movimento.
A previsão de informações de movimento genérica pode referir-se a um método de previsão de informações de movimento realizado em um decodificador convencional.
A previsão de informações de movimento por lista de candidatos pode significar a previsão de informações de movimento usando uma lista de candidatos de acordo com a presente invenção.
Há múltiplos resultados da previsão de informações de movimento genérica e da previsão de informações de movimento por lista de candidatos.
O decodificador pode determinar se a previsão ideal é a previsão de informações de movimento usando uma lista de candidatos ou não, selecionando assim um método de previsão de informações de movimento que será usado para decodificação dentre um método de previsão de informações de movimento por lista de candidatos e um método de previsão de informações de movimento genérica.
O método de previsão de informações de movimento pode ser determinado por informações sinalizadas pelo codificador.
A compensação do movimento pode significar uma etapa de decodificar informações de movimento de um bloco atual, e pode significar uma etapa de decodificar informações de movimento de um bloco atual usando o sinal decodificado e o resultado da previsão de informações de movimento.
A adição das informações de movimento à lista de candidatos pode ser uma etapa de adicionar as informações de movimento enfim decodificadas à lista de candidatos.
As informações de movimento adicionadas na adição das informações de movimento à lista de candidatos podem ser usadas mais tarde na interprevisão do decodificador.
[0285]A FIG. 12 é um diagrama que ilustra estruturas de um codificador e decodificador de acordo com outra modalidade da presente invenção.
[0286]A FIG. 12(a) ilustra uma configuração de um codificador ao qual a presente invenção se aplica. O módulo de previsão de informações de movimento genérica pode significar um módulo de previsão de informações de movimento executado pelo codificador. O módulo de previsão de informações de movimento por lista de candidatos pode referir-se a uma configuração para executar a previsão de informações de movimento usando informações de movimento armazenadas em uma lista de candidatos de acordo com a presente invenção. Há múltiplos resultados de previsão de informações de movimento do módulo de previsão de informações de movimento genérica e do módulo de previsão de informações de movimento por lista de candidatos. O módulo de previsão de movimento refere-se a uma configuração para prever o movimento do bloco atual, e, nesse processo, o resultado da previsão de informações de movimento pode ser utilizado. O módulo de seleção da previsão ideal pode ser configurado para selecionar a previsão ideal para codificar o bloco atual dentre os resultados de previsão de informações de movimento derivados da previsão de informações de movimento genérica e dos resultados de informações de movimento derivados da previsão de informações de movimento por lista de candidatos. O módulo de codificação de informações de movimento pode ser configurado para codificar um método de codificação de acordo com um resultado de seleção do módulo de seleção da previsão ideal, informações adicionais relacionadas ao mesmo, e informações relacionadas a informações de movimento. O módulo de adição à lista de candidatos pode ser configurado para adicionar informações de movimento previamente geradas à lista de candidatos. As informações de movimento adicionadas pelo módulo de adição à lista de candidatos podem ser usadas mais tarde na interprevisão ou IBC do codificador.
[0287]A FIG. 11(b) ilustra um diagrama ilustrando um aparelho de interprevisão de um decodificador ao qual a presente invenção se aplica. O módulo de decodificação das informações de movimento pode ser configurado para decodificar um sinal codificado pelo codificador. O sinal decodificado pode incluir um método de decodificação para decodificar o bloco atual, informações adicionais acerca do método de decodificação e informações relacionadas às informações de movimento. O módulo de previsão de informações de movimento genérica pode referir-se a uma configuração que realiza um método de previsão de informações de movimento executado por um decodificador convencional. O módulo de previsão de informações de movimento por lista de candidatos pode referir-se a uma configuração para executar a previsão de informações de movimento usando informações de movimento armazenadas em uma lista de candidatos. Há múltiplos resultados da previsão de informações de movimento genética e da previsão de informações de movimento por lista de candidatos. O compensador de movimento pode decodificar as informações de movimento do bloco atual usando o sinal decodificado pelo módulo de decodificação das informações de movimento e o resultado da previsão de informações de movimento. O módulo de adição à lista de candidatos pode ser configurado para adicionar as informações de movimento enfim decodificadas à lista de candidatos. As informações de movimento adicionadas pelo módulo de adição à lista de candidatos podem ser usadas mais tarde na interprevisão ou IBC do decodificador.
[0288]Quando novas informações de movimento ou um candidato são armazenados na lista de candidatos, as mesmas informações de movimento ou candidato podem não ser armazenados na lista de candidatos. O codificador ou decodificador podem determinar se as informações de movimento sobrepondo as novas informações de movimento são incluídas na lista de candidatos atual. O codificador ou decodificador podem realizar diferentes operações de acordo com se elas se sobrepõem.
[0289]Neste documento, os critérios para determinar as mesmas informações de movimento podem ser relacionados a se todas as informações incluídas nas informações de movimento são iguais, e se algumas delas são iguais. Por exemplo, considerando que as informações de movimento consistem em um vetor de movimento e um número de cena de referência, quando só o vetor de movimento e comparado e os vetores de movimento são iguais, o codificador e decodificador podem determinar que as informações de movimento a ser adicionadas são iguais às informações de movimento incluídas na lista de candidatos. Além disso, o codificador ou decodificador podem determinar que as informações de movimento a ser adicionadas são iguais às informações de movimento incluídas na lista de candidatos somente quando tanto o vetor de movimento quanto o número de cena de referência forem iguais.
[0290]As informações de movimento na lista de candidatos de acordo com a presente invenção podem determinar o potencial de previsão das informações de movimento e armazenar e atualizar informações representando o mesmo. Neste documento, candidatos da lista de candidatos podem ser organizados de acordo com o potencial de previsão das informações de movimento. Um método para determinar o potencial de previsão da lista de candidatos será descrito mais adiante.
[0291]O tamanho da lista de candidatos de acordo com a presente invenção pode ser limitado. Aqui, o tamanho do lista de candidatos pode significar as informações de movimento máximas ou o número de candidatos que podem ser armazenados na lista de candidatos. Quando o número de informações de movimento armazenadas na lista de candidatos chegar ao valor máximo, o codificador ou decodificador podem adicionar (armazenar) ou omitir o armazenamento de novas informações de movimento na lista de candidatos de acordo com o exemplo a seguir.
[0292]O tamanho da lista de candidatos pode ser limitado por um valor predefinido no codificador ou decodificador. Por exemplo, o valor predefinido pode ser um valor entre 1 e 6. Em outro exemplo, o tamanho da lista de candidatos pode ser limitado por um valor sinalizado a partir do codificador ou decodificador. Informações sobre valores para limitar o tamanho da lista de candidatos podem ser sinalizadas em um nível mais alto de um fluxo de bits, tal como um conjunto de parâmetros de sequência, um conjunto de parâmetros de cena, um cabeçalho de fatia, um cabeçalho de tile e um cabeçalho de grupo de tiles.
[0293]Por exemplo, quando o número de informações de movimento armazenadas na lista de candidatos chega ao valor máximo, as informações de movimento recém-derivadas podem ser omitidas sem ser armazenadas na lista de candidatos.
[0294]Em outro exemplo, quando o número de informações de movimento armazenadas na lista de candidatos chega a um valor máximo, o potencial de previsão das informações de movimento recém-derivadas é comparado ao potencial de previsão das informações de movimento armazenadas na lista de candidatos existente, de modo que as informações de movimento com alto potencial de previsão sejam adicionadas à lista de candidatos, e as informações de movimento com o potencial de previsão mais baixo podem ser removidas da lista de candidatos. Neste documento, quando o potencial de previsão das informações de movimento recém-derivadas é mais baixo do que o potencial de previsão das informações de movimento armazenadas na lista de candidatos existente, as informações de movimento recém-derivadas podem ser omitidas sem que sejam armazenadas na lista de candidatos.
[0295]Em outro exemplo, quando o número de informações de movimento armazenadas na lista de candidatos chega a um valor máximo, as informações de movimento armazenadas primeiramente dentre as informações de movimento armazenadas na lista de candidatos são removidas, e as informações de movimento recém-derivadas podem ser adicionadas à lista de candidatos. Ou seja, informações de movimento recém-geradas podem ser adicionadas à lista de candidatos de acordo com uma regra primeiro a entrar primeiro a sair (FIFO).
[0296]Ou seja, quando o número de informações de movimento armazenadas na lista de candidatos chega ao valor máximo, as informações de movimento indicadas pelo índice de lista de candidato 0 podem ser removidas, e as informações de movimento recém-derivadas podem ser adicionadas à lista de candidatos. Neste documento, o índice das informações de movimento incluídas na lista de candidatos pode ser reduzido em um. As informações de movimento recém-adicionadas podem ser adicionadas à lista de candidatos a ser indicada pelo maior índice dentre as informações de movimento incluídas na lista de candidatos.
[0297]O processo para adicionar informações de movimento à lista de candidatos pode ser omitido.
[0298]Por exemplo, quando informações de movimento iguais já encontram-se armazenadas na lista de candidatos, as informações de movimento recém-derivadas podem não ser adicionadas à lista de candidatos. Em outro exemplo, quando informações de movimento semelhantes já estão armazenadas na lista de candidatos, as informações de movimento recém-derivadas podem não ser adicionadas à lista de candidatos. Em outro exemplo, quando o número de informações de movimento armazenadas na lista de candidatos já chegou ao máximo, as informações de movimento recém-derivadas podem não ser adicionadas à lista de candidatos. Em outro exemplo, quando o potencial de previsão das informações de movimento a ser armazenadas é baixo, as informações de movimento recém-derivadas podem não ser adicionadas à lista de candidatos.
[0299]Em outro exemplo, quando as informações de movimento a ser recém-adicionadas já foram armazenadas na lista de candidatos, informações de movimento sobrepostas pré-armazenadas podem ser removidas da lista de candidatos, e as informações de movimento recém-derivadas podem ser adicionadas à lista de candidatos. Neste documento, os índices das informações de movimento da lista de candidatos com valor de índice maior do que as informações de movimento removidas podem ser reduzidos em um. As informações de movimento recém-adicionadas podem ser adicionadas à lista de candidatos a ser indicada pelo maior índice dentre as informações de movimento incluídas na lista de candidatos.
[0300]Aqui, que as informações de movimento sejam semelhantes pode significar um caso em que uma diferença de posição da região de referência indicada pelas informações de movimento é igual ou menor que um valor limite predefinido.
[0301]O vetor de movimento pode ser expresso por uma combinação (dx, dy) do deslocamento no eixo x dx e do desvio no eixo y dy.
[0302]dx representa o quão longe a região de referência é separada da posição do bloco atual no eixo x, e dy representa o quão longe a região de referência é separada da posição do bloco atual no eixo y. Por exemplo, MV1 é (2, 3), MV2 é (3, 3), MV3 é (10, 5), e um valor limite predefinido pode ser 3 no eixo x e 3 no eixo y. Neste documento, visto que MV1 e MV2 têm uma diferença de 1 no eixo x e 0 no eixo y, todas as quais são menores ou iguais a um valor limite, determina-se que MV1 e MV2 têm informações de movimento semelhantes um ao outro. Por outro lado, visto que MV1 e MV3 têm uma diferença de 8 no eixo x e 2 no eixo y, o que ultrapassa um valor limite no eixo x, determina-se que MV1 e MV3 não são informações de movimento semelhantes.
[0303]O processo de comparar a diferença entre o valor limite e o par de informações de movimento, e o processo de comparar a diferença entre o par de informações de movimento e a diferença entre o outro par de informações de movimento pode ser chamado de comparação de semelhança das informações de movimento. Neste documento, a comparação de semelhança pode ser realizada em todas as informações que as informações de movimento possuem, e a comparação de semelhança pode ser realizada somente em algumas informações das informações de movimento. Por exemplo, quando as informações de movimento são compostas por informações que representam o vetor de movimento e a cena de referência, a comparação de semelhança pode ser realizada somente para o vetor de movimento, e a comparação de semelhança pode ser realizada comparando todas as informações que representam o vetor de movimento e a cena de referência.
[0304]As informações de movimento armazenadas na lista de candidatos podem ser usadas como um candidato para previsão de informações de movimento. Ou seja, as informações de movimento podem ser usadas como um candidato para todos os métodos de previsão de informações de movimento que prevê informações de movimento atuais com referência a outras informações de movimento. Por exemplo, as informações de movimento armazenadas na lista de candidatos pode ser usada como um dos candidatos a informações de movimento quando o codificador e o decodificador operarem no modo de fusão, e o codificador e o decodificador operarem no modo AMVP ou no modo IBC.
[0305]Ao usar informações de movimento armazenadas em uma lista de candidatos como um candidato de previsão de informações de movimento, as informações de movimento usadas como candidato podem ser definidas como um candidato de uma lista de candidatos de acordo com a presente invenção.
[0306]Um candidato utilizado para a previsão de informações de movimento convencional e um candidato em uma lista de candidatos podem ser usados simultaneamente, e a previsão de informações de movimento pode ser realizada usando apenas candidatos da lista de candidatos.
[0307]Por exemplo, quando um candidato de uma lista de candidatos é usado junto com um candidato de previsão de informações de movimento convencional, candidatos na lista de candidatos podem ser gerados excluindo informações de movimento de uma lista de candidatos com prioridade mais alta do que um candidato na lista de candidatos e com as mesmas informações de movimento que um candidato previamente gerado. Aqui, a prioridade pode significar uma prioridade de candidatos a informações de movimento aludidos na interprevisão ou IBC. Como a prioridade do candidato a informações de movimento é mais alta, o codificador pode realizar a sinalização atribuindo uma quantidade de bits menor a ele.
[0308]Além disso, ao configurar uma lista de candidatos a AMVP ou a fusão, quando o tamanho de uma lista de candidatos a AMVP ou candidatos a fusão é limitada, uma lista de candidatos a AMVP ou a fusão pode ser configurada de acordo com a prioridade. Por exemplo, a começar pelo candidato com a prioridade mais alta, ele pode ser adicionado à lista de candidatos a AMVP ou a fusão. Quando as informações de movimento de candidato são armazenadas na lista de candidatos até o tamanho máximo da lista de candidatos a AMVP ou a fusão, o candidato com baixa prioridade não é adicionado à lista de candidatos e pode não ser usado para a previsão de informações de movimento.
[0309]Além disso, quando a lista de candidatos a AMVP ou a fusão é configurada usando informações de movimento com alta prioridade, o codificador ou decodificador podem sinalizar informações indicando um candidato específico.
[0310]A FIG. 13 é um diagrama que ilustra uma lista de candidatos de acordo com uma modalidade da presente invenção.
[0311]A FIG. 13 ilustra um caso em que uma modalidade da presente invenção é aplicada a um modo de fusão e um modo AMVP.
[0312]Na lista de candidatos a fusão, a prioridade pode ser definida na ordem de um candidato espacial, um candidato temporal, um candidato de lista misto, e um candidato a vetor zero. Os candidatos espaciais podem ter prioridade na ordem de A1, B1, B0, A0 e B2. O candidato temporal pode ter prioridade em uma ordem de H e C, e ao menos um de dois candidatos pode ser adicionado à lista de candidatos a fusão. Um candidato de lista misto para previsão bidirecional pode ser gerado combinando um candidato espacial e um candidato temporal adicionados à lista de candidatos. O candidato a vetor zero pode gerar um candidato com um vetor de movimento como vetor zero indicando que não há movimento.
[0313]Logo, o candidato a fusão pode ter uma prioridade na ordem de A1, B1 B0, A0, B2, H ou C, candidato de lista misto e candidato a vetor zero, e os candidatos disponíveis na ordem de alta prioridade podem ser adicionados à lista de candidatos a fusão. Neste documento, quando candidatos são adicionados ao tamanho máximo da lista de candidatos, mais nenhum candidato pode ser adicionado à lista de candidatos.
[0314]Neste documento, os candidatos da lista de candidatos de acordo com a presente invenção podem ser adicionados à lista de candidatos a fusão. Os candidatos adicionados à lista de candidatos a fusão podem ser posicionados em quaisquer posições, tais como dianteira, traseira, intermediária etc. dos candidatos não utilizando a lista de candidatos de acordo com a presente invenção, e vários candidatos podem ser adicionados através de diferentes prioridades. A FIG. 13 ilustra uma situação na qual candidatos de duas listas de candidatos são adicionados à lista de candidatos a fusão após o candidato espacial e o candidato temporal. Os candidatos na lista de candidatos podem ser adicionados em várias posições, tal como na frente dos candidatos espaciais, entre os candidatos espaciais, na frente dos candidatos temporais, atrás dos candidatos temporais, e também podem ser adicionados em duas ou mais posições. Neste documento, os candidatos de uma ou mais listas de candidatos podem ser adicionados à lista de candidatos a fusão.
[0315]A lista de candidatos pode ser configurada aplicando-se vários métodos descritos neste documento usando informações de movimento de todos os blocos codificados antes do bloco atual. Além disso, ao subamostrar as informações de movimento dos blocos na cena (por exemplo, selecionando as informações de movimento dos blocos incluindo as Mas informações de movimento ou a posição do Mo pixel), ou ao subamostrar a posição do pixel na cena em intervalos regulares e selecionar informações de movimento de um bloco incluindo uma posição de pixel correspondente, vários métodos descritos neste documento são aplicados usando as informações de movimento selecionadas, configurando assim uma lista de candidatos.
[0316]Neste documento, as informações de movimento do primeiro bloco codificado em uma cena são chamadas de primeiras informações de movimento, e as informações de movimento do Mo bloco codificado são chamadas de Mas informações de movimento. M pode ser um número inteiro positivo maior que zero.
[0317]Algumas das ou todas as informações de movimento incluídas na lista de candidatos configurada conforme descrito acima podem ser selecionadas como candidatos da lista de candidatos de acordo com vários métodos incluídos neste documento e, em seguida, adicionadas à lista de candidatos a fusão. Como alternativa, uma lista de candidatos para a previsão de informações de movimento pode ser configurada usando somente candidatos da lista de candidatos de acordo com a presente invenção, e um índice (indicador) indicando um candidato necessário para decodificar o bloco correspondente pode ser sinalizado.
[0318]A fim de codificar os blocos incluídos em uma Ka fileira de CTU a ser atualmente codificada, as informações de movimento de blocos adjacentes a um limite mais baixo da K-1a fileira de CTU podem ser usadas como candidatos em um modo de fusão e AMVP. Para esse fim, informações de movimento e informações de posição dos blocos correspondentes não precisam ser armazenadas em um buffer (doravante chamado de buffer de linha) (K é qualquer número inteiro maior que 1).
[0319]Por exemplo, ao usar os candidatos da lista de candidatos de acordo com a presente invenção, não as informações de movimento correspondentes (informações do bloco vizinho localizado no limite da fileira de CTU), o codificador ou decodificador não utilizará o buffer de linha. Em outras palavras, quando do uso de informações de movimento incluídas na K-1a fileira de CTU dentre os blocos incluídos na Ka fileira de CTU como um candidato a fusão ou a AMVP, as informações de movimento correspondentes não são usadas, e a lista de candidatos da lista de candidatos de acordo com a presente invenção é usada.
[0320]Por exemplo, candidatos da lista de candidatos só podem armazenar informações de movimento de blocos adjacentes ao limite inferior da K-1a fileira de CTU. Além disso, só algumas das informações de movimento dos blocos adjacentes ao limite inferior da K-1a fileira de CTU podem ser adicionadas. Por exemplo, só informações de movimento de um bloco incluindo a posição do No pixel da esquerda da cena podem ser incluídas na lista de candidatos. Neste documento, N é um número inteiro igual a 4 ou mais, podendo ser 4, 8, 16, 32, 64 ou 128.
[0321]No modo de AMVP, pode-se dar prioridade na ordem de um candidato espacial, um candidato temporal e um candidato a vetor zero. Um candidato pode ser selecionado em uma região A e uma região B como o candidato espacial. A região A pode significar candidatos A0 e A1 e possui prioridade na ordem de A0, A1, A0 Escalonado e A1 Escalonado, e ao menos um candidato pode ser selecionado dentre eles. Neste documento, o candidato escalonado refere-se a um candidato gerado corrigindo o vetor de movimento, quando a cena de referência do vetor de movimento espacial difere da cena de referência do bloco sendo atualmente pesquisado. A região B pode significar um candidato B0, B1 ou B2, e ao menos um candidato dentre B0, B1, B2, B0 Escalonado, B1 Escalonado e B2 Escalonado pode ser selecionado. O candidato temporal pode ter uma ordem de prioridade de H e C, e ao menos um dos dois pode ser adicionado a uma lista de candidatos a AMVP. O candidato a vetor zero pode gerar um candidato com um vetor de movimento como vetor zero indicando que não há movimento.
[0322]Logo, o candidato pode ter uma prioridade do candidato de região A, candidato de região B, H ou C, candidato a vetor zero, e os candidatos disponíveis podem ser adicionados à lista de candidatos a AMVP na ordem de alta prioridade.
Neste documento, quando candidatos são adicionados ao tamanho máximo da lista de candidatos a AMVP, mais nenhum candidato pode ser adicionado à lista de candidatos.
[0323]Neste documento, os candidatos da lista de candidatos de acordo com a presente invenção podem ser adicionados à lista de candidatos a AMVP. Os candidatos da lista de candidatos de acordo com a presente invenção adicionados à lista de candidatos a AMVP podem ser posicionados em quaisquer posições, tal como antes, depois e no meio etc. do candidato que não utiliza a lista de candidatos de acordo com a presente invenção, e os vários candidatos podem ser adicionados à lista de candidatos a AMVP com diferentes prioridades em relação uns aos outros. A FIG. 13 ilustra uma situação na qual candidatos de duas listas de candidatos são adicionados à lista de candidatos a AMVP após um candidato espacial e um candidato temporal. Os candidatos na lista de candidatos podem ser adicionados em várias posições, tal como na frente dos candidatos espaciais, entre os candidatos espaciais, na frente dos candidatos temporais, atrás dos candidatos temporais etc. ou podem ser adicionados em duas ou mais posições. Além disso, os candidatos em uma ou mais listas de candidatos podem ser adicionados à lista de candidatos a AMVP.
[0324]Em outro exemplo, os candidatos de uma lista de candidatos de acordo com a presente invenção podem ser adicionados a uma lista de candidatos para previsão IBC. Os candidatos da lista de candidatos adicionados à lista de candidatos IBC de acordo com a presente invenção podem ser posicionados em quaisquer posições, tal como antes, depois, no meio etc. dos candidatos que não utilizam a lista de candidatos de acordo com a presente invenção, e os vários candidatos têm diferentes prioridades, e podem ser adicionados à lista de candidatos a IBC. Além disso, os candidatos de uma ou mais listas de candidatos podem ser adicionados à lista de candidatos a IBC.
[0325]A FIG. 14 é um diagrama que ilustra um método para adicionar informações de movimento a uma lista de candidatos de acordo com uma modalidade da presente invenção.
[0326]A FIG. 14 ilustra um processo no qual informações de movimento geradas como previsão são adicionadas a uma lista de candidatos. Na FIG. 14, (a), (b), (c), (d), (e), (f), (g), (h) e (i) significam a ordem temporal do processo de codificação/decodificação, procedimentos de codificação/decodificação na direção da seta entre as etapas. Cada região retangular pode significar uma unidade de codificação ou unidade de previsão, e pode significar uma unidade na qual a previsão é realizada de tal modo que informações de movimento sejam geradas. O bloco de bloqueio cinza pode referir-se a um bloco atual no qual a codificação/decodificação está em andamento no ponto no tempo atual em cada desenho. Na FIG. 14, a região inteira significa uma UPU, e a UPU pode consistir em um conjunto de blocos de codificação. A lista de candidatos para cada estágio é ilustrada no topo, e cada coluna da lista de candidatos pode significar informações de movimento armazenadas. Neste documento, o número ilustrado na lista de candidatos pode indicar um valor de índice da lista de candidatos. As informações coloridas dentre as informações de movimento armazenadas na lista de candidatos podem significar informações de movimento recém-adicionadas na etapa correspondente. O alfabeto escrito em maiúsculas no bloco de codificação e na lista de candidatos pode significar informações de movimento do bloco de codificação correspondente, e alfabetos diferentes podem significar informações de movimento diferentes. As informações de movimento borradas referem-se às informações de movimento pré-reconstruídas, e as informações de movimento exibidas em cor escura podem significar informações de movimento recém- geradas no bloco de codificação atual.
[0327]Na FIG. 14, a etapa (a) ilustra um processo no qual o primeiro bloco codificado dentre os blocos de codificação incluídos na UPU é decodificado. Visto que ainda não há informações de movimento pré-construídas, não há informações de movimento armazenadas na lista de candidatos. Na etapa (b), as informações de movimento A reconstruídas na etapa (a) são adicionadas à lista de candidatos. Logo, ao prever informações de movimento de um bloco de codificação atual, as informações de movimento A armazenadas na lista de candidatos podem ser aludidas.
[0328]Em seguida, à medida que a etapa avança, as informações de movimento reconstruídas na etapa anterior podem ser adicionadas à lista de candidatos uma a uma. Neste documento, informações de movimento sobrepondo informações de movimento já presentes na lista de candidatos podem não ser recém-adicionadas à lista de candidatos. Por exemplo, as informações de movimento geradas na etapa (d) já estão incluídas na lista de candidatos como A e, portanto, não são adicionadas. Logo, na etapa (e), informações de movimento recém-adicionadas podem não existir na lista de candidatos. À semelhança, as informações de movimento geradas na etapa (e) já estão incluídas na lista de candidatos como C e, portanto, não são adicionadas. Logo, informações de movimento recém-adicionadas na lista de candidatos podem não existir na etapa (f).
[0329]Em outro exemplo, ainda que já existam informações de movimento na lista de candidatos, tal como informações de movimento geradas nas etapas (d) e (e), as informações de movimento podem ser adicionadas em sequência à lista de candidatos. Nesse caso, a lista de candidatos na etapa (e) pode ser A, B, C, A e C em sequência a partir do índice 0.
[0330]A FIG. 15 é outro diagrama que ilustra um método no qual informações de movimento são adicionadas a uma lista de candidatos de acordo com a presente invenção.
[0331]A FIG. 15 ilustra outro exemplo no qual informações de movimento são adicionadas a uma lista de candidatos. De acordo com a FIG. 15, as informações de movimento podem ser geradas da mesma maneira que na FIG. 14, e as informações de movimento podem ser adicionadas a uma lista de candidatos ao mesmo tempo. No entanto, a FIG. 15 ilustra um método para adicionar informações de movimento a uma lista de candidatos através de um método diferente do da FIG. 14.
[0332]Na FIG. 14, informações de movimento são adicionadas à última posição de índice na lista de candidatos, mas, no exemplo da FIG. 15, informações de movimento recém-derivadas podem ser adicionadas à posição de índice 0 na lista de candidatos. Além disso, as informações de movimento armazenadas na lista de candidatos existentes na posição de índice 0 podem mudar de ordem na lista de candidatos ao adicionar um ao índice quando novas informações de movimento forem adicionadas. Em outras palavras, ao mudar a ordem da lista de candidatos, a ordem ou prioridade de referência à lista de candidatos na previsão de movimento pode ser alterada.
[0333]A FIG. 16 é outro diagrama que ilustra um método para adicionar informações de movimento a uma lista de candidatos de acordo com uma modalidade da presente invenção.
[0334]A FIG. 16 ilustra um método para reconfigurar a ordem das informações de movimento em uma lista de candidatos quando, dentre as informações de movimento previamente introduzidas no método da FIG. 15, houver informações de movimento iguais às informações de movimento recém- introduzidas. As informações de movimento A geradas na etapa (d) são informações de movimento iguais às informações de movimento adicionadas à lista de candidatos na etapa (b). Logo, na FIG. 16, na etapa (e), as informações de movimento A podem não ser adicionadas à lista de candidatos. Na etapa (e) da FIG. 16, a ordem na lista de candidatos das informações de movimento A pode ser mudada para o Índice 0. Como alternativa, as informações de movimento A existentes podem ser excluídas e as informações de movimento A podem ser recém-adicionadas à posição de índice 0. O índice de outras informações de movimento previamente introduzidas é obtido adicionando um, e a ordem e o índice entre os candidatos podem ser alterados.
[0335]Esse pode ser um método para mudar a prioridade com novas informações de entrada quando informações de movimento iguais ocorrerem ao considerar a prioridade de acordo com a ordem na qual as informações de movimento são introduzidas. Neste documento, pode-se confirmar na etapa (f) que, quando a ordem (índice) das informações na lista de candidatos é mais tarde do que as informações de movimento sobrepostas (quando o índice é maior), a ordem não é alterada. Ou seja, no exemplo, da FIG. 16, quando a sobreposição de informações de movimento C ocorre, quando a ordem de C é alterada para o Índice 0, o índice de A, que é mais baixo que o de C, torna-se +1, ao passo que o índice de B, que é mais alto que o de C, pode não ser alterado.
[0336]Por outro lado, ao menos um de um indicador (flag, índice) indicando se usar a lista de candidatos de acordo com a presente invenção, um tipo de UPU aplicada, um tamanho da UPU podem ser sinalizados através de ao menos um de um conjunto de parâmetros, tal como um conjunto de parâmetros de sequência ou um conjunto de parâmetros de cenas, ou cabeçalho de fatia.
[0337]As FIGs. 17 a 20 são diagramas que ilustram uma estrutura sintática de acordo com algumas modalidades da presente invenção.
[0338]A seguir, a sintaxe apresentada é um exemplo, e o âmbito da presente invenção não se limita à expressão sintática a seguir. A sintaxe com o mesmo significado ou função que a sintaxe para uma lista de candidatos de acordo com a presente invenção pode ser incluída no âmbito da presente invenção.
[0339]A FIG. 17 ilustra um exemplo no qual a sinalização de habilitação da lista de candidatos é incluída em uma sintaxe de conjunto de parâmetros de sequência (SPS). A FIG. 18 ilustra um exemplo no qual a sinalização de habilitação da lista de candidatos é incluída em uma sintaxe de conjunto de parâmetros de cena (PPS).
[0340]O sinal de habilitação da lista de candidatos pode significar um sinal que indica se a lista de candidatos de acordo com a presente invenção é usada na codificação/decodificação. Nas tabelas das FIGs. 17 e 18, amvol_enable_flag pode ser um sinal de habilitação da lista de candidatos que indica se uma lista de candidatos é usada na codificação/decodificação. Quando amvol_enable_flag é verdadeiro, a codificação e decodificação usando uma lista de candidatos podem ser realizadas.
[0341]upu_type_idx pode ser um sinal sinalizado quando a codificação e decodificação usando uma lista de candidatos são realizadas. upu_type_idx é um sinal que determina um tipo da UPU, e pode ser um sinal que determina uma unidade à qual a UPU é aplicada. Neste documento, a unidade à qual a UPU é aplicada pode ser ao menos uma de um bloco, uma CTU, um tijolo, um tile, uma fatia, uma subcena, uma cena, um quadro e um grupo de cena (GOP) composto por uma ou mais CUs, e a UPU pode ter uma região que é a mesma que a da unidade determinada.
[0342]Neste documento, a codificação pode ser realizada designando uma unidade à qual a UPU é aplicada de antemão e atribuindo um valor específico a ela. UPU_TYPE_COSTOM pode ser uma sintaxe indicando que uma unidade da UPU não é uma unidade predeterminada dentre unidades às quais a UPU é aplicável. Quando a unidade à qual a UPU é aplicada é UPU_TYPE_COSTOM, sinalização adicional para definir uma faixa da UPU pode ser realizada. Por exemplo, os sinais upu_width e upu_height das FIGs. 17 e 18 podem ser a sintaxe para sinalizar o tamanho, ao qual a UPU é aplicada, em largura e altura.
[0343]upu_type_idx pode ser omitido quando a UPU formar uma lista de candidatos com um tamanho fixo ou o tipo de UPU puder ser derivado de outro sinal. Quando a UPU é aplicada apenas em uma unidade ou tamanho especificado de antemão, a sinalização da sintaxe para definir UPU_TYPE_COSTOM e a faixa da UPU pode ser omitida.
[0344]A FIG. 19 ilustra um caso em que a sinalização de habilitação da lista de candidatos é incluída em uma sintaxe de cabeçalho de fatia. amvol_enable_flag pode ser um sinal indicando se uma lista de candidatos de acordo com a presente invenção é usada para codificar/decodificar. Quando amvol_enable_flag é verdadeiro, a codificação e decodificação podem ser realizadas usando uma lista de candidatos de acordo com a presente invenção.
[0345]Upu_type_idx poder ser um sinal que pode ser transmitido e recebido quando a codificação e decodificação usando uma lista de candidatos forem realizadas. upu_type_idx é um sinal que determina um tipo da UPU, e pode ser um sinal que determina uma unidade à qual a UPU é aplicada. Neste documento, a unidade à qual a UPU é aplicada pode ser ao menos uma de um bloco, uma CTU, um tijolo, um tile, uma fatia, uma subcena, uma cena, um quadro e um grupo de cena (GOP) composto por uma ou mais CUs, e a UPU pode ter uma região que é a mesma que a da unidade determinada.
[0346]Neste documento, a codificação pode ser realizada designando uma unidade à qual a UPU é aplicada de antemão e atribuindo um valor específico a ela. UPU_TYPE_COSTOM pode ser uma sintaxe indicando que uma unidade da UPU não é uma unidade predeterminada dentre unidades às quais a UPU é aplicável. Quando a unidade à qual a UPU é aplicada é UPU_TYPE_COSTOM, sinalização adicional para definir a faixa da UPU pode ser realizada. Por exemplo, os sinais upu_width e upu_height das FIGs. 17 e 18 podem ser a sintaxe para sinalizar o tamanho, ao qual a UPU é aplicada, em largura e altura.
[0347]upu_type_idx pode ser omitido quando a UPU formar uma lista de candidatos com um tamanho fixo ou um tipo de UPU puder ser derivado de outro sinal. Quando a UPU é aplicada apenas em uma unidade ou tamanho especificado de antemão, a sinalização da sintaxe para definir UPU_TYPE_COSTOM e a faixa da UPU pode ser omitida.
[0348]Neste documento, toda sinalização que trata da lista de candidatos pode ser omitida quando o tipo da fatia for um tipo específico. Por exemplo, toda sinalização relacionada à lista de candidatos pode ser omitida quando o tipo da fatia atual for fatia-I. Visto que a lista de candidatos é um método de codificação e decodificação usado para a previsão de movimento, a sinalização pode ser omitida no caso de uma fatia-I que não realiza a previsão de movimento.
[0349]A FIG. 20 ilustra um exemplo de quando um índice de lista de candidatos é incluído na sintaxe da unidade de codificação. O sinal de índice da lista de candidatos de acordo com a presente invenção pode ser uma sintaxe indicando quais informações de movimento candidatas dos candidatos da lista de candidatos são usadas para a previsão de informações de movimento quando a previsão de informações de movimento usando a lista de candidatos é usada.
[0350]Em um exemplo, o sinal de índice de lista de candidatos pode ser usado em combinação a um modo de fusão, um modo de AMVP, um movo de IBC etc., e pode ser usado junto com outros sinais sem nenhuma sinalização separada. Como alternativa, a sinalização pode ser omitida usando informações de movimento de candidato previamente designadas. Em outro exemplo, o sinal de índice de lista de candidatos pode ser omitido quando o bloco de codificação atual não estiver no modo de interprevisão.
[0351]Na FIG. 20, cu_inter_pred_mode pode ser um sinal indicando por qual método de codificação o bloco atual é codificado/decodificado quando a CU atual está em um modo inter. Quando cu_inter_pred_mode indica um método de codificação/decodificação que usa uma lista de candidatos de acordo com a presente invenção, um sinal de índice de lista de candidatos pode ser sinalizado.
Em outro exemplo, a sinalização de cu_inter_pred_mode pode ser omitida e um método de codificação/decodificação do bloco de codificação atual pode ser selecionado por um método predeterminado. O método de codificação/decodificação do bloco de codificação atual é selecionado por um método predeterminado, e, quando o método de codificação/decodificação predeterminado é um método de codificação/decodificação que usa a lista de candidatos de acordo com a presente invenção, um sinal de índice de lista de candidatos pode ser sinalizado.
[0352]Em um exemplo, MODE_AMVOL pode ser uma sintaxe indicando um método de codificação/decodificação que usa uma lista de candidatos de acordo com a presente invenção. amvol_idx pode indicar um índice de lista de candidatos. Através do amvol_idx sinalizado, pode-se determinar quais informações de movimento dentre as informações de movimento armazenadas na lista de candidatos são usadas como candidato para a previsão de movimento.
[0353]Doravante, descrever-se-á um método para aproximar informações de movimento incluídas em uma lista de candidatos de acordo com a presente invenção.
[0354]As informações de movimento armazenadas na lista de candidatos de acordo com a presente invenção podem ser semelhantes umas às outras.
Quando houver informações de movimento semelhantes em um grande número de listas de candidatos, pode ocorrer o problema de que características de informações de movimento que são um candidato sejam enviesadas de modo que a eficácia da previsão de informações de movimento caia. Neste documento, o problema supramencionado pode ser solucionado convertendo e usando candidatos semelhantes em uma informação de movimentos aproximada.
[0355]Um ponto no tempo quando as informações de movimento aproximadas são geradas é um dentre um ponto no tempo quando informações de movimento são armazenadas na lista de candidatos de acordo com a presente invenção, um ponto no tempo quando o candidato da lista de candidatos é gerado a partir da lista de candidatos, e um ponto no tempo quando as informações de movimento armazenadas na lista de candidatos para cada período são aproximadas.
[0356]As FIGs. 21 e 22 são diagramas que ilustram fluxogramas de um codificador e decodificador para aproximar as informações de movimento de acordo com algumas modalidades da presente invenção.
[0357]As FIGs. 21 e 22 ilustram fluxogramas do codificador/decodificador usando o método de aproximação das informações de movimento na lista de candidatos de acordo com a presente invenção. A FIG. 21 ilustra um caso em que as informações de movimento na lista de candidatos é aproximada na hora de adicionar informações de movimento à lista de candidatos, e a FIG. 22 ilustra um caso em que as informações de movimento na lista de candidatos são aproximadas na hora de gerar candidatos da lista de candidatos.
[0358]As FIGs. 21 e 22 podem ser exemplos nos quais uma etapa de aproximação das informações de movimento é adicionada ao fluxograma da FIG.
11. O codificador ou decodificador podem aproximar as informações de movimento na hora de adicionar as informações de movimento à lista de candidatos. As informações de movimento aproximadas na etapa de aproximação das informações de movimento podem ser recém-adicionadas à lista de candidatos na etapa de adição de informações de movimento à lista de candidatos.
[0359]Na FIG. 22, quando o codificador ou decodificador geram um candidato da lista de candidatos a partir das informações de movimento na lista de candidatos, o codificador ou decodificador podem aproximar as informações de movimento do candidato da lista de candidatos . A etapa de previsão de informações de movimento por lista de candidatos pode ser realizada através de candidatos de uma lista de candidatos com informações de movimento aproximadas. Além disso, visto que cada etapa das FIGs. 21 e 22 pode ser igual a cada etapa da FIG. 11, sua descrição será omitida.
[0360]As FIGs. 23 e 24 são diagramas que ilustram a estrutura de um codificador e decodificador para aproximar as informações de movimento de acordo com algumas modalidades da presente invenção.
[0361]As FIGs. 23 e 24 ilustram exemplos de diagramas de dispositivo de subdecodificadores usando o método de aproximação das informações de movimento na lista de candidatos. A FIG. 23 ilustra um caso em que as informações de movimento na lista de candidatos é aproximada na hora de adicionar informações de movimento à lista de candidatos, e a FIG. 24 ilustra um caso em que as informações de movimento na lista de candidatos são aproximadas na hora de gerar o candidato da lista de candidatos.
[0362]As FIGs. 23 e 24 ilustram exemplos nos quais um método de aproximação das informações de movimento na lista de candidatos é adicionado ao diagrama de dispositivo da FIG. 12. O módulo de aproximação das informações de movimento na lista de candidatos pode aproximar as informações de movimento quando as informações de movimento forem adicionadas à lista de candidatos. As informações de movimento aproximadas pelo módulo de aproximação das informações de movimento na lista de candidatos podem ser recém-adicionadas à lista de candidatos pela unidade de adição de informações de movimento à lista de candidatos.
[0363]O módulo de aproximação das informações de movimento na lista de candidatos da FIG. 24 pode aproximar as informações de movimento de candidatos na lista de candidatos quando da geração de um candidato da lista de candidatos a partir das informações de movimento na lista de candidatos. A unidade de previsão de informações de movimento por lista de candidatos pode realizar a previsão de informações de movimento usando candidatos de uma lista de candidatos com informações de movimento aproximadas. Além disso, visto que cada componente das FIGs. 23 e 24 pode ser igual a cada componente da FIG. 12, sua descrição será omitida.
[0364]Doravante, descrever-se-á um método para aproximar informações de movimento por meio de codificador ou decodificador de acordo com algumas modalidades da presente invenção.
[0365]Em um exemplo, as informações de movimento podem ser aproximadas usando uma média de informações de movimento. O codificador ou decodificador podem aproximar as informações de movimento correspondentes à faixa de semelhança determinada ao obter um valor médio das informações de movimento correspondentes à faixa de semelhança determinada. Neste documento, ao menos uma de média aritmética, média ponderada e mediana pode ser usada como método para calcular a média. Além disso, uma média de informações de movimento pode ser calculada dentro de uma faixa determinada independentemente da semelhança.
[0366]Em outro exemplo, as informações de movimento podem ser aproximadas por seleção representativa pela frequência de ocorrência das informações de movimento. Após obter o mesmo número de informações de movimento dentro de uma faixa predeterminada, o codificador ou decodificador podem aproximar as mesmas informações de movimento dentro da faixa predeterminada ao determinar o maior número de informações de movimento como as informações de movimento representativas. Por exemplo, quando a faixa predeterminada é CTU, o codificador ou decodificador pode comparar todas as informações de movimento geradas em uma CTU e determinar as informações de movimento com o maior número de ocorrências como informações de movimento representativas da CTU atual. As informações de movimento representativas podem ser usadas como informações de movimento aproximadas.
[0367]Além disso, a determinação das informações de movimento representativas descrita acima pode se dar usando informações de movimento semelhantes em vez das mesmas informações de movimento. Nesse caso, as informações de movimento semelhantes podem significar informações de movimento com uma diferença dentro de um valor limite específico em relação às informações de movimento de referência. O codificador ou decodificador podem confirmar o número de ocorrência ao tratar informações de movimento semelhantes como as mesmas informações de movimento descritas acima e determinar as informações de movimento representativas com base nas mesmas.
[0368]Em outro exemplo, as informações de movimento podem ser aproximadas levando em consideração a região da região da qual as informações de movimento derivam. A região da região da qual as informações de movimento derivam pode ser diferente para cada informação de movimento. O codificador ou decodificador podem aproximar as informações de movimento levando em consideração a região da região da qual as informações de movimento derivam.
Por exemplo, quando as informações de movimento são derivadas através da região grande, o codificador ou decodificador podem calcular uma média ponderada dando o maior peso, ou aproximar as informações de movimento selecionando as informações de movimento derivadas através da maior região como as informações de movimento representativas. Nesse caso, quando informações de movimento derivadas de diferentes regiões uma das outras têm o mesmo movimento entre si, as regiões podem ser somadas e consideradas.
[0369]Em outro exemplo, as informações de movimento podem ser aproximadas levando em consideração o potencial de previsão delas. O codificador ou decodificador podem comparar informações de potencial de previsão das informações de movimento a ser adicionadas à lista de candidatos, selecionar as informações de movimento com um potencial de previsão alto como as informações de movimento representativas, ou calcular as informações de movimento representativas usando uma média ponderada de acordo com o potencial de previsão. Neste documento, o codificador ou decodificador podem definir uma faixa para comparar o potencial de previsão ou aproximar as informações de movimento comparando o potencial de previsão somente entre informações de movimento semelhantes.
[0370]Neste documento, o potencial de previsão das informações de movimento pode ser informações indicando o quão altas são a precisão de previsão ou eficácia de codificação das informações de movimento quando uma previsão de informações de movimento usando a lista de candidatos de acordo com a presente invenção for utilizada. Um método para determinar o potencial de previsão das informações de movimento será descrito mais adiante.
[0371]Em outro exemplo, as informações de movimento podem ser aproximadas definindo a resolução das informações de movimento em uma unidade de pixel específica. O vetor de movimento a ser adicionado à lista de candidatos pode ser aproximado a uma unidade de pixel específica. Por exemplo, o pixel específico pode ser um de uma unidade de pixel inteiro, uma unidade de 1/2 pixel, uma unidade de 1/4 de pixel e uma unidade de quatro pixels. Por exemplo, quando a resolução do vetor de movimento a ser adicionado à lista de candidatos for aproximada para uma unidade de 1/16 de pixel e uma unidade de pixel inteiro, um valor do vetor de movimento pode ser aproximado para o valor inteiro mais próximo. Em outro exemplo, quando da aproximação para uma unidade de 1/2 pixel, o valor do vetor de movimento pode ser aproximado para o valor de 1/2 unidade mais próximo. Por exemplo, quando o valor do vetor de movimento for (2,6, 3,7), ao aproximar para o valor de 1/2 unidade mais próximo, o valor de vetor de movimento pode ser aproximado para (2,5, 3,5).
[0372]A aproximação das informações de movimento pode ser realizada usando as modalidades descritas acima individualmente. Além disso, a aproximação das informações de movimento pode ser realizada através de ao menos uma combinação das modalidades descritas acima.
[0373]Doravante, descrever-se-á um método para realizar a previsão usando o potencial de previsão das informações de movimento de uma lista de candidatos de acordo com a presente invenção.
[0374]As informações de movimento armazenadas na lista de candidatos de acordo com a presente invenção podem incluir informações adicionais para utilizar a lista de candidatos com mais eficácia em aditamento às informações para previsão de movimento. O potencial de previsão das informações de movimento incluídas na lista de candidatos pode ser determinado usando algumas das ou todas as informações de movimento e informações adicionais incluídas na lista de candidatos.
[0375]No presente relatório descritivo, o potencial de previsão pode ser informações indicando o quão altas são a precisão de previsão ou eficácia de codificação das informações de movimento quando usadas na previsão de informações de movimento usando uma lista de candidatos. Logo, é possível aprimorar a eficácia de codificação ao primeiramente selecionar informações de movimento com alto potencial de previsão e, em seguida, gerar candidatos para uma lista de candidatos.
[0376]Um método para determinar o potencial de previsão das informações de movimento de acordo com a presente invenção pode incluir um método para calcular o potencial global das informações de movimento pertencentes a uma lista de candidatos em uma UPU, e um método para calcular o potencial local para um bloco (unidade) a ser codificado atualmente.
[0377]O método para calcular o potencial global pode ser um método para estimar o quão promissora cada informação de movimento incluída na lista de candidatos é para a UPU como um todo. O método para calcular o potencial local pode ser um método para estimar o quão promissora cada informação de movimento incluída na lista de candidatos é para prever as informações de movimento de um bloco específico.
[0378]As FIGs. 25 e 26 são diagramas ilustrando um método para calcular o potencial de uma lista de candidatos de acordo com algumas modalidades da presente invenção.
[0379]As FIGs. 25 e 26 ilustram fluxogramas de um codificador e decodificador que calculam o potencial de previsão de informações de movimento.
A FIG. 25 ilustra um caso em que o potencial de previsão das informações de movimento é calculado na hora de adicionar as informações de movimento à lista de candidatos, e a FIG. 26 ilustra um caso em que o potencial de previsão das informações de movimento incluídas na lista de candidatos é calculado na hora de gerar o candidato da lista de candidatos.
[0380]As FIGs. 25 e 26 podem ser exemplos nos quais uma etapa de cálculo do potencial de previsão é adicionada ao fluxograma da FIG. 11. Por exemplo, o cálculo do potencial de previsão da lista de candidatos da FIG. 25 pode ser realizado pelo método de cálculo de potencial global descrito acima. As informações de movimento adicionadas à lista de candidatos podem incluir informações de potencial de previsão. Quando houver informações de movimento iguais na lista de candidatos existente, as informações de potencial de previsão podem ser atualizadas.
[0381]Por exemplo, a etapa para calcular o potencial de precisão da FIG.
26 pode ser realizada usando o método de cálculo do potencial local descrito acima.
[0382]As etapas de previsão de informações de movimento por lista de candidatos das FIGs. 25 e 26 podem ser realizadas levando em consideração as informações de potencial de previsão derivadas. Além disso, visto que cada etapa das FIGs. 25 e 26 pode ser igual a cada etapa da FIG. 11, sua descrição será omitida.
[0383]As FIGs. 27 e 28 são diagramas que ilustram a estrutura de um codificador e decodificador para calcular o potencial de previsão de uma lista de candidatos de acordo com algumas modalidades da presente invenção.
[0384]As FIGs. 27 e 28 ilustram exemplos de diagramas de dispositivo de um codificador e decodificador que calculam o potencial de previsão de informações de movimento. A FIG. 27 ilustra um caso em que o potencial de informações de movimento é calculado na hora de adicionar informações de movimento a uma lista de candidatos, e a FIG. 28 ilustra um caso em que o potencial de informações de movimento de uma lista de candidatos é calculado na hora de gerar candidatos de uma lista de candidatos.
[0385]As FIGs. 27 e 28 ilustram exemplos nos quais uma calculadora de potencial de previsão é adicionada ao diagrama de dispositivo da FIG. 12. Por exemplo, a calculadora de potencial de previsão da FIG. 27 calcula o potencial das informações de movimento a ser adicionadas à lista de candidatos, e pode calcular o potencial de previsão usando o método de cálculo de potencial global descrito acima. As informações de movimento adicionadas à lista de candidatos podem incluir informações de potencial de previsão. Quando houver informações de movimento iguais na lista de candidatos existente, as informações de potencial podem ser atualizadas.
[0386]Por outro lado, a calculadora de potencial de previsão da FIG. 28 calcula o potencial de previsão ao gerar um candidato de uma lista de candidatos,
e o potencial de previsão pode ser calculado pelo método de potencial local descrito acima.
[0387]As unidades de previsão de informações de movimento por lista de candidatos das FIGs. 27 e 28 podem prever informações de movimento levando em consideração informações de potencial de previsão derivadas. Além disso, visto que cada componente das FIGs. 27 e 28 pode ser igual a cada componente da FIG. 12, sua descrição é omitida.
[0388]A FIG. 29 é um diagrama que ilustra a geração de uma lista de candidatos mista de acordo com uma modalidade da presente invenção.
[0389]A FIG. 29 ilustra um exemplo de um diagrama de dispositivo de um codificador e decodificador para calcular o potencial de previsão de informações de movimento utilizando tanto um método de cálculo do potencial global quanto um método de cálculo do potencial local. O diagrama de dispositivo da FIG. 29 pode ser obtido substituindo a calculadora de potencial de previsão da FIG. 27 por um calculadora de potencial global e substituindo a calculadora de potencial de previsão da FIG. 28 por uma calculadora de potencial local. De acordo com a FIG.
29, os candidatos da lista de candidatos podem ser gerados levando em consideração tanto o potencial global quanto o potencial local, que podem ser usados na unidade de previsão de informações de movimento por lista de candidatos.
[0390]Doravante, descrever-se-á um método para calcular o potencial de previsão de informações de movimento de acordo com algumas modalidades da presente invenção.
[0391]Em um exemplo, o potencial de previsão pode ser calculado levando em consideração a frequência de ocorrência das informações de movimento. O potencial de previsão das informações de movimento pode ser calculado verificando quantas informações de movimento na lista de candidatos foram geradas até então. Quando a frequência de ocorrência de informações de movimento iguais ou de informações de movimento semelhantes que podem ser tratadas como informações de movimento iguais é alta, o codificador ou decodificador podem determinar o potencial de previsão das informações de movimento correspondentes como alto. Neste documento, a frequência de ocorrência pode ser medida usando o número de ocorrências das informações de movimento iguais, uma região com as informações de movimento iguais, e seus semelhantes. Neste documento, a frequência de ocorrência pode ser medida ao limitar uma região onde a frequência de ocorrência é medida. Por exemplo, a frequência de ocorrência até o presente pode ser medida para toda a região de UPU, ou a frequência de ocorrência pode ser medida somente dentro de uma faixa predeterminada ou uma região específica com base em uma unidade que é atualmente codificada. A frequência de ocorrência medida dessa maneira pode ser usada para calcular o potencial de previsão das informações de movimento.
[0392]Em outro exemplo, o potencial de previsão pode ser calculado levando em consideração a precisão da interprevisão. Visto que cada informação de movimento pertencente à lista de candidatos é uma informação de movimento usada para reconstruir outro bloco, o codificador ou decodificador podem conhecer a eficácia do código do bloco reconstruído usando a informação de movimento correspondente.
[0393]A eficácia de codificação das informações de movimento pode ser determinada com base na distribuição de energia ou valor médio do sinal residual. A energia do sinal residual pode significar uma diferença no valor de brilho ou uma diferença no valor de pixel entre o bloco atual e o bloco de previsão gerado por interprevisão. A média de energia do sinal residual pode significar um valor médio da diferença entre o valor de brilho ou o valor de pixel gerados em cada posição de pixel do bloco atual e do bloco de previsão. A distribuição de energia do sinal residual pode ser um valor calculado pela posição da energia do sinal residual para cada posição de pixel em um bloco de diferencial e a grandeza da energia. Por exemplo, a distribuição de energia do sinal residual pode ser um valor de momento dos sinais residuais com energia de uma grandeza predeterminada ou mais. Neste documento, o valor de movimento dos sinais residuais pode significar uma posição central na distribuição de valores de brilho, que é calculada por posições dos respectivos sinais residuais e valores de brilho dos respectivos sinais residuais.
[0394]Através da energia do sinal residual, uma distribuição e um valor médio, ou seus semelhantes, em um bloco de diferencial transformado por frequência podem ser calculados. Por exemplo, o valor DC pode ser usado como valor médio no domínio de frequência, e a distribuição de energia dos sinais residuais pode ser determinada por uma razão de energia para cada domínio de frequência. Neste documento, a fim de que o codificador e decodificador operem da mesma maneira, um bloco de diferencial quantizado ou um bloco de diferencial transformado por frequência podem ser usados. Além disso, quando do uso do bloco de diferencial quantizado ou do bloco de diferencial transformado por frequência, um parâmetro de quantização ou um valor de etapa de quantização podem ser usados. Por exemplo, quando da comparação da distribuição de energia ou do valor médio do sinal residual de dois blocos usando parâmetros de quantização diferentes um do outro, a distribuição de energia ou valor médio do sinal diferencial podem ser corrigidos pela diferença do parâmetro de quantização.
[0395]Por exemplo, após a energia do sinal de diferencial com o maior parâmetro de quantização ser escalonada n vezes, a distribuição de energia ou valor médio do sinal de diferencial podem ser calculados para comparar a energia de sinais residuais entre os dois blocos. Além disso, visto que o componente de alta frequência é preferivelmente reduzido durante a quantização, quando da comparação da energia do sinal residual no domínio de frequência, o cálculo pode ser realizado dando um peso distinto para o componente de baixa frequência e o componente de alta frequência.
[0396]Neste documento, quando um valor da média de energia do sinal residual é alto, determinar-se que o potencial de previsão é baixo. O potencial de previsão pode ser determinado por um método para comparar a distribuição de energia de sinal residual variando a prioridade da mesma de acordo com a posição da distribuição de energia de sinal residual e por um método para comparar a distribuição de energia de sinal residual de acordo com o domínio de frequência, tal como a região de alta frequência e a região de baixa frequência.
[0397]Ou seja, quando a eficácia de codificação é alta quando usando as informações de movimento correspondentes ao comparar a eficácia de codificação dos blocos reconstruídos usando cada informação de movimento, o codificador ou decodificador podem determinar que as informações de movimento correspondentes têm alto potencial de previsão.
[0398]Em outro exemplo, o potencial de previsão pode ser calculado levando em consideração a distância entre a posição do bloco atual e a posição da região onde as informações de movimento ocorreram. As informações de movimento derivadas de uma região específica são mais propensas a ser semelhantes à região específica que é temporal e espacialmente adjacente ao bloco atual. Levando em consideração essa característica, o potencial de previsão pode ser determinado de acordo com a distância espacial e temporal entre a posição de geração de cada informação de movimento incluída na lista de candidatos e a posição do bloco atual.
[0399]Neste documento, em caso de informações de movimento iguais incluídas na lista de candidatos, o codificador ou decodificador podem reduzir as operações necessárias para calcular a distância através do uso das informações de posição aproximadas, ou um método para atualizar a posição mais recente.
Como exemplo do método para calcular as informações de posição aproximadas, quando as informações de movimento são geradas em unidades de blocos de codificação, um método para simplificar o cálculo de distância pode ser utilizado levando em consideração somente as informações de posição de uma CTU que inclui o bloco de codificação correspondente.
[0400]Quando a lista de candidatos de acordo com a presente invenção é usada em combinação a um modo de fusão, um modo de AMVP, um modo de IBC ou seus semelhantes, o potencial de previsão pode ser determinado excluindo um método de determinação de região adjacente que o método de previsão de informações de movimento existentes leva em consideração.
[0401]O cálculo do potencial de previsão das informações de movimento pode ser realizado utilizando as modalidades descritas acima individualmente. Além disso, o cálculo do potencial de previsão de informações de movimento pode ser realizado através de ao menos uma combinação das modalidades descritas acima. Quando as modalidades descritas acima são combinadas para calcular o potencial de previsão, este pode ser calculado ponderando cada valor do resultado de determinação e, em seguida, aplicando a importância de cada resultado de determinação diferencialmente.
[0402]Doravante, descrever-se-á um método para gerar uma lista de candidatos virtual de acordo com uma modalidade da presente invenção.
[0403]Os candidatos da lista de candidatos de acordo com a presente invenção podem ser gerados através de informações de movimento armazenadas previamente na lista de candidatos. Por exemplo, candidatos da lista de candidatos podem ser gerados através de todas ou algumas das informações de movimento previamente armazenadas na lista de candidatos. Doravante, um candidato com informações de movimento que são derivadas das informações de movimento previamente armazenadas na lista de candidatos, mas não idênticas às informações de movimento previamente armazenadas na lista de candidatos, é definido como um candidato virtual. De acordo com uma modalidade da presente invenção, o candidato virtual pode ser adicionado à lista de candidatos.
[0404]Doravante, descrever-se-á um método para gerar um candidato virtual.
[0405]Por exemplo, o candidato virtual pode significar um candidato da lista de candidatos mista. Por exemplo, pode haver um caso em que a previsão é realizada usando várias informações de movimento. Em particular, a previsão usando duas informações de movimento pode ser chamada de biprevisão.
[0406]As informações de movimento usadas para a interprevisão usando várias informações de movimento podem ser configuradas como um conjunto de várias informações de movimento. Candidatos na lista de candidatos com um conjunto de várias informações de movimento como informações de movimento podem ser gerados a partir de informações de movimento armazenadas em diferentes listas de candidatos para cada informação de movimento que compõe o conjunto. Quando as informações de movimento armazenadas na lista de candidatos são um conjunto de várias informações de movimento, os candidatos da lista de candidatos mista podem ser gerados usando algumas das ou todas as informações de movimento.
[0407]A FIG. 30 é um diagrama que ilustra a geração de uma lista de candidatos mista de acordo com uma modalidade da presente invenção.
[0408]A FIG. 30 ilustra um exemplo no qual informações de movimento de uma lista de candidatos mista são geradas. O exemplo da FIG. 30 ilustra um caso em que as informações de movimento de uma lista de candidatos mista têm informações de movimento para listas de cenas de referência L0 e L1, e cada informação de movimento consiste em um vetor de movimento e um número de cena de referência (índice, identificador, número etc.). No exemplo da FIG. 30, a lista de candidatos mista possui dois conjuntos de informações de movimento A e B, e cada conjunto de informações de movimento inclui informações de movimento da lista de cenas de referência L0 e informações de movimento de L1.
[0409]Neste documento, C1 e C2 podem significar informações de movimento de lista de candidatos mista geradas a partir dos conjuntos de informações de movimento A e B. Neste documento, C1 pode ser gerada a partir das informações de movimento L0 de A e das informações de movimento L1 de B, e C2 pode ser gerada a partir das informações de movimento L0 de B e das informações de movimento L1 de A.
[0410]Em outro exemplo, os candidatos de uma nova lista de candidatos podem ser gerados através de uma média ou média ponderada de algumas das ou todas as informações de movimento previamente armazenadas na lista de candidatos. Um candidato virtual derivado por esse método pode ser definido como um candidato médio.
[0411]Por exemplo, o candidato médio pode ser derivado de duas ou mais informações de movimento derivadas em um método predefinido, das informações de movimento fora da lista de candidatos não armazenadas nas informações de movimento na lista de candidatos, de informações de movimento predefinidas, ou seus semelhantes podem ser usados no processo para derivar as informações de movimento. No processo de gerar um candidato médio, uma média de todas as informações das informações de movimento pode ser usada, e uma média de algumas das informações de movimento pode ser usada. Por exemplo, quando as informações de movimento consistem em um vetor de movimento e um número de cena de referência, a média de ambos o vetor de movimento e o número de cena de referência pode ser calculada para gerar um candidato médio, e uma média de um dentre o vetor de movimento e o número de cena de referência é calculada para gerar um candidato médio.
[0412]O codificador ou decodificador pode adicionar o candidato médio derivado à lista de candidatos. Por exemplo, quando o candidato médio é adicionado, o maior valor de índice na lista de candidatos pode ser atribuído a ele. Neste documento, pode haver vários métodos para definir o peso. Por exemplo, o peso pode ser dado de acordo com o potencial de precisão|.
[0413]A geração do candidato virtual pode ser realizada utilizando as modalidades descritas acima individualmente. Além disso, a geração do candidato virtual se dar através de uma combinação de ao menos uma das modalidades descritas acima.
[0414]Doravante, descrever-se-á um método para inicializar informações de movimento de uma lista de candidatos de acordo com a presente invenção.
[0415]A lista de candidatos de acordo com a presente invenção pode ser gerada em uma unidade UPU descrita acima. Neste documento, a UPU pode ser uma de um bloco, uma CTU, um tijolo, um tile, uma fatia, uma subcena, uma cena, um quadro e um grupo de cena (GOP) composto por uma ou mais CUs. Na unidade UPU, a lista de candidatos é recém-criada, usada e inicializada.
Doravante, descrever-se-á a inicialização de uma lista de candidatos de acordo com algumas modalidades da presente invenção.
[0416]Por exemplo, a lista de candidatos de acordo com a presente invenção pode ser recém-gerada e usada para cada UPU. Ou seja, a lista de candidatos pode ser inicializada para cada UPU. A lista de candidatos pode não ter candidatos de movimento armazenados imediatamente após a inicialização. A lista de candidatos pode ser gerada para cada UPU, e pode não haver nenhuma correlação entre as listas de candidatos de cada UPU. Por exemplo, a lista de candidatos pode ser inicializada para cada UPU.
[0417]De acordo com o método de inicialização, é possível impedir informações de movimento não contínuas de aparecer como candidatas e recém-
realizar a codificação desde o ponto de partida da UPU sem as informações de previsão anteriores.
[0418]Em outro exemplo, a lista de candidatos da UPU atual pode ser inicializada usando informações de movimento da UPU que já foram codificadas ou a lista de candidatos da UPU. Neste documento, a UPU a ser aludida pode ser designada, e a lista de candidatos da UPU atual pode ser inicializada usando as informações de movimento ou a lista de candidatos da UPU correspondente.
[0419]Neste documento, a designação da UPU a ser aludida pode ser realizada através de um método para permitir que o codificador e o decodificador refiram-se à mesma UPU através de um sinal sinalizado e um método para omitir a transmissão/recepção de um sinal adicional ao selecionar uma UPU por um método predeterminado.
[0420]A inicialização da lista de candidatos atual pode ser realizada copiando toda ou parte da lista de candidatos da UPU à qual ela se refere. Como alternativa, a lista de candidatos atual pode ser inicializada levando em consideração o potencial de previsão ou a prioridade das informações de movimento que são derivadas ou copiadas.
[0421]As FIGs. 31 e 32 são diagramas que ilustram um método para inicializar uma lista de candidatos de acordo com algumas modalidades da presente invenção.
[0422]A FIG. 31 ilustra um exemplo para inicializar uma lista de candidatos de uma UPU atual usando uma lista de candidatos de uma UPU reconstruída quando a UPU é uma unidade de cena. De acordo com a FIG. 31, as informações de movimento A', B' e C' são adicionadas a uma lista de candidatos antes de reconstruir a primeira informação de movimento da cena atual, que é copiada de uma lista de candidatos de uma cena de referência que é uma UPU reconstruída.
[0423]A FIG. 31 ilustra um caso de cópia de parte da lista de candidatos da UPU reconstruída. Na FIG. 31, um índice de uma lista de candidatos indica um potencial de previsão ou a prioridade de um candidato da lista de candidatos, que indica que quanto menor o número, maior o potencial de previsão ou maior a prioridade. De acordo com a FIG. 31, o quadro atual pode ser reconstruído ajustando a prioridade das informações de movimento copiadas. Neste documento, a prioridade das informações de movimento previamente copiadas A', B' e C' pode ser definida para ser maior em relação às informações de movimento recém- adicionadas A e B.
[0424]A FIG. 32 ilustra um exemplo de cópia de informações de movimento para inicializar uma lista de candidatos em ambas a direção L0 e a direção L1.
Conforme ilustra a FIG. 31, uma UPU reconstruída pode ser usada para inicializar uma lista de candidatos, e a UPU pode ser definida em uma unidade de cena. De acordo com a FIG. 32, a lista de candidatos atual pode ser inicializada ao copiar informações de movimento das listas de candidatos de cenas aludidas na direção L0 e na direção L1. Por exemplo, três informações de movimento A', B' e C' podem ser copiadas da lista L0, e duas informações de movimento A", B" podem ser copiadas da lista L1. Conforme descrito acima, ao copiar informações de movimento usadas para inicializar uma lista de candidatos de UPUs diferentes umas das outras, o número de informações de movimento aludidas de cada UPU reconstruída pode ser definido de maneira diferente.
[0425]As informações sobre se a inicialização da lista de candidatos é realizada, as informações de cena aludidas para inicialização, o número de informações de movimento aludidas para inicialização etc. podem ser sinalizados em um nível mais alto de um fluxo de bits, tal como um conjunto de parâmetros de sequência, um conjunto de parâmetros de cena, um cabeçalho de fatia e seus semelhantes.
[0426]Doravante, descrever-se-á um método para escalonar informações de movimento de uma lista de candidatos de acordo com a presente invenção.
[0427]Ao realizar a interprevisão, a previsão pode ser realizada em uma cena atual usando uma imagem de referência temporalmente adjacente. Uma cena atual e uma cena de referência podem existir em diferentes posições no eixo tempo. Quando a interprevisão é realizada, as informações de movimento podem ser derivadas levando em consideração o movimento de um objeto ou do plano de fundo em uma imagem devido a uma diferença de tempo entre a cena atual e a cena de referência.
[0428]Neste documento, a cena de referência aludida pelo bloco atual e a cena de referência aludida pelo bloco candidato podem ser diferentes uma da outra. Logo, ao derivar informações de movimento usando o bloco candidato, é necessário corrigir as informações de movimento do bloco atual levando em consideração a distância temporal entre as cenas à qual o bloco se refere e à qual o bloco aludido pertence.
[0429]Ao comparar a distância temporal entre a cena à qual o bloco atual pertence e a cena à qual o bloco atual se refere, e a distância temporal entre a cena à qual o bloco candidato pertence e à qual cena o bloco candidato se refere, uma técnica para corrigir as informações de movimento do bloco candidato para que sejam mais semelhantes às informações de movimento do bloco atual é chamado de escalonamento das informações de movimento. O escalonamento das informações de movimento pode ser usado em uma técnica de interprevisão usando candidatos, tal como um modo AMVP, modo de fusão e seus semelhantes.
[0430]A FIG. 33 é um diagrama que ilustra o escalonamento de informações de movimento.
[0431]A FIG. 33 ilustra um exemplo de escalonamento de informações de movimento. t pode significar uma posição no eixo tempo da cena atual, e t-n pode significar uma posição no eixo tempo da cena de referência do bloco candidato. t- m pode significar uma posição no eixo tempo da cena de referência do bloco atual. À medida que a posição no eixo tempo de cada cena muda, o movimento da imagem na cena pode ser determinado. A pode significar um bloco atual e B pode significar um bloco candidato. A' pode significar uma posição em uma cena de referência de um bloco atual com a mesma posição espacial que o bloco atual A. B' pode significar uma posição em uma cena de referência de um bloco candidato com a mesma posição espacial que o bloco candidato B.
[0432]Visto que o bloco candidato B realiza a interprevisão a partir da cena de referência do bloco candidato, é possível derivar a posição do bloco D como resultado da interprevisão e expressar essa posição como um vetor de movimento MV1. Ao derivar o vetor de movimento do bloco atual A a partir do bloco candidato B, a distância temporal entre a cena atual e a cena de referência do bloco A (por exemplo, t-(t-m) = m) e a distância temporal entre a cena atual e a cena de referência do bloco B (por exemplo, t-(t-n) = n) diferem uma da outra, é possível aplicar o escalonamento de informações de movimento.
[0433]Por exemplo, na FIG. 33, ao usar o vetor de movimento MV1 do bloco B, a distância temporal m entre a cena atual e a cena de referência do bloco A, e a distância temporal n entre a cena atual e a cena de referência do bloco B, o vetor de movimento (MV1 * m/n) do bloco A pode ser derivado. Como o vetor de movimento (MV1 * m/n) ao qual o escalonamento das informações de movimento é aplicado é mais semelhante ao vetor de movimento MV0 do bloco atual do que MV1, a eficácia de previsão das informações de movimento pode ser aumentada.
[0434]O escalonamento das informações de movimento pode ser um método para escalonar as informações de movimento usando uma distância temporal entre as cenas pressupondo que um objeto móvel em cada cena do vídeo possui um movimento linear.
[0435]Como o bloco atual A realiza a interprevisão a partir da cena de referência do bloco atual, a posição do bloco C pode ser derivada, e essa posição pode ser expressa como um vetor de movimento MV0. Neste documento, uma vez que as cenas aludidas pelos blocos A e B diferem uma da outra, a região adequada para prever o bloco atual em cada cena de referência pode diferir de uma para a outra. Logo, ocorre uma diferença de tamanho entre MV0 e MV1.
[0436]Neste documento, o escalonamento das informações de movimento pode ser aplicado usando uma distância entre a cena atual e a cena de referência do bloco candidato no eixo tempo e uma distância entre a cena atual e a cena de referência do bloco atual no eixo tempo. As informações de movimento corrigidas são têm mais chances de ser semelhantes às informações de movimento do bloco atual do que as informações de movimento não corrigidas. É possível aprimorar a eficácia da codificação usando informações de movimento mais semelhantes para a previsão.
[0437]Ou seja, quando o escalonamento do vetor de movimento é aplicado a MV1 na FIG. 33, um vetor de movimento modificado próximo a MV0 pode ser derivado. O codificador ou decodificador podem aumentar a eficácia de codificação usando o vetor de movimento escalonado.
[0438]Uma vez que os candidatos da lista de candidatos de acordo com a presente invenção também podem ter cenas de referência diferentes do bloco atual, é necessário realizar o escalonamento das informações de movimento levando em consideração o intervalo de tempo entre o bloco atual e a cena de referência e o intervalo de tempo entre os candidatos da lista de candidatos e a cena de referência dos candidatos. Por exemplo, quando os candidatos da lista de candidatos são informações de movimento de blocos vizinhos temporais, o escalonamento das informações de movimento descrito acima pode ser necessário. Logo, informações para o escalonamento das informações de movimento podem ser armazenadas como informações adicionais nas informações de movimento armazenadas na lista de candidatos.
[0439]Por exemplo, as informações para o escalonamento de informações de movimento podem incluir ao menos um de um número POC de uma cena de referência, um número POC de uma cena na qual as informações de movimento ocorrem, e uma informação de distância temporal entre uma cena na qual as informações de movimento ocorrem e uma cena de referência.
[0440]Quando a UPU é uma unidade que inclui uma pluralidade de cenas, tal como uma GOP, as informações de movimento armazenadas no candidato podem referir-se a cenas de referência diferentes umas das outras. Quando as informações de movimento são previstas usando as informações de movimento armazenadas na lista de candidatos, a cena de referência das informações de movimento incluídas na lista de candidatos aludida e a cena de referência do bloco atual podem diferir uma da outra. Além disso, quando a UPU inclui uma pluralidade de cenas, as cenas nas quais as informações de movimento armazenadas em uma lista de candidatos podem ocorrer podem diferir umas das outras.
[0441]Por exemplo, as informações de referência A referindo-se a POC 2 em uma cena de POC1 podem ser armazenadas em uma lista de candidatos, e as informações de movimento B referindo-se a POC 4 em uma cena de POC 3 podem ser armazenadas em uma lista de candidatos. Nesse caso, a cena na qual as informações de movimento A armazenadas na lista de candidatos ocorrem pode ser POC 1, e a cena na qual as informações de movimento B armazenadas em AMVOL ocorrem pode ser POC 3. A cena aludida pelas informações de movimento A pode ser POC 2, e a cena aludida pelas informações de movimento B pode ser POC 4.
[0442]No caso de uma UPU incluindo uma pluralidade de cenas, a cena na qual as informações armazenadas na lista de candidatos ocorrem e a cena de referência podem diferir uma da outra. Além disso, a cena na qual as informações de movimento armazenadas na lista de candidatos ocorrem e a cena atual incluindo o bloco atual também podem diferir uma da outra, e a cena de referência das informações de movimento armazenadas na lista de candidatos e a cena de referência do bloco atual também podem diferir uma da outra. Neste documento, quando as informações de movimento do bloco atual são previstas através das informações de movimento na lista de candidatos, é possível aprimorar a eficácia de codificação graças ao escalonamento de informações de movimento descrito acima.
[0443]A FIG. 34 é um diagrama para explicar o escalonamento de informações de movimento de acordo com uma modalidade da presente invenção.
[0444]Por exemplo, quando a UPU é uma unidade de cena, o escalonamento pode ser realizado como ilustra a FIG. 34. No exemplo da FIG. 34, a UPU A pode armazenar informações de movimento geradas em uma cena de POC 8 em uma lista de candidatos, e a UPU B pode armazenar informações de movimento geradas em uma cena de POC 4 em uma lista de candidatos. A cena de POC 8 pode realizar a previsão de movimento referindo-se à cena de POC 1, e a cena de POC4 pode realizar a previsão de movimento referindo-se à cena de POC 8. Quando uma cena de POC 4 é uma cena atual a ser atualmente codificada, e POC 8 é uma cena que já foi reconstruída, a lista de candidatos da UPU B pode ser inicializada referindo-se à lista de candidatos usada na UPU A.
[0445]No entanto, as informações de movimento armazenadas na lista de candidatos da UPU A são informações de movimento geradas referindo-se à cena de POC 8, e, portanto, há diferenças na distância temporal entre as cenas em um caso em que a cena de POC 4 refere-se à cena de POC 8. Por outro lado, visto que a cena a ser codificada referindo-se às informações de movimento armazenadas na lista de candidatos da UPU B é POC 4, e a cena aludida pela cena de POC 4 é POC 8, as informações de movimento na lista de candidatos da UPU A são usadas tais quais, de tal modo que, em caso de inicializar a lista de candidatos da UPU B, a eficácia da previsão de informações de movimento é reduzida. Neste documento, quando as informações de movimento da UPU A são corrigidas através do escalonamento de informações de movimento, e as informações de movimento escalonadas são usadas para inicializar a lista de candidatos da UPU B, a eficácia de codificação pode ser aprimorada.
[0446]Doravante, descrever-se-á um método para compartilhar uma lista de candidatos de acordo com a presente invenção.
[0447]Ao realizar a codificação e decodificação, as informações em uma lista de candidatos podem variar de acordo com um ponto no tempo quando cada bloco de codificação realizando a interprevisão é aludido. Como as informações de movimento na lista de candidatos podem ser adicionadas, excluídas ou alteradas, as informações ou configuração incluídas na lista de candidatos podem variar de acordo com o ponto no tempo quando a interprevisão é realizada. Ou seja, quando o ponto no tempo quando cada região realizando a interprevisão refere-se à lista de candidatos é variado, as informações aludidas podem ser variadas. Como a lista de candidatos de acordo com a presente invenção pode ser atualizada por um resultado de interprevisão, a interprevisão deve ser realizada em sequência.
[0448]Na descrição a seguir, uma região composta por um ou mais blocos de codificação pode ser definida como uma região compartilhada. Quando a interprevisão é realizada, os blocos de codificação incluídos na região compartilhada podem compartilhar uma lista de candidatos configurada em um tempo específico mais cedo do que um ponto no tempo para codificar ou decodificar todos os blocos de codificação incluídos na região compartilhada. Aqui, a região compartilhada pode ser configurada através de ao menos uma unidade ou um conjunto de unidades de uma CTU, uma CU e uma PU.
[0449]Logo, a intercodificação pode ser realizada independentemente ou em paralelo para cada bloco de codificação na região compartilhada correspondente. Quando a interprevisão é realizada referindo-se a uma lista de candidatos independentemente ou em paralelo em uma região compartilhada, cada bloco de codificação incluído na região compartilhada e realizando a interprevisão pode referir-se a uma lista de candidatos que é previamente configurada. Neste documento, a lista de candidatos pré-configurada pode significar uma lista de candidatos configurada antes de a codificação ou decodificação ser iniciada.
[0450]Neste documento, os blocos de codificação na região compartilhada podem compartilhar a lista de candidatos pré-configurada ou podem compartilhar candidatos da lista de candidatos gerados usando a lista de candidatos. Um candidato de uma lista de candidatos adequado para cada bloco de codificação pode ser gerado separadamente referindo-se à lista de candidatos pré-configurada durante a interprevisão de blocos de codificação incluídos na região compartilhada.
Ou seja, quando o presente método é aplicado, a lista de candidatos pré- configurada aludida pelos blocos de codificação incluídos na região compartilhada pode ser compartilhada, e os candidatos da lista de candidatos podem ser gerados independentemente. Como alternativa, os blocos de codificação incluídos na região compartilhada podem compartilhar não só a lista de candidatos pré- configurada mas também candidatos de listas de candidatos derivadas da lista de candidatos compartilhada.
[0451]Depois de realizar a previsão nos blocos de codificação incluídos na região compartilhada correspondente, a lista de candidatos pode ser atualizada independentemente ou em paralelo usando informações de movimento ou informações de previsão geradas em cada um dos blocos de codificação. Neste documento, a lista de candidatos pode ser atualizada em uma ordem predeterminada após todas as predições em todos os blocos de codificação incluídos na região compartilhada serem concluídas. Logo, o codificador e o decodificador podem gerar a mesma lista de candidatos ao codificar/decodificar o bloco atual.
[0452]Por exemplo, quando o bloco atual é codificado/decodificado através do modo de partição triangular, o bloco atual pode ser dividido em duas regiões triangulares. Neste documento, informações sobre uma direção de partição para particionar o bloco atual em duas regiões triangulares podem ser codificadas/decodificadas. A fim de codificar/decodificar cada uma das duas regiões divididas em regiões triangulares, as informações de movimento para codificar/decodificar cada região podem ser selecionadas a partir da lista de candidatos. Neste documento, as duas regiões triangulares obtidas realizando a partição triangular podem compartilhar uma lista de candidatos de blocos antes de ser divididas.
[0453]Quando o bloco atual é codificado/decodificado pelo modo de partição triangular, as primeiras informações de movimento e as segundas informações de movimento podem ser determinadas na lista de candidatos compartilhada através do primeiro índice e do segundo índice para o bloco atual. O codificador ou o decodificador podem derivar um primeiro bloco de previsão para o bloco atual usando as primeiras informações de movimento e um segundo bloco de previsão para o bloco atual usando as segundas informações de movimento.
[0454]O codificador ou decodificador podem gerar um bloco de previsão final para o bloco atual ponderando o primeiro bloco de previsão e o segundo bloco de previsão. Neste documento, a soma ponderada dos blocos de previsão pode ser realizada ponderando a primeira região em relação ao primeiro bloco de previsão e ponderando a segunda região em relação ao segundo bloco de previsão.
[0455]As FIGs. 35 a 39 são diagramas que ilustram um método para atualizar e compartilhar uma lista de candidatos de acordo com algumas modalidades da presente invenção.
[0456]A FIG. 35 ilustra um exemplo no qual uma lista de candidatos é atualizada ao longo do tempo, e um exemplo de uma lista de candidatos aludida por um bloco de codificação. A FIG. 35 ilustra um caso em que um bloco de codificação 0 é codificado/decodificado e, em seguida, um bloco de codificação 1 é codificado/decodificado. O bloco de codificação cinza significa um bloco de codificação que está sendo atualmente codificado/decodificado. O bloco de codificação 0 pode ser codificado/decodificado com referência a uma lista de candidatos formada antes de um ponto no tempo no qual o bloco de codificação 0 é codificado/decodificado.
[0457]Logo, a lista de candidatos pode ser atualizada através de informações de movimento do bloco de codificação codificado/decodificado 0. A lista de candidatos atualizada pode ser aludida quando da codificação/decodificação do bloco de codificação 1, que é o bloco de codificação seguinte. As informações de movimento do bloco de codificação reconstruído 1 podem ser usadas para atualizar a lista de candidatos novamente. A lista de candidatos atualizada pode ser então aludida novamente em um bloco de codificação seguinte. Logo, a fim de codificar/decodificar o bloco de codificação 1, primeiramente o bloco de codificação 0 precisa ser codificado/decodificado.
[0458]A FIG. 36 ilustra um caso em que uma lista de candidatos é atualizada ao longo do tempo e um método para referir-se a uma lista de candidatos em cada bloco quando um bloco de codificação 0 e um bloco de codificação 1 constituem uma área compartilhada. Como o bloco de codificação 0 e o bloco de codificação 1 são incluídos em uma área compartilhada, o codificador ou decodificador podem realizar a previsão usando a lista de candidatos compartilhada para o bloco de codificação 0 e o bloco de codificação 1. Logo, à diferença do exemplo da FIG. 35, o codificador ou decodificador podem realizar a interprevisão no bloco de codificação 0 e no bloco de codificação 1 independentemente ou em paralelo.
[0459]A FIG. 36 ilustra um estado no qual a previsão é realizada em paralelo usando a mesma lista de candidatos que é previamente reconstruída ao mesmo tempo. À diferença do exemplo da FIG. 35, como a lista de candidatos previamente reconstruída é compartilhada, o bloco de codificação 1 pode referir-se à lista de candidatos em um ponto no tempo necessário para codificação/decodificação ainda que o bloco de codificação 0 não seja codificado/decodificado.
[0460]No exemplo da FIG. 36, como ambos o bloco de codificação 0 e o bloco de codificação 1 são codificados/decodificados, ilustra-se que as informações de movimento "E" geradas a partir do bloco de codificação 9 e as informações de movimento "F" geradas a partir do bloco de codificação 1 são refletidas (atualizadas) na lista de candidatos. Neste documento, a lista de candidatos pode ser atualizada em um ponto no tempo quando a codificação/decodificação da área compartilhada é concluída. A FIG. 36 ilustra um caso em que o tamanho da lista de candidatos é 5, e ilustra um exemplo no qual uma informação de movimento A da lista de candidatos é excluída de acordo com a atualização das informações de movimento.
[0461]A FIG. 37 ilustra um exemplo da atualização de uma lista de candidatos e da codificação/decodificação de blocos de codificação 0 e 1 usando a lista de candidatos atualizada ao longo do tempo. Um candidato de uma lista de candidatos adequada para o bloco de codificação atual pode ser gerado a partir da lista de candidatos atualizada mais recente, e o bloco de codificação pode ser codificado/decodificado com referência ao candidato da lista de candidatos gerada.
As informações de movimento do bloco de codificação recém- codificado/decodificado são usadas para atualizar a lista de candidatos.
[0462]No exemplo da FIG. 37, o bloco de codificação 0 pode ser codificado/decodificado mais cedo do que o bloco de codificação 1. Logo, candidatos para listas de candidatos casando com o bloco de codificação 0 podem ser gerados usando a lista de candidatos atualizada antes que o bloco de codificação 0 seja codificado/decodificado, e o bloco de codificação 0 pode ser codificado/decodificado com base na lista de candidatos. As informações de movimento codificadas/decodificadas no bloco de codificação 0 podem ser usadas para atualizar a lista de candidatos, e uma lista de candidatos para o bloco de codificação 1 pode ser gerada usando a lista de candidatos atualizada. O bloco de codificação 1 pode ser codificado/decodificado usando o candidato da lista de candidatos gerada para o bloco de codificação 1. Ou seja, de acordo com a FIG.
37, os blocos de codificação 0 e 1 podem ser codificados/decodificados em sequência.
[0463]A FIG. 38 ilustra um exemplo da atualização de uma lista de candidatos compartilhada ao longo do tempo e da codificação/decodificação de um bloco de codificação em cada área compartilhada usando a lista de candidatos compartilhada atualizada. Nesse exemplo, a área compartilhada pode ser composta pelo bloco de codificação 0 e bloco de codificação 1. O bloco de codificação 0 e o bloco de codificação 1 podem gerar candidatos usando uma lista de candidatos atualizada antes que dois blocos de codificação em uma região compartilhada sejam codificados/decodificados. Logo, o codificador ou o decodificador podem realizar a previsão independentemente ou em paralelo em relação ao bloco de codificação 0 e bloco de codificação 1.
[0464]À diferença do exemplo da FIG. 37, como a lista de candidatos compartilhada é usada na FIG. 38, ainda que o bloco de codificação 0 não seja codificado/decodificado primeiramente, o bloco de codificação 1 pode ser codificado/decodificado junto com o bloco de codificação 0. Ou seja, de acordo com o exemplo da FIG. 38, o bloco de codificação 0 e o bloco de codificação 1 podem ser codificados/decodificados em paralelo ao mesmo tempo.
[0465]De acordo com a FIG. 38(a), o bloco de codificação 0 e o bloco de codificação 1 utilizam a lista de candidatos compartilhada, mas podem ser codificados/decodificados usando candidatos de diferentes listas de candidatos. Com referência à FIG. 38(b), o bloco de codificação 0 e o bloco de codificação 1 podem gerar candidatos de uma lista de candidatos em comum usando a lista de candidatos compartilhada, e podem ser codificados/decodificados usando o mesmo candidato gerado.
[0466]Cada região na qual a codificação/decodificação é realizada independentemente ou em paralelo pode ser composta por uma pluralidade de blocos, e a previsão pode ser realizada para cada bloco. Neste documento, a previsão pode ser realizada gerando respectivas listas de candidatos em cada região.
[0467]Por exemplo, quando os tiles A e tiles B constituindo uma cena são codificados/decodificadas em paralelo, cada região pode ser codificada/decodificada usando listas de candidatos diferentes uma da outra. Por exemplo, o codificador ou decodificador podem armazenar informações de movimento geradas em um bloco pertencente ao tile A em uma lista de candidatos do tile A. Além disso, o codificado ou decodificador podem armazenar informações de movimento geradas no bloco pertencente ao tile A na lista de candidatos do tile B.
[0468]Uma lista de candidatos gerada por cada região a ser codificada/decodificada independentemente ou em paralelo pode ser inicializada ou sucedida copiando ou referindo-se a uma lista de candidatos que é previamente configurada. Após a inicialização, a lista de candidatos de cada região só pode ser atualizada pelas informações em cada região. Logo, cada região pode ser codificada/decodificada sem depender uma da outra. Doravante, uma lista de candidatos desse tipo é definida como uma sublista de candidatos.
[0469]A FIG. 39 ilustra um exemplo no qual um ou mais tiles compostos por um ou mais blocos de codificação são codificados/decodificados em paralelo. O codificador ou decodificador podem suceder à lista de candidatos compartilhada reconstruída para cada tile como o valor inicial da lista de candidatos de cada tile.
Sublistas de candidatos diferentes umas das outras podem ser geradas para cada tile com base na lista de candidatos herdada.
[0470]Neste documento, ao menos uma das informações (flag, índice, indicador etc.) indicando se a lista de candidatos compartilhada reconstruída é sucedida como o valor inicial de lista de candidatos de cada tile, informações de cena aludidas para inicialização, informações de tile aludidas para inicialização e informações sobre o número de informações de referência aludidas para inicialização podem ser sinalizadas através de ao menos um de um conjunto de parâmetros de sequência, um conjunto de parâmetros de cena e um cabeçalho de fatia.
[0471]De acordo com a FIG. 39, o codificador ou decodificador podem gerar respectivas sublistas de candidatos para o tile 0 e o tile 1 sucedendo à lista de candidatos compartilhada reconstruída. Um primeiro bloco de codificação incluído no tile 0 pode ser codificado/decodificado usando a lista de candidatos herdada. Neste documento, a lista de candidatos do tile 0 pode ser atualizada usando as informações de movimento derivadas E. Depois de concluir a codificação/decodificação do primeiro bloco de codificação, as informações E do primeiro bloco podem ser adicionadas à sublista de candidatos.
[0472]Em seguida, o segundo bloco de codificação do tile 0 pode ser codificado/decodificado com referência à sublista de candidatos atualizada incluindo as informações de movimento E. O codificador ou decodificador podem derivar informações de movimento F do bloco e realizar a previsão no bloco com base nas informações de movimento F. Neste documento, a sublista de candidatos do tile 0 pode ser atualizada novamente usando as informações de movimento derivadas F.
[0473]A FIG. 39 ilustra um caso no qual o tamanho da lista de candidatos é 5, e ilustra um exemplo no qual uma informação de movimento A pré-armazenada é excluída e informações de movimento F são adicionadas à lista de candidatos de acordo com a atualização das informações de movimento. Neste documento, as informações de movimento excluídas da sublista de candidatos podem ser informações de movimento com o menor ou maior índice ou informações de movimento com o menor potencial de previsão.
[0474]O codificador ou decodificador codifica/decodifica o primeiro bloco de codificação através da lista de candidatos herdada do tile 1 e podem atualizar a lista de candidatos do tile 1 através das informações de movimento G obtidas do primeiro bloco de codificação que é codificado/decodificado. Logo, a sublista de candidatos atualizada após a codificação/decodificação do primeiro bloco de codificação ser concluída inclui adicionalmente as informações de movimento G do primeiro bloco. Embora sucedendo à lista de candidatos compartilhada, após a previsão para cada tile ser realizada, as sublistas de candidatos do tile 0 e tile 1 podem incluir informações de movimento diferentes umas das outras.
[0475]Em seguida, o segundo bloco de codificação do tile 1 pode ser codificado/decodificado com referência à sublista de candidatos atualizada incluindo as informações de movimento G. Neste documento, a sublista de candidatos do tile 1 pode ser atualizada novamente usando as informações de movimento derivadas G.
[0476]Como as informações de movimento G já foram adicionadas à sublista de candidatos do tile 1 pelas informações de movimento previamente codificadas/decodificadas, a adição das informações de movimento G redundantes pode ser omitida. Conforme descrito acima, a sublista de candidatos de cada tile sucedendo à lista de candidatos compartilhada pode ser formada em uma forma diferente à medida que cada bloco de codificação é codificado/decodificado. Como a referência cruzada não se faz necessária entre diferentes tiles, cada tile pode ser codificado/decodificado independentemente ou em paralelo.
[0477]Doravante, descrever-se-á um método para aprimorar a eficácia da previsão por lista de candidatos descrita acima através de uma configuração UPU.
[0478]Ao usar a lista de candidatos de acordo com a presente invenção, as informações de movimento geradas no bloco anterior podem ser armazenadas para ser acumuladas e então geridas. As informações de movimento acumuladas na lista de candidatos aprimoram a eficácia de codificação porque referem-se a informações de movimento de uma região que não pode ser aludida pelo método de previsão existente.
[0479]No entanto, as informações de movimento geradas em uma posição excessivamente longe trazem o problema de que a eficácia de previsão pode ser reduzida para prever um bloco atual. Em detalhes, quando o tamanho da lista de candidatos é limitado, uma situação na qual somente informações de movimento geradas em uma posição excessivamente longe são armazenadas na lista de candidatos pode causar uma redução na eficácia de codificação. Neste documento, a configuração apropriada da UPU pode solucionar ou mitigar esse problema.
[0480]A FIG. 40 é um diagrama que ilustra uma lista de candidatos composta por uma única UPU e uma lista de candidatos composta por várias UPUs de acordo com uma modalidade da presente invenção.
[0481]A FIG. 40(a) ilustra um exemplo de uma estrutura de lista de candidatos composta por uma única UPU. A FIG. 40 ilustra um exemplo no qual uma UPU é alocada em uma base de cena e o tamanho da lista de candidatos é limitado a oito. A ordem de codificação é da esquerda para a direita, e um grande número de partições de bloco ocorre na extremidade direita da cena, e as informações de movimento dos oito blocos de codificação mais à direita são armazenadas na lista de candidatos. Neste documento, o bloco atual se faz presente na extremidade esquerda de modo que o bloco atual encontra-se longe demais do bloco de codificação aludido pelas informações de movimento armazenadas na lista de candidatos para reduzir a eficácia de codificação.
[0482]A FIG. 40(b) ilustra um exemplo de uma configuração UPU à qual uma modalidade de acordo com a presente invenção se aplica. O codificador ou decodificador podem dividir verticalmente a cena para que ela inclua n UPUs.
Neste documento, como cada UPU possui uma lista de candidatos distinta, o bloco atual pode ser codificado/decodificado com referência à lista de candidatos da UPU 0. De acordo com a configuração UPU, mesmo quando uma fileira de blocos de codificação muda, a distância entre o bloco atual e o bloco de codificação aludido pelas informações de movimento pode ser mais próxima do que na FIG.
40(a). À semelhança, quando o bloco futuro é codificado, a lista de candidatos da UPU n é aludida, prevenindo assim o caso de referir-se a uma região de codificação excessivamente afastada.
[0483]Ou seja, o codificador ou decodificador podem usar diferentes listas de candidatos de acordo com a UPU à qual a localização do bloco atual pertence.
Logo, o codificador ou o decodificador podem prevenir uma redução na eficácia de codificação. Neste documento, uma lista de candidatos pertencente a cada UPU pode referir-se a uma lista de candidatos previamente gerada pertencente a UPUs diferentes umas das outras. Por exemplo, uma lista de candidatos da UPU n pode ser gerada com referência a ao menos uma das UPUs de UPU 0 a UPU n-1.
[0484]A FIG. 41 é um fluxograma que ilustra um método de decodificação de acordo com uma modalidade da presente invenção.
[0485]Com referência à FIG. 41, um método de decodificação de acordo com a presente invenção pode incluir derivar uma primeira lista de candidatos usando informações de movimento de um bloco vizinho (S4110), derivar uma segunda lista de candidatos usando informações de movimento previamente reconstruídas (S4120), derivar uma terceira lista de candidatos usando a primeira lista de candidatos e a segunda lista de candidatos (S4130), e gerar um bloco de previsão usando a terceira lista de candidatos (S4140).
[0486]Aqui, as informações de movimento previamente reconstruídas podem ser informações de movimento de um bloco de codificação decodificado imediatamente antes da decodificação do bloco atual.
[0487]A FIG. 42 é um fluxograma que ilustra um método de codificação de acordo com uma modalidade da presente invenção.
[0488]Com referência à FIG. 42, o método de codificação de acordo com a presente invenção pode incluir determinar informações de movimento de um bloco atual (S4210), derivar uma primeira lista de candidatos usando informações de movimento de um bloco vizinho (S4220), e derivar uma segunda lista de candidatos usando as informações de movimento codificadas (S4230), e derivar uma terceira lista de candidatos usando a primeira lista de candidatos e a segunda lista de candidatos (S4240).
[0489]Ao menos uma ou uma combinação de ao menos uma das modalidades descritas acima pode ser utilizada para realizar o método de codificação/decodificação ilustrado nas FIGs. 41 e 42. Por exemplo, a primeira lista de candidatos pode significar a lista de candidatos existente e a segunda lista de candidatos pode significar uma lista de candidatos de acordo com a presente invenção. Ou seja, a primeira lista de candidatos pode ser ao menos uma das listas de candidatos usadas no modo AMVP, modo de fusão e modo IBC.
[0490]Aqui, as informações de movimento pré-codificadas podem ser informações de movimento de um bloco de codificação codificado imediatamente antes da codificação do bloco atual.
[0491]Doravante, descrever-se-á um método para codificar/decodificar uma imagem usando uma lista de modos de intraprevisão de cena adaptativa.
[0492]Na compressão de imagens, dados de seis bits ou mais são necessários para representar 32 ou mais modos de intraprevisão de imagem. Dados de sete bits ou mais são necessários para representar 64 ou mais modos de intraprevisão. O método de codificação/decodificação de imagens utiliza o modo mais provável (MPM) para reduzir os bits que representam os modos de intraprevisão.
[0493]As FIGs. 43 e 44 são diagramas que ilustram os candidatos a MPM.
[0494]A FIG. 43 é uma diagrama ilustrando um exemplo de um candidato que pode ser usado como um bloco atual e um MPM, em que os blocos cinza correspondentes a C1 a C17 são regiões nas quais um bloco vizinho existe e pode ser usado como um MPM. Na tecnologia de compressão de imagens, o codificador configura um candidato a MPM e uma lista de MPM derivando o modo de intraprevisão a partir dos blocos vizinhos ao bloco atual, e, quando o mesmo modo de previsão que o modo de intraprevisão determinado no bloco atual se faz presente na lista de MPM, é possível reduzir a quantidade de bits de representação no modo de intraprevisão ao transmitir o índice do candidato a MPM em vez do modo de intraprevisão do bloco atual.
[0495]A FIG. 43 ilustra um exemplo de um candidato que pode ser usado no MPM, todos ou parte dos candidatos de C1 a C17 podem ser usados no MPM de acordo com uma técnica de compressão de imagem, e de acordo com o modo de previsão do bloco vizinho, ao menos um modo de previsão DC, um modo de previsão plano e um modo de intraprevisão direcional podem ser adicionados à lista de MPM. Além disso, o modo direcional obtido adicionando ou subtraindo um desvio do modo de intraprevisão direcional do bloco vizinho pode ser adicionado à lista de MPM.
[0496]Além disso, conforme ilustra o exemplo da FIG. 44, é possível configurar a lista de MPM derivando um modo de intraprevisão de um bloco de uma região vizinha em vez de uma região adjacente ao bloco atual.
[0497]A FIG. 45 é um diagrama ilustrando um exemplo de seleção do modo de intraprevisão, e a FIG. 46 é um diagrama ilustrando um caso no qual um modo de intraprevisão de um bloco atual não é incluído na lista de MPM.
[0498]A FIG. 45 é um diagrama que representa um exemplo de um modo de intraprevisão de um bloco atual e um bloco vizinho em um processo de codificação/decodificação de imagem, em que os blocos cinzas são regiões incluídas em um bloco vizinho, e os números para cada região significam um valor de modo de intraprevisão da região vizinha que inclui a região correspondente. Quando os blocos vizinhos ao bloco atual, conforme ilustra a FIG. 45, não incluem o mesmo modo de previsão que o bloco atual e quando o modo de intraprevisão do bloco atual não é incluído na lista de MPM configurada conforme ilustra a FIG. 46, o MPM para o bloco atual não é selecionado, mas o modo de previsão do bloco atual pode ser sinalizado e transmitido diretamente.
[0499]Em um exemplo, quando o MPM não é selecionado como método para comprimir e transmitir o modo de previsão do bloco atual, há um método para transmitir o mesmo ao classificar o modo de previsão do bloco atual em um modo selecionado e um modo não selecionado (modo remanescente). Para o modo de intraprevisão remanescente, salvo os números de modo de intraprevisão que ocorrem para o candidato a MPM em todos os modos de intraprevisão que podem ocorrer, o modo selecionado comprime e transmite a flag do modo selecionado e o número de modo de intraprevisão 1/N quando o modo de intraprevisão é de N múltiplos (N é um número inteiro maior ou igual a 2), e comprime e transmite o modo não selecionado junto com a flag do modo selecionado quando ele não é um múltiplo de N. Por outro lado, no caso de usar o modo não selecionado, o codificador pode realizar a transmissão codificando um modo de intraprevisão (codificação de modo intra remanescente) que não é incluído no MPM usando um método tal como codificação binária truncada.
[0500]Além disso, quando o MPM não é selecionado, log N bits de representação são necessários para representar N modos de previsão (N é um número inteiro de 2 ou mais) a fim de representar o modo de intraprevisão do bloco atual. Além disso, há o problema de que mais bits são gerados do que o índice de MPM ainda que o método de modo selecionado seja usado.
[0501]De acordo com a presente invenção, é possível aumentar a seletividade do MPM usando uma lista de modos de intraprevisão. De acordo com algumas modalidades da presente invenção, são propostos um método para sinalizar um índice de uma lista de modos de intraprevisão adaptativamente configurada quando o MPM não é selecionado e um método para aplicar a lista de modos de intraprevisão ao modo selecionado e ao modo não selecionado para reduzir os bits de representação do modo de previsão. Como a lista de modos de intraprevisão de acordo com a presente invenção pode sempre ser aludida pelo codificador e decodificador de imagens sem sinalização adicional, a lista de modos de intraprevisão pode ser usada como informação de referência nos processos de codificação/decodificação que não o MPM, o modo selecionado e o modo não selecionado descritos acima.
[0502]Doravante, descrever-se-á um método para configurar uma lista de modos de intraprevisão de acordo com a presente invenção.
[0503]Depois de realizar a intraprevisão aplicando vários modos de intraprevisão, o codificador determina um modo de previsão com a razão de compressão mais alta dentre eles como o modo de previsão ideal, e o decodificador de imagens realiza a previsão e reconstrução usando o modo de intraprevisão determinado pelo codificador. Como o codificador de imagens e o decodificador realizam a previsão e reconstrução usando o mesmo modo de previsão, o decodificador de imagens também precisa ser capaz de derivar uma lista dos modos de previsão derivados do codificador. Como o decodificador realiza a mesma previsão através do modo de intraprevisão determinado pelo codificador, quando as regras para configurar a lista de modos de intraprevisão do codificador e decodificador são iguais, o codificador e o decodificador podem configurar a lista de modos de intraprevisão da mesma maneira sem sinalização adicional. A lista de modos de intraprevisão configurada no codificador e decodificador pode ser usada ao derivar um modo de previsão.
[0504]A FIG. 47 é um diagrama que ilustra um método para configurar uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[0505]A FIG. 47 ilustra um exemplo de um processo para configurar uma lista de modos de intraprevisão em um codificador e decodificador. De acordo com a FIG. 47, a lista de modos de intraprevisão pode ser configurada com base na frequência de ocorrência do modo de intraprevisão. Na FIG. 47, cada um dos quadrantes compostos por 16 blocos representa um bloco de codificação de unidade derivando cada modo de previsão, cinza representa um bloco atual, e os valores nas sombras significam valores atualizados na lista de contagem verificando a frequência de ocorrência de cada modo de intraprevisão (Modo Intra).
[0506]O índice na lista de contagem significa um número de modos de intraprevisão. Aqui, o número dos modos de intraprevisão pode significar um valor representando o modo de intraprevisão. Ou seja, na FIG. 47, um número em cada unidade de previsão representa um valor indicando um modo de intraprevisão, e uma seta tracejada representa um fluxo temporal. Ou seja, a intraprevisão pode ser realizada no bloco atual na ordem de (a) a (i) na FIG. 47.
[0507]Como o valor do modo de intraprevisão determinado na FIG. 47(a) é cinco, um valor 5 do modo de intraprevisão da lista de contagem é aumentado em um. Subsequentemente, visto que o valor do modo de intraprevisão determinado na FIG. 47(b) é quatro, um valor 4 do modo de intraprevisão da lista de contagem é atualizado. À semelhança, o valor do modo de intraprevisão na lista de contagem pode ser aumentado de acordo com o modo de intraprevisão determinado nas FIGs. 47(c) a (i), respectivamente. A lista de modos de intraprevisão usada para a sinalização do modo de previsão na intraprevisão pode ser configurada separadamente com referência à lista de contagem configurada ou pode ser implementada de uma maneira tal a referir-se diretamente à lista de contagem.
[0508]A FIG. 47 ilustra um exemplo de um processo para derivar uma lista de modos de intraprevisão, e um codificador ou decodificador podem configurar uma lista de modos de intraprevisão ao calcular o custo em um método que não a contagem. Além disso, um método para derivar uma lista de modos de intraprevisão pode ser implementado de maneira diferente. Por exemplo, o custo pode ser determinado usando o sinal residual para cada modo de intraprevisão. Em outro exemplo, a lista de modos de intraprevisão pode ser configurada combinando a frequência de ocorrência e o resultado de custo do modo de intraprevisão.
[0509]A FIG. 48 é outro diagrama ilustrando um método para configurar uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[0510]A FIG. 48 ilustra um exemplo de configuração de uma lista de modos de intraprevisão de acordo com o modo de intraprevisão determinado No exemplo da FIG. 48, como os blocos vizinhos adjacentes ao topo e esquerda de cada bloco e os blocos correspondentes diferem uns dos outros em um modo de previsão, o MPM pode não ser utilizado. Logo, de acordo com o método na técnica anterior, o codificador deveria sinalizar todos os modos de previsão, e, quando 35 modos fossem usados, 5 bits deveriam ser alocados a cada modo de previsão para representar 32 modos que não estivessem incluídos na lista de MPM. Logo, a fim de codificar/decodificar a região da FIG. 48, um total de 80 bits deveria ser sinalizado para cada 5 bits em 16 blocos.
[0511]Por outro lado, de acordo com a presente invenção, o codificador e o decodificador podem configurar uma lista de modos de intraprevisão de um comprimento predeterminado. Quando o modo de intraprevisão para o bloco atual se faz presente na lista de modos de intraprevisão, o codificador ou decodificador podem reduzir a quantidade de bits necessária sinalizando um índice na lista de modos de intraprevisão para o modo de intraprevisão.
[0512]A FIG. 48 ilustra um exemplo de configuração de uma lista de modos de intraprevisão com um comprimento de 4 com base na contagem, que é a frequência de ocorrência de um modo de previsão. Depois de atualizar a contagem para cada modo de previsão, o codificador ou o decodificador atribuem o índice da lista de modos de intraprevisão a partir do valor 0 na ordem da contagem mais alta (na ordem de valores 4, 3 e 5 do modo de intraprevisão), configurando assim a lista de modos de intraprevisão. Além disso, o codificador ou decodificador podem gerar uma lista de modos de intraprevisão adicionando ou subtraindo um peso predeterminado à contagem para alguns modos de previsão.
[0513]No exemplo da FIG. 48, quando só o índice para a lista de modos de intraprevisão é sinalizado, como o índice da lista de comprimento 4 é sinalizado, o codificador ou decodificador podem sinalizar o modo de intraprevisão usando 32 bits por bloco, e sinalizar o modo de intraprevisão usando 32 bits para 16 blocos. Ou seja, ao usar a lista de modos de intraprevisão da presente invenção, é possível aumentar a eficácia da codificação de imagem ao reduzir em grande medida os bits de representação do modo de previsão.
[0514]A FIG. 49 é um diagrama que ilustra um método para configurar uma lista de modos de intraprevisão baseada na contagem de acordo com uma modalidade da presente invenção.
[0515]Quando os valores de contagem são iguais para todos os modos de intraprevisão, o codificador ou decodificador configuram sequencialmente o modo de intraprevisão até que a lista de modos de intraprevisão seja preenchida, ou utiliza um modo de previsão semelhante ao modo de previsão do bloco vizinho para configurar o modo de intraprevisão.
[0516]A FIG. 49 ilustra um exemplo de um método para configurar uma lista de modos de intraprevisão quando a mesma contagem ocorre em uma lista de modos de intraprevisão baseada na contagem. Com referência à FIG. 49, a contagem para os valores 2, 3, 4, 5 e 6 do modo de intraprevisão pode ter o valor mais alto de três identicamente. Nesse caso, conforme ilustrado no lado esquerdo da FIG. 49, o codificador ou decodificador realizam sequencialmente a varredura a partir de 0 de tal modo que modos de previsão gerados com a mesma contagem possam ser adicionados à lista de intraprevisão até que todas as listas de modos de intraprevisão sejam preenchidas.
[0517]Como alternativa, conforme ilustrado no lado direito da FIG. 49, o codificador ou decodificador preferivelmente adicionam os modos de previsão dos blocos vizinhos esquerdo e superior do bloco atual ao modo de previsão com o mesmo valor de contagem, configurando assim a lista de modos de intraprevisão.
Ainda que a contagem não tenha o valor mais alto, o codificador e decodificador podem aplicar a prioridade aos modos de previsão dos blocos adjacentes esquerdo e superior em relação ao modo de previsão com a mesma contagem.
[0518]A FIG. 50 é um diagrama que ilustra um método para configurar uma lista de modos de intraprevisão com base no custo de acordo com uma modalidade da presente invenção.
[0519]Em outro exemplo, ainda que a contagem seja igual, o codificador ou decodificador podem configurar o modo de intraprevisão usando uma condição predeterminada. Por exemplo, a condição predeterminada pode ser uma frequência de ocorrência de um modo de previsão de blocos adjacentes ou vizinhos ao bloco vizinho. A lista de modos de intraprevisão pode ser configurada usando preferivelmente um modo de previsão com o custo mais ideal ao calcular o custo para cada modo de previsão.
[0520]A medição do custo pode ser calculada usando a frequência de ocorrência de cada modo de previsão, o sinal residual gerado para cada modo de previsão, ou seus semelhantes, para o modo de intraprevisão selecionado como o modo de previsão ideal. Além disso, o custo pode ser calculado aplicando um peso a um modo de intraprevisão determinado em um bloco vizinho adjacente ao bloco atual, ou aplicando um peso a uma direção semelhante ao modo de intraprevisão que ocorre em um bloco vizinho adjacente ao bloco atual.
[0521]A FIG. 50 ilustra um exemplo de um método para configurar uma lista de modos de intraprevisão baseada no custo. A porção sombreada da FIG. 50 significa um bloco atual, e cada número pode significar um modo de intraprevisão.
Na FIG. 50, o modo de intraprevisão que ocorre em cada bloco pode ser armazenado em uma lista de modos histórica. Com referência à FIG. 50, uma lista de custos pode ser configurada usando o valor absoluto da diferença entre modos de previsão de uma lista de modos histórica como um custo, com base na média dos modos de previsão de blocos adjacentes ao topo e à esquerda do bloco atual como valor de referência. Neste documento, a codificação ou o decodificador podem configurar uma lista de modos de intraprevisão adicionando preferivelmente um modo de previsão de baixo custo.
[0522]Ao configurar a lista de modos de intraprevisão, quando há um modo de intraprevisão recém-adicionado na lista de modos de intraprevisão existente, pode ser atribuído um índice do modo de intraprevisão correspondente baixo. O valor de índice pode ser usado como um identificador para selecionar um dos modos de intraprevisão incluídos na lista de modos de intraprevisão. Neste documento, o codificador ou decodificador podem aumentar a eficácia de sinalização, visto que menos bits sinalizados ao decodificador são atribuídos uma vez que o valor de índice é mais baixo.
[0523]As FIGs. 51 e 52 são diagramas que ilustram um método para mudar o índice de uma lista de modos de intraprevisão de acordo com algumas modalidades da presente invenção.
[0524]Como o modo de intraprevisão do bloco atual tem mais chances de ser semelhante ao modo de intraprevisão do bloco seguinte do que o modo de intraprevisão dos blocos previamente codificados, quando da adição do modo de intraprevisão do bloco atual à lista de modos de intraprevisão, o valor de índice mais baixo "0" pode ser atribuído.
[0525]A FIG. 51 ilustra um exemplo de um método para aplicar um índice mais baixo ao modo de intraprevisão quando há um modo de intraprevisão adicionado em uma lista de modos de intraprevisão existente. De acordo com a
FIG. 51, quando os valores de modo de intraprevisão 0, 22, 3, 11 e 7 fazem-se presentes na lista de modos de intraprevisão e o modo de intraprevisão adicionado é 3, o codificador e o decodificador podem mudar o valor de índice de um modo de intraprevisão 3 já presente na lista de modos de intraprevisão para zero.
[0526]A FIG. 52 ilustra um exemplo de um método para reduzir um índice para o modo de intraprevisão quando há um modo de intraprevisão adicionado em uma lista de modos de intraprevisão existente. Quando há os valores de modo de intraprevisão 0, 22, 3, 11 e 7 na lista de modos de intraprevisão e o modo de intraprevisão adicionado é três, o codificador e o decodificador podem mudar o índice de um modo de intraprevisão 3 já presente na lista de modos de intraprevisão de terceiro para segundo. Como alternativa, ao configurar a lista de modos de intraprevisão, quando o modo de intraprevisão recém-adicionado existe na lista de modos de intraprevisão existentes, o codificador ou decodificador podem atribuir um índice predeterminado ao modo de intraprevisão correspondente.
[0527]As FIGs. 53 e 54 são diagramas que ilustram uma região que configura uma lista de modos de intraprevisão de acordo com algumas modalidades da presente invenção.
[0528]A lista de modos de intraprevisão pode ser configurada com uma unidade de codificação/decodificação específica, tal como um bloco, uma CTU, um tijolo, um tile, uma fatia, uma subcena, uma cena, um quadro e um grupo de cena (GOP) composto por uma ou mais CUs. Como blocos adjacentes têm maior probabilidade de gerar o mesmo modo de previsão, o codificador ou decodificador podem configurar a lista de modos de intraprevisão em unidades tais como CTU ou Fatia. Quando não há candidatos suficientes para a intraprevisão, a lista de modos de intraprevisão é configurada em unidades de cena, derivando assim previsões mais precisas. Além disso, como uma imagem possui alta semelhança entre cenas, um codificador ou decodificador podem aumentar a eficácia de codificação ao configurar uma lista de modos de intraprevisão para cada GOP. Além disso, como blocos adjacentes têm uma probabilidade relativamente alta de gerar o mesmo modo de previsão, o codificador ou decodificador podem construir a lista de modos de intraprevisão para cada região predeterminada em uma cena.
[0529]Aqui, a área predeterminada pode ser limitada a uma região vizinha ao bloco atual, conforme ilustra a FIG. 53, ou pode ser formada designando uma região ao realizar a partição em N na tela (N é um número inteiro 1 ou mais), conforme ilustra a FIG. 54. A lista de modos de intraprevisão de acordo com a presente invenção é gerada e usada não só para um bloco, uma CTU, um tijolo, um tile, uma fatia, uma subcena, uma cena, um quadro, um grupo de unidade de cena (GOP) composto por uma ou mais CUs, mas também várias unidades que podem ser usadas em um campo de compressão de vídeo, inclusive uma técnica de compressão de cena parada. Além disso, a lista de modos de intraprevisão pode ser configurada para todos os modos de previsão, ou pode ser configurada como uma lista separada só para um modo de previsão com alta possibilidade de seleção.
[0530]A FIG. 55 é ainda outro diagrama que ilustra um método para configurar uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[0531]A FIG. 55 ilustra outro exemplo de um método no qual um codificador ou decodificador de imagens configuram uma lista de modos de intraprevisão. No exemplo da FIG. 55, quando a lista de modos de intraprevisão está cheia, a lista de modos de intraprevisão pode ser configurada por uma regra primeiro a entrar primeiro a sair (FIFO), que substitui o primeiro componente adicionado por um valor novo. Quando a lista de modos de intraprevisão está cheia, a ordem de substituição pode ser alterada levando em consideração a direção de intraprevisão do bloco vizinho.
[0532]No relato a seguir, descrever-se-á uma lista de modos de intraprevisão na qual uma ordem de substituição segue uma regra primeiro a entrar primeiro a sair (FIFO). Na FIG. 55, cada um dos quadrados compostos por 16 blocos pode significar um bloco de unidade para derivar um modo de previsão, e a tonalidade cinza pode significar um bloco atual. Os números em cada unidade de previsão indicam um modo de intraprevisão, e as setas tracejadas indicam uma ordem de intraprevisão. Ou seja, a intraprevisão pode ser realizada na ordem de (a) a (f) na FIG. 55.
[0533]Como o valor do modo de intraprevisão determinado na FIG. 55(a) é cinco, o número de modo cinco pode ser adicionado à lista de modos de intraprevisão. Subsequentemente, como o valor do modo de intraprevisão determinado na FIG. 55(b) é quatro, o número de modo 4 pode ser adicionado em sequência à lista de modos de intraprevisão. À semelhança, os modos de intraprevisão determinados respectivamente nas FIGs. 55(c) a 55(f) podem ser adicionados em sequência à lista de modos de intraprevisão. Quando o modo de intraprevisão adicionado no processo de adicionar cada modo de intraprevisão à lista de modos de intraprevisão existe na lista de modos de intraprevisão, o modo de intraprevisão sobreposto pode não ser adicionado à lista de modos de intraprevisão.
[0534]Além disso, conforme ilustra a FIG. 55(f), quando as listas de modos de intraprevisão são preenchidas, cada componente pode ser substituído em sequência por um novo modo de intraprevisão na ordem da primeira adição dentre os componentes da lista de modos de intraprevisão. Na FIG. 55, o tamanho da lista de modos de intraprevisão é quatro, mas o tamanho da lista de modos de intraprevisão pode ser ajustado de maneira variada. Em outro exemplo, quando a lista de modos de intraprevisão é preenchida, o modo de intraprevisão adicionado pode ser adicionado a uma posição predeterminada na lista de modos de intraprevisão.
[0535]O índice da lista de modos de intraprevisão pode ser usado como um identificador que indica um dos modos de intraprevisão incluídos na lista de modos de intraprevisão. Neste documento, o codificador ou decodificador podem aumentar a eficácia de sinalização ao atribuir menos bits sinalizados ao decodificador uma vez que o valor de índice é menor.
[0536]Quando o modo de intraprevisão do bloco atual tem mais chances de ser semelhante ao modo de intraprevisão do bloco seguinte do que o modo de intraprevisão dos blocos previamente codificados, quando o modo de intraprevisão é adicionado à lista de modos de intraprevisão, o codificador ou decodificador podem atribuir o índice mais baixo ao modo de intraprevisão adicionado. Por exemplo, na FIG. 55(b), o codificador ou decodificador mudam o valor de modo de intraprevisão cinco que possui um valor do índice existente nº 0 para que tenha um valor do índice nº 1, e um valor de modo de intraprevisão 4 no bloco de codificação atual pode ser atribuído a um valor do índice nº 0.
[0537]As FIGs. 56 a 58 são diagramas que ilustram um método para alocar um índice de um modo de intraprevisão de acordo com algumas modalidades da presente invenção.
[0538]A FIG. 56 ilustra um exemplo de um método para atribuir um valor de índice mais baixo a um modo de intraprevisão adicionado. O valor de índice mais baixo 0 pode ser alocado ao modo de intraprevisão adicionado mais recentemente, e os baixos valores de índice podem ser alocados a cada modo de intraprevisão na ordem dos modos de intraprevisão adicionados mais tardiamente para os números de modo de intraprevisão remanescentes.
[0539]Em outro exemplo, o codificador ou decodificador podem adicionar em sequência o modo de intraprevisão derivado, reordenar os valores de índice, e alocar um valor "0" começando do modo de intraprevisão mais recentemente adicionado. Por exemplo, na FIG. 55(f), a lista de modos de intraprevisão pode ser configurada para que os valores dos modos de intraprevisão sejam na ordem de 4, 3, 6 e 8, e, neste documento, os valores de índice são na ordem de 3, 2, 1 e 0, em que um modo de intraprevisão 4 pode ter atribuído a ele um valor de índice 3, um modo de intraprevisão 3 pode ter um valor de índice 2, um modo de intraprevisão 6 pode ter um valor de índice 1, e um modo de intraprevisão 8 pode ter um valor de índice 0, respectivamente.
[0540]A FIG. 57 ilustra um exemplo de um método para atribuir o valor de índice mais baixo a um modo recentemente adicionado. O valor de índice mais baixo zero pode ser alocado ao modo de intraprevisão mais recentemente adicionado, e os valores de índice mais baixos podem ser atribuídos na ordem dos modos de intraprevisão adicionados mais tardiamente para os modos de intraprevisão remanescentes.
[0541]Quando o modo de intraprevisão adicionado já existe na lista de modos de intraprevisão, "zero", que é o valor de índice mais baixo, pode ser atribuído ao modo de intraprevisão. A FIG. 58 ilustra um exemplo de um método para alocar o valor de índice mais baixo na lista de modos de intraprevisão ao modo de intraprevisão quando o modo de intraprevisão já existe na lista de modos de intraprevisão. Com referência à FIG. 58(d), no processo de adicionar um valor 4 do modo de intraprevisão, como o modo de intraprevisão 4 já existe no modo de intraprevisão, o codificador ou decodificador podem atribuir zero, que é o valor de índice mais baixo, para o valor 4 do modo de intraprevisão.
[0542]Doravante, descrever-se-á um método para configurar uma pluralidade de listas de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[0543]Pode haver uma pluralidade de listas de modos de intraprevisão em certa região. Em particular, quando uma pluralidade de listas de modos de intraprevisão é configurada para cada direção ou cada região de um modo de previsão, é vantajoso considerar a direcionalidade do modo de previsão, as características de pixel de certa região, e seus semelhantes, em vez de configurar uma lista de modos de intraprevisão para todos os modos de previsão e todas as regiões.
[0544]A FIG. 59 é um diagrama que ilustra um método para configurar uma pluralidade de listas de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[0545]A FIG. 59 ilustra um exemplo de um método para configurar uma lista de modos de intraprevisão simples e um método para configurar uma pluralidade de listas de modos de intraprevisão para cada região. A FIG. 59(a) ilustra um exemplo para configurar uma lista de modos de intraprevisão com um comprimento igual a 2. A FIG. 59(b) ilustra um exemplo para configurar uma lista de modos de intraprevisão com um comprimento igual a 2 para uma região esquerda (primeira região) e uma região direita (segunda região) em relação ao centro de um bloco.
[0546]Na FIG. 59(a), como uma lista de modos de intraprevisão é configurada sem distinguir entre as regiões esquerda e direita, uma característica para gerar modos de intraprevisão semelhantes para cada região não pode ser considerada. Por outro lado, na FIG. 59(b), a lista de modos de intraprevisão pode ser configurada individualmente levando em consideração a posição e a orientação para cada região em relação ao centro. Ao configurar uma pluralidade de listas de intraprevisão para cada região, as características de geração do modo de intraprevisão para cada região podem ser levadas em conta, aumentando assim a eficácia de codificação.
[0547]No exemplo da FIG. 59, um bloco é dividido em regiões esquerda e direita, mas a modalidade da FIG. 59 é só um exemplo no qual uma região predeterminada pode ser dividida em N regiões arbitrárias (N é um número inteiro de 1 ou mais) para formar N listas de intraprevisão. Neste documento, a região predeterminada pode ser limitada a uma região periférica do bloco atual, ou pode significar uma região obtida realizando a partição em N na tela (N é um número inteiro igual a 1 ou mais) em fatias, cenas e seus semelhantes em vez de blocos. Além disso, o codificador ou decodificador podem utilizar o modo de intraprevisão da região parcial para configurar o modo de intraprevisão da outra região parcial.
[0548]A FIG. 60 é um diagrama para descrever um método para configurar uma pluralidade de listas de modos de intraprevisão levando em consideração a direcionalidade de um modo de previsão, de acordo com uma modalidade da presente invenção.
[0549]A FIG. 60 ilustra um exemplo de um método para configurar uma única lista de modos de intraprevisão e um método para configurar uma pluralidade de listas de intraprevisão para cada direção. A FIG. 60(a) ilustra um exemplo da configuração de uma lista de modos de intraprevisão com um comprimento igual a dois, e a FIG. 60(b) ilustra um exemplo de um método para configurar uma lista de modos de intraprevisão com um comprimento igual a dois para uma direção horizontal e uma direção vertical com base na direcionalidade do modo de previsão.
[0550]Como modos de previsão com direcionalidade semelhante na intraprevisão têm características que ocorrem adjacentemente, o codificador ou decodificador constroem uma lista de modos de intraprevisão para cada direção, e então buscam o modo de previsão do bloco atual na lista de intraprevisão do bloco semelhante à direção do bloco vizinho levando em consideração da direção do modo de previsão do bloco vizinho ao bloco atual. Ao selecionar a lista de modos de intraprevisão levando em consideração a direcionalidade, a possibilidade de encontrar o mesmo modo de intraprevisão aumenta. Logo, a configuração da lista de modos de previsão para cada direção conforme ilustrada na FIG. 60 aumenta a eficácia da codificação.
[0551]No exemplo da FIG. 60, a direção da previsão é classificada nas direções horizontal e vertical, mas a modalidade da FIG. 60 é só um exemplo, podendo a direção ser classificada de várias maneiras de tal modo que N ou mais (N é um número inteiro igual a 1 ou mais) listas de intraprevisão possam ser configurados.
[0552]A FIG. 61 ilustra um método para distinguir a direção ao configurar N ou mais listas de intraprevisão. A FIG. 61(a) ilustra um exemplo de um método para distinguir duas direções, e a FIG. 61(b) ilustra um exemplo de um método para distinguir quatro direções.
[0553]A FIG. 62 é um diagrama que ilustra uma estrutura de um codificador e decodificador que adicionam uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[0554]O diagrama de dispositivo da FIG. 62 pode ter um gerador de listas de modos de intraprevisão adicionado aos diagramas de dispositivo das FIGs. 1 e
2. O gerador de listas de modos de intraprevisão pode configurar uma lista de modos de intraprevisão para reduzir a quantidade de bits de sinalização do modo de intraprevisão usado na intraprevisão. Além disso, o codificador ou decodificador podem utilizar um método para usar um componente da lista de modos de intraprevisão como candidato a MPM sem sinalizar o índice da lista de modos de intraprevisão.
[0555]A FIG. 63 é um diagrama que ilustra um método para adicionar uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[0556]A FIG. 63 ilustra um exemplo de um método para configurar uma lista de modos de intraprevisão em um codificador e decodificador. A FIG. 63(a) ilustra um fluxograma no qual um codificador configura uma lista de modos de intraprevisão. Quando o modo de intraprevisão do bloco atual é determinado no codificador, o codificador pode adicionar o modo de intraprevisão determinado à lista de modos de intraprevisão. Neste documento, quando a lista de modos de intraprevisão está cheia, o modo de intraprevisão pode ser adicionado de acordo com uma regra primeiro a entrar primeiro a sair (FIFO), que substitui o primeiro componente adicionado por um valor novo.
[0557]Quando a lista de modos de intraprevisão está cheia, a ordem de substituição pode ser parcialmente alterada, conforme ilustra a FIG. 64, levando em consideração o modo de intraprevisão do bloco vizinho. Com referência à FIG.
64(h), no processo de adicionar um valor 4 do modo de intraprevisão, o valor 6 do modo de intraprevisão do índice nº 0 deve ser substituído por 4 na ordem FIFO. No entanto, como os valores dos modos de intraprevisão dos blocos adjacentes esquerdo e superior do bloco atual são 5 e 7, respectivamente, o codificador ou decodificador substituem o modo de intraprevisão 34 com a maior diferença em relação a um valor médio 6 dos valores 5 e 7 do modo de intraprevisão na lista de modos de intraprevisão pelo valor 4 do modo de intraprevisão, configurando assim uma lista de modos de intraprevisão que reflete a tendência do modo de previsão da região periférica do bloco atual. A FIG. 64 ilustra um exemplo de um método para mudar a ordem de substituição no qual os critérios para mudar a ordem de substituição podem ser determinados não só por um valor médio dos modos de intraprevisão de blocos vizinhos, mas também por um valor médio de blocos vizinhos de blocos atuais não adjacentes, conforme ilustra a FIG. 64. Além disso, o modo de intraprevisão do bloco vizinho pode ser usado como referência para mudar a ordem de substituição. Além disso, ao menos um dos valores estatísticos, tais como a soma ponderada, média ponderada, mediana, valor mínimo, valor máximo etc., além do valor médio, pode ser usado para determinar os critérios para mudar a ordem de substituição.
[0558]A FIG. 63(b) ilustra um fluxograma no qual um decodificador configura uma lista de modos de intraprevisão. O decodificador pode decodificar o modo de previsão sinalizado a partir do codificador e adicionar o mesmo como um componente da lista de modos de intraprevisão. Quando a lista de modos de intraprevisão está cheia, o modo de intraprevisão pode ser adicionado de acordo com a regra primeiro a entrar primeiro a sair (FIFO), que substitui o primeiro componente adicionado por um valor novo como no codificador.
[0559]Quando a lista de modos de intraprevisão está cheia, a ordem de substituição pode ser parcialmente alterada levando em consideração o modo de intraprevisão do bloco vizinho.
[0560]A FIG. 65 é um diagrama que ilustra um método para aplicar uma lista de modos de intraprevisão a um MPM de acordo com uma modalidade da presente invenção.
[0561]A FIG. 65 ilustra um exemplo de um método para referir-se a um modo de intraprevisão quando da configuração de uma lista de MPM em um codificador e um decodificador. A FIG. 65(a) ilustra um exemplo de um método para derivar todos ou alguns dos componentes do MPM a partir da lista de modos de intraprevisão. Ao usar o esquema de 3 MPM para configurar uma lista de MPM usando três MPM, o codificador ou o decodificador podem derivar um modo de intraprevisão dos blocos adjacentes superior e esquerdo.
[0562]Neste documento, quando os modos de intraprevisão de dois blocos vizinhos são iguais, o componente da lista de MPM é configurado através do modo de intraprevisão do bloco vizinho, e um ou dois componentes dos dois componentes remanescentes podem ser determinados usando os componentes na lista de modos de intraprevisão. Além disso, mesmo quando os modos de intraprevisão dos dois blocos adjacentes são diferentes, o outro modo de intraprevisão pode ser determinado usando componentes da lista de modos de intraprevisão. À semelhança, mesmo ao configurar uma lista de MPM que constitui seis MPM, candidatos parciais da lista de MPM podem ser determinados através de uma lista de candidatos a modo de intraprevisão.
[0563]Além disso, conforme ilustra a FIG. 65(b), quando o modo de intraprevisão não pode ser derivado do bloco vizinho do bloco atual, a lista de MPM pode ser configurada usando os componentes da lista de modos de intraprevisão. Embora a descrição acima descreva que algumas condições da configuração do MPM aplicam-se a uma modalidade da presente invenção, essa técnica não significa que a presente invenção limite-se a apenas 3 MPM e 6 MPM.
A fim de configurar vários tipos de listas de MPM, a lista de modos de intraprevisão de acordo com a presente invenção pode ser usada.
[0564]A FIG. 66 é um diagrama que ilustra um método para aplicar uma lista de modos de intraprevisão a um modo não MPM de acordo com uma modalidade da presente invenção.
[0565]A FIG. 66 ilustra um exemplo de um método para referir-se a uma lista de intraprevisão em um codificador em caso de Não MPM. O codificador pode verificar se o modo de intraprevisão atual está incluído na lista de MPM. Quando o modo de intraprevisão atual está incluído na lista de MPM, o codificador codifica a Flag de MPM e o Índice de MPM e transmite os mesmos ao decodificador, e o processo de codificação para o modo de intraprevisão pode ser encerrado.
[0566]Quando o codificador opera no modo Não MPM, a Flag de MPM pode ser codificada como 0 e sinalizada ao decodificador. Quando o modo de intraprevisão atual não está na lista de MPM, o codificador pode determinar se o modo de intraprevisão atual existe na lista de modos de intraprevisão e pode sinalizar um identificador (ou uma flag, um índice etc.) indicando se referir-se à lista de modos de intraprevisão.
[0567]Quando o modo de intraprevisão atual está na lista de modos de intraprevisão, o codificador pode codificar um identificador indicando se referir-se à lista de modos de intraprevisão para um primeiro valor (por exemplo, "1") e codificar um índice de uma lista de modos de intraprevisão que casa com o modo de intraprevisão, para sinalizar o mesmo ao decodificador.
[0568]Quando o modo de intraprevisão atual não está na lista de modos de intraprevisão, o codificador pode codificar um identificador indicando se referir-se à lista de modos de intraprevisão para um segundo valor (por exemplo, "0") para sinalizar o mesmo ao decodificador, e codificar o modo de intraprevisão atual para sinalizá-lo ao decodificador.
[0569]Na FIG. 66, como é determinado se selecionar a lista de modos de intraprevisão para um modo não selecionado no MPM, quando da operação no modo não MPM, não ocorre uma situação na qual o modo de intraprevisão presente na lista de MPM é o modo de previsão do bloco atual. Logo, no caso do modo não MPM de acordo com a presente invenção, a lista de modos de intraprevisão pode ser configurada usando um modo que exclui os componentes do MPM.
[0570]Na codificação de modo não MPM, a codificação do modo pode ser realizada para os modos remanescentes salvo para o candidato a MPM. Por exemplo, no caso em que 67 modos são usados no modo de intraprevisão e 3 MPM são usados, quando o codificador ou decodificador operam no modo não
MPM, a codificação pode ser realizada para 64 modos, salvo os três modos que constituem o MPM, de 67 modos de intraprevisão. De acordo com a presente invenção, quando um codificador ou decodificador possui N modos de previsão, usando n1 (n1 é um número natural) candidatos a MPM e usando um modo de previsão de n2 (n2 é um número natural) listas de modos de intraprevisão, o codificador pode realizar a codificação CABAC em N-n1-n2 modos.
[0571]No modo não MPM, o codificador pode utilizar a lista de modos de intraprevisão ainda que no método de modo selecionado. O modo selecionado é um método usado no modo não MPM, e um método de codificação que faz a distinção entre n (n é um número natural) modos selecionados e N-n modos não selecionados para alocar menos bits ao modo selecionado, para N modos (N é um número natural) que podem ocorrer em um modo não MPM.
[0572]Ao usar a lista de modos de intraprevisão, um componente da lista de modos de intraprevisão pode ser adicionado ao método de modo selecionado. Neste documento, como a taxa de seleção do modo selecionado pode ser aumentada sem transmitir adicionalmente a flag de seleção da lista de modos de intraprevisão, a eficácia de codificação pode ser aumentada. Como alternativa, o codificador ou decodificador podem configurar a lista de modos de intraprevisão em modos que não sejam múltiplos de tal modo que o componente da lista de modos de intraprevisão não seja sobreposta pelo modo selecionado, minimizando assim a ocorrência de modos remanescentes.
[0573]A FIG. 67 é um diagrama que ilustra um método para aplicar uma lista de modos de intraprevisão a um modo não MPM por um decodificador de acordo com uma modalidade da presente invenção.
[0574]A FIG. 67 ilustra um exemplo de um método para referir-se a uma lista de intraprevisão por um decodificador no caso do modo Não MPM. O decodificador pode receber e decodificar uma flag de MPM para identificar se aplicar o MPM transmitido a partir do codificador. Quando a Flag de MPM é 1, o índice de MPM pode ser decodificado para reconstruir o modo de interprevisão a partir da lista de MPM e encerrar o processo de reconstrução do modo de intraprevisão.
[0575]No caso do modo Não MPM no qual a Flag de MPM é 0, de acordo com a presente invenção, o decodificador pode decodificar uma flag de referência da lista de modos de intraprevisão. Quando a Flag de referência da lista de modos de intraprevisão é 1, o decodificador pode decodificar o índice da lista de modos de intraprevisão, restaurar o modo de intraprevisão através do índice da lista de modos de intraprevisão e encerrar o processo de reconstrução do modo de intraprevisão.
[0576]Quando a flag de referência da lista de modos de intraprevisão é 0, o modo de intraprevisão atual pode ser decodificado através de CABAC. Aqui, as operações do decodificador podem ser alteradas uma para a outra nos casos em que a flag de MPM é 1 e 0. Além disso, as operações do decodificador podem ser alteradas uma para a outra nos casos em que a flag de referência da lista de modos de intraprevisão é 1 e 0.
[0577]Na FIG. 67, como uma lista de modos de intraprevisão é selecionada para um modo não selecionado no MPM, quando o modo não MPM é operado, não há caso em que o modo de intraprevisão presente na lista de MPM é o mesmo que o modo de previsão do bloco atual. Logo, no caso do modo não MPM de acordo com a presente invenção, a lista de modos de intraprevisão pode ser configurada usando um modo salvo os componentes do MPM.
[0578]A decodificação de modo para Não MPM deve ser realizada da mesma maneira que para o codificador. Logo, um método para configurar uma lista de modos de intraprevisão e um modo selecionado do decodificador, que é relacionado ao modo selecionado e ao modo não selecionado, pode ser realizado pelo mesmo método que o codificador descrito acima. A lista de modos de intraprevisão também pode ser aludida e usada em modos de intraprevisão que não o MPM, o modo Selecionado e o modo Não Selecionado.
[0579]A FIG. 68 é um diagrama que ilustra um método para codificar/decodificar uma imagem usando uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[0580]A fim de configurar uma lista de modos de intraprevisão, um codificador ou decodificador podem calcular o custo para cada modo de previsão.
A FIG. 68(a) ilustra um fluxograma de um método para configurar uma lista de modos de intraprevisão por um codificador, e a FIG. 68(b) ilustra um fluxograma de um método para configurar uma lista de modos de intraprevisão por um codificador. Conforme ilustra a FIG. 68(a), quando o modo de intraprevisão é determinado, o codificador pode atualizar o custo para o modo de intraprevisão correspondente. Aqui, o custo pode ser um valor derivado usando a frequência de ocorrência ou o sinal residual de cada modo de intraprevisão. O custo pode ser configurado em uma forma de lista ou seus semelhantes e pode ser usado como informação para configurar uma lista de modos de intraprevisão.
[0581]De acordo com a presente invenção, quando a lista de modos de intraprevisão é configurada com base no custo de cada modo de previsão, e um modo de intraprevisão igual ao modo de intraprevisão do bloco atual está na lista de modos de intraprevisão, o codificador pode não sinalizar diretamente o modo de intraprevisão, mas sim o índice da lista de modos de intraprevisão. O decodificador configura uma lista de modos de intraprevisão da mesma maneira que o codificado com base nas informações sinalizadas a partir do codificador e utiliza a lista de modos de intraprevisão como informações de referência para reconstruir o modo de previsão, conforme ilustra a FIG. 68(b). A lista de modos de intraprevisão pode ser usada como informação de referência em vários métodos de previsão relacionados à sinalização do modo de intraprevisão.
[0582]A FIG. 69 é uma vista que ilustra um método para configurar uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[0583]No método para configurar a lista de modos de intraprevisão com base no custo de cada modo de intraprevisão, um exemplo de um método para calcular o custo é ilustrado na FIG. 69. O custo pode ser calculado usando ao menos um de uma contagem correspondente a uma frequência de ocorrência ou um sinal residual após a previsão. A FIG. 69(a) ilustra um método para configurar uma lista de modos de intraprevisão com base na contagem, que é a frequência de ocorrência de cada modo de previsão, e a FIG. 69 (b) ilustra um método para calcular tanto a contagem quanto o sinal residual e configurar uma lista de modos de intraprevisão com base na média dos sinais residuais para cada modo de previsão.
[0584]Como um modo de previsão que ocorre com frequência na intraprevisão tem mais chances de reutilizado, uma lista de modos de intraprevisão pode ser configurada dando prioridade a um modo de previsão com alta contagem, de acordo com a FIG. 69(a).
[0585]Por outro lado, como um sinal residual menos preciso é gerado durante a realização da intraprevisão, uma previsão mais precisa é realizada, a lista de modos de intraprevisão pode ser configurada dando prioridade ao modo de previsão com uma média dos sinais residuais baixa, de acordo com a FIG. 69(b).
[0586]O custo usado no método para configurar uma lista de modos de intraprevisão pode ser calculado de acordo com todos os critérios que podem configurar uma lista de modos de intraprevisão, tal como um método para verificar a frequência de ocorrência de cada modo de previsão para regiões vizinhas do bloco atual.
[0587]As FIGs. 70 e 71 são diagramas que ilustram um método de codificação/decodificação de acordo com algumas modalidades da presente invenção.
[0588]A lista de modos de intraprevisão pode não ser configurada separadamente como no exemplo acima, mas também pode ser configurada por um método para referir-se diretamente ao custo calculado para cada modo de previsão. Nesse caso, o fluxograma é conforme ilustra a FIG. 70. De acordo com outra modalidade da presente invenção, conforme ilustra a FIG. 71, uma lista de modos de intraprevisão pode ser configurada sem medir o custo. Nesse caso, a lista de modos de intraprevisão pode ser configurada adaptativamente usando o modo de intraprevisão do bloco vizinho adjacente ao bloco atual.
[0589]A FIG. 72 é um diagrama que ilustra um método para inicializar uma lista de intraprevisão de acordo com uma modalidade da presente invenção.
[0590]A lista de modos de intraprevisão pode não ser construída até que a intraprevisão de cena seja realizada. Logo, o codificador ou decodificador podem atribuir um valor inicial à lista de modos de intraprevisão. A FIG. 72 ilustra um exemplo de uma lista de modos de previsão inicializada. O codificador ou decodificador podem atribuir preferivelmente um baixo índice ao modo que é estatisticamente o mais usado para a lista de modos de intraprevisão.
[0591]Na FIG. 72, PLANAR_IDX significa um número de modos planos de intraprevisão, DC_IDX significa um número de modos DC de previsão DC, e VER_IDX é um número de modos para a intraprevisão direcional em uma direção vertical, e HOR_IDX significa um número de modos para a intraprevisão direcional em uma direção horizontal. Estatisticamente, quando PLANAR_IDX, DC_IDX, VER_IDX e HOR_IDX ocorrem com frequência, no exemplo da FIG. 72, o codificador ou decodificador podem alocar índices de 0 a 3 a PLANAR_IDX, DC_IDX, VER_IDX e HOR_IDX. A seguir, o codificador ou decodificador podem adicionar sequencialmente modos para adicionar e subtrair valores de desvio a/de modos direcionais VER_IDX e HOR_IDX, para a lista de modos de intraprevisão.
No exemplo da FIG. 72, offset1 e offset2 correspondem aos valores de desvio, e, à medida que o índice aumenta na lista, o valor de desvio aumenta.
[0592]Ou seja, na FIG. 72, offset2 > offset1. Dessa forma, o codificador ou decodificador podem inicializar a lista de modos de intraprevisão usando o modo de intraprevisão que estatisticamente possui alta frequência de ocorrência. O modo de previsão direcional com uma pequena diferença em relação ao modo de intraprevisão com alta frequência de ocorrência pode ser definido como um valor inicial, com o que a possibilidade de referir-se à lista de modos de intraprevisão aumenta.
[0593]Além disso, em um exemplo, offset2 pode ser determinado adicionando ou subtraindo um valor predeterminado a um valor offset1. No exemplo da FIG. 72, VER_IDX e HOR_IDX são definidos como modos direcionais para adicionar ou subtrair um desvio. No entanto, esse é um valor determinado arbitrariamente para fins de conveniência da descrição, e esse valor pode variar dependendo da situação de codificação/decodificação. Além disso, como método para determinar um modo direcional definido como valor de inicialização, um método para usar o primeiro número de modo de intraprevisão direcional determinado como o modo de previsão pode ser usado.
[0594]A Tabela 1 abaixo é uma tabela que ilustra bits de representação que podem indicar um modo de intraprevisão na intraprevisão. Tabela 1 Modalidade 1 (35 modos) Modalidade 2 (67 modos) Flag de MPM 1 bit 1 bit
Modos MPM 2 bits (3 modos) 2 bits (3 modos) Modos não MPM 5 bits (32 modos) 6 bits (64 modos)
[0595]De acordo com a Tabela 1, 1 bit pode ser alocado à Flag de MPM, e 2 bits podem ser alocados para representar três modos MPM. Como os bits de representação para o modo não MPM, cinco bits podem ser usados ao alocar 32 modos, e seis bits podem ser usados ao alocar 64 modos.
[0596]A Tabela 2 abaixo é uma tabela que ilustra um exemplo de um bit de representação do modo de intraprevisão de acordo com a presente invenção.
Tabela 2 Modalidade 1 Modalidade 2 (35 modos) (67 modos) Flag de MPM 1 bit 1 bit Modos MPM 2 bits (3 modos) 2 bits (3 modos) Modos não Flag de lista de 1 bit 1 bit MPM modos intra Modos da lista de 2 bits (4 modos) 2 bits (8 modos) modos intra Modos da lista de 5 bits (28 modos) 6 bits (56 modos) modos não intra
[0597]Na Modalidade 1, que utiliza 35 modos, o comprimento da lista de modos de intraprevisão pode ser definido em quatro, e, na Modalidade 2, que utiliza 67 modos, o comprimento do modo de intraprevisão pode ser definido em oito.
[0598]Para fins de conveniência da descrição abaixo, uma lista de modos de intraprevisão é definida como uma lista de modos Intra, uma flag indicando se uma lista de modos de intraprevisão é selecionada como uma flag de lista de modos Intra, e um modo de uma lista de modos de intraprevisão como um modo de lista de modos Intra.
[0599]Na Modalidade 1, 1 bit pode ser alocado à flag de lista de modos Intra, e 2 bits podem ser alocados para representar quatro modos incluídos na lista de modos de intraprevisão. Cinco bits podem ser alocados como bits para representar os modos de intraprevisão remanescentes não incluídos na lista de modos de intraprevisão. No Exemplo 1 da Tabela 1, 5 bits são alocados fixamente para o modo no qual o MPM não é selecionado. No entanto, quando a lista de modos de intraprevisão é usada, o modo de intraprevisão pode ser codificado usando 3 bits incluindo uma flag, aprimorando assim a eficácia da codificação.
[0600]À semelhança, na Modalidade 2, 1 bit pode ser alocado à flag de lista de modos Intra, e 3 bits podem ser alocados para representar 8 modos incluídos na lista de modos de intraprevisão. Seis bits podem ser alocados como bits para representar os modos de intraprevisão remanescentes não incluídos na lista de modos de intraprevisão. No Exemplo 2 da Tabela 1, 6 bits são alocados fixamente para o modo no qual o MPM não é selecionado. No entanto, quando a lista de modos de intraprevisão é usada, o modo de intraprevisão pode ser alocado usando 4 bits incluindo uma flag, aprimorando assim a eficácia da codificação.
[0601]A Tabela 3 ilustra um exemplo dos bits de representação do modo de intraprevisão no qual o número de modos de previsão MPM é reduzido e o tamanho da lista de modos de intraprevisão é aumentada em comparação à Tabela 2. Por exemplo, o tamanho da lista MPM e o tamanho da lista de modos de intraprevisão no codificador e decodificador a que a lista de modos de intraprevisão é adicionada podem ser definidos de maneira variada. Tabela 3 Modalidade 1 Modalidade 2 (35 modos) (67 modos)
Flag de MPM 1 bit 1 bit Modos MPM 1 bit (2 modos) 1 bit (2 modos) Modos não Flag de lista de 1 1 MPM modos intra Modos da lista de 3 bits (8 modos) 4 bits (16 modos) modos intra Modos da lista de 5 bits (25 modos) 6 bits (49 modos) modos não intra
[0602]A Tabela 4 abaixo é uma tabela que ilustra os bits de representação do modo de intraprevisão que podem ser utilizados ao usar uma pluralidade de listas de modos de intraprevisão.
Tabela 4 Modalidade 1 Modalidade 2 (35 modos) (67 modos) Flag de MPM 1 bit 1 bit Modos MPM 2 bits (3 modos) 2 bits (3 modos) Modos não Flag de lista de 1 bit 1 bit MPM modos intra Modos da lista de 2 bits (4 modos) 3 bits (8 modos) modos intra Modos da lista de 5 bits (32 modos) 6 bits (64 modos) modos não intra
[0603]Na primeira modalidade, a lista de modos de intraprevisão pode ter um total de quatro listas para cada direção, cada comprimento sendo de quatro, e a pluralidade de listas de modos de intraprevisão pode codificar um total de 16 modos. Nesse caso, o codificador ou decodificador podem selecionar uma lista da pluralidade de listas de modos de intraprevisão com base na direção do MPM ou bloco vizinho e definir a flag de lista de modos intra em 1.
[0604]À semelhança, na Modalidade 2, a lista de modos de intraprevisão pode ter um total de quatro listas para cada direção, cada comprimento sendo de oito, e a lista de modos de intraprevisão pode indicar um total de 32 modos. À semelhança, o codificador ou decodificador podem selecionar uma lista dentre uma pluralidade de listas de intraprevisão com base na direção do MPM ou bloco vizinho e definir a flag de lista de modos intra em 1.
[0605]A Tabela 5 ilustra uma técnica de codificação dos modos de intraprevisão que inclui um modo selecionado e um modo não selecionado. Tabela 5 Modos de Flag de Flag Bin string intraprevisão MPM selecionada Modos MPM (6) 1 0 10 110 1110 11110 11111 Modos selecionados 0 1 código com (16) comprimento fixo de 4 bits Modos não 0 0 Código binário selecionados (45) truncado
[0606]A Tabela 5 ilustra uma técnica de codificação dos modos de intraprevisão que inclui um modo selecionado e um modo não selecionado. No método de codificação conforme ilustra a Tabela 5, modos selecionados podem ser implementados usando uma lista de modos de intraprevisão para aumentar a seletividade. Além disso, o bit de representação pode ser reduzido aplicando o método que usa a lista de modos de intraprevisão aos modos não selecionados ou aplicando somente os modos não selecionados ao modo de intraprevisão não incluído na lista de modos de intraprevisão.
[0607]A FIG. 73 é um diagrama que ilustra a sintaxe de uma lista de modos de intraprevisão de acordo com uma modalidade da presente invenção.
[0608]A FIG. 73 ilustra um exemplo de uma configuração sintática que inclui informações de lista de modos de previsão. O decodificador de acordo com a presente invenção pode sinalizar Intra_mode_list_flag, se a lista de modos de intraprevisão for selecionada para modos não incluídos no MPM. Quando Intra_mode_list_flag é 1, o decodificador pode restaurar o modo de intraprevisão sinalizando Intra_mode_list_index, que é um índice na lista de modos de intraprevisão.
[0609]As modalidades acima podem ser realizadas no mesmo método em um codificador e um decodificador.
[0610]Ao menos uma ou uma combinação das modalidades acima pode ser utilizada para codificar/decodificar um vídeo.
[0611]A sequência de aplicação das modalidades acima pode ser diferente entre um codificador e um decodificador, ou a sequência de aplicação das modalidades acima pode ser igual no codificador e no decodificador.
[0612]As modalidades acima podem ser realizadas em cada sinal luma e sinal croma, ou as modalidades acima podem ser realizadas identicamente nos sinais luma e croma.
[0613]Uma forma de bloco à qual as modalidades acima da presente invenção se aplicam pode ter uma forma quadrada ou uma forma não quadrada.
[0614]As modalidades acima da presente invenção podem ser aplicadas dependendo do tamanho de ao menos um de um bloco de codificação, um bloco de previsão, um bloco de transformada, um bloco, um bloco atual, uma unidade de codificação, uma unidade de previsão, uma unidade de transformada, uma unidade e uma unidade atual. Neste documento, o tamanho pode ser definido por um tamanho mínimo ou tamanho máximo, ou ambos, para que as modalidades acima sejam aplicadas, ou pode ser definido por um tamanho fixo ao qual a modalidade acima se aplica. Além disso, nas modalidades acima, uma primeira modalidade pode ser aplicada para um primeiro tamanho, e uma segunda modalidade pode ser aplicada para um segundo tamanho. Em outras palavras, as modalidades acima podem ser aplicadas em combinação dependendo do tamanho. Além disso, as modalidades acima podem ser aplicadas quando um tamanho for igual ou maior que um tamanho mínimo e igual ou menor que um tamanho máximo. Em outras palavras, as modalidades acima podem ser aplicadas quando um tamanho de bloco enquadra-se dentro de certa faixa.
[0615]Por exemplo, as modalidades acima podem ser aplicadas quando o tamanho de um bloco atual for de 8x8 ou mais. Por exemplo, as modalidades acima podem ser aplicadas quando o tamanho de um bloco atual for de 4x4 ou mais. Por exemplo, as modalidades acima podem ser aplicadas quando o tamanho de um bloco atual for de 16x16 ou mais. Por exemplo, as modalidades acima podem ser aplicadas quando o tamanho de um bloco atual for igual ou maior que 16x16 e igual ou menor que 64x64.
[0616]As modalidades acima da presente invenção podem ser aplicadas dependendo de uma camada temporal. A fim de identificar uma camada temporal a que as modalidades acima podem ser aplicadas, um identificador correspondente pode ser sinalizado, e as modalidades acima podem ser aplicadas a uma camada temporal especificada identificada pelo identificador correspondente. Neste documento, o identificador pode ser definido como a camada mais baixa ou a camada mais alta, ou ambas, a que as modalidades acima podem ser aplicadas, ou pode ser definido para indicar uma camada específica a que a modalidade se aplica. Além disso, uma camada temporal fixa a que a modalidade se aplica pode ser definida.
[0617]Por exemplo, as modalidades acima podem ser aplicadas quando uma camada temporal de uma imagem atual for a camada mais baixa. Por exemplo, as modalidades acima podem ser aplicadas quando um identificador de camada temporal de uma imagem atual for 1. Por exemplo, as modalidades acima podem ser aplicadas quando uma camada temporal de uma imagem atual for a camada mais alta.
[0618]Um tipo de fatia ou um tipo de grupo de tiles a que as modalidades acima da presente invenção se aplicam pode ser definido, e as modalidades acima podem ser aplicadas dependendo do tipo de fatia ou o tipo de grupo de tiles correspondentes.
[0619]Nas modalidades descritas acima, os métodos são descritos com base em fluxogramas com uma série de etapas ou unidades, mas a presente invenção não se limita à ordem das etapas, e, em vez disso, algumas etapas podem ser realizadas simultaneamente ou em uma ordem diferente com outras etapas. Ademais, os versados na técnica apreciarão que as etapas nos fluxogramas não se excluem umas às outras e que outras etapas podem ser adicionadas aos fluxogramas ou algumas das etapas podem ser excluídas dos fluxogramas sem influenciar no âmbito da presente invenção.
[0620]As modalidades incluem vários aspectos dos exemplos. Nem todas as combinações possíveis para vários aspectos são descritas, mas os versados na técnica reconhecerão diferentes combinações. Logo, a presente invenção pode incluir todas as substituições, modificações e mudanças dentro do âmbito das reivindicações.
[0621]As modalidades da presente invenção podem ser implementadas na forma de instruções de programa, que sejam executáveis por vários componentes de computador, e gravadas em um meio de gravação legível por computador. O meio de gravação legível por computador pode incluir instruções de programa, arquivos de dados, estruturas de dados etc. independentes ou combinados. As instruções de programa gravadas no meio de gravação legível por computador podem ser designadas e construídas especialmente para a presente invenção, ou bem conhecidas dos versados na técnica do campo da tecnologia de software de computador. Exemplos do meio de gravação legível por computador incluem meios de gravação magnéticos, tais como discos rígidos, disquetes e fitas magnéticas; meios de armazenamento de dados ópticos, tais como CD-ROMs ou DVD-ROMs; meios magneto-ópticos, tais como discos flopticais; e dispositivos de hardware, tais como memória somente para leitura (ROM), memória de acesso aleatório (RAM), memória flash etc., que sejam particularmente estruturados para armazenar e implementar as instruções de programa. Exemplos das instruções de programa incluem não só um código de linguagem mecânico formatado por um compilador mas também um código de linguagem de alto nível que pode ser implementado por um computador usando um intérprete. Os dispositivos de hardware podem ser configurados para ser operados por um ou mais módulos de software ou vice-versa para conduzir os processos de acordo com a presente invenção.
[0622]Embora tenha-se descrito a presente invenção em termos de itens específicos, tais como elementos detalhados, bem como as modalidades limitadas e os desenhos, estes só são dados para ajudar no entendimento geral da invenção, não se limitando a presente invenção às modalidades acima. Os versados na técnica a que pertence a presente invenção apreciarão que várias modificações e mudanças podem ser feitas à descrição acima.
[0623]Portanto, o âmbito da presente invenção não será limitado pelas modalidades descritas acima, e todo o âmbito das reivindicações apensas e seus equivalentes enquadrar-se-á dentro do âmbito e essência da invenção.
APLICABILIDADE INDUSTRIAL
[0624]A presente invenção pode ser usada para codificar ou decodificar uma imagem.

Claims (19)

REIVINDICAÇÕES
1. Método para decodificar uma imagem, o método sendo CARACTERIZADO por compreender: derivar uma primeira lista de candidatos de um bloco atual usando informações de movimento de um bloco vizinho ao bloco atual para derivar uma primeira lista de candidatos para o bloco atual; derivar uma segunda lista de candidatos para o bloco atual usando informações de movimento previamente reconstruídas; derivar uma terceira lista de candidatos usando a primeira lista de candidatos e a segunda lista de candidatos; e gerar um bloco de previsão para o bloco atual usando a terceira lista de candidatos.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o bloco vizinho inclui ao menos um de um bloco vizinho espacial e um bloco vizinho temporal.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que derivar a segunda lista de candidatos inclui: adicionar as informações de movimento previamente reconstruídas à segunda lista de candidatos, em que as informações de movimento previamente reconstruídas são informações de movimento de um bloco de codificação decodificado imediatamente antes da decodificação do bloco atual.
4. Método, de acordo com a reivindicação 3, CARACTERIZADO por compreender ainda: inicializar a segunda lista de candidatos, em que a segunda lista de candidatos é inicializada com base em um limite de uma fileira de unidades de árvore de codificação (CTU).
5. Método, de acordo com a reivindicação 3, CARACTERIZADO por compreender ainda: quando o número de informações de movimento incluídas na segunda lista de candidatos for de um valor predeterminado, excluir informações de movimento incluídas na segunda lista de candidatos primeiramente dentre as informações de movimento incluídas na segunda lista de candidatos.
6. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que as informações de movimento previamente reconstruídas são adicionadas em uma próxima ordem de informações de movimento incluídas na segunda lista de candidatos por último.
7. Método, de acordo com a reivindicação 3, CARACTERIZADO por compreender ainda: quando informações de movimento iguais às informações de movimento previamente reconstruídas já estiverem incluídas na segunda lista de candidatos, excluir as informações de movimento iguais da segunda lista de candidatos.
8. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que as informações de movimento previamente reconstruídas são adicionadas em uma próxima ordem de informações de movimento incluídas na segunda lista de candidatos por último.
9. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que o número máximo de informações de movimento que podem ser incluídas na segunda lista de candidatos é predeterminado.
10. Método, de acordo com a reivindicação 1, CARACTERIZADO por compreender ainda: derivar informações de movimento médias calculando a média de uma pluralidade de informações de movimento incluídas na terceira lista de candidatos; e adicionar as informações de movimento médias à terceira lista de candidatos.
11. Método, de acordo com a reivindicação 1, CARACTERIZADO por compreender ainda: dividir o bloco atual em uma primeira região e uma segunda região, em que a geração do bloco de previsão para o bloco atual inclui gerar blocos de previsão para a primeira região e a segunda região usando a terceira lista de candidatos.
12. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a terceira lista de candidatos é usada para gerar um bloco de previsão de cópia intrabloco (IBC) para o bloco atual.
13. Método para codificar uma imagem, o método sendo CARACTERIZADO por compreender: determinar as informações de movimento de um bloco atual; derivar uma primeira lista de candidatos para o bloco atual usando informações de movimento de um bloco vizinho ao bloco atual; derivar uma segunda lista de candidatos para o bloco atual usando informações de movimento previamente codificadas; e derivar uma terceira lista de candidatos usando a primeira lista de candidatos e a segunda lista de candidatos.
14. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que derivar a segunda lista de candidatos inclui: adicionar as informações de movimento previamente codificadas à segunda lista de candidatos, em que as informações de movimento previamente codificadas são informações de movimento de um bloco de codificação codificado imediatamente antes da codificação do bloco atual.
15. Método, de acordo com a reivindicação 14, CARACTERIZADO por compreender ainda: inicializar a segunda lista de candidatos, em que a segunda lista de candidatos é inicializada com base em um limite de uma fileira de unidades de árvore de codificação (CTU).
16. Método, de acordo com a reivindicação 14, CARACTERIZADO por compreender ainda: quando o número de informações de movimento incluídas na segunda lista de candidatos for de um valor predeterminado, excluir informações de movimento incluídas na segunda lista de candidatos primeiramente dentre as informações de movimento incluídas na segunda lista de candidatos.
17. Método, de acordo com a reivindicação 14, CARACTERIZADO por compreender ainda: quando informações de movimento iguais às informações de movimento previamente codificadas já estiverem incluídas na segunda lista de candidatos, excluir as informações de movimento iguais da segunda lista de candidatos.
18. Método, de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que o número de informações de movimento que podem ser incluídas na segunda lista de candidatos é predeterminado.
19. Meio de gravação legível por computador CARACTERIZADO por armazenar um fluxo de bits que é recebido em um aparelho de decodificação de imagens e usado para reconstruir um bloco atual incluído em uma cena atual, em que o fluxo de bits inclui informações sobre a previsão do bloco atual; as informações sobre a previsão são usadas para derivar uma primeira lista de candidatos para o bloco atual usando informações de movimento de um bloco vizinho ao bloco atual; as informações sobre a previsão são usadas para derivar uma segunda lista de candidatos para o bloco atual usando informações de movimento previamente reconstruídas; e a primeira lista de candidatos e a segunda lista de candidatos são usadas para derivar uma terceira lista de candidatos usada para gerar um bloco de previsão para o bloco atual.
BR112021000750-4A 2018-07-16 2019-07-16 método e aparelho para codificar/decodificar imagens e mídia de gravação na qual um fluxo de bits é armazenado BR112021000750A2 (pt)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
KR20180082120 2018-07-16
KR20180082119 2018-07-16
KR10-2018-0082119 2018-07-16
KR10-2018-0082120 2018-07-16
KR20180091364 2018-08-06
KR10-2018-0091364 2018-08-06
KR10-2018-0112866 2018-09-20
KR20180112866 2018-09-20
KR10-2018-0114286 2018-09-21
KR20180114286 2018-09-21
PCT/KR2019/008785 WO2020017873A1 (ko) 2018-07-16 2019-07-16 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Publications (1)

Publication Number Publication Date
BR112021000750A2 true BR112021000750A2 (pt) 2021-05-11

Family

ID=69164121

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021000750-4A BR112021000750A2 (pt) 2018-07-16 2019-07-16 método e aparelho para codificar/decodificar imagens e mídia de gravação na qual um fluxo de bits é armazenado

Country Status (8)

Country Link
US (1) US20210274215A1 (pt)
KR (1) KR20200008531A (pt)
CN (1) CN112438048A (pt)
BR (1) BR112021000750A2 (pt)
CA (1) CA3106440A1 (pt)
MX (1) MX2021000650A (pt)
RU (1) RU2769959C1 (pt)
WO (1) WO2020017873A1 (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240007716A (ko) * 2018-09-13 2024-01-16 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 아핀 선형 가중 인트라 예측
CN114342408A (zh) * 2019-08-26 2022-04-12 北京字节跳动网络技术有限公司 视频编码中帧内编码模式的扩展
CN113329225A (zh) * 2020-02-28 2021-08-31 北京三星通信技术研究有限公司 视频编解码方法和装置
GB2593222A (en) * 2020-03-20 2021-09-22 Canon Kk High level syntax for video coding and decoding
CN116405699A (zh) * 2020-03-31 2023-07-07 北京达佳互联信息技术有限公司 用于在视频编解码中用信号通知语法元素的方法和装置
US20230179784A1 (en) * 2021-12-07 2023-06-08 Tencent America LLC Method and apparatus for improved intra mode coding
US20230336712A1 (en) * 2022-04-18 2023-10-19 Tencent America LLC Subblock merge mode for intra block copy

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090094595A (ko) * 2008-03-03 2009-09-08 삼성전자주식회사 복수 참조에 의한 움직임 예측을 이용한 부호화 방법 및장치, 그리고 복수 참조에 의한 움직임 예측을 이용한복호화 방법 및 장치
EP2259252B1 (en) * 2009-06-02 2012-08-01 Nuance Communications, Inc. Speech recognition method for selecting a combination of list elements via a speech input
US9749657B2 (en) * 2011-01-21 2017-08-29 Sharp Kabushiki Kaisha Buffer compression for motion vector competition
CN105915902B (zh) * 2011-03-08 2017-09-22 Jvc 建伍株式会社 动图像编码装置以及动图像编码方法
JP5807588B2 (ja) * 2011-03-08 2015-11-10 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに、送信装置、送信方法及び送信プログラム
US20130031162A1 (en) * 2011-07-29 2013-01-31 Myxer, Inc. Systems and methods for media selection based on social metadata
CN110198450B (zh) * 2011-11-08 2021-12-31 韩国电子通信研究院 用于共享候选者列表的方法和装置
KR20150090031A (ko) * 2012-11-27 2015-08-05 인텔렉추얼디스커버리 주식회사 깊이 정보를 이용한 부호화/복호화 방법 및 장치
US20150271515A1 (en) * 2014-01-10 2015-09-24 Qualcomm Incorporated Block vector coding for intra block copy in video coding
WO2015169200A1 (en) * 2014-05-06 2015-11-12 Mediatek Singapore Pte. Ltd. Method of block vector prediction for intra block copy mode coding
WO2017076221A1 (en) * 2015-11-05 2017-05-11 Mediatek Inc. Method and apparatus of inter prediction using average motion vector for video coding
WO2017086738A1 (ko) * 2015-11-19 2017-05-26 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
KR20180136967A (ko) * 2016-04-22 2018-12-26 엘지전자 주식회사 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2018008905A1 (ko) * 2016-07-05 2018-01-11 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN109804627B (zh) * 2016-08-11 2023-07-25 Lx 半导体科技有限公司 图像编码/解码方法和设备
US11172203B2 (en) * 2017-08-08 2021-11-09 Mediatek Inc. Intra merge prediction
US11153579B2 (en) * 2018-03-23 2021-10-19 Qualcomm Incorporated Deriving dynamic range adjustment (DRA) parameters for video coding
WO2019191714A1 (en) * 2018-03-30 2019-10-03 Hulu, LLC Template based adaptive weighted bi-prediction for video coding
US11477474B2 (en) * 2018-06-08 2022-10-18 Mediatek Inc. Methods and apparatus for multi-hypothesis mode reference and constraints
US10547835B2 (en) * 2018-06-22 2020-01-28 Tencent America LLC Techniques for signaling prediction weights in video coding
US10743016B2 (en) * 2018-07-06 2020-08-11 Mediatek Inc. Inherited motion information for decoding a current coding unit in a video coding system

Also Published As

Publication number Publication date
US20210274215A1 (en) 2021-09-02
WO2020017873A1 (ko) 2020-01-23
RU2769959C1 (ru) 2022-04-11
KR20200008531A (ko) 2020-01-28
CA3106440A1 (en) 2020-01-23
MX2021000650A (es) 2021-03-25
CN112438048A (zh) 2021-03-02

Similar Documents

Publication Publication Date Title
US11818340B2 (en) Image encoding/decoding method and device, and recording medium in which bitstream is stored
US20240056602A1 (en) Image encoding/decoding method and apparatus for throughput enhancement, and recording medium storing bitstream
US20230362369A1 (en) Image encoding/decoding method and apparatus, and recording medium storing bitstream
BR112021000750A2 (pt) método e aparelho para codificar/decodificar imagens e mídia de gravação na qual um fluxo de bits é armazenado
KR20180121402A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20190108506A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US11570428B2 (en) Intra prediction mode encoding/decoding method and device, and recording medium in which bitstream is stored
US11838514B2 (en) Image encoding/decoding method and device, and recording medium storing bitstream
US20230015638A1 (en) Image encoding/decoding method and apparatus, and recording medium in which bitstream is stored
US20210274197A1 (en) Method and device for image encoding/decoding, and recording medium having bitstream stored thereon
US20210297658A1 (en) Video encoding/decoding method and device, and recording medium for storing bitstream
US20220070475A1 (en) Image encoding/decoding method and apparatus, and recording media storing bitstream
CN112740671A (zh) 图像编码/解码方法和装置以及存储比特流的记录介质
KR20180061025A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN113273188A (zh) 图像编码/解码方法和装置以及存储有比特流的记录介质
CN113906740A (zh) 帧间预测信息编码/解码方法和装置
CN113261286A (zh) 用于推导帧内预测模式的方法和设备
CN113940077A (zh) 用于视频编码/解码的虚拟边界信令方法和设备
US20220124310A1 (en) Method and device for encoding/decoding video, and recording medium for storing bitstream
US20220232221A1 (en) Image encoding/decoding method and apparatus
CN113875237A (zh) 用于在帧内预测中用信号传送预测模式相关信号的方法和装置
US11800099B2 (en) Method and device for encoding/decoding image, and recording medium for storing bitstream
RU2795811C2 (ru) Способ и устройство кодирования/декодирования изображения и носитель записи, на котором хранится битовый поток
RU2775829C1 (ru) Способ и устройство кодирования/декодирования изображения и носитель записи, хранящий битовый поток
RU2806878C2 (ru) Способ и устройство кодирования/декодирования изображения и носитель записи, хранящий битовый поток