BR112021008625A2 - método de decodificação e codificação de vídeo e aparelho de decodificação e codificação de vídeo - Google Patents

método de decodificação e codificação de vídeo e aparelho de decodificação e codificação de vídeo Download PDF

Info

Publication number
BR112021008625A2
BR112021008625A2 BR112021008625-0A BR112021008625A BR112021008625A2 BR 112021008625 A2 BR112021008625 A2 BR 112021008625A2 BR 112021008625 A BR112021008625 A BR 112021008625A BR 112021008625 A2 BR112021008625 A2 BR 112021008625A2
Authority
BR
Brazil
Prior art keywords
merge candidate
region
merge
list
prediction
Prior art date
Application number
BR112021008625-0A
Other languages
English (en)
Inventor
Bae Keun Lee
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp., Ltd.
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 Guangdong Oppo Mobile Telecommunications Corp., Ltd. filed Critical Guangdong Oppo Mobile Telecommunications Corp., Ltd.
Publication of BR112021008625A2 publication Critical patent/BR112021008625A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

MÉTODO DE DECODIFICAÇÃO DE VÍDEO, MÉTODO DE CODIFICAÇÃO DE VÍDEO, APARELHO DE DECODIFICAÇÃO DE VÍDEO, E APARELHO DE CODIFICAÇÃO DE VÍDEO. Trata-se de um método de decodificação de imagem de acordo com a presente invenção que compreende as etapas de: derivar um candidato de mesclagem de um bloco atual a partir de um bloco vizinho do bloco atual; adicionar o candidato de mesclagem derivado a uma lista de candidato de mesclagem; quando o número de candidatos de mesclagem anteriormente adicionados à lista de candidato de mesclagem for menor que um valor limítrofe, adicionar pelo menos um candidato de mesclagem de área de previsão incluído em uma tabela de informações de movimento de área de previsão à lista de candidato de mesclagem; derivar informações de movimento sobre o bloco atual com base na lista de candidato de mesclagem; e realizar compensação de movimento no bloco atual com base nas informações de movimento derivadas.

Description

MÉTODO DE DECODIFICAÇÃO DE VÍDEO, MÉTODO DE CODIFICAÇÃO DE VÍDEO, APARELHO DE DECODIFICAÇÃO DE VÍDEO, E APARELHO DE CODIFICAÇÃO DE VÍDEO CAMPO DA TÉCNICA
[0001] A presente divulgação se refere a um método de codificação e decodificação de sinal de vídeo e um aparelho para o mesmo.
FUNDAMENTOS
[0002] Como os painéis de exibição estão ficando cada vez maiores, os serviços de vídeo de qualidade ainda mais alta são necessários cada vez mais. O maior problema dos serviços de vídeo de alta definição é o aumento significativo do volume de dados e, para resolver esse problema, estudos para melhorar a taxa de compressão de vídeo são realizados ativamente. Como um exemplo representativo, o Grupo de Especialistas em Cinema (MPEG) e o Grupo de Especialistas em Codificação de Vídeo (VCEG) sob a União Internacional de Telecomunicações-Telecomunicações (ITU-T) formou a Equipe de colaboração conjunta em codificação de vídeo (JCT-VC) em 2009. A JCT-VC propôs a codificação de vídeo de alta eficiência (HEVC), que é um padrão de compressão de vídeo com um desempenho de compressão cerca de duas vezes maior do que o desempenho de compressão de H.264/AVC, e é aprovado como padrão em 25 de janeiro de 2013. Com o rápido avanço nos serviços de vídeo de alta definição, o desempenho da HEVC gradualmente revela suas limitações.
SUMÁRIO
[0003] Um objeto da presente divulgação é fornecer um método de derivar um candidato de mesclagem usando uma lista de informações de movimento de região de previsão e um aparelho para realizar o método, na codificação/decodificação de um sinal de vídeo.
[0004] Um outro objeto da presente divulgação é fornecer um método de verificação de redundância para verificar a redundância entre um candidato de mesclagem da região de previsão incluído em uma lista de informações de movimento de região de previsão e um candidato de mesclagem incluído em uma lista de candidato de mesclagem, na codificação/decodificação de um sinal de vídeo.
[0005] Um outro objeto da presente divulgação é fornecer um método de derivar candidatos de mesclagem de blocos incluído em uma área de processamento de mesclagem e um aparelho para realizar o método, na codificação/decodificação de um sinal de vídeo.
[0006] Os problemas técnicos a serem alcançados na presente divulgação não estão limitados aos problemas técnicos mencionados acima, e outros problemas não mencionados podem ser claramente compreendidos por aquelas pessoas versadas na técnica a partir da seguinte descrição.
[0007] Um método de decodificação e codificação de um sinal de vídeo de acordo com a presente divulgação inclui as etapas de: derivar um candidato de mesclagem para um bloco atual a partir de um bloco vizinho do bloco atual; adicionar o candidato de mesclagem derivado a uma lista de candidato de mesclagem; adicionar pelo menos um candidato de mesclagem da região de previsão incluído em uma lista de informações de movimento de região de previsão à lista de candidato de mesclagem quando o número de candidatos de mesclagem adicionados à lista de candidato de mesclagem é menor que um valor limítrofe; derivar informações de movimento para o bloco atual com base na lista de candidato de mesclagem; e realizar compensação de movimento para o bloco atual com base nas informações de movimento derivadas. Neste ponto, se adicionar ou não o candidato de mesclagem da região de previsão à lista de candidato de mesclagem pode ser determinado com base em um resultado de comparação entre informações de movimento do candidato de mesclagem da região de previsão e informações de movimento de um candidato de mesclagem incluído na lista de candidato de mesclagem.
[0008] No método de decodificação e codificação de um sinal de vídeo de acordo com a presente divulgação, a comparação pode ser realizada em pelo menos um candidato de mesclagem na lista de candidato de mesclagem, da qual um índice é menor ou igual a um valor limítrofe.
[0009] No método de decodificação e codificação de um sinal de vídeo de acordo com a presente divulgação, a comparação pode ser realizada em pelo menos um dentre um candidato de mesclagem derivado a partir de um bloco vizinho posicionado no lado esquerdo em um lado esquerdo do bloco atual e um candidato de mesclagem derivado a partir de um bloco vizinho posicionado na parte superior em um bloco vizinho superior.
[0010] No método de decodificação e codificação de um sinal de vídeo de acordo com a presente divulgação, quando for determinado que há um candidato de mesclagem tendo informações de movimento iguais às de um primeiro candidato de mesclagem da região de previsão na lista de candidato de mesclagem, o primeiro candidato de mesclagem da região de previsão não é adicionado à lista de candidato de mesclagem, e se adicionar ou não a um segundo candidato de mesclagem da região de previsão à lista de candidato de mesclagem pode ser determinado com base em um resultado de comparação entre informações de movimento do segundo candidato de mesclagem da região de previsão incluído na lista de informações de movimento de região de previsão e informações de movimento do candidato de mesclagem incluído na lista de candidato de mesclagem.
[0011] No método de decodificação e codificação de um sinal de vídeo de acordo com a presente divulgação, a determinação sobre o segundo candidato de mesclagem da região de previsão tem informações de movimento iguais às de um candidato de mesclagem tendo informações de movimento iguais às do primeiro candidato de mesclagem da região de previsão pode ser omitida.
[0012] No método de decodificação e codificação de um sinal de vídeo de acordo com a presente divulgação, uma diferença entre o número de candidatos de mesclagem da região de previsão incluído na lista de candidato de mesclagem da região de previsão e um índice do candidato de mesclagem da região de previsão pode ser menor ou igual a um valor limítrofe.
[0013] O método de decodificação e codificação de um sinal de vídeo de acordo com a presente divulgação pode ainda incluir a etapa de adicionar um candidato de mesclagem inter-região atual derivado com base nas informações de movimento do bloco atual à lista de informações de movimento inter-região. Neste ponto, quando há um candidato de mesclagem da região de previsão igual ao candidato de mesclagem da região de previsão atual, o candidato de mesclagem da região de previsão igual ao candidato de mesclagem da região de previsão atual pode ser excluído, e um índice maior pode ser atribuído ao candidato de mesclagem da região de previsão atual.
[0014] Os recursos brevemente resumidos acima com relação à presente divulgação são aspectos meramente exemplificativos da descrição detalhada da presente divulgação que serão descritos abaixo e não limitam o escopo da presente divulgação.
[0015] De acordo com a presente divulgação, a eficiência interprevisão pode ser melhorada fornecendo um método de derivar um candidato de mesclagem usando uma lista de informações de movimento de região de previsão.
[0016] De acordo com a presente divulgação, a eficiência interprevisão pode ser melhorada simplificando a verificação de redundância entre um candidato de mesclagem da região de previsão e um candidato de mesclagem.
[0017] De acordo com a presente divulgação, a eficiência interprevisão pode ser melhorada fornecendo um método de derivar candidatos de mesclagem de blocos incluídos em uma área de processamento de mesclagem.
[0018] Os efeitos que podem ser obtidos a partir da presente divulgação não estão limitados aos efeitos mencionados acima, e outros efeitos não mencionados podem ser claramente compreendidos por aquelas pessoas versadas na técnica a partir da seguinte descrição.
BREVE DESCRIÇÃO DOS DESENHOS
[0019] A Figura 1 é um diagrama de bloco que mostra um codificador de vídeo de acordo com uma modalidade da presente divulgação.
[0020] A Figura 2 é um diagrama de bloco que mostra um decodificador de vídeo de acordo com uma modalidade da presente divulgação.
[0021] A Figura 3 é uma vista que mostra uma unidade de árvore de codificação básica de acordo com uma modalidade da presente divulgação.
[0022] A Figura 4 é uma vista que mostra vários tipos de particionamento de um bloco de codificação.
[0023] A Figura 5 é uma vista que mostra um padrão de particionamento de uma unidade de árvore de codificação.
[0024] A Figura 6 é um fluxograma que mostra um método de interprevisão de acordo com uma modalidade da presente divulgação.
[0025] A Figura 7 é uma vista que mostra um movimento não linear de um objeto.
[0026] A Figura 8 é um fluxograma que mostra um método de interprevisão com base em um movimento afim de acordo com uma modalidade da presente divulgação.
[0027] A Figura 9 é uma vista que mostra um exemplo de vetores de semente afim de cada modelo de movimento afim.
[0028] A Figura 10 é uma vista que mostra um exemplo de sub-blocos de vetores afins em um modelo de movimento de 4 parâmetros.
[0029] A Figura 11 é um fluxograma que mostra um processo de derivar informações de movimento de um bloco atual usando um modo de mesclagem.
[0030] A Figura 12 é uma vista que mostra um exemplo de blocos candidatos usados para derivar um candidato de mesclagem.
[0031] A Figura 13 é uma vista que mostra posições de amostras de referência.
[0032] A Figura 14 é uma vista que mostra um exemplo de blocos candidatos usados para derivar um candidato de mesclagem.
[0033] A Figura 15 é uma vista que mostra um exemplo em que a posição de uma amostra de referência é alterada.
[0034] A Figura 16 é uma vista que mostra um exemplo em que a posição de uma amostra de referência é alterada.
[0035] A Figura 17 é um fluxograma que mostra um processo de atualização de uma lista de informações de movimento de região de previsão.
[0036] A Figura 18 é uma vista que mostra uma modalidade de atualização de uma lista de candidato de mesclagem da região de previsão.
[0037] A Figura 19 é uma vista que mostra um exemplo em que um índice de um candidato de mesclagem da região de previsão armazenado anteriormente é atualizado.
[0038] A Figura 20 é uma vista que mostra a posição de um sub-bloco representativo.
[0039] A Figura 21 é uma vista que mostra um exemplo em que uma lista de informações de movimento de região de previsão é gerada para cada modo de interprevisão.
[0040] A Figura 22 é uma vista que mostra um exemplo em que um candidato de mesclagem da região de previsão incluído em uma lista de informações de movimento a longo prazo é adicionado a uma lista de candidato de mesclagem.
[0041] A Figura 23 é uma vista que mostra um exemplo em que uma verificação de redundância é realizada apenas em alguns dos candidatos de mesclagem.
[0042] A Figura 24 é uma vista que mostra um exemplo em que uma verificação de redundância é omitida para um candidato de mesclagem específico.
[0043] A Figura 25 é uma vista que mostra um exemplo em que blocos candidatos incluídos na mesma área de processamento de mesclagem que o bloco atual estão configurados para não estarem disponíveis como um candidato de mesclagem.
[0044] A Figura 26 é uma vista que mostra uma lista de informações de movimento temporária.
[0045] A Figura 27 é uma vista que mostra um exemplo de mesclagem de uma lista de informações de movimento de região de previsão e uma lista de informações de movimento temporária.
[0046] As Figuras 28 e 29 são vistas que mostram um exemplo em que um candidato a mesclagem da região de codificação inclui informações de endereço de um bloco.
[0047] As Figuras 30 e 31 são vistas que mostram um exemplo em que um candidato a mesclagem da região de codificação tendo informações de endereço iguais às do bloco atual é definido como indisponível como um candidato de mesclagem do bloco atual.
DESCRIÇÃO DETALHADA
[0048] A seguir, uma modalidade da presente divulgação será descrita em detalhes com referência aos desenhos anexos.
[0049] A codificação e a decodificação de um vídeo são realizadas pela unidade de bloco. Por exemplo, um processo de codificação/decodificação, como transformada, quantização, previsão, filtragem em loop, reconstrução ou semelhantes, pode ser realizado em um bloco de codificação, um bloco de transformada ou um bloco de previsão.
[0050] Em seguida, um bloco a ser codificado/decodificado será denominado como um “bloco atual”. Por exemplo, o bloco atual pode representar um bloco de codificação, um bloco de transformada ou um bloco de previsão de acordo com uma etapa do processo de codificação/decodificação atual.
[0051] Além disso, pode ser entendido que o termo “unidade” usado neste relatório descritivo indica uma unidade básica para realizar um processo de codificação/decodificação específico, e o termo “bloco” indica uma matriz de amostra de um tamanho predeterminado. Salvo indicação em contrário, o “bloco” e “unidade” podem ser usados para ter o mesmo significado. Por exemplo, em uma modalidade descrita abaixo, pode ser entendido que um bloco de codificação e uma unidade de codificação têm o mesmo significado.
[0052] A Figura 1 é um diagrama de bloco que mostra um codificador de vídeo de acordo com uma modalidade da presente divulgação.
[0053] Com referência à Figura 1, um aparelho de codificação de vídeo 100 pode incluir uma parte de particionamento de imagem 110, uma parte de previsão 120 e 125, uma parte de transformada 130, uma parte de quantização 135, uma parte de rearranjo 160, uma parte de codificação por entropia 165, uma parte de quantização inversa 140, e parte de transformada inversa 145, uma parte de filtro 150 e uma memória
155.
[0054] Cada um dos componentes mostrados na Figura 1 é mostrado independentemente para representar funções características diferentes umas das outras em um aparelho de codificação de vídeo, e isso não significa que cada componente é formado pela unidade de configuração de hardware separado ou software único. Ou seja, cada componente é incluído para ser listado como um componente por conveniência de explicação e pelo menos dois dos componentes podem ser combinados para formar um único componente, ou um componente pode ser dividido em uma pluralidade de componentes para executar uma função. Modalidades integradas e modalidades separadas dos componentes também estão incluídas no escopo da presente divulgação se não se afastarem da essência da presente divulgação.
[0055] Além disso, alguns dos componentes não são componentes essenciais que desempenham funções essenciais na presente divulgação, mas podem ser componentes opcionais apenas para melhorar o desempenho. A presente divulgação pode ser implementada incluindo apenas componentes essenciais para implementar a essência da presente divulgação, excluindo componentes usados para melhorar o desempenho, e uma estrutura incluindo apenas os componentes essenciais, excluindo os componentes opcionais usados para melhorar o desempenho também está incluída no escopo do presente divulgação.
[0056] A parte de particionamento de imagem 110 pode particionar uma imagem de entrada em pelo menos uma unidade de processamento. Neste ponto, a unidade de processamento pode ser uma unidade de previsão (PU), uma unidade de transformada (TU) ou uma unidade de codificação (CU). A parte de particionamento de imagem 110 pode particionar uma imagem em uma combinação de uma pluralidade de unidades de codificação, unidades de previsão e unidades de transformada e codificar uma imagem selecionada uma combinação de uma unidade de codificação, uma unidade de previsão e uma unidade de transformada com base em um critério predeterminado (por exemplo, uma função de custo).
[0057] Por exemplo, uma imagem pode ser particionada em uma pluralidade de unidades de codificação. De modo a particionar as unidades de codificação em uma imagem, uma estrutura de árvore recursiva, como uma estrutura de árvore quádrupla, pode ser usada. Uma unidade de codificação particionada em diferentes unidades de codificação usando um vídeo ou a maior unidade de codificação como uma raiz pode ser particionada para ter tantos nós filhos quanto o número de unidades de codificação particionadas. Uma unidade de codificação que não é mais particionada de acordo com uma restrição predeterminada torna-se um nó folha. Isto é, quando se assume que apenas o particionamento quadrado é possível para uma unidade de codificação, a unidade de codificação pode ser particionada em até quatro unidades de codificação diferentes.
[0058] Em seguida, em uma modalidade da presente divulgação, a unidade de codificação pode ser usada como um significado de uma unidade realizando a codificação ou um significado de uma unidade realizando a decodificação.
[0059] A unidade de previsão pode ser aquela que é particionada em uma forma de pelo menos um quadrado, retângulo ou semelhante do mesmo tamanho dentro de uma unidade de codificação, ou pode ser qualquer unidade de previsão, entre as unidades de previsão particionadas dentro de uma unidade de codificação, que é particionada para ter uma forma e/ou tamanho diferente daqueles de outra unidade de previsão.
[0060] Se a unidade de codificação não for uma unidade de codificação menor quando uma unidade de previsão que realiza intraprevisão com base na unidade de codificação é gerada, intraprevisão pode ser realizada sem particionar uma imagem em uma pluralidade de unidades de previsão N x N.
[0061] A parte de previsão 120 e 125 pode incluir uma parte de interprevisão 120 que executa a interprevisão e uma parte de intraprevisão 125 que realiza a intraprevisão. Pode ser determinado se usar interprevisão ou realizar intraprevisão para uma unidade de previsão e determinar informações específicas (por exemplo, modo de intraprevisão, vetor de movimento, imagem de referência, etc.) de acordo com cada método de previsão. Neste ponto, uma unidade de processamento para realizar previsão pode ser diferente de uma unidade de processamento para determinar um método de previsão e conteúdo específico. Por exemplo, um método de previsão e um modo de previsão podem ser determinados em uma unidade de previsão e a previsão pode ser realizada em uma unidade de transformada. Um coeficiente residual (bloco residual) entre o bloco de previsão gerado e o bloco original pode ser inserido na parte de transformada 130. Além disso, a informação do modo de previsão, informação do vetor de movimento e semelhantes usados para previsão podem ser codificados pela parte de codificação por entropia 165 junto com o coeficiente residual e transferido para um decodificador. Quando um modo de codificação específico é usado, um bloco original pode ser codificado como está e transmitido para um decodificador sem gerar um bloco de previsão através da parte de previsão 120 e
125.
[0062] A parte de interprevisão 120 pode prever uma unidade de previsão com base na informação de pelo menos uma imagem entre as imagens antes ou depois da imagem atual e, em alguns casos, pode prever uma unidade de previsão com base na informação de uma área parcial que tem foi codificado na imagem atual. A parte de interprevisão 120 pode incluir uma parte de interpolação de imagem de referência, uma parte de previsão de movimento e uma parte de compensação de movimento.
[0063] A parte de interpolação de imagem de referência pode receber informações de imagem de referência da memória 155 e gerar informações de amostra de um número inteiro de amostras ou menos a partir da imagem de referência. No caso de uma amostra de luminância, um filtro de interpolação de 8 derivações baseado em DCT com um coeficiente de filtro variável pode ser usado para gerar informações de amostra de um número inteiro de amostras ou menos pela unidade de 1/4 amostras. No caso de um sinal de diferença de cor, um filtro de interpolação de 4 coeficientes baseado em DCT com um coeficiente de filtro variável pode ser usado para gerar informações de amostra de um número inteiro de amostras ou menos pela unidade de 1/8 amostras.
[0064] A parte de previsão de movimento pode realizar a previsão de movimento com base na imagem de referência interpolada pela parte de interpolação da imagem de referência. Vários métodos, como um algoritmo de correspondência de bloco baseado em pesquisa completa (FBMA), uma pesquisa em três etapas (TSS) e um novo algoritmo de pesquisa em três etapas (NTS), podem ser usados como um método de cálculo de um vetor de movimento. O vetor de movimento pode ter um valor de vetor de movimento de uma unidade de 1/2 ou 1/4 amostras com base em amostras interpoladas. A parte de previsão de movimento pode prever uma unidade de previsão atual variando o método de previsão de movimento. Vários métodos, como um método de salto, um método de mesclagem, um método de previsão de vetor de movimento avançado (AMVP), um método de cópia intrabloco e semelhantes, podem ser usados como o método de previsão de movimento.
[0065] A parte intraprevisão 125 pode gerar uma unidade de previsão com base nas informações sobre as amostras de referência em torno do bloco atual, que é a informação da amostra na imagem atual. Quando um bloco na vizinhança da unidade de previsão atual é um bloco no qual a interprevisão foi realizada e, portanto, a amostra de referência é uma amostra na qual a interprevisão foi realizada, a amostra de referência incluída no bloco no qual a interprevisão foi realizada pode ser usada no lugar da informação de amostra de referência de um bloco na vizinhança em que a intraprevisão foi realizada. Ou seja, quando uma amostra de referência não está disponível, pelo menos uma amostra de referência entre as amostras de referência disponíveis pode ser usada no lugar das informações da amostra de referência indisponíveis.
[0066] Na intraprevisão, o modo de previsão pode ter um modo de previsão angular que usa informações de amostra de referência de acordo com uma direção de previsão e um modo de previsão não angular que não usa informações direcionais ao realizar a previsão. Um modo para prever informações de luminância pode ser diferente de um modo para prever informações de diferença de cor e informações de modo de intraprevisão usadas para prever informações de luminância ou informações de sinal de luminância previstas podem ser usadas para prever as informações de diferença de cores.
[0067] Se o tamanho da unidade de previsão for o mesmo que o tamanho da unidade de transformada quando a intraprevisão é realizada, a intraprevisão pode ser realizada para a unidade de previsão com base em uma amostra no lado esquerdo, uma amostra na parte superior do lado esquerdo e uma amostra na parte superior da unidade de previsão. No entanto, se o tamanho da unidade de previsão for diferente do tamanho da unidade de transformada quando a intraprevisão é realizada, a intraprevisão pode ser realizada usando uma amostra de referência com base na unidade de transformada. Além disso, a intraprevisão usando particionamento N x N pode ser usada apenas para a menor unidade de codificação.
[0068] O método de intraprevisão pode gerar um bloco de previsão após a aplicação de um filtro de Suavização intra-adaptativa (AIS) para a amostra de referência de acordo com um modo de previsão. O tipo de filtro de AIS aplicado à amostra de referência pode variar. De modo a realizar o método de intraprevisão, o modo de intraprevisão da unidade de previsão atual pode ser previsto a partir do modo de intraprevisão da unidade de previsão existente na vizinhança da unidade de previsão atual. Quando um modo de previsão da unidade de previsão atual é previsto usando a informação de modo de previsão da unidade de previsão vizinha, se os modos de intraprevisão da unidade de previsão atual são os mesmos que a unidade de previsão na vizinhança, informação indicando que os modos de previsão de a unidade de previsão atual é a mesma que a unidade de previsão na vizinhança pode ser transmitida usando informações de sinalizador predeterminadas, e se os modos de previsão da unidade de previsão atual e a unidade de previsão na vizinhança forem diferentes um do outro, as informações de modo de previsão do bloco atual pode ser codificado executando a codificação por entropia.
[0069] Além disso, um bloco residual incluindo uma unidade de previsão que realizou previsão com base na unidade de previsão gerada pela parte de previsão 120 e 125 e informação de coeficiente residual, que é um valor de diferença da unidade de previsão com o bloco original, pode ser gerado. O bloco residual gerado pode ser inserido na parte de transformada 130.
[0070] A parte de transformada 130 pode transformar o bloco residual incluindo o bloco original e a informação do coeficiente residual da unidade de previsão gerada através da parte de previsão 120 e 125 usando um método de transformada, tal como Transformada de Cosseno Discreta (DCT) ou Transformada Seno Discreta (DST). Aqui, o núcleo de transformada de DCT inclui pelo menos um dentre DCT2 e DCT8, e o núcleo de transformada de DST inclui DST7. A aplicação de DCT ou DST para transformar o bloco residual pode ser determinada com base nas informações do modo de intraprevisão de uma unidade de previsão usada para gerar o bloco residual. A transformada no bloco residual pode ser saltada. Um sinalizador indicando se deve saltar a transformada no bloco residual pode ser codificado. O salto de transformada pode ser permitido para um bloco residual com um tamanho menor ou igual a um limiar, um componente luma ou um componente croma sob o formato 4:4:4.
[0071] A parte de quantização 135 pode quantizar valores transformados no domínio de frequência pela parte de transformada 130. Os coeficientes de quantização podem variar de acordo com o bloco ou a importância de um vídeo. Um valor calculado pela parte de quantização 135 pode ser fornecido para a parte de quantização inversa 140 e a parte de rearranjo
160.
[0072] A parte de rearranjo 160 pode reorganizar os valores dos coeficientes para os coeficientes residuais quantizados.
[0073] A parte de rearranjo 160 pode alterar os coeficientes de uma forma de bloco bidimensional em uma forma de vetor unidimensional por meio de um método de varredura de coeficiente. Por exemplo, a parte de rearranjo 160 pode varrer coeficientes de DC até coeficientes de domínio de alta frequência usando um método de varredura em zigue-zague e alterar os coeficientes em uma forma de vetor unidimensional. De acordo com o tamanho da unidade de transformada e o modo de intraprevisão, uma varredura vertical de varredura dos coeficientes de uma forma de bloco bidimensional na direção da coluna e uma varredura horizontal de varredura dos coeficientes de uma forma de bloco bidimensional na linha direção pode ser usada em vez da varredura em zigue-zague. Ou seja, de acordo com o tamanho da unidade de transformada e o modo de intraprevisão, um método de varredura que será usado pode ser determinado entre a varredura em zigue-zague, a varredura na direção vertical e a varredura na direção horizontal.
[0074] A parte de codificação por entropia 165 pode realizar a codificação por entropia com base nos valores calculados pela parte de rearranjo 160. A codificação por entropia pode usar vários métodos de codificação, tais como Golomb Exponencial, Codificação de Comprimento Variável Adaptável ao Contexto (CAVLC), Codificação Aritmética Binária Adaptável ao Contexto (CABAC) e semelhantes.
[0075] A parte de codificação por entropia 165 pode codificar várias informações, como informações de coeficiente residual e informações de tipo de bloco de uma unidade de codificação, informações de modo de previsão, informações de unidade de particionamento, informações de unidade de previsão e informações de unidade de transmissão, informações de vetor de movimento, informações de quadro de referência informações de interpolação de bloco e entrada de informação de filtragem da parte de rearranjo 160 e das partes de previsão 120 e 125.
[0076] A parte de codificação por entropia 165 pode codificar por entropia o valor do coeficiente de uma entrada de unidade de codificação da parte de rearranjo 160.
[0077] A parte de quantização inversa 140 e a parte de transformada inversa 145 quantizam inversamente os valores quantizados pela parte de quantização 135 e transformam inversamente os valores transformados pela parte de transformada 130. O coeficiente residual gerado pela parte de quantização inversa 140 e a parte de transformada inversa 145 pode ser combinada com a unidade de previsão prevista através de uma parte de estimativa de movimento, uma parte de compensação de movimento e uma parte de intraprevisão incluída na parte de previsão 120 e 125 para gerar um bloco reconstruído.
[0078] A parte do filtro 150 pode incluir pelo menos um dentre um filtro de desbloqueio, uma unidade de correção de deslocamento e um Filtro de Loop Adaptável (ALF).
[0079] O filtro de desbloqueio pode remover a distorção de bloco gerada pela fronteira entre os blocos na imagem reconstruída. De modo a determinar se o desbloqueio deve ser realizado, a aplicação do filtro de desbloqueio ao bloco atual pode ser determinada com base nas amostras incluídas em várias colunas ou linhas incluídas no bloco. Um filtro forte ou um filtro fraco pode ser aplicado de acordo com a força de filtragem de desbloqueio necessária quando o filtro de desbloqueio é aplicado a um bloco. Além disso, quando a filtragem de direção vertical e a filtragem de direção horizontal são realizadas na aplicação do filtro de desbloqueio, a filtragem de direção horizontal e a filtragem de direção vertical podem ser processadas em paralelo.
[0080] A unidade de correção de deslocamento pode corrigir um deslocamento para o vídeo original pela unidade de amostra para um vídeo no qual o desbloqueio foi realizado. Para realizar a correção de deslocamento para uma imagem específica, é possível usar um método de divisão de amostras incluídas no vídeo em um certo número de áreas, determinando uma área para realizar o deslocamento e aplicando o deslocamento à área, ou um método de aplicar um deslocamento em consideração às informações de borda de cada amostra.
[0081] Filtro de Loop Adaptável (ALF) pode ser realizada com base em um valor obtido comparando o vídeo reconstruído e filtrado e o vídeo original. Depois de dividir as amostras incluídas no vídeo em grupos predeterminados, um filtro a ser aplicado a um grupo correspondente pode ser determinado e a filtragem pode ser realizada de forma diferente para cada grupo. Um sinal de luminância, que é a informação relacionada à aplicação de ALF, pode ser transmitido para cada unidade de codificação (CU), e a forma e o coeficiente de filtro de um filtro de ALF a ser aplicado podem variar de acordo com cada bloco. Além disso, um filtro de ALF do mesmo tipo (tipo fixo) pode ser aplicado independentemente da característica do bloco a ser aplicado.
[0082] A memória 155 pode armazenar o bloco reconstruído ou imagem calculada através da parte do filtro
150, e o bloco reconstruído e armazenado ou imagem pode ser fornecido para a parte de previsão 120 e 125 quando a interprevisão é realizada.
[0083] A Figura 2 é um diagrama de bloco que mostra um decodificador de vídeo de acordo com uma modalidade da presente divulgação.
[0084] Com referência à Figura 2, um decodificador de vídeo 200 pode incluir uma parte de decodificação por entropia 210, uma parte de rearranjo 215, uma parte de quantização inversa 220, uma parte de transformada inversa 225, uma parte de previsão 230 e 235, uma parte de filtro 240 e uma memória 245.
[0085] Quando um fluxo de bits de vídeo é recebido de um codificador de vídeo, o fluxo de bits de entrada pode ser decodificado em um procedimento oposto ao do codificador de vídeo.
[0086] A parte de decodificação por entropia 210 pode realizar a decodificação por entropia em um procedimento oposto ao de realizar a codificação de entropia na parte de decodificação por entropia do codificador de vídeo. Por exemplo, vários métodos correspondentes ao método realizado pelo codificador de vídeo, tais como Golomb Exponencial, Codificação de Comprimento Variável Adaptável ao Contexto (CAVLC) e Codificação Aritmética Binária Adaptável ao Contexto (CABAC), podem ser aplicados.
[0087] A parte de decodificação por entropia 210 pode decodificar informações relacionadas à intraprevisão e interprevisão realizada pelo codificador.
[0088] A parte de rearranjo 215 pode realizar o rearranjo na entropia de fluxo de bits decodificada pela parte de decodificação por entropia 210 com base no método de rearranjo realizado pelo codificador. Os coeficientes expressos em uma forma de vetor unidimensional podem ser reconstruídos e reorganizados como coeficientes de forma de bloco bidimensional. A parte de rearranjo 215 pode receber informações relacionadas à varredura de coeficiente realizada pela parte de codificação e realizar a reconstrução por meio de um método de varredura inversa com base na ordem de varredura realizada pela parte de codificação correspondente.
[0089] A parte de quantização inversa 220 pode realizar quantização inversa com base em um parâmetro de quantização fornecido pelo codificador e um valor de coeficiente do bloco reorganizado.
[0090] A parte de transformada inversa 225 pode realizar a transformada inversa na transformada, isto é, DCT ou DST, realizada pela parte de transformada em um resultado da quantização realizada pelo codificador de vídeo, isto é, DCT inverso ou DST inverso. Aqui, o núcleo de transformada DCT pode incluir pelo menos um dentre DCT2 e DCT8, e o núcleo de transformada de DST pode incluir DST7. Alternativamente, quando a transformada é saltada no codificador de vídeo, mesmo a parte de transformada inversa 225 pode não realizar a transformada inversa. A transformada inversa pode ser realizada com base em uma unidade de transmissão determinada pelo codificador de vídeo. A parte de transformada inversa 225 do decodificador de vídeo pode executar seletivamente uma técnica de transformada (por exemplo, DCT ou DST) de acordo com uma pluralidade de partes de informações, como um método de previsão, um tamanho de um bloco atual, uma direção de previsão e semelhantes.
[0091] A parte de previsão 230 e 235 pode gerar um bloco de previsão com base nas informações relacionadas à geração de um bloco de previsão fornecido pelo decodificador por entropia 210 e informações sobre um bloco ou imagem anteriormente decodificado fornecida pela memória 245.
[0092] Como descrito acima, se o tamanho da unidade de previsão e o tamanho da unidade de transformada forem os mesmos quando a intraprevisão é realizada da mesma maneira que a operação do codificador de vídeo, a intraprevisão é realizada na unidade de previsão com base na amostra existente no lado esquerdo, a amostra no lado superior esquerdo e a amostra na parte superior da unidade de previsão. No entanto, se o tamanho da unidade de previsão e o tamanho da unidade de transformada forem diferentes quando a intraprevisão é realizada, a intraprevisão pode ser realizada usando uma amostra de referência com base em uma unidade de transformada. Além disso, a intraprevisão usando particionamento N x N pode ser usada apenas para a menor unidade de codificação.
[0093] A parte de previsão 230 e 235 pode incluir uma parte de determinação da unidade de previsão, uma parte de interprevisão e uma parte de intraprevisão. A parte de determinação da unidade de previsão pode receber várias informações, como entrada de informações da unidade de previsão da parte de decodificação por entropia 210, informações de modo de previsão do método de intraprevisão, informações relacionadas à previsão de movimento de um método de interprevisão e semelhantes, identificar a unidade de previsão a partir da unidade de codificação atual e determinar se a unidade de previsão realiza interprevisão ou intraprevisão. A parte de interprevisão 230 pode realizar a interprevisão na unidade de previsão atual com base na informação incluída em pelo menos uma imagem entre as imagens antes ou depois da imagem atual, incluindo a unidade de previsão atual, usando as informações necessárias para a interprevisão da unidade de previsão atual fornecida pelo codificador de vídeo. Alternativamente, a parte de interprevisão 230 pode realizar interprevisão com base na informação em uma área parcial anteriormente reconstruída na imagem atual incluindo a unidade de previsão atual.
[0094] De modo a realizar a interprevisão, pode ser determinado, com base na unidade de codificação, se o método de previsão de movimento da unidade de previsão incluída em uma unidade de codificação correspondente é um modo de salto, um modo de mesclagem, um modo de previsão de vetor de movimento (Modo AMVP) ou um modo de cópia intrabloco.
[0095] A parte intraprevisão 235 pode gerar um bloco de previsão com base nas informações sobre a amostra na imagem atual. Quando a unidade de previsão é uma unidade de previsão que executou intraprevisão, a intraprevisão pode ser realizada com base nas informações do modo de intraprevisão da unidade de previsão fornecidas pelo codificador de vídeo. A parte de intraprevisão 235 pode incluir um filtro de Suavização intra-adaptativa (AIS), uma parte de interpolação de amostra de referência e um filtro de DC. O filtro de AIS é uma parte que realiza a filtragem na amostra de referência do bloco atual e pode determinar se deve aplicar o filtro de acordo com o modo de previsão da unidade de previsão atual e aplicar o filtro. A filtragem de AIS pode ser realizada na amostra de referência do bloco atual usando o modo de previsão e informações de filtro de AIS da unidade de previsão fornecida pelo codificador de vídeo. Quando o modo de previsão do bloco atual é um modo que não executa a filtragem de AIS, o filtro de AIS pode não ser aplicado.
[0096] Quando o modo de previsão da unidade de previsão é uma unidade de previsão que realiza intraprevisão com base em um valor de amostra obtido por interpolação da amostra de referência, a parte de interpolação de amostra de referência pode gerar uma amostra de referência de uma unidade de amostra com um valor inteiro ou menos interpolando a amostra de referência. Quando o modo de previsão da unidade de previsão atual é um modo de previsão que gera um bloco de previsão sem interpolar a amostra de referência, a amostra de referência não pode ser interpolada. O filtro de DC pode gerar um bloco de previsão por meio da filtragem quando o modo de previsão do bloco atual é o modo de DC.
[0097] O bloco reconstruído ou imagem pode ser fornecido à parte do filtro 240. A parte do filtro 240 pode incluir um filtro de desbloqueio, uma unidade de correção de deslocamento e um ALF.
[0098] Informações sobre se um filtro de desbloqueio é aplicado a um bloco ou imagem correspondente e informações sobre se um filtro forte ou um filtro fraco é aplicado quando um filtro de desbloqueio é aplicado podem ser fornecidas pelo codificador de vídeo. O filtro de desbloqueio do decodificador de vídeo pode ser fornecido com informações relacionadas ao filtro de desbloqueio fornecido pelo codificador de vídeo e o decodificador de vídeo pode realizar a filtragem de desbloqueio em um bloco correspondente.
[0099] A unidade de correção de deslocamento pode executar correção de deslocamento no vídeo reconstruído com base no tipo de correção de deslocamento e nas informações de valor de deslocamento aplicadas ao vídeo quando a codificação é realizada.
[0100] O ALF pode ser aplicado a uma unidade de codificação com base nas informações sobre a aplicação do ALF e informações sobre os coeficientes de ALF fornecidas pelo codificador. As informações de ALF podem ser fornecidas para serem incluídas em um conjunto de parâmetros específico.
[0101] A memória 245 pode armazenar a imagem reconstruída ou bloco e usá-lo como uma imagem de referência ou um bloco de referência e pode fornecer a imagem reconstruída para uma unidade de saída.
[0102] A Figura 3 é uma vista que mostra uma unidade de árvore de codificação básica de acordo com uma modalidade da presente divulgação.
[0103] Um bloco de codificação de um tamanho máximo pode ser definido como um bloco de árvore de codificação. Uma imagem é particionada em uma pluralidade de unidades de árvore de codificação (CTUs). A unidade de árvore de codificação é uma unidade de codificação com um tamanho máximo e pode ser denominada como uma Unidade de Codificação Grande (LCU). A Figura 3 mostra um exemplo no qual uma imagem é particionada em uma pluralidade de unidades de árvore de codificação.
[0104] O tamanho da unidade de árvore de codificação pode ser definido em um nível de imagem ou um nível de sequência. Para este fim, a informação que indica o tamanho da unidade da árvore de codificação pode ser sinalizada através de um conjunto de parâmetros de imagem ou um conjunto de parâmetros de sequência.
[0105] Por exemplo, o tamanho da unidade de árvore de codificação para toda a imagem em uma sequência pode ser definido para 128 x 128. Alternativamente, no nível da imagem, qualquer um dentre 128 x 128 e 256 x 256 pode ser determinado como o tamanho da unidade da árvore de codificação. Por exemplo, o tamanho da unidade de árvore de codificação pode ser definido para 128 x 128 em uma primeira imagem, e o tamanho da unidade de árvore de codificação pode ser definido para 256 x 256 em uma segunda imagem.
[0106] Os blocos de codificação podem ser gerados particionando uma unidade de árvore de codificação. O bloco de codificação indica uma unidade básica para realizar a codificação/decodificação. Por exemplo, a previsão ou transformada pode ser realizada para cada bloco de codificação, ou um modo de codificação de previsão pode ser determinado para cada bloco de codificação. Aqui, o modo de codificação de previsão indica um método de geração de um vídeo de previsão. Por exemplo, o modo de codificação de previsão pode incluir previsão dentro de uma tela (intraprevisão), previsão entre telas (interprevisão), referência de imagem atual (CPR) ou cópia intrabloco (IBC) ou previsão combinada. Para o bloco de codificação, um bloco de previsão pode ser gerado usando pelo menos um modo de codificação de previsão entre a intraprevisão, a interprevisão, a referência de imagem atual e a previsão combinada.
[0107] As informações que indicam o modo de codificação de previsão do bloco atual podem ser sinalizadas por meio de um fluxo de bits. Por exemplo, a informação pode ser um sinalizador de 1 bit indicando se o modo de codificação de previsão é um modo intra ou um modo inter. Somente quando o modo de codificação de previsão do bloco atual é determinado como o modo inter, a referência da imagem atual ou a previsão combinada podem ser usadas.
[0108] A referência de imagem atual é para definir a imagem atual como uma imagem de referência e obter um bloco de previsão do bloco atual de uma área que já foi codificada/decodificada na imagem atual. Aqui, a imagem atual significa uma imagem incluindo o bloco atual. As informações que indicam se a referência de imagem atual é aplicada ao bloco atual podem ser sinalizadas por meio de um fluxo de bits. Por exemplo, as informações podem ser um sinalizador de 1 bit. Quando o sinalizador é verdadeiro, o modo de codificação de previsão do bloco atual pode ser determinado como a referência da imagem atual e, quando o sinalizador é falso, o modo de previsão do bloco atual pode ser determinado como interprevisão.
[0109] Alternativamente, o modo de codificação de previsão do bloco atual pode ser determinado com base em um índice de imagem de referência. Por exemplo, quando o índice da imagem de referência indica a imagem atual, o modo de codificação de previsão do bloco atual pode ser determinado como a referência da imagem atual. Quando o índice de imagem de referência indica uma imagem diferente da imagem atual, o modo de codificação de previsão do bloco atual pode ser determinado como interprevisão. Ou seja, a referência de imagem atual é um método de previsão usando informações em uma área em que a codificação/decodificação foi concluída na imagem atual, e a interprevisão é um método de previsão usando informações em outra imagem na qual a codificação/decodificação foi concluída.
[0110] A previsão combinada representa um modo de codificação no qual dois ou mais entre a intraprevisão, a interprevisão e a referência de imagem atual são combinados. Por exemplo, quando a previsão combinada é aplicada, um primeiro bloco de previsão pode ser gerado com base em um entre a intraprevisão, interprevisão e a referência de imagem atual, e um segundo bloco de previsão pode ser gerado com base em outro. Quando o primeiro bloco de previsão e o segundo bloco de previsão são gerados, um bloco de previsão final pode ser gerado por meio de uma operação média ou uma operação de soma ponderada do primeiro bloco de previsão e do segundo bloco de previsão. As informações que indicam se a previsão combinada é aplicada podem ser sinalizadas por meio de um fluxo de bits. As informações podem ser um sinalizador de 1 bit.
[0111] A Figura 4 é uma vista que mostra vários tipos de particionamento de um bloco de codificação.
[0112] O bloco de codificação pode ser particionado em uma pluralidade de blocos de codificação com base em particionamento de árvore quádrupla, particionamento de árvore binária ou particionamento de árvore tripla. O bloco de codificação particionado pode ser particionado novamente em uma pluralidade de blocos de codificação com base no particionamento de árvore quádrupla, no particionamento de árvore binária ou no particionamento de árvore tripla.
[0113] O particionamento de árvore quádrupla se refere a uma técnica de particionamento que particiona um bloco atual em quatro blocos. Como resultado do particionamento de árvore quádrupla, o bloco atual pode ser particionado em quatro particionamentos quadrados (consultar “SPLIT_QT” da Figura 4 (a)).
[0114] O particionamento de árvore binária se refere a uma técnica de particionamento que particiona um bloco atual em dois blocos. O particionamento de um bloco atual em dois blocos ao longo da direção vertical (isto é, usando uma linha vertical cruzando o bloco atual) pode ser denominado como particionamento de árvore binária de direção vertical e particionamento de um bloco atual em dois blocos ao longo da direção horizontal (isto é, usando uma linha horizontal cruzando o bloco atual) pode ser denominada como particionamento de árvore binária de direção horizontal. Como resultado do particionamento da árvore binária, o bloco atual pode ser particionado em dois particionamentos não quadrados. “SPLIT_BT_VER” da Figura 4 (b) mostra um resultado do particionamento de árvore binária de direção vertical e “SPLIT_BT_HOR” da Figura 4 (c) mostra um resultado do particionamento da árvore binária na direção horizontal.
[0115] O particionamento de árvore tripla se refere a uma técnica de particionamento que particiona um bloco atual em três blocos. Particionar um bloco atual em três blocos ao longo da direção vertical (isto é, usando duas linhas verticais cruzando o bloco atual) pode ser denominado como particionamento de árvore tripla na direção vertical e particionar um bloco atual em três blocos ao longo da direção horizontal (isto é, usando duas linhas horizontais cruzando o bloco atual) podem ser denominadas como particionamento de árvore tripla na direção horizontal. Como resultado do particionamento de árvore tripla, o bloco atual pode ser particionado em três particionamentos não quadrados. Neste ponto, a largura/altura de um particionamento posicionado no centro do bloco atual pode ser duas vezes maior que a largura/altura dos outros particionamentos. “SPLIT_TT_VER” da Figura 4 (d) mostra um resultado do particionamento de árvore tripla na direção vertical e “SPLIT_TT_HOR” da Figura 4 (e) mostra um resultado do particionamento de árvore tripla na direção horizontal.
[0116] O número de vezes de particionamento de uma unidade de árvore de codificação pode ser definido como uma profundidade de particionamento. A profundidade máxima de particionamento de uma unidade de árvore de codificação pode ser determinada no nível da sequência ou da imagem. Consequentemente, a profundidade máxima de particionamento de uma unidade de árvore de codificação pode ser diferente para cada sequência ou imagem.
[0117] Alternativamente, a profundidade máxima de particionamento para cada técnica de particionamento pode ser determinada individualmente. Por exemplo, a profundidade de particionamento máxima permitida para o particionamento de árvore quádrupla pode ser diferente da profundidade de particionamento máxima permitida para o particionamento de árvore binária e/ou o particionamento de árvore tripla.
[0118] O codificador pode sinalizar informações indicando pelo menos um dentre o tipo de particionamento e a profundidade de particionamento do bloco atual por meio de um fluxo de bits. O decodificador pode determinar o tipo de particionamento e a profundidade de particionamento de uma unidade de árvore de codificação com base nas informações analisadas a partir do fluxo de bits.
[0119] A Figura 5 é uma vista que mostra um padrão de particionamento de uma unidade de árvore de codificação.
[0120] O particionamento de um bloco de codificação usando uma técnica de particionamento, como particionamento de árvore quádrupla, particionamento de árvore binária e/ou particionamento de árvore tripla, pode ser denominado como particionamento de múltiplas árvores.
[0121] Os blocos de codificação gerados pela aplicação do particionamento de árvores múltiplas a um bloco de codificação podem ser denominados como blocos de codificação inferiores. Quando a profundidade de particionamento de um bloco de codificação é k, a profundidade de particionamento dos blocos de codificação inferiores é definida como k + 1.
[0122] Ao contrário, para blocos de codificação com uma profundidade de particionamento de k + 1, um bloco de codificação com uma profundidade de particionamento de k pode ser denominado como um bloco de codificação superior.
[0123] O tipo de particionamento do bloco de codificação atual pode ser determinado com base em pelo menos um dentre um tipo de particionamento de um bloco de codificação superior e um tipo de particionamento de um bloco de codificação vizinho. Aqui, o bloco de codificação vizinho é um bloco de codificação adjacente ao bloco de codificação atual e pode incluir pelo menos um dentre um bloco vizinho superior e um bloco vizinho esquerdo do bloco de codificação atual e um bloco vizinho adjacente ao canto superior esquerdo. Aqui, o tipo de particionamento pode incluir pelo menos um dentre se um particionamento de árvore quádrupla, se um particionamento de árvore binária, direção de particionamento de árvore binária, se um particionamento de árvore tripla e direção de particionamento de árvore tripla.
[0124] De modo a determinar um tipo de particionamento de um bloco de codificação, as informações que indicam se o bloco de codificação pode ser particionado podem ser sinalizadas através de um fluxo de bits. A informação é um sinalizador de 1 bit de “split_cu_flag”, e quando o sinalizador é verdadeiro, indica que o bloco de codificação é particionado por uma técnica de particionamento de árvore principal (→ quad).
[0125] Quando split_cu_flag for verdadeiro, informações indicando se o bloco de codificação é particionado em árvore quádrupla podem ser sinalizadas por meio de um fluxo de bits. A informação é um sinalizador de 1 bit de split_qt_flag e, quando o sinalizador for verdadeiro, o bloco de codificação pode ser particionado em quatro blocos.
[0126] Por exemplo, no exemplo mostrado na Figura 5, como uma unidade de árvore de codificação é particionada em árvore quádrupla, quatro blocos de codificação com uma profundidade de particionamento de 1 são gerados. Além disso, é mostrado que o particionamento de árvore quádrupla é aplicado novamente ao primeiro e quarto blocos de codificação entre os quatro blocos de codificação gerados como resultado do particionamento de árvore quádrupla. Como resultado, quatro blocos de codificação com uma profundidade de particionamento de 2 podem ser gerados.
[0127] Além disso, os blocos de codificação com uma profundidade de particionamento de 3 podem ser gerados aplicando o particionamento de árvore quádrupla novamente a um bloco de codificação com uma profundidade de particionamento de 2.
[0128] Quando o particionamento de árvore quádrupla não é aplicado ao bloco de codificação, se o particionamento de árvore binária ou o particionamento de árvore tripla é realizado no bloco de codificação pode ser determinado em consideração a pelo menos um dentre o tamanho do bloco de codificação, seja o bloco de codificação está posicionado no limite da imagem, a profundidade máxima de particionamento e o tipo de particionamento de um bloco vizinho. Quando é determinado realizar o particionamento de árvore binária ou particionamento de árvore tripla no bloco de codificação, as informações que indicam a direção de particionamento podem ser sinalizadas através de um fluxo de bits. As informações podem ser um sinalizador de 1 bit de mtt_split_cu_vertical_flag. Com base no sinalizador, se a direção de particionamento é uma direção vertical ou uma direção horizontal pode ser determinada. Além disso, as informações que indicam se o particionamento de árvore binária ou o particionamento de árvore tripla são aplicados ao bloco de codificação podem ser sinalizadas por meio de um fluxo de bits. A informação pode ser um sinalizador de 1 bit de mtt_split_cu_binary_flag. Com base no sinalizador, pode ser determinado se o particionamento de árvore binária ou o particionamento de árvore tripla é aplicado ao bloco de codificação.
[0129] Por exemplo, no exemplo mostrado na Figura 5, é mostrado que o particionamento de árvore binária de direção vertical é aplicada a um bloco de codificação com uma profundidade de particionamento de 1, o particionamento de árvore tripla de direção vertical é aplicada ao bloco de codificação do lado esquerdo entre os blocos de codificação gerados como resultado do particionamento, e o particionamento da árvore binária na direção vertical é aplicado ao bloco de codificação do lado direito.
[0130] A interprevisão é um modo de codificação de previsão que prevê um bloco atual usando informações de uma imagem anterior. Por exemplo, um bloco na mesma posição que o bloco atual na imagem anterior (doravante, um bloco colocado) pode ser definido como o bloco de previsão do bloco atual. Daqui em diante, um bloco de previsão gerado com base em um bloco na mesma posição que o bloco atual será denominado como um bloco de previsão colocado.
[0131] Por outro lado, quando um objeto existente na imagem anterior mudou para outra posição na imagem atual, o bloco atual pode ser efetivamente previsto usando um movimento do objeto. Por exemplo, quando a direção do movimento e o tamanho de um objeto podem ser conhecidos comparando a imagem anterior e a imagem atual, um bloco de previsão (ou um vídeo de previsão) do bloco atual pode ser gerado em consideração às informações de movimento do objeto. Daqui em diante, o bloco de previsão gerado usando informações de movimento pode ser denominado como um bloco de previsão de movimento.
[0132] Um bloco residual pode ser gerado subtraindo o bloco de previsão do bloco atual. Neste ponto, quando há um movimento de um objeto, a energia do bloco residual pode ser reduzida usando o bloco de previsão de movimento em vez do bloco de previsão colocado e, portanto, o desempenho de compressão do bloco residual pode ser melhorado.
[0133] Conforme descrito acima, a geração de um bloco de previsão usando informações de movimento pode ser denominada como previsão de compensação de movimento. Na maioria das interprevisões, um bloco de previsão pode ser gerado com base na previsão de compensação de movimento.
[0134] As informações de movimento podem incluir pelo menos um dentre um vetor de movimento, um índice de imagem de referência, uma direção de previsão e um índice de peso bidirecional. O vetor de movimento representa a direção do movimento e o tamanho de um objeto. O índice de imagem de referência especifica uma imagem de referência do bloco atual entre as imagens de referência incluídas em uma lista de imagens de referência. A direção de previsão indica qualquer um dentre previsão L0 unidirecional, previsão L1 unidirecional e previsão bidirecional (previsão L0 e previsão L1). De acordo com a direção de previsão do bloco atual, pelo menos uma entre as informações de movimento na direção L0 e as informações de movimento na direção L1 podem ser usadas. O índice de peso bidirecional especifica um valor de ponderação aplicado a um bloco de previsão L0 e um valor de ponderação aplicado a um bloco de previsão L1.
[0135] A Figura 6 é um fluxograma que mostra um método de interprevisão de acordo com uma modalidade da presente divulgação.
[0136] Com referência à Figura 6, o método de interprevisão inclui as etapas de determinação de um modo de interprevisão de um bloco atual (S601), aquisição de informações de movimento do bloco atual de acordo com o modo de interprevisão determinado (S602) e realização de previsão de compensação de movimento para o bloco atual com base nas informações de movimento adquiridas (S603).
[0137] Aqui, o modo de interprevisão representa várias técnicas para determinar informações de movimento do bloco atual e pode incluir um modo de interprevisão que usa informações de movimento de translação e um modo de interprevisão que usa informações de movimento afins. Por exemplo, o modo de interprevisão usando informações de movimento translacional pode incluir um modo de mesclagem e um modo de previsão de vetor de movimento, e o modo de interprevisão usando informações de movimento afim pode incluir um modo de mesclagem afim e um modo de previsão de vetor de movimento afim. As informações de movimento do bloco atual podem ser determinadas com base em um bloco vizinho adjacente ao bloco atual ou informações analisadas a partir de um fluxo de bits de acordo com o modo de interprevisão.
[0138] Em seguida, o método de interprevisão usando informações de movimento afim será descrito em detalhes.
[0139] A Figura 7 é uma vista que mostra um movimento não linear de um objeto.
[0140] Um movimento não linear de um objeto pode ser gerado em um vídeo. Por exemplo, como mostrado no exemplo da Figura 7, um movimento não linear de um objeto, como ampliar, reduzir, rotação, transformada afim ou semelhante de uma câmera, pode ocorrer. Quando ocorre um movimento não linear de um objeto, o movimento do objeto não pode ser efetivamente expresso com um vetor de movimento translacional. Consequentemente, a eficiência da codificação pode ser melhorada usando um movimento afim em vez de um movimento de translação em uma área onde ocorre um movimento não linear de um objeto.
[0141] A Figura 8 é um fluxograma que mostra um método de interprevisão com base em um movimento afim de acordo com uma modalidade da presente divulgação.
[0142] Se uma técnica de interprevisão com base em um movimento afim é aplicada ao bloco atual pode ser determinado com base nas informações analisadas a partir de um fluxo de bits. Especificamente, se a técnica de interprevisão com base em um movimento afim é aplicada ao bloco atual pode ser determinado com base em pelo menos um dentre um indicador indicando se o modo a mesclagem afim é aplicado ao bloco atual e um sinalizador indicando se o vetor de movimento afim o modo de previsão é aplicado ao bloco atual.
[0143] Quando a técnica de interprevisão com base em um movimento afim é aplicada ao bloco atual, um modelo de movimento afim do bloco atual pode ser determinado (S801). O modelo de movimento afim pode ser determinado como pelo menos um dentre um modelo de movimento afim de seis parâmetros e um modelo de movimento afim de quatro parâmetros. O modelo de movimento afim de seis parâmetros expressa um movimento afim usando seis parâmetros, e o modelo de movimento afim de quatro parâmetros expressa um movimento afim usando quatro parâmetros.
[0144] A Equação 1 expressa um movimento afim usando seis parâmetros. O movimento afim representa um movimento translacional para uma área predeterminada determinada por vetores de sementes afins. 【EQUAÇÃO 1】 = − + = + +
[0145] Quando um movimento afim é expresso usando seis parâmetros, um movimento complicado pode ser expresso. No entanto, à medida que o número de bits necessários para codificar cada um dos parâmetros aumenta, a eficiência da codificação pode ser reduzida. Consequentemente, o movimento afim pode ser expresso usando quatro parâmetros. A Equação 2 expressa um movimento afim usando quatro parâmetros.
【EQUAÇÃO 2】 = − + = + +
[0146] As informações para determinar um modelo de movimento afim do bloco atual podem ser codificadas e sinalizadas por meio de um fluxo de bits. Por exemplo, a informação pode ser um sinalizador de 1 bit de “affine_type_flag”. Quando o valor do sinalizador é 0, pode indicar que um modelo de movimento afim de 4 parâmetros é aplicado, e quando o valor do sinalizador é 1, pode indicar que um modelo de movimento afim de 6 parâmetros é aplicado. O sinalizador pode ser codificado pela unidade de fatia, bloco ou bloco (por exemplo, pela unidade de bloco de codificação ou árvore de codificação). Quando um sinalizador é sinalizado no nível da fatia, um modelo de movimento afim determinado no nível da fatia pode ser aplicado a todos os blocos pertencentes à fatia.
[0147] Alternativamente, um modelo de movimento afim do bloco atual pode ser determinado com base em um modo de interprevisão afim do bloco atual. Por exemplo, quando o modo de mesclagem afim é aplicado, o modelo de movimento afim do bloco atual pode ser determinado como um modelo de movimento de 4 parâmetros. Por outro lado, quando o modo de previsão de vetor de movimento afim é aplicado, as informações para determinar o modelo de movimento afim do bloco atual podem ser codificadas e sinalizadas através de um fluxo de bits. Por exemplo, quando o modo de previsão de vetor de movimento afim é aplicado ao bloco atual, o modelo de movimento afim do bloco atual pode ser determinado com base no sinalizador de 1 bit de “affine_type_flag”.
[0148] Em seguida, um vetor de semente afim do bloco atual pode ser derivado (S802). Quando um modelo de movimento afim de 4 parâmetros é selecionado, vetores de movimento em dois pontos de controle do bloco atual podem ser derivados. Por outro lado, quando um modelo de movimento afim de 6 parâmetros é selecionado, vetores de movimento em três pontos de controle do bloco atual podem ser derivados. O vetor de movimento em um ponto de controle pode ser denominado como um vetor semente afim. O ponto de controle pode incluir pelo menos um dentre o canto superior esquerdo, o canto superior direito e o canto inferior esquerdo do bloco atual.
[0149] A Figura 9 é uma vista que mostra um exemplo de vetores de semente afim de cada modelo de movimento afim.
[0150] No modelo de movimento afim de 4 parâmetros, vetores de sementes afins podem ser derivados para dois entre o canto superior esquerdo, o canto superior direito e o canto inferior esquerdo. Por exemplo, como mostrado no exemplo da Figura 9 (a), quando um modelo de movimento afim de 4 parâmetros é selecionado, um vetor afim pode ser derivado usando o vetor semente afim sv0 para o canto superior esquerdo do bloco atual (por exemplo, amostra superior esquerda (x1, y1) e o vetor de semente afim sv1 para o canto superior direito do bloco atual (por exemplo, a amostra superior direita (x1, y1)). Também é possível usar um vetor de semente afim para o canto inferior esquerdo em vez do vetor de semente afim para o canto superior esquerdo, ou usar um vetor de semente afim para o canto inferior esquerdo em vez do vetor semente afim para o canto superior direito.
[0151] No modelo de movimento afim de 6 parâmetros,
vetores de sementes afins podem ser derivados para o canto superior esquerdo, o canto superior direito e o canto inferior esquerdo. Por exemplo, como mostrado no exemplo da Figura 9 (b), quando um modelo de movimento afim de 6 parâmetros é selecionado, um vetor afim pode ser derivado usando o vetor semente afim sv0 para o canto superior esquerdo do bloco atual (por exemplo, amostra superior esquerda (x1, y1) ), o vetor de semente afim sv1 para o canto superior direito do bloco atual (por exemplo, a amostra superior direita (x1, y1)), e o vetor de semente afim sv2 para o canto superior esquerdo do bloco atual (por exemplo, amostra superior esquerda (x2, y2)).
[0152] Na modalidade descrita abaixo, no modelo de movimento afim de 4 parâmetros, os vetores de sementes afins do ponto de controle superior esquerdo e do ponto de controle superior direito serão denominados como um primeiro vetor de semente afim e um segundo vetor afim vetor de sementes, respectivamente. Nas modalidades usando o primeiro vetor de semente afim e o segundo vetor de semente afim descrito abaixo, pelo menos um dentre o primeiro vetor de semente afim e o segundo vetor de semente afim pode ser substituído pelo vetor de semente afim do ponto de controle inferior esquerdo (a terceiro vetor de semente afim) ou o vetor de semente afim do ponto de controle inferior direito (um quarto vetor de semente afim).
[0153] Além disso, no modelo de movimento afim de 6 parâmetros, os vetores de sementes afins do ponto de controle superior esquerdo, do ponto de controle superior direito e do ponto de controle inferior esquerdo serão denominados como uma primeira semente afim vetor, um segundo vetor de semente afim e um terceiro vetor de semente afim, respectivamente. Nas modalidades usando o primeiro vetor de semente afim, o segundo vetor de semente afim e o terceiro vetor de semente afim descrito abaixo, pelo menos um dentre o primeiro vetor de semente afim, o segundo vetor de semente afim e o terceiro vetor de semente afim podem ser substituídos pelo vetor de semente afim do ponto de controle inferior direito (um quarto vetor de semente afim).
[0154] Um vetor afim pode ser derivado para cada sub-bloco usando os vetores de sementes afins (S803). Aqui, o vetor afim representa um vetor de movimento translacional derivado com base nos vetores de sementes afins. O vetor afim de um sub-bloco pode ser denominado como um vetor de movimento de sub-bloco afim ou um vetor de movimento de sub-bloco.
[0155] A Figura 10 é uma vista que mostra um exemplo de sub-blocos de vetores afins em um modelo de movimento de 4 parâmetros.
[0156] O vetor afim do sub-bloco pode ser derivado com base na posição do ponto de controle, na posição do sub- bloco e no vetor de semente afim. Por exemplo, a Equação 3 mostra um exemplo de derivação de um vetor de sub-bloco afim. 【EQUAÇÃO 3】 − − = − − − + − − − − = − − − + − −
[0157] Na Equação 3, (x, y) denota a posição de um sub-bloco. Aqui, a posição de um sub-bloco indica a posição de uma amostra de referência incluída no sub-bloco. A amostra de referência pode ser uma amostra posicionada no canto superior esquerdo do sub-bloco ou uma amostra da qual pelo menos uma entre as coordenadas de eixo geométrico x e eixo geométrico y é um ponto central. (x0, y0) denota a posição do primeiro ponto de controle e (sv0x, sv0y) denota o primeiro vetor semente afim. Além disso, (x1, y1) denota a posição do segundo ponto de controle e (sv1x, sv1y) denota o segundo vetor de semente afim.
[0158] Quando o primeiro ponto de controle e o segundo ponto de controle correspondem ao canto superior esquerdo e ao canto superior direito do bloco atual, respectivamente, x1-x0 pode ser definido para um valor igual à largura do bloco atual.
[0159] Depois disso, a previsão de compensação de movimento para cada sub-bloco pode ser realizada usando o vetor afim de cada sub-bloco (S804). Como resultado da realização da previsão de compensação de movimento, um bloco de previsão para cada sub-bloco pode ser gerado. Os blocos de previsão dos sub-blocos podem ser definidos como os blocos de previsão do bloco atual.
[0160] Em seguida, um método de interprevisão usando informações de movimento translacional será descrito em detalhes.
[0161] As informações de movimento do bloco atual podem ser derivadas das informações de movimento do bloco atual de outro bloco (→ outro bloco). Aqui, outro bloco pode ser um bloco codificado/decodificado por interprevisão antes do bloco atual. Definir as informações de movimento do bloco atual para serem iguais às informações de movimento de outro bloco pode ser definido como um modo a mesclagem. Além disso, definir o vetor de movimento de outro bloco como o valor de previsão do vetor de movimento do bloco atual pode ser definido como um modo de previsão de vetor de movimento.
[0162] A Figura 11 é um fluxograma que mostra um processo de derivar informações de movimento de um bloco atual usando um modo de mesclagem.
[0163] Um candidato a mesclagem do bloco atual pode ser derivado (S1101). O candidato a mesclagem do bloco atual pode ser derivado de um bloco codificado/decodificado por interprevisão antes do bloco atual.
[0164] A Figura 12 é uma vista que mostra um exemplo de blocos candidatos usados para derivar um candidato de mesclagem.
[0165] Os blocos candidatos podem incluir pelo menos um dentre os blocos vizinhos, incluindo uma amostra adjacente ao bloco atual ou blocos não vizinhos, incluindo uma amostra não adjacente ao bloco atual. Doravante, as amostras para determinar os blocos candidatos são definidas como amostras de referência. Além disso, uma amostra de referência adjacente ao bloco atual é denominada como uma amostra de referência vizinha, e uma amostra de referência não adjacente ao bloco atual é denominada como uma amostra de referência não vizinha.
[0166] A amostra de referência vizinha pode ser incluída em uma coluna vizinha da coluna mais à esquerda do bloco atual ou uma linha vizinha da linha mais alta do bloco atual. Por exemplo, quando as coordenadas da amostra superior esquerda do bloco atual são (0, 0), pelo menos uma entre um bloco incluindo uma amostra de referência na posição de (-1, H-1), um bloco incluindo uma amostra de referência na posição de (W-1, -1), um bloco incluindo uma amostra de referência na posição de (W, -1), um bloco incluindo uma amostra de referência na posição de (-1, H), e um bloco incluindo uma amostra de referência na posição de (-1, -1) pode ser usado como um bloco candidato. Com referência ao desenho, blocos vizinhos de índice 0 a 4 podem ser usados como blocos candidatos.
[0167] A amostra de referência não vizinha representa uma amostra da qual pelo menos um dentre uma distância do eixo geométrico x e uma distância do eixo geométrico y de uma amostra de referência adjacente ao bloco atual tem um valor predefinido. Por exemplo, pelo menos um dentre um bloco incluindo uma amostra de referência da qual a distância do eixo geométrico x da amostra de referência esquerda é um valor predefinido, um bloco incluindo uma amostra não vizinha da qual a distância do eixo geométrico y da amostra de referência superior é um valor predefinido e um bloco incluindo uma amostra não vizinha da qual a distância do eixo geométrico x e a distância do eixo geométrico y da amostra de referência superior esquerda são valores predefinidos pode ser usado como um bloco candidato. Os valores predefinidos podem ser um número natural, como 4, 8, 12, 16 ou semelhantes. Com referência ao desenho, pelo menos um dentre os blocos do índice 5 a 26 pode ser usado como um bloco candidato.
[0168] Uma amostra não posicionada na mesma linha vertical, linha horizontal ou linha diagonal que a amostra de referência vizinha pode ser definida como uma amostra de referência não vizinha.
[0169] A Figura 13 é uma vista que mostra posições de amostras de referência.
[0170] Como mostrado no exemplo da Figura 13, as coordenadas x das amostras de referência não vizinhas superiores podem ser definidas para serem diferentes das coordenadas x das amostras de referência vizinhas superiores. Por exemplo, quando a posição da amostra de referência vizinha da parte superior é (W-1, -1), a posição de uma amostra de referência não vizinha da parte superior separada tanto quanto N da amostra de referência de vizinhança superior no eixo geométrico y pode ser definido como ((W/2) -1, -1-N), e a posição de uma amostra de referência superior não vizinha separada tanto quanto 2N da amostra de referência vizinha no eixo geométrico y pode ser definida como (0, -1-2N). Ou seja, a posição de uma amostra de referência não adjacente pode ser determinada com base na posição de uma amostra de referência adjacente e uma distância da amostra de referência adjacente.
[0171] Em seguida, um bloco candidato incluindo uma amostra de referência vizinha entre os blocos candidatos é denominado como um bloco vizinho, e um bloco incluindo uma amostra de referência não vizinha é denominado como um bloco não vizinho.
[0172] Quando a distância entre o bloco atual e o bloco candidato é maior ou igual a um valor limítrofe, o bloco candidato pode ser definido como indisponível como um candidato a mesclagem. O valor limítrofe pode ser determinado com base no tamanho da unidade de árvore de codificação. Por exemplo, o valor limítrofe pode ser definido para a altura (ctu_height) da unidade de árvore de codificação ou um valor obtido pela adição ou subtração de um deslocamento para ou da altura (por exemplo, ctu_height ± N) da unidade de árvore de codificação. O deslocamento N é um valor predefinido no codificador e no decodificador e pode ser definido como 4, 8, 16, 32 ou ctu_height.
[0173] Quando a diferença entre a coordenada do eixo geométrico y do bloco atual e a coordenada do eixo geométrico y de uma amostra incluída em um bloco candidato é maior do que o valor limítrofe, o bloco candidato pode ser determinado como indisponível como um candidato a mesclagem.
[0174] Alternativamente, um bloco candidato que não pertence à mesma unidade de árvore de codificação que o bloco atual pode ser definido como indisponível como um candidato a mesclagem. Por exemplo, quando uma amostra de referência se desvia do limite superior de uma unidade de árvore de codificação à qual o bloco atual pertence, um bloco candidato incluindo a amostra de referência pode ser definido como indisponível como um candidato a mesclagem.
[0175] Quando o limite superior do bloco atual é adjacente ao limite superior da unidade de árvore de codificação, uma pluralidade de blocos candidatos é determinada como indisponível como um candidato a mesclagem e, portanto, a eficiência de codificação/decodificação do bloco atual pode diminuir. Para resolver este problema, os blocos candidatos podem ser configurados de modo que o número de blocos candidatos posicionados no lado esquerdo do bloco atual seja maior do que o número de blocos candidatos posicionados na parte superior do bloco atual.
[0176] A Figura 14 é uma vista que mostra um exemplo de blocos candidatos usados para derivar um candidato de mesclagem.
[0177] Como mostrado no exemplo de Figura 14, os blocos superiores pertencentes às colunas de bloco N superiores do bloco atual e os blocos do lado esquerdo pertencentes a M colunas de bloco do lado esquerdo do bloco atual podem ser definidos como blocos candidatos. Neste ponto, o número de blocos candidatos do lado esquerdo pode ser definido para ser maior do que o número de blocos candidatos superiores, definindo M para ser maior do que N.
[0178] Por exemplo, a diferença entre a coordenada do eixo geométrico y da amostra de referência no bloco atual e a coordenada do eixo geométrico y do bloco superior que pode ser usada como um bloco candidato pode ser definida para não exceder N vezes do altura do bloco atual. Além disso, a diferença entre a coordenada do eixo geométrico x da amostra de referência no bloco atual e a coordenada do eixo geométrico x do bloco do lado esquerdo que pode ser usada como um bloco candidato pode ser definida para não exceder M vezes da largura do bloco atual.
[0179] Por exemplo, no exemplo mostrado na Figura 14, é mostrado que os blocos pertencentes às duas colunas de bloco superiores do bloco atual e os blocos pertencentes às cinco colunas de bloco esquerdas do bloco atual são definidos como blocos candidatos.
[0180] Como um outro exemplo, quando um bloco candidato não pertence a uma unidade de árvore de codificação igual à do bloco atual, um candidato a mesclagem pode ser derivado usando um bloco pertencente à mesma unidade de árvore de codificação que o bloco atual ou um bloco incluindo uma amostra de referência adjacente ao limite da unidade da árvore de codificação, em vez do bloco candidato.
[0181] A Figura 15 é uma vista que mostra um exemplo em que a posição de uma amostra de referência é alterada.
[0182] Quando uma amostra de referência é incluída em uma unidade de árvore de codificação diferente do bloco atual, e a amostra de referência não é adjacente ao limite da unidade de árvore de codificação, um bloco candidato pode ser determinado usando uma amostra de referência adjacente ao limite da unidade da árvore de codificação, em vez da amostra de referência.
[0183] Por exemplo, nos exemplos mostrados nas Figuras 15 (a) e 15 (b), quando o limite superior do bloco atual e o limite superior da unidade de árvore de codificação estão em contato um com o outro, as amostras de referência na parte superior do bloco atual pertencem a uma unidade de árvore de codificação diferente do bloco atual. Entre as amostras de referência pertencentes à unidade da árvore de codificação diferente do bloco atual, uma amostra de referência não adjacente ao limite superior da unidade da árvore de codificação pode ser substituída por uma amostra adjacente ao limite superior da unidade da árvore de codificação.
[0184] Por exemplo, como mostrado no exemplo da Figura 15 (a), a amostra de referência na posição 6 é substituída pela amostra na posição 6’ posicionada no limite superior da unidade de árvore de codificação e como mostrado no exemplo da Figura 15 (b), a amostra de referência na posição 15 é substituída pela amostra na posição 15’ posicionada no limite superior da unidade de árvore de codificação. Neste ponto, a coordenada y da amostra de substituição é alterada para uma posição adjacente à unidade da árvore de codificação e a coordenada x da amostra de substituição pode ser definida para ser igual à amostra de referência. Por exemplo, a amostra na posição 6’ pode ter a mesma coordenada x que a amostra na posição 6 e a amostra na posição 15’ pode ter a mesma coordenada x que a amostra na posição 15.
[0185] Alternativamente, um valor obtido pela adição ou subtração de um deslocamento para ou da coordenada x da amostra de referência pode ser definido como a coordenada x da amostra de substituição. Por exemplo, quando as coordenadas x da amostra de referência vizinha posicionada na parte superior do bloco atual e a amostra de referência não vizinha são iguais, um valor obtido pela adição ou subtração de um deslocamento para ou da coordenada x da amostra de referência pode ser definida como a coordenada x da amostra de substituição. Isso evita que a amostra de substituição que substitui a amostra de referência não vizinha seja colocada na mesma posição que outra amostra de referência não vizinha ou amostra de referência vizinha.
[0186] A Figura 16 é uma vista que mostra um exemplo em que a posição de uma amostra de referência é alterada.
[0187] Ao substituir uma amostra de referência que está incluída em uma unidade de árvore de codificação diferente do bloco atual e não é adjacente ao limite da unidade de árvore de codificação com uma amostra posicionada no limite da unidade de árvore de codificação, um valor obtido por adicionar ou subtrair um deslocamento para e da coordenada x da amostra de referência pode ser definido como a coordenada x da amostra de substituição.
[0188] Por exemplo, no exemplo mostrado na Figura 16, a amostra de referência na posição 6 e a amostra de referência na posição 15 podem ser substituídas pela amostra na posição 6’ e a amostra na posição 15’, respectivamente, das quais as coordenadas y são as mesmas da linha adjacente ao limite superior da unidade da árvore de codificação. Neste ponto, a coordenada x da amostra na posição 6’ pode ser definida para um valor obtido subtraindo W/2 da coordenada x da amostra de referência na posição 6 e a coordenada x da amostra na posição 15’ pode ser definido para um valor obtido subtraindo W-1 da coordenada x da amostra de referência na posição 15.
[0189] Ao contrário dos exemplos mostrados nas 15 e 16, a coordenada y da linha posicionada na parte superior da linha superior do bloco atual ou a coordenada y do limite superior da unidade da árvore de codificação pode ser definida como a coordenada y da amostra de substituição.
[0190] Embora não mostrado, uma amostra que substitui a amostra de referência pode ser determinada com base no limite do lado esquerdo da unidade de árvore de codificação. Por exemplo, quando a amostra de referência não está incluída na mesma unidade de árvore de codificação que o bloco atual e não está adjacente ao limite esquerdo da unidade de árvore de codificação, a amostra de referência pode ser substituída por uma amostra adjacente ao limite lateral da unidade da árvore de codificação. Neste ponto, a amostra de substituição pode ter uma coordenada y igual à da amostra de referência, ou pode ter uma coordenada y obtida adicionando ou subtraindo um deslocamento para e da coordenada y da amostra de referência.
[0191] Depois disso, um bloco incluindo a amostra de substituição pode ser definido como um bloco candidato e um candidato a mesclagem do bloco atual pode ser derivado com base no bloco candidato.
[0192] Um candidato a mesclagem também pode ser derivado de um bloco vizinho temporariamente incluído em uma imagem diferente do bloco atual. Por exemplo, um candidato a mesclagem pode ser derivado de um bloco colocado incluído em uma imagem colocada.
[0193] As informações de movimento do candidato a mesclagem podem ser definidas para serem iguais às informações de movimento do bloco candidato. Por exemplo, pelo menos um dentre um vetor de movimento, um índice de imagem de referência, uma direção de previsão e um índice de peso bidirecional do bloco candidato pode ser definido como informação de movimento do candidato a mesclagem.
[0194] Uma lista de candidatos a mesclagem incluindo candidatos a mesclagem pode ser gerada (S1102). Os candidatos a mesclagem podem ser divididos em um candidato a mesclagem adjacente derivado de um bloco vizinho adjacente ao bloco atual e um candidato a mesclagem não adjacente derivado de um bloco não vizinho.
[0195] Índices dos candidatos a mesclagem na lista de candidatos a mesclagem podem ser atribuídos em uma ordem predeterminada. Por exemplo, um índice atribuído a um candidato a mesclagem adjacente pode ter um valor menor do que um índice atribuído a um candidato a mesclagem não adjacente. Alternativamente, um índice pode ser atribuído a cada um dos candidatos a mesclagem com base no índice de cada bloco mostrado na Figura 12 ou 14.
[0196] Quando uma pluralidade de candidatos de mesclagem é incluída na lista de candidatos a mesclagem, pelo menos um dentre a pluralidade de candidatos a mesclagem pode ser selecionado (S1103). Neste ponto, as informações que indicam se as informações de movimento do bloco atual são derivadas de um candidato a mesclagem adjacente podem ser sinalizadas por meio de um fluxo de bits. As informações podem ser um sinalizador de 1 bit. Por exemplo, um elemento de sintaxe isAdjancentMergeFlag indicando se as informações de movimento do bloco atual são derivadas de um candidato a mesclagem adjacente pode ser sinalizado por meio de um fluxo de bits. Quando o valor do elemento de sintaxe isAdjancentMergeFlag é 1, as informações de movimento do bloco atual podem ser derivadas com base no candidato de mesclagem adjacente. Por outro lado, quando o valor do elemento de sintaxe isAdjancentMergeFlag é 0, as informações de movimento do bloco atual podem ser derivadas com base em um candidato a mesclagem não adjacente.
[0197] A Tabela 1 mostra uma tabela de sintaxe incluindo o elemento de sintaxe isAdjancentMergeFlag. TABELA 1 coding_unit (x0, y0, cbWidth, cbHeight, Descritor treeType) { if (slice_type ! = I) { pred_mode_flag ae(v) } if (CuPredMode[x0][y0] = = MODE_INTRA) { if (treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_LUMA) { intra_luma_mpm_flag[x0][y0] if (intra_luma_mpm_flag[x0][y0]) intra_luma_mpm_idx[x0][y0] ae(v) else intra_luma_mpm_restante[x0][y0] ae(v)
} if (treeType = = SINGLE_TREE | | treeType = = DUAL_TREE_CHROMA) intra_chroma_pred_mode[x0][y0] ae(v) } else { if (cu_skip_falg[x0][y0]) { if (MaxNumMergeCand > 1){ isAdjacentMergeflag ae(v) if (isAdjcanetMergeflag){ merge_idx[x0][y0] ae(v) } else{ NA_merge_idx[x0][y0] ae(v) } } } else {/* MODE_INTER*/ merge_flag[x0][y0] ae(v) if (merge_flag[x0][y0]){ if (MaxNumMergeCand > 1){ isAdjacentMergeflag ae(v) if (isAdjcanetMergeflag){ merge_idx[x0][y0] ae(v) } else{ NA_merge_idx[x0][y0] ae(v) } } } if (CuPredMode[x0][y0] ! = MODE_INTRA) cu_cbf ae(v) if (cu_cbf) {
transform_tree (x0, y0, cbWidth, cbHeight, treeType) }
[0198] As informações para especificar qualquer um dentre uma pluralidade de candidatos a mesclagem podem ser sinalizadas por meio de um fluxo de bits. Por exemplo, as informações que indicam um índice de qualquer um dos candidatos a mesclagem incluídos na lista de candidatos a mesclagem podem ser sinalizadas por meio de um fluxo de bits.
[0199] Quando isAdjacentMergeflag é 1, o elemento de sintaxe merge_idx especificando qualquer um dentre os candidatos de mesclagem adjacentes pode ser sinalizado. O valor máximo do elemento de sintaxe merge_idx pode ser definido como um valor obtido subtraindo 1 do número de candidatos de mesclagem adjacentes.
[0200] Quando isAdjacentMergeflag é 0, o elemento de sintaxe NA_merge_idx especificando qualquer um dentre os candidatos a mesclagem não adjacentes pode ser sinalizado. O elemento de sintaxe NA_merge_idx representa um valor obtido subtraindo o número de candidatos de mesclagem adjacentes do índice do candidato de mesclagem não adjacente. O decodificador pode selecionar um candidato a mesclagem não adjacente adicionando o número de candidatos a mesclagem adjacentes a um índice especificado por NA_merge_idx.
[0201] Quando o número de candidatos a mesclagem incluídos na lista de candidatos a mesclagem é menor do que um valor limítrofe, o candidato a mesclagem incluído na lista de informações de movimento da região de previsão pode ser adicionado à lista de candidatos a mesclagem. Aqui, o valor limítrofe pode ser o número máximo de candidatos a mesclagem que podem ser incluídos na lista de candidatos a mesclagem ou um valor obtido subtraindo um deslocamento do número máximo de candidatos a mesclagem. O deslocamento pode ser um número natural, como 1, 2 ou semelhante. A lista de informações de movimento inter-região pode incluir um candidato a mesclagem derivado com base em um bloco codificado/decodificado antes do bloco atual.
[0202] A lista de informações de movimento da região de previsão inclui um candidato a mesclagem derivado de um bloco codificado/decodificado com base na interprevisão na imagem atual. Por exemplo, as informações de movimento de um candidato a mesclagem incluído na lista de informações de movimento da região de previsão podem ser definidas para serem iguais às informações de movimento de um bloco codificado/decodificado com base na interprevisão. Aqui, as informações de movimento podem incluir pelo menos um dentre um vetor de movimento, um índice de imagem de referência, uma direção de previsão e um índice de peso bidirecional.
[0203] Por conveniência de explicação, um candidato a mesclagem incluído na lista de informações de movimento da região de previsão será denominado como um candidato a mesclagem da região de previsão.
[0204] O número máximo de candidatos a mesclagem que podem ser incluídos na lista de informações de movimento da região de previsão pode ser predefinido por um codificador e um decodificador. Por exemplo, o número máximo de candidatos a mesclagem que podem ser incluídos na lista de informações de movimento da região de previsão pode ser 1, 2, 3, 4, 5, 6, 7, 8 ou mais (por exemplo, 16).
[0205] Alternativamente, as informações que indicam o número máximo de candidatos a mesclagem que podem ser incluídos na lista de informações de movimento da região de previsão podem ser sinalizadas através de um fluxo de bits. As informações podem ser sinalizadas em uma sequência, imagem ou nível de fatia. As informações podem indicar o número máximo de candidatos a mesclagem que podem ser incluídos na lista de informações de movimento da região de previsão. Alternativamente, as informações podem indicar uma diferença entre o número máximo de candidatos a mesclagem que podem ser incluídos na lista de informações de movimento da região de previsão e o número máximo de candidatos a mesclagem que podem ser incluídos na lista de candidatos a mesclagem.
[0206] Alternativamente, o número máximo de candidatos a mesclagem da lista de informações de movimento da região de previsão pode ser determinado de acordo com o tamanho de uma imagem, o tamanho de uma fatia ou o tamanho de uma unidade de árvore de codificação.
[0207] A lista de informações de movimento da região de previsão pode ser inicializada pela unidade de imagem, fatia, bloco, tijolo, unidade de árvore de codificação ou linha de unidade de árvore de codificação (linha ou coluna). Por exemplo, quando uma fatia é inicializada, a lista de informações de movimento da região de previsão também é inicializada e a lista de informações de movimento da região de previsão pode não incluir qualquer candidato a mesclagem.
[0208] Alternativamente, as informações que indicam se deve inicializar a lista de informações de movimento da região de previsão podem ser sinalizadas através de um fluxo de bits. As informações podem ser sinalizadas no nível de fatia,
bloco, tijolo ou bloco. Até que as informações indiquem para inicializar a lista de informações de movimento da região de previsão, uma lista de informações de movimento da região de previsão configurada anteriormente pode ser usada.
[0209] Alternativamente, as informações sobre o candidato a mesclagem da região de previsão inicial podem ser sinalizadas através de um conjunto de parâmetros de imagem ou um cabeçalho de fatia. Embora a fatia seja inicializada, a lista de informações de movimento da região de previsão pode incluir o candidato de mesclagem da região de previsão inicial. Consequentemente, um candidato a mesclagem da região de previsão pode ser usado para um bloco que é o primeiro alvo de codificação/decodificação na fatia.
[0210] Alternativamente, um candidato a mesclagem da região de previsão incluído na lista de informações de movimento da região de previsão de uma unidade de árvore de codificação anterior pode ser definido como o candidato a mesclagem da região de previsão inicial. Por exemplo, entre os candidatos a mesclagem da região de previsão incluídos na lista de informações de movimento da região de previsão de uma unidade de árvore de codificação anterior, um candidato a mesclagem da região de previsão tendo o menor índice ou um candidato a mesclagem da região de previsão tendo o maior índice pode ser definido como a candidato a mesclagem da região de previsão inicial.
[0211] Os blocos são codificados/decodificados de acordo com uma ordem de codificação/decodificação, e os blocos codificados/decodificados com base na interprevisão podem ser sequencialmente configurados como um candidato a mesclagem da região de previsão de acordo com uma ordem de codificação/decodificação.
[0212] A Figura 17 é um fluxograma que mostra um processo de atualização de uma lista de informações de movimento de região de previsão.
[0213] Quando a interprevisão é realizada no bloco atual (S1701), um candidato a mesclagem da região de previsão pode ser derivado com base no bloco atual (S1702). As informações de movimento do candidato a mesclagem da região de previsão podem ser definidas para serem iguais às informações de movimento do bloco atual.
[0214] Quando a lista de informações de movimento da região de previsão está vazia (S1703), o candidato a mesclagem da região de previsão derivado com base no bloco atual pode ser adicionado à lista de informações de movimento da região de previsão (S1704).
[0215] Quando a lista de informações de movimento da região de previsão já inclui o candidato a mesclagem da região de previsão (S1703), uma verificação de redundância pode ser realizada nas informações de movimento do bloco atual (ou o candidato a mesclagem da região de previsão derivado com base no bloco atual) (S1705). A verificação de redundância é para determinar se as informações de movimento de um candidato a mesclagem da região de previsão anteriormente armazenado na lista de informações de movimento da região de previsão e as informações de movimento do bloco atual são as mesmas. A verificação de redundância pode ser realizada em todos os candidatos a mesclagem da região de previsão anteriormente armazenados na lista de informações de movimento da região de previsão. Alternativamente, a verificação de redundância pode ser realizada em candidatos de mesclagem da região de previsão com um índice maior que um valor limítrofe ou menor que um valor limítrofe entre os candidatos de mesclagem da região de previsão anteriormente armazenados na lista de informações de movimento de região de previsão.
[0216] Quando um candidato de mesclagem de interprevisão tendo as mesmas informações de movimento que as informações de movimento do bloco atual não está incluído, o candidato de mesclagem da região de previsão derivado com base no bloco atual pode ser adicionado à lista de informações de movimento da região de previsão (S1708). Se os candidatos de mesclagem de interprevisão são os mesmos pode ser determinado com base em se as informações de movimento (por exemplo, um vetor de movimento e/ou um índice de imagem de referência) dos candidatos de mesclagem de interprevisão são as mesmas.
[0217] Neste ponto, quando o número máximo de candidatos a mesclagem da região de previsão já estão armazenados na lista de informações de movimento de região de previsão (S1706), o candidato a mesclagem da região de previsão mais antigo é excluído (S1707) e o candidato a mesclagem da região de previsão derivado com base no bloco atual pode ser adicionado à lista de informações de movimento da região de previsão (S1708). Aqui, o candidato de mesclagem da região de previsão mais antigo pode ser um candidato de mesclagem da região de previsão tendo o maior índice ou um candidato de mesclagem da região de previsão tendo o menor índice.
[0218] Cada um dos candidatos a mesclagem da região de previsão pode ser identificado por um índice. Quando um candidato a mesclagem da região de previsão derivado do bloco atual é adicionado à lista de informações de movimento de região de previsão, o índice mais baixo (por exemplo, 0) é atribuído ao candidato a mesclagem da região de previsão e os índices dos candidatos a mesclagem da região de previsão armazenados anteriormente podem ser aumentado em 1. Neste ponto, quando o número máximo de candidatos de mesclagem de interprevisão já está armazenado na lista de informações de movimento da região de previsão, um candidato de mesclagem da região de previsão com o maior índice é removido.
[0219] Alternativamente, quando o candidato a mesclagem da região de previsão derivado do bloco atual é adicionado à lista de informações de movimento da região de previsão, o maior índice pode ser atribuído ao candidato a mesclagem da região de previsão. Por exemplo, quando o número de candidatos de mesclagem de interprevisão anteriormente armazenados na lista de informações de movimento da região de previsão é menor do que um valor máximo, um índice com o mesmo valor que o número de candidatos de mesclagem de interprevisão armazenados anteriormente pode ser atribuído ao candidato a mesclagem da região de previsão. Alternativamente, quando o número de candidatos de mesclagem de interprevisão anteriormente armazenados na lista de informações de movimento da região de previsão é o mesmo que o valor máximo, um índice subtraindo 1 do valor máximo pode ser atribuído ao candidato de mesclagem da região de previsão. Além disso, um candidato a mesclagem da região de previsão com o menor índice é removido e os índices de candidatos a mesclagem da região de previsão armazenados anteriormente podem ser diminuídos em 1.
[0220] A Figura 18 é uma vista que mostra uma modalidade de atualização de uma lista de candidato de mesclagem da região de previsão.
[0221] É assumido que, conforme o candidato a mesclagem da região de previsão derivado do bloco atual é adicionado à lista de candidatos a mesclagem da região de previsão, o maior índice é atribuído ao candidato a mesclagem da região de previsão. Além disso, assume-se que o número máximo de candidatos a mesclagem da região de previsão já está armazenado na lista de candidatos a mesclagem da região de previsão.
[0222] Quando o candidato a mesclagem da região de previsão HmvpCand [n + 1] derivado do bloco atual é adicionado à lista de candidatos a mesclagem da região de previsão HmvpCandList, o candidato a mesclagem da região de previsão HmvpCand [0] tendo o menor índice entre os candidatos de mesclagem da região de previsão armazenados anteriormente são excluídos e os índices dos candidatos de mesclagem da região de previsão restantes podem ser diminuídos em 1. Além disso, o índice do candidato de mesclagem da região de previsão HmvpCand [n + 1] derivado do bloco atual pode ser definido para um valor máximo (n no exemplo mostrado na Figura 18).
[0223] Quando um candidato de mesclagem da região de previsão igual ao candidato de mesclagem da região de previsão derivado com base no bloco atual é anteriormente armazenado (S1705), o candidato de mesclagem da região de previsão derivado com base no bloco atual não pode ser adicionado ao movimento da região de previsão lista de informações (S1709).
[0224] Alternativamente, conforme o candidato a mesclagem da região de previsão derivado com base no bloco atual é adicionado à lista de informações de movimento da região de previsão, um candidato a mesclagem da região de previsão armazenado anteriormente que é o mesmo que o candidato a mesclagem da região de previsão pode ser removido. Nesse caso, é obtido um efeito igual ao da atualização recente do índice do candidato a mesclagem da região de previsão armazenado anteriormente.
[0225] A Figura 19 é uma vista que mostra um exemplo em que um índice de um candidato de mesclagem da região de previsão armazenado anteriormente é atualizado.
[0226] Quando o índice de um candidato de mesclagem de interprevisão armazenado anteriormente mvCand que é o mesmo que o candidato de mesclagem da região de previsão mvCand derivado com base no bloco atual é hIdx, o candidato de mesclagem de interprevisão armazenado anteriormente é excluído e os índices de candidatos de mesclagem de interprevisão com um índice maior do que hIdx podem ser diminuídos em 1. Por exemplo, no exemplo mostrado na Figura 19, é mostrado que HmvpCand [2] o mesmo que mvCand é excluído da lista de informações de movimento da região de previsão HvmpCandList, e os índices de HmvpCand [3] para HmvpCand [n] são diminuídos em 1.
[0227] Além disso, o candidato a mesclagem da região de previsão mvCand derivado com base no bloco atual pode ser adicionado ao final da lista de informações de movimento da região de previsão.
[0228] Alternativamente, o índice atribuído ao candidato a mesclagem da região de previsão armazenado anteriormente que é o mesmo que o candidato a mesclagem da região de previsão derivado com base no bloco atual pode ser atualizado. Por exemplo, o índice do candidato a mesclagem da região de previsão armazenado anteriormente pode ser alterado para um valor mínimo ou máximo.
[0229] Pode ser configurado para não adicionar informações de movimento de blocos incluídos em uma região predeterminada para a lista de informações de movimento da região de previsão. Por exemplo, um candidato a mesclagem da região de previsão derivado com base nas informações de movimento de um bloco incluído na área de processamento de mesclagem não pode ser adicionado à lista de informações de movimento da região de previsão. Uma vez que uma ordem de codificação/decodificação não é definida para os blocos incluídos na área de processamento de mesclagem, é inadequado usar informações de movimento de qualquer um dentre os blocos para interprevisão de outro bloco. Por conseguinte, os candidatos a mesclagem da região de previsão derivados com base nos blocos incluídos na área de processamento de mesclagem não podem ser adicionados à lista de informações de movimento da região de previsão.
[0230] Alternativamente, pode ser configurado para não adicionar informações de movimento de um bloco menor do que um tamanho predefinido à lista de informações de movimento da região de previsão. Por exemplo, um candidato a mesclagem da região de previsão derivado com base nas informações de movimento de um bloco de codificação com uma largura ou altura menor que 4 ou 8 ou informações de movimento de um bloco de codificação com um tamanho de 4 x 4 não podem ser adicionadas ao movimento da região de previsão lista de informações.
[0231] Quando a previsão de compensação de movimento é realizada pela unidade de sub-bloco, um candidato a mesclagem da região de previsão pode ser derivado com base nas informações de movimento de um sub-bloco representativo entre uma pluralidade de sub-blocos incluídos no bloco atual. Por exemplo, quando um candidato a mesclagem de sub-bloco é usado para o bloco atual, um candidato a mesclagem da região de previsão pode ser derivado com base nas informações de movimento de um sub-bloco representativo entre os sub-blocos.
[0232] Os vetores de movimento dos sub-blocos podem ser derivados na seguinte ordem. Primeiro, qualquer um dentre os candidatos a mesclagem incluídos na lista de candidatos a mesclagem do bloco atual é selecionado e um vetor de deslocamento inicial (shVector) pode ser derivado com base no vetor de movimento do candidato a mesclagem selecionado. Em seguida, um sub-bloco de deslocamento, em que a posição da amostra de referência é (xColSb, yColSb), pode ser derivado conforme o vetor de deslocamento inicial é adicionado na posição (xSb, ySb) da amostra de referência (por exemplo, o canto superior esquerdo amostra ou a amostra no centro) de cada sub-bloco no bloco de codificação. A Equação 4 mostra uma equação para derivar um sub-bloco de deslocamento. 【EQUAÇÃO 4】 , = + ℎ 0! ≫ 4, + ℎ 1! ≫ 4
[0233] Então, o vetor de movimento de um bloco colocado correspondendo à posição central do sub-bloco incluindo (xColSb, yColSb) pode ser definido como o vetor de movimento do sub-bloco incluindo (xSb, ySb).
[0234] O sub-bloco representativo pode significar um sub-bloco incluindo a amostra superior esquerda ou a amostra no centro do bloco atual.
[0235] A Figura 20 é uma vista que mostra a posição de um sub-bloco representativo.
[0236] A Figura 20 (a) mostra um exemplo em que o sub-bloco posicionado no canto superior esquerdo do bloco atual é definido como o sub-bloco representativo, e a Figura 20 (b) mostra um exemplo em que o sub-bloco posicionado no centro do bloco atual é definido como o sub-bloco representativo. Quando a previsão de compensação de movimento é realizada por unidade de sub-bloco, um candidato de mesclagem da região de previsão do bloco atual pode ser derivado com base no vetor de movimento do sub-bloco, incluindo a amostra superior esquerda do bloco atual ou o sub-bloco incluindo a amostra no centro do bloco atual.
[0237] Pode ser determinado se deve usar o bloco atual como um candidato a mesclagem da região de previsão, com base no modo de interprevisão do bloco atual. Por exemplo, um bloco codificado/decodificado com base em um modelo de movimento afim pode ser definido como indisponível como um candidato a mesclagem da região de previsão. Por conseguinte, embora o bloco atual seja codificado/decodificado por interprevisão, quando o modo de interprevisão do bloco atual é o modo de previsão afim, a lista de informações de movimento de interprevisão pode não ser atualizada com base no bloco atual.
[0238] Alternativamente, o candidato a mesclagem da região de previsão pode ser derivado com base em pelo menos um vetor de sub-bloco entre os sub-blocos incluídos no bloco codificado/decodificado com base no modelo de movimento afim. Por exemplo, o candidato a mesclagem da região de previsão pode ser derivado usando um sub-bloco posicionado no canto superior esquerdo, um sub-bloco posicionado no centro ou um sub-bloco posicionado no lado superior direito do bloco atual. Alternativamente, um valor médio de vetores de sub-bloco de uma pluralidade de sub-blocos pode ser definido como o vetor de movimento do candidato a mesclagem da região de previsão.
[0239] Alternativamente, o candidato de mesclagem da região de previsão pode ser derivado com base em um valor médio de vetores de sementes afins do bloco codificado/decodificado com base no modelo de movimento afim. Por exemplo, uma média de pelo menos um dentre o primeiro vetor de semente afim, o segundo vetor de semente afim e o terceiro vetor de semente afim do bloco atual pode ser definido como o vetor de movimento do candidato a mesclagem da região de previsão.
[0240] Alternativamente, uma lista de informações de movimento da região de previsão pode ser configurada para cada modo de interprevisão. Por exemplo, pelo menos uma entre uma lista de informações de movimento da região de previsão para um bloco codificado/decodificado por cópia intrabloco, uma lista de informações de movimento da região de previsão para um bloco codificado/decodificado com base em um modelo de movimento translacional e uma lista de informações de movimento da região de previsão para um bloco codificado/decodificado com base em um modelo de movimento afim pode ser definida. De acordo com o modo de interprevisão do bloco atual, qualquer uma entre uma pluralidade de listas de informações de movimento da região de previsão pode ser selecionada.
[0241] A Figura 21 é uma vista que mostra um exemplo em que uma lista de informações de movimento de região de previsão é gerada para cada modo de interprevisão.
[0242] Quando um bloco é codificado/decodificado com base em um modelo de movimento não afim, um candidato a mesclagem da região de previsão mvCand derivado com base no bloco pode ser adicionado a uma lista de informações de movimento não afim de região de previsão HmvpCandList. Por outro lado, quando um bloco é codificado/decodificado com base em um modelo de movimento afim, um candidato a mesclagem da região de previsão mvAfCand derivado com base no bloco pode ser adicionado a uma lista de informações de movimento afim de região de previsão HmvpAfCandList.
[0243] Vetores de sementes afins de um bloco codificado/decodificado com base no modelo de movimento afim podem ser armazenados em um candidato a mesclagem da região de previsão derivado do bloco. Por conseguinte, o candidato a mesclagem da região de previsão pode ser usado como um candidato a mesclagem para derivar o vetor de semente afim do bloco atual.
[0244] Além da lista de informações de movimento da região de previsão descrita acima, uma lista de informações de movimento da região de previsão adicional pode ser definida. Além da lista de informações de movimento da região de previsão descrita acima (doravante, denominada como uma primeira lista de informações de movimento da região de previsão), uma lista de informações de movimento de longo prazo (doravante, denominada como uma segunda lista de informações de movimento da região de previsão) pode ser definida. Aqui, a lista de informações de movimento de longo prazo inclui candidatos de mesclagem de longo prazo.
[0245] Quando a primeira lista de informações de movimento da região de previsão e a segunda lista de informações de movimento da região de previsão estão vazias, primeiro, os candidatos de mesclagem da região de previsão podem ser adicionados à segunda lista de informações de movimento da região de previsão. Somente após o número de candidatos de mesclagem da região de previsão disponíveis atingir o número máximo na segunda lista de informações de movimento da região de previsão, os candidatos de mesclagem da região de previsão podem ser adicionados à primeira lista de informações de movimento da região de previsão.
[0246] Alternativamente, um candidato a mesclagem de interprevisão pode ser adicionado à segunda lista de informações de movimento da região de previsão e à primeira lista de informações de movimento da região de previsão.
[0247] Neste ponto, a segunda lista de informações de movimento da região de previsão, cuja configuração foi concluída, pode não ser mais atualizada. Alternativamente, quando a região decodificada é maior ou igual a uma proporção predeterminada da fatia, a segunda lista de informações de movimento da região de previsão pode ser atualizada. Alternativamente, a segunda lista de informações de movimento da região de previsão pode ser atualizada para cada N linhas de unidade de árvore de codificação.
[0248] Por outro lado, a primeira lista de informações de movimento da região de previsão pode ser atualizada sempre que um bloco codificado/decodificado por interprevisão é gerado. No entanto, pode ser configurado para não usar o candidato de mesclagem da região de previsão adicionado à segunda lista de informações de movimento da região de previsão, para atualizar a primeira lista de informações de movimento da região de previsão.
[0249] As informações para selecionar qualquer um dentre a primeira lista de informações de movimento da região de previsão e a segunda lista de informações de movimento da região de previsão podem ser sinalizadas através de um fluxo de bits.
Quando o número de candidatos a mesclagem incluídos na lista de candidatos a mesclagem for menor do que um valor limítrofe, os candidatos a mesclagem incluídos na lista de informações de movimento da região de previsão indicada pelas informações podem ser adicionados à lista de candidatos a mesclagem.
[0250] Alternativamente, uma lista de informações de movimento da região de previsão pode ser selecionada com base no tamanho e forma do bloco atual, modo de interprevisão, se a previsão bidirecional está habilitada, se o refinamento do vetor de movimento está habilitado ou se o particionamento triangular está habilitado.
[0251] Alternativamente, embora um candidato de mesclagem da região de previsão incluído na lista de informações de movimento de primeira região de previsão seja adicionado, quando o número de candidatos de mesclagem incluídos na lista de candidatos de mesclagem for menor do que o número máximo de mesclagens, os candidatos de mesclagem da região de previsão incluídos na segunda lista de informações de movimento da região de previsão pode ser adicionada à lista de candidato de mesclagem.
[0252] A Figura 22 é uma vista que mostra um exemplo em que um candidato de mesclagem da região de previsão incluído em uma lista de informações de movimento a longo prazo é adicionado a uma lista de candidato de mesclagem.
[0253] Quando o número de candidatos de mesclagem incluído na lista de candidato de mesclagem é menor do que o número máximo, os candidatos a mesclagem da região de previsão incluídos na primeira lista de informações de movimento de região de previsão HmvpCandList podem ser adicionados à lista de candidatos a mesclagem. Quando o número de candidatos de mesclagem incluídos na lista de candidatos de mesclagem for menor do que o número máximo, embora os candidatos de mesclagem da região de previsão incluídos na primeira lista de informações de movimento da região de previsão sejam adicionados à lista de candidatos de mesclagem, os candidatos de mesclagem da região de previsão incluídos na lista de informações de movimento de longo prazo HmvpLTCandList pode ser adicionada à lista de candidatos de mesclagem.
[0254] A Tabela 2 mostra um processo de adicionar os candidatos de mesclagem da região de previsão incluídos na lista de informações de movimento a longo prazo à lista de candidato de mesclagem. 【TABELA 2】 Para cada candidato em HMVPCandList com índice HMVPLTIdx =
1.. numHMVPLTCand, as seguintes etapas ordenadas são repetidas até combStop ser igual a verdadeiro - sameMotion é definido como FALSE - Se hmvpStop é igual a FALSE e numCurrMergecand é menor que (MaxNumMergeCand-1), hmvpLT é definido como TRUE - Se HMVPLTCandList[NumLTHmvp-HMVPLTIdx] tiver os mesmos vetores de movimento e os mesmos índices de referência com qualquer mergeCandList [i] com I sendo 0 .. numOrigMergeCand-1 e HasBeenPruned [i] igual a falso, sameMotion é definido como verdadeiro - Se sameMotion for igual a falso, mergeCandList[numCurrMergeCand++] é definido como HMVPLTCandList[NumLTHmvp-HMVPLTIdx] - Se numCurrMergeCand for igual a (MaxNumMergeCand-1), hmvpLTStop é definido como TRUE
[0255] O candidato a mesclagem da região de previsão pode ser configurado para incluir informações adicionais, além de informações de movimento. Por exemplo, para o candidato a mesclagem da região de previsão, um tamanho, uma forma ou informações de particionamento de um bloco podem ser armazenados adicionalmente. Quando a lista de candidatos de mesclagem do bloco atual é construída, apenas os candidatos de mesclagem de interprevisão tendo um tamanho, uma forma ou informações de particionamento iguais ou semelhantes àquelas do bloco atual são usados entre os candidatos de mesclagem de interprevisão, ou candidatos a mesclagem de interprevisão com tamanho, forma ou informações de particionamento iguais ou semelhantes aos do bloco atual podem ser adicionados à lista de candidatos a mesclagem em primeiro lugar.
[0256] Alternativamente, uma lista de informações de movimento da região de previsão pode ser gerada para cada uma das informações de tamanho, forma ou particionamento de um bloco. Entre a pluralidade de listas de informações de movimento da região de previsão, uma lista de candidatos de mesclagem do bloco atual pode ser gerada usando uma lista de informações de movimento da região de previsão correspondente à forma, tamanho ou informação de particionamento do bloco atual.
[0257] Quando o número de candidatos de mesclagem incluídos na lista de candidatos de mesclagem do bloco atual é menor do que o valor limítrofe, os candidatos de mesclagem da região de previsão incluídos na lista de informações de movimento de região de previsão podem ser adicionados à lista de candidatos de mesclagem. O processo de adição é executado em ordem crescente ou decrescente com base no índice. Por exemplo, um candidato a mesclagem da região de previsão com o maior índice pode ser adicionado primeiro à lista de candidatos a mesclagem.
[0258] Quando for desejado adicionar um candidato a mesclagem da região de previsão incluído na lista de informações de movimento da região de previsão à lista de candidatos a mesclagem, uma verificação de redundância pode ser realizada entre o candidato a mesclagem da região de previsão e os candidatos a mesclagem anteriormente armazenados no candidato a mesclagem Lista.
[0259] Por exemplo, a Tabela 3 mostra um processo no qual um candidato a mesclagem da região de previsão é adicionado à lista de candidatos a mesclagem. 【TABELA 3】 Para cada candidato em HMVPCandList com índice HMVPIdx = 1 .. numCheckedHMVPCand, as seguintes etapas ordenadas são repetidas até combStop ser igual a verdadeiro - sameMotion é definido como falso - Se HMVPCandList[NumHmvp-HMVPIdx] tiver os mesmos vetores de movimento e os mesmos índices de referência com qualquer mergeCandList [i] com I sendo 0 .. numOrigMergeCand-1 e HasBeenPruned [i] igual a falso, sameMotion é definido como verdadeiro - Se sameMotion é igual a falso, mergeCandList[numCurrMergeCand++] é definido como HMVPCandList[NumHmvp-HMVPIdx] - Se numCurrMergeCand é igual a (MaxNumMergeCand-1), hmvpStop é definido como TRUE
[0260] A verificação de redundância pode ser realizada apenas em alguns dos candidatos a mesclagem da região de previsão incluídos na lista de informações de movimento da região de previsão. Por exemplo, a verificação de redundância pode ser realizada apenas em candidatos de mesclagem da região de previsão com um índice maior que um valor limítrofe ou menor que um valor limítrofe. Alternativamente, a verificação de redundância pode ser executada apenas em N candidatos a mesclagem com o maior índice ou N candidatos a mesclagem com o menor índice.
[0261] Alternativamente, a verificação de redundância pode ser realizada apenas em alguns dos candidatos a mesclagem anteriormente armazenados na lista de candidatos a mesclagem. Por exemplo, a verificação de redundância pode ser realizada apenas em um candidato a mesclagem com um índice maior que um valor limítrofe ou menor que um valor limítrofe, ou em um candidato a mesclagem derivado de um bloco em uma posição específica. Aqui, a posição específica pode incluir pelo menos um dentre um bloco vizinho esquerdo, um bloco vizinho superior, um bloco vizinho superior direito e um bloco vizinho inferior esquerdo do bloco atual.
[0262] A Figura 23 é uma vista que mostra um exemplo em que uma verificação de redundância é realizada apenas em alguns dos candidatos de mesclagem.
[0263] Quando se deseja adicionar o candidato a mesclagem da região de previsão HmvpCand [j] à lista de candidatos a mesclagem, uma verificação de redundância pode ser realizada no candidato a mesclagem da região de previsão com dois candidatos a mesclagem mergeCandList [NumMerge-2] e mergeCandList [NumMerge -1] tendo os maiores índices. Aqui, NumMerge pode representar o número de candidatos de mesclagem espacial e candidatos de mesclagem temporal que estão disponíveis.
[0264] Ao contrário do exemplo mostrado no desenho, quando se deseja adicionar um candidato a mesclagem da região de previsão HmvpCand [j] à lista de candidatos a mesclagem, uma verificação de redundância pode ser realizada no candidato a mesclagem da região de previsão com até dois candidatos a mesclagem tendo o menor índice. Por exemplo, é possível verificar se mergeCandList [0] e mergeCandList [1] são iguais a HmvpCand [j].
[0265] Alternativamente, uma verificação de redundância pode ser realizada apenas em candidatos a mesclagem derivados em uma posição específica. Por exemplo, a verificação de redundância pode ser realizada em pelo menos um dentre um candidato a mesclagem derivado de um bloco vizinho posicionado no lado esquerdo do bloco atual e um candidato a mesclagem derivado de um bloco vizinho posicionado na parte superior do bloco atual. Quando um candidato a mesclagem derivado em uma posição específica não existe na lista de candidatos a mesclagem, um candidato a mesclagem da região de previsão pode ser adicionado à lista de candidatos a mesclagem sem ter uma verificação de redundância.
[0266] Quando se deseja adicionar o candidato a mesclagem da região de previsão HmvpCand [j] à lista de candidatos a mesclagem, uma verificação de redundância pode ser realizada no candidato a mesclagem da região de previsão com dois candidatos a mesclagem mergeCandList [NumMerge-2] e mergeCandList [NumMerge -1] tendo os maiores índices. Aqui, NumMerge pode representar o número de candidatos de mesclagem espacial e candidatos de mesclagem temporal que estão disponíveis.
[0267] A verificação de redundância com o candidato a mesclagem pode ser realizada apenas em alguns dos candidatos a mesclagem da região de previsão. Por exemplo, a verificação de redundância pode ser realizada apenas em N candidatos de mesclagem da região de previsão tendo um grande índice ou N candidatos de mesclagem da região de previsão tendo um pequeno índice entre os candidatos de mesclagem da região de previsão incluídos na lista de informações de movimento da região de previsão. Por exemplo, a verificação de redundância pode ser realizada apenas em candidatos a mesclagem da região de previsão dos quais uma diferença entre o número de candidatos a mesclagem da região de previsão incluídos na lista de informações de movimento da região de previsão e um índice é menor ou igual a um valor limítrofe. Quando o valor limítrofe é 2, a verificação de redundância pode ser realizada apenas em três candidatos de mesclagem da região de previsão tendo o maior valor de índice entre os candidatos de mesclagem da região de previsão incluídos na lista de informações de movimento da região de previsão. A verificação de redundância pode ser omitida para candidatos de mesclagem da região de previsão, excluindo os três candidatos de mesclagem da região de previsão. Quando a verificação de redundância é omitida, um candidato a mesclagem da região de previsão pode ser adicionado à lista de candidatos a mesclagem, independentemente de o candidato a mesclagem da região de previsão ter informações de movimento iguais às do candidato a mesclagem.
[0268] Ao contrário, pode ser definido para realizar a verificação de redundância apenas em candidatos de mesclagem da região de previsão dos quais uma diferença entre o número de candidatos de mesclagem da região de previsão incluídos na lista de informações de movimento de região de previsão e um índice é igual ou maior que um valor limítrofe.
[0269] O número de candidatos de mesclagem da região de previsão nos quais a verificação de redundância é realizada pode ser predefinido no codificador e no decodificador. Por exemplo, o valor limítrofe pode ser um número inteiro, como 0, 1 ou 2.
[0270] Alternativamente, o valor limítrofe pode ser determinado com base em pelo menos um dentre o número de candidatos de mesclagem incluídos na lista de candidato de mesclagem e o número de candidatos de mesclagem da região de previsão incluído na lista de informações de movimento de região de previsão.
[0271] Quando um candidato a mesclagem igual ao primeiro candidato a mesclagem da região de previsão é encontrado e uma verificação de redundância é realizada no segundo candidato a mesclagem da região de previsão, a verificação de redundância com um candidato a mesclagem igual ao primeiro candidato a mesclagem da região de previsão pode ser omitido.
[0272] A Figura 24 é uma vista que mostra um exemplo em que uma verificação de redundância é omitida para um candidato de mesclagem específico.
[0273] Quando se deseja adicionar um candidato a mesclagem da região de previsão HmvpCand [i] tendo índice i à lista de candidatos a mesclagem, uma verificação de redundância é realizada entre o candidato a mesclagem da região de previsão e os candidatos a mesclagem anteriormente armazenados na lista de candidatos a mesclagem. Neste ponto, quando um candidato a mesclagem mergeCandList [j] o mesmo que o candidato a mesclagem da região de previsão HmvpCand [i] é encontrado, a verificação de redundância pode ser realizada entre o candidato a mesclagem da região de previsão HmvpCand [i-1] com índice i-1 e os candidatos de mesclagem sem adicionar o candidato de mesclagem da região de previsão HmvpCand [i] à lista de candidatos de mesclagem. Neste ponto, a verificação de redundância entre o candidato a mesclagem da região de previsão HmvpCand [i-1] e o candidato a mesclagem mergeCandList [j] pode ser omitida.
[0274] Por exemplo, no exemplo mostrado na Figura 24, é determinado que HmvpCand [i] e mergeCandList [2] são iguais. Consequentemente, HmvpCand [i] não é adicionado à lista de candidatos a mesclagem e uma verificação de redundância pode ser realizada em HmvpCand [i-1]. Neste ponto, a verificação de redundância entre HvmpCand [i-1] e mergeCandList [2] pode ser omitida.
[0275] Quando o número de candidatos a mesclagem incluídos na lista de candidatos a mesclagem do bloco atual é menor do que o valor limítrofe, pelo menos um dentre um candidato a mesclagem par a par e um candidato a mesclagem zero pode ser incluído adicionalmente, além da previsão candidato a mesclagem da região. O candidato a mesclagem par a par significa um candidato a mesclagem com um valor médio de vetores de movimento de dois ou mais candidatos a mesclagem como um vetor de movimento e o candidato a mesclagem zero significa um candidato a mesclagem com um vetor de movimento de 0.
[0276] Um candidato a mesclagem pode ser adicionado à lista de candidatos a mesclagem do bloco atual na seguinte ordem.
[0277] Candidato de mesclagem espacial - Candidato de mesclagem temporal - Candidato de mesclagem da região de previsão - (candidato de mesclagem afim de região de previsão) - Candidato de mesclagem par a par - Candidato de mesclagem zero
[0278] O candidato a mesclagem espacial significa um candidato a mesclagem derivado de pelo menos um dentre um bloco vizinho e um bloco não vizinho, e o candidato a mesclagem temporal significa um candidato a mesclagem derivado de uma imagem de referência anterior. O candidato de mesclagem afim da região de previsão representa um candidato de mesclagem da região de previsão derivado de um bloco codificado/decodificado com um modelo de movimento afim.
[0279] A lista de informações de movimento da região de previsão também pode ser usada no modo de previsão de vetor de movimento. Por exemplo, quando o número de candidatos de previsão de vetor de movimento incluídos em uma lista de candidatos de previsão de vetor de movimento do bloco atual é menor do que um valor limítrofe, um candidato de mesclagem da região de previsão incluído na lista de informações de movimento da região de previsão pode ser definido como um vetor de movimento candidato de previsão para o bloco atual. Especificamente, o vetor de movimento do candidato a mesclagem da região de previsão pode ser definido como um candidato de previsão de vetor de movimento.
[0280] Quando qualquer um dentre os candidatos de previsão de vetor de movimento incluídos na lista de candidatos de previsão de vetor de movimento do bloco atual é selecionado, o candidato selecionado pode ser definido como o preditor de vetor de movimento do bloco atual. Depois disso, após um coeficiente residual do vetor de movimento do bloco atual ser decodificado, um vetor de movimento do bloco atual pode ser obtido adicionando o preditor de vetor de movimento e o coeficiente residual do vetor de movimento.
[0281] A lista de candidatos de previsão de vetor de movimento do bloco atual pode ser configurada na seguinte ordem.
[0282] Candidato de previsão de vetor de movimento espacial - Candidato de previsão de vetor de movimento temporal - Candidato de mesclagem da região de interprevisão - (candidato de mesclagem afim de região de interprevisão) - Candidato de previsão de vetor de movimento zero.
[0283] O candidato de previsão de vetor de movimento espacial significa um candidato de previsão de vetor de movimento derivado de pelo menos um dentre um bloco vizinho e um bloco não vizinho, e o candidato de previsão de vetor de movimento temporal significa um candidato de previsão de vetor de movimento derivado de uma imagem de referência anterior. O candidato de mesclagem afim da região de previsão representa um candidato de previsão de vetor de movimento da região de previsão derivado de um bloco codificado/decodificado com o modelo de movimento afim. O candidato a previsão de vetor de movimento zero representa um candidato com um valor de vetor de movimento de 0.
[0284] Uma área de processamento de mesclagem com um tamanho maior que o de um bloco de codificação pode ser definida. Os blocos de codificação incluídos na área de processamento de mesclagem não são codificados/decodificados sequencialmente e podem ser processados em paralelo. Aqui, os blocos de codificação não são codificados/decodificados sequencialmente significa que uma ordem de codificação/decodificação não está definida. Por conseguinte, um processo de codificação/decodificação dos blocos incluídos na área de processamento de mesclagem pode ser processado de forma independente. Alternativamente, os blocos incluídos na área de processamento de mesclagem podem compartilhar candidatos a mesclagem. Aqui, os candidatos a mesclagem podem ser derivados com base na área de processamento de mesclagem.
[0285] De acordo com as características descritas acima, a área de processamento de mesclagem também pode ser denominada como uma região de processamento paralela, uma região de mesclagem compartilhada (SMR) ou uma região de estimativa de mesclagem (MER).
[0286] O candidato a mesclagem do bloco atual pode ser derivado com base no bloco de codificação. No entanto, quando o bloco atual é incluído em uma área de processamento de mesclagem de um tamanho maior do que o bloco atual, um bloco candidato incluído na área de processamento de mesclagem igual ao bloco atual pode ser definido como indisponível como um candidato a mesclagem.
[0287] A Figura 25 é uma vista que mostra um exemplo em que blocos candidatos incluídos na mesma área de processamento de mesclagem que o bloco atual estão configurados para não estarem disponíveis como um candidato a mesclagem.
[0288] No exemplo mostrado na Figura 25 (a), quando CU5 é codificado/decodificado, blocos incluindo amostras de referência adjacentes a CU5 podem ser definidos como blocos candidatos. Neste ponto, os blocos candidatos X3 e X4 incluídos na área de processamento de mesclagem da mesma forma que CU5 podem ser definidos como indisponíveis como um candidato de mesclagem de CU5. Por outro lado, os blocos candidatos X0, X1 e X2 que não estão incluídos na área de processamento de mesclagem da mesma forma que CU5 podem ser configurados para estar disponíveis como um candidato de mesclagem.
[0289] No exemplo mostrado na Figura 25(b), quando CU8 é codificado/decodificado, blocos incluindo amostras de referência adjacentes a CU8 podem ser definidos como blocos candidatos. Neste ponto, os blocos candidatos X6, X7 e X8 incluídos na área de processamento de mesclagem da mesma forma que CU8 podem ser definidos como indisponíveis como um candidato de mesclagem. Por outro lado, os blocos candidatos X5 e X9 que não estão incluídos na área de processamento de mesclagem da mesma forma que CU8 podem ser configurados para estarem disponíveis como um candidato de mesclagem.
[0290] A área de processamento de mesclagem pode ser uma forma quadrada ou não quadrada. As informações para determinar a área de processamento de mesclagem podem ser sinalizadas por meio de um fluxo de bits. As informações podem incluir pelo menos uma entre as informações que indicam a forma da área de processamento a mesclagem e informações que indicam o tamanho da área de processamento a mesclagem. Quando a área de processamento de mesclagem é uma forma não quadrada, pelo menos uma entre as informações que indicam o tamanho da área de processamento de mesclagem, as informações que indicam a largura e/ou altura da área de processamento de mesclagem e as informações que indicam uma proporção entre largura e altura de a área de processamento de mesclagem pode ser sinalizada por meio de um fluxo de bits.
[0291] O tamanho da área de processamento de mesclagem pode ser determinado com base em pelo menos uma entre as informações sinalizadas por meio de um fluxo de bits, uma resolução de imagem, um tamanho de fatia e um tamanho de bloco.
[0292] Quando a previsão de compensação de movimento é realizada em um bloco incluído na área de processamento de mesclagem, um candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco no qual a previsão de compensação de movimento foi realizada pode ser adicionado à lista de informações de movimento da região de previsão.
[0293] No entanto, no caso em que um candidato a mesclagem da região de previsão derivado de um bloco incluído na área de processamento de mesclagem é adicionado à lista de informações de movimento da região de previsão, quando outro bloco na área de processamento de mesclagem, que na verdade é codificado/decodificado após o bloco é codificado/decodificado, é codificado/decodificado, pode haver o caso de usar um candidato a mesclagem da região de previsão derivado do bloco. Ou seja, embora a dependência entre os blocos deva ser excluída quando os blocos incluídos na área de processamento de mesclagem são codificados/decodificados, pode haver um caso de realização de compensação de previsão de movimento usando informações de movimento de outro bloco incluído na área de processamento de mesclagem. De modo a resolver o problema, embora a codificação/decodificação de um bloco incluído na área de processamento de mesclagem seja concluída, as informações de movimento do bloco codificado/decodificado não podem ser adicionadas à lista de informações de movimento da região de previsão.
[0294] Alternativamente, quando a previsão de compensação de movimento é realizada nos blocos incluídos na área de processamento de mesclagem, os candidatos de mesclagem da região de previsão derivados dos blocos podem ser adicionados à lista de informações de movimento da região de previsão em uma ordem predefinida. Aqui, a ordem predefinida pode ser determinada de acordo com a ordem de varredura dos blocos de codificação na área de processamento a mesclagem ou na unidade de árvore de codificação. A ordem de varredura pode ser pelo menos uma entre varredura de varredura, varredura horizontal, varredura vertical e varredura em zigue-zague. Alternativamente, a ordem predefinida pode ser determinada com base nas informações de movimento de cada bloco ou no número de blocos com as mesmas informações de movimento.
[0295] Alternativamente, um candidato a mesclagem da região de previsão incluindo informações de movimento unidirecional pode ser adicionado à lista a mesclagem da região de previsão antes de um candidato a mesclagem da região de previsão incluindo informações de movimento bidirecional. Contrariamente, um candidato a mesclagem da região de previsão incluindo informação de movimento bidirecional pode ser adicionado à lista de candidatos a mesclagem da região de previsão antes de um candidato a mesclagem da região de previsão incluindo informações de movimento unidirecional.
[0296] Alternativamente, um candidato a mesclagem da região de previsão pode ser adicionado à lista de informações de movimento da região de previsão de acordo com uma ordem de alta frequência de uso ou baixa frequência de uso dentro da área de processamento a mesclagem ou unidade de árvore de codificação.
[0297] Quando o bloco atual está incluído na área de processamento de mesclagem e o número de candidatos de mesclagem incluídos na lista de candidatos de mesclagem do bloco atual é menor do que o número máximo, os candidatos de mesclagem da região de previsão incluídos na lista de informações de movimento da região de previsão podem ser adicionado à lista de candidatos a mesclagem. Neste ponto, pode ser configurado para não adicionar um candidato a mesclagem da região de previsão derivado de um bloco incluído em uma área de processamento de mesclagem igual ao bloco atual à lista de candidatos de mesclagem do bloco atual.
[0298] Alternativamente, quando o bloco atual está incluído na área de processamento de mesclagem, ele pode ser configurado para não usar os candidatos de mesclagem da região de previsão incluídos na lista de informações de movimento da região de previsão. Ou seja, embora o número de candidatos a mesclagem incluídos na lista de candidatos a mesclagem do bloco atual seja menor que o número máximo, os candidatos a mesclagem da região de previsão incluídos na lista de informações de movimento da região de previsão não podem ser adicionados à lista de candidatos a mesclagem.
[0299] Uma lista de informações de movimento da região de previsão para uma área de processamento de mesclagem ou uma unidade de árvore de codificação pode ser configurada. Esta lista de informações de movimento da região de previsão executa uma função de armazenamento temporário de informações de movimento de blocos incluídos na área de processamento a mesclagem. De modo a distinguir uma lista de informações de movimento da região de previsão geral da lista de informações de movimento da região de previsão para uma área de processamento de mesclagem ou uma unidade de árvore de codificação, a lista de informações de movimento da região de previsão para uma área de processamento de mesclagem ou uma unidade de árvore de codificação é denominada como um lista de informações temporárias de movimento. Além disso, um candidato a mesclagem da região de previsão armazenado na lista de informações de movimento temporário será denominado como um candidato a mesclagem temporária.
[0300] A Figura 26 é uma vista que mostra uma lista de informações de movimento temporária.
[0301] Uma lista temporária de informações de movimento para uma unidade de árvore de codificação ou uma área de processamento de mesclagem pode ser configurada. Quando a previsão de compensação de movimento foi realizada no bloco atual incluído na unidade de árvore de codificação ou na área de processamento de mesclagem, as informações de movimento do bloco não podem ser adicionadas à lista de informações de movimento de interprevisão HmvpCandList. Em vez disso, um candidato a mesclagem temporária derivado do bloco pode ser adicionado à lista de informações de movimento temporário HmvpMERCandList. Ou seja, o candidato a mesclagem temporária adicionado à lista de informações de movimento temporário não pode ser adicionado à lista de informações de movimento da região de previsão. Por conseguinte, a lista de informações de movimento da região de previsão pode não incluir candidatos de mesclagem da região de previsão derivados com base nas informações de movimento dos blocos incluídos na unidade de árvore de codificação ou na área de processamento de mesclagem.
[0302] O número máximo de candidatos a mesclagem que a lista de informações de movimento temporário pode incluir pode ser definido para ser o mesmo da lista de informações de movimento da região de previsão. Alternativamente, o número máximo de candidatos a mesclagem que a lista de informações de movimento temporário pode incluir pode ser determinado de acordo com o tamanho da unidade de árvore de codificação ou a área de processamento a mesclagem.
[0303] O bloco atual incluído na unidade de árvore de codificação ou a área de processamento de mesclagem pode ser configurado para não usar a lista de informações de movimento temporário para uma unidade de árvore de codificação correspondente ou uma área de processamento de mesclagem correspondente. Ou seja, quando o número de candidatos de mesclagem incluídos na lista de candidatos de mesclagem do bloco atual é menor do que um valor limítrofe, os candidatos de mesclagem da região de previsão incluídos na lista de informações de movimento de região de previsão são adicionados à lista de candidatos de mesclagem, e os candidatos a mesclagem temporária incluídos na lista de informações de movimento temporário não podem ser adicionados à lista de candidatos a mesclagem. Consequentemente, a informação de movimento de outros blocos incluídos na unidade de árvore de codificação ou na área de processamento a mesclagem igual ao bloco atual não pode ser usada para a previsão de compensação de movimento do bloco atual.
[0304] Quando a codificação/decodificação de todos os blocos incluídos na unidade de árvore de codificação ou a área de processamento de mesclagem é concluída, a lista de informações de movimento da região de previsão e a lista de informações de movimento temporárias podem ser mescladas.
[0305] A Figura 27 é uma vista que mostra um exemplo de mesclagem uma lista de informações de movimento de região de previsão e uma lista de informações de movimento temporária.
[0306] Quando a codificação/decodificação de todos os blocos incluídos na unidade de árvore de codificação ou a área de processamento a mesclagem é concluída, como mostrado no exemplo da Figura 27, a lista de informações de movimento da região de previsão pode ser atualizada com os candidatos de mesclagem temporária incluídos na lista de informações de movimento temporário.
[0307] Neste ponto, os candidatos de mesclagem temporária incluídos na lista de informações de movimento temporário podem ser adicionados à lista de informações de movimento da região de previsão na ordem dos candidatos de mesclagem temporária inseridos na lista de informações de movimento temporário (ou seja, em ordem crescente ou decrescente de valores de índice).
[0308] Como um outro exemplo, os candidatos de mesclagem temporária incluídos na lista de informações de movimento temporário podem ser adicionados à lista de informações de movimento da região de previsão em uma ordem predefinida.
[0309] Aqui, a ordem predefinida pode ser determinada de acordo com a ordem de varredura dos blocos de codificação na área de processamento a mesclagem ou na unidade de árvore de codificação. A ordem de varredura pode ser pelo menos uma entre varredura de varredura, varredura horizontal, varredura vertical e varredura em zigue-zague. Alternativamente, a ordem predefinida pode ser determinada com base nas informações de movimento de cada bloco ou no número de blocos com as mesmas informações de movimento.
[0310] Alternativamente, um candidato de mesclagem temporária incluindo informações de movimento unidirecional pode ser adicionado à lista de mesclagem da região de previsão antes de um candidato de mesclagem temporária incluindo informações de movimento bidirecional. Ao contrário, um candidato de mesclagem temporária incluindo informações de movimento bidirecional pode ser adicionado à lista de candidatos de mesclagem da região de previsão antes de um candidato de mesclagem temporária incluindo informações de movimento unidirecional.
[0311] Alternativamente, um candidato a mesclagem temporária pode ser adicionado à lista de informações de movimento da região de previsão de acordo com uma ordem de alta frequência de uso ou baixa frequência de uso dentro da área de processamento de mesclagem ou a unidade de árvore de codificação.
[0312] Quando um candidato a mesclagem temporária incluído na lista de informações de movimento temporário é adicionado à lista de informações de movimento da região de previsão, uma verificação de redundância pode ser realizada no candidato a mesclagem temporária. Por exemplo, quando um candidato de mesclagem da região de previsão igual ao candidato de mesclagem temporária incluído na lista de informações de movimento temporário é anteriormente armazenado na lista de informações de movimento de região de previsão, o candidato de mesclagem temporária não pode ser adicionado à lista de informações de movimento de região de previsão. Neste ponto, uma verificação de redundância pode ser realizada em alguns dos candidatos a mesclagem da região de previsão incluídos na lista de informações de movimento da região de previsão. Por exemplo, a verificação de redundância pode ser realizada em candidatos de mesclagem de interprevisão com um índice maior que um valor limítrofe ou menor que um valor limítrofe. Por exemplo, quando o candidato de mesclagem temporária é o mesmo que um candidato de mesclagem da região de previsão com um índice maior ou igual a um valor predefinido, o candidato de mesclagem temporária não pode ser adicionado à lista de informações de movimento da região de previsão.
[0313] Um candidato a mesclagem da região de previsão derivado de um bloco incluído em uma unidade de árvore de codificação ou uma área de processamento de mesclagem igual àquelas do bloco atual pode ser limitada para ser usada como um candidato a mesclagem do bloco atual. Para este fim, as informações de endereço de um bloco podem ser armazenadas adicionalmente para o candidato a mesclagem da região de previsão. As informações de endereço do bloco podem incluir uma entre a localização do bloco, o endereço do bloco, o índice do bloco, a localização da área de processamento de mesclagem incluindo o bloco, o endereço da área de processamento de mesclagem incluindo o bloco, o índice da área de processamento a mesclagem incluindo o bloco, a localização da região da árvore de codificação incluindo o bloco, o endereço da região da árvore de codificação incluindo o bloco e o índice da região da árvore de codificação incluindo o bloco.
[0314] As Figuras 28 e 29 são vistas que mostra um exemplo em que um candidato a mesclagem da região de codificação inclui informações de endereço de um bloco.
[0315] As informações de movimento de um bloco codificado por interprevisão podem ser armazenadas como informações de movimento de um candidato a mesclagem da região de codificação. Por exemplo, um vetor de movimento mv de um bloco pode ser armazenado como um vetor de movimento mvCand de um candidato a mesclagem da região de codificação e um índice de imagem de referência RefIdx de um bloco pode ser armazenado como um índice de imagem de referência RefIdxCand de um candidato a mesclagem da região de codificação.
[0316] Adicionalmente, as informações de endereço de um bloco podem ser ainda armazenadas para o candidato a mesclagem da região de codificação. Por exemplo, o endereço BLK_ADR de um bloco, o endereço MER_ADDR de uma área de processamento a mesclagem incluindo o bloco ou o endereço CTU_ADDR de uma unidade de árvore de codificação incluindo o bloco pode ser adicionalmente armazenado.
[0317] No exemplo mostrado na Figura 28, é mostrado que o vetor de movimento mvCand, o índice de imagem de referência RefIdxCand e o endereço MER_ADDR da área de processamento a mesclagem são armazenados para o candidato a mesclagem da região de codificação.
[0318] Uma pluralidade de informações de endereço pode ser armazenada para o candidato a mesclagem da região de codificação. No exemplo mostrado na Figura 29, é mostrado que o vetor de movimento mvCand, o índice de imagem de referência RefIdxCand, o endereço MER_ADDR da área de processamento a mesclagem e o endereço CTU_ADDR da unidade de árvore de codificação são armazenados para o candidato a mesclagem da região de codificação.
[0319] Se o candidato a mesclagem da região de codificação pode ser usado como um candidato a mesclagem do bloco atual pode ser determinado comparando o endereço do bloco atual com o endereço do candidato a mesclagem da região de codificação. Por exemplo, quando o índice da área de processamento de mesclagem incluindo o bloco atual e o índice da área de processamento de mesclagem indicada pelo candidato a mesclagem da região de codificação é o mesmo, o candidato a mesclagem da região de codificação pode ser definido como indisponível como um candidato de mesclagem de o bloco atual. Alternativamente, quando o índice da região da árvore de codificação incluindo o bloco atual é o mesmo que o índice da região da árvore de codificação indicada pelo candidato a mesclagem da região de codificação, o candidato a mesclagem da região de codificação pode ser definido como indisponível como um candidato a mesclagem do bloco atual. Ou seja, um candidato a mesclagem da região de codificação derivado de um bloco incluído em uma área de processamento de mesclagem ou uma unidade de árvore de codificação igual àquelas do bloco atual, ou um candidato a mesclagem da região de codificação derivado de um bloco adjacente ao bloco atual pode não ser adicionado à lista de candidatos de mesclagem do bloco atual.
[0320] As Figuras 30 e 31 são vistas que mostram um exemplo em que um candidato a mesclagem da região de codificação com informações de endereço iguais às do bloco atual é definido como indisponível como um candidato a mesclagem do bloco atual.
[0321] Quando o índice de uma área de processamento de mesclagem à qual o bloco atual pertence é 2, um candidato a mesclagem da região de codificação derivado de um bloco pertencente à área de processamento de mesclagem do índice 2 pode ser definido como indisponível como um candidato de mesclagem do bloco atual. No exemplo mostrado na Figura 30, uma vez que a informação de endereço do candidato a mesclagem da região de codificação HvmpCand [5] do índice 5 indica o índice 2, o candidato a mesclagem da região de codificação pode ser definido como indisponível como um candidato a mesclagem do bloco atual.
[0322] Quando o índice da unidade de árvore de codificação à qual o bloco atual pertence é 2 e o índice da área de processamento de mesclagem à qual o bloco atual pertence é 1, um candidato a mesclagem da região de codificação derivado de um bloco incluído em uma árvore de codificação unidade e uma área de processamento de mesclagem igual àquelas do bloco atual podem ser configuradas como indisponíveis como um candidato a mesclagem do bloco atual. No exemplo mostrado na Figura 31, no caso do candidato a mesclagem da região de codificação HvmpCand [5], cujo índice é 5, uma vez que o índice da unidade de árvore de codificação indica 2 e o índice da área de processamento de mesclagem indica 1, o candidato a mesclagem da região de codificação pode ser definido como indisponível como um candidato a mesclagem do bloco atual.
[0323] Como outro exemplo, quando a diferença entre as informações de endereço indicadas pelo candidato a mesclagem da região de codificação e as informações de endereço do bloco atual é maior ou igual a um valor limítrofe, o candidato a mesclagem da região de codificação pode ser definido como indisponível. Por exemplo, quando a diferença entre o endereço ou índice da unidade da árvore de codificação indicada pelo candidato a mesclagem da região de codificação e o endereço ou índice da unidade da árvore de codificação à qual o bloco atual pertence é maior ou igual a um valor limítrofe, o candidato a mesclagem da região de codificação pode ser definido como indisponível.
[0324] Alternativamente, como outro exemplo, quando a diferença entre as informações de endereço indicadas pelo candidato a mesclagem da região de codificação e as informações de endereço do bloco atual é menor ou igual a um valor limítrofe, o candidato a mesclagem da região de codificação pode ser definido como indisponível. Por exemplo, quando a diferença entre o endereço ou índice indicado pelo candidato a mesclagem da região de codificação e o endereço ou índice do bloco atual é menor ou igual a um valor limítrofe, o candidato a mesclagem da região de codificação pode ser definido como indisponível. Ou seja, um candidato a mesclagem da região de codificação derivado de um bloco adjacente ao bloco atual pode ser definido como indisponível como um candidato a mesclagem do bloco atual.
[0325] Quando um candidato a mesclagem da região de codificação derivado do bloco atual deve ser adicionado a uma lista de informações de movimento de região de codificação, uma verificação de redundância pode ser realizada. Neste ponto, a verificação de redundância pode determinar se as informações de movimento e as informações de endereço do candidato a mesclagem da região de codificação derivado do bloco atual são as mesmas de um candidato a mesclagem da região de codificação anteriormente armazenado na lista de informações de movimento da região de codificação. Por exemplo, quando um candidato a mesclagem da região de codificação tendo um vetor de movimento, um índice de imagem de referência e informações de endereço iguais às do candidato a mesclagem da região de codificação derivado do bloco atual é armazenado anteriormente, o candidato de mesclagem da região de codificação derivado do atual bloco não pode ser adicionado à lista de informações de movimento da região de codificação. Alternativamente, quando um candidato a mesclagem da região de codificação tendo um vetor de movimento, um índice de imagem de referência e informações de endereço iguais às do candidato a mesclagem da região de codificação derivado do bloco atual é armazenado anteriormente, o candidato a mesclagem da região de codificação anteriormente armazenado pode ser excluído, e o candidato a mesclagem da região de codificação derivado do bloco atual pode ser adicionado à lista de informações de movimento da região de codificação. Neste ponto, um índice maior ou um índice menor pode ser atribuído ao candidato a mesclagem da região de codificação derivado do bloco atual.
[0326] Alternativamente, pode ser definido para não considerar se as informações de endereço são as mesmas quando a verificação de redundância é realizada. Por exemplo, embora as informações de endereço de um candidato a mesclagem da região de codificação derivado do bloco atual sejam diferentes das informações de endereço de um candidato a mesclagem da região de codificação anteriormente armazenado na lista de informações de movimento da região de codificação, quando as informações de movimento de ambos os candidatos de mesclagem da região de codificação é o mesmo, o candidato a mesclagem da região de codificação derivado do bloco atual não pode ser adicionado à lista de informações de movimento da região de codificação. Alternativamente, quando, embora as informações de endereço do candidato a mesclagem da região de codificação derivadas do bloco atual sejam as mesmas que as informações de movimento (→ informações de endereço) do candidato a mesclagem da região de codificação anteriormente armazenado na lista de informações de movimento da região de codificação, as informações de endereço (→ informação de movimento) é diferente, o candidato a mesclagem da região de codificação anteriormente armazenado pode ser excluído e o candidato a mesclagem da região de codificação derivado do bloco atual pode ser adicionado à lista de informações de movimento da região de codificação. Neste ponto, um índice maior ou um índice menor pode ser atribuído ao candidato a mesclagem da região de codificação derivado do bloco atual.
[0327] A intraprevisão é para prever um bloco atual usando amostras reconstruídas que foram codificadas/decodificadas em torno do bloco atual. Neste ponto, as amostras reconstruídas antes de um filtro in-loop ser aplicado podem ser usadas para intraprevisão do bloco atual.
[0328] A técnica de intraprevisão inclui intraprevisão baseada em matriz e intraprevisão geral considerando a direcionalidade em relação às amostras reconstruídas vizinhas. As informações que indicam a técnica de intraprevisão do bloco atual podem ser sinalizadas por meio de um fluxo de bits. As informações podem ser um sinalizador de 1 bit. Alternativamente, a técnica de intraprevisão do bloco atual pode ser determinada com base em pelo menos um dentre a localização, o tamanho e a forma do bloco atual ou com base em uma técnica de intraprevisão de um bloco vizinho. Por exemplo, quando o bloco atual existe através de um limite de imagem, ele pode ser configurado para não aplicar a intraprevisão- previsão baseada em matriz ao bloco atual..
[0329] A intraprevisão com base em matriz de intraprevisão é um método de aquisição de um bloco de previsão do bloco atual por um codificador e um decodificador com base em um produto de matriz entre uma matriz anteriormente armazenada e amostras reconstruídas em torno do bloco atual. As informações para especificar qualquer uma entre uma pluralidade de matrizes armazenadas anteriormente podem ser sinalizadas por meio de um fluxo de bits. O decodificador pode determinar uma matriz para intraprevisão do bloco atual com base nas informações e no tamanho do bloco atual.
[0330] A intraprevisão geral é um método de aquisição de um bloco de previsão para o bloco atual com base em um modo de intraprevisão não angular ou um modo de intraprevisão angular.
[0331] Um vídeo residual derivado pode ser derivado subtraindo um vídeo de previsão de um vídeo original. Nesse ponto, quando o vídeo residual é alterado para o domínio da frequência, a qualidade subjetiva do vídeo não é significativamente reduzida, embora os componentes de alta frequência entre os componentes de frequência sejam removidos. Consequentemente, quando os valores dos componentes de alta frequência são convertidos para pequenos ou os valores dos componentes de alta frequência são definidos como 0, há um efeito de aumento da eficiência de compressão sem gerar distorção visual significativa. Ao refletir esta característica, o bloco atual pode ser transformado para decompor um vídeo residual em componentes de frequência bidimensionais. A transformada pode ser realizada usando uma técnica de transformada, como Transformada de Cosseno Discreta (DCT) ou Transformada Seno Discreta (DST).
[0332] Depois que o bloco atual é transformado usando DCT ou DST, o bloco atual transformado pode ser transformado novamente. Neste ponto, a transformada baseada em DCT ou DST pode ser definida como uma primeira transformada,
e a transformação novamente de um bloco ao qual a primeira transformada é aplicada pode ser definida como uma segunda transformada.
[0333] A primeira transformada pode ser realizada usando qualquer um dentre uma pluralidade de candidatos a núcleo de transformada. Por exemplo, a primeira transformada pode ser realizada usando qualquer um dentre DCT2, DCT8 ou DCT7.
[0334] Diferentes núcleos de transformada podem ser usados para a direção horizontal e a direção vertical. As informações que indicam a combinação de um núcleo de transformada da direção horizontal e um núcleo de transformada da direção vertical podem ser sinalizadas através de um fluxo de bits.
[0335] As unidades para realizar a primeira transformada e a segunda transformada podem ser diferentes. Por exemplo, a primeira transformada pode ser realizada em um bloco de 8 x 8 e a segunda transformada pode ser realizada em um sub-bloco de tamanho 4 x 4 entre o bloco 8 x 8 transformado. Neste ponto, os coeficientes de transformada das regiões residuais que não foram realizadas na segunda transformada podem ser definidos como 0.
[0336] Alternativamente, a primeira transformada pode ser realizada em um bloco 4 x 4, e a segunda transformada pode ser realizada em uma região de tamanho 8 x 8 incluindo o bloco 4 x 4 transformado.
[0337] As informações que indicam se a segunda transformada foi realizada podem ser sinalizadas por meio de um fluxo de bits.
[0338] O decodificador pode realizar uma transformada inversa da segunda transformada (uma segunda transformada inversa) e pode realizar uma transformada inversa da primeira transformada (uma primeira transformada inversa) como resultado da transformada inversa. Como resultado da realização da segunda transformada inversa e da primeira transformada inversa, os sinais residuais para o bloco atual podem ser adquiridos.
[0339] A quantização é para reduzir a energia de um bloco e o processo de quantização inclui um processo de divisão de um coeficiente de transformada por um valor constante específico. O valor constante pode ser derivado por um parâmetro de quantização e o parâmetro de quantização pode ser definido como um valor entre 1 e 63.
[0340] Quando o codificador realiza transformada e quantização, o decodificador pode adquirir um bloco residual por meio de quantização inversa e transformada inversa. O decodificador pode adquirir um bloco reconstruído para o bloco atual adicionando um bloco de previsão e o bloco residual.
[0341] Quando um bloco reconstruído do bloco atual é adquirido, a perda de informações que ocorre no processo de quantização e codificação pode ser reduzida por meio de filtragem em loop. Um filtro in-loop pode incluir pelo menos um dentre um filtro de desbloqueio, um filtro de deslocamento adaptativo de amostra (SAO) e um filtro de loop adaptável (ALF).
[0342] A aplicação das modalidades descritas acima com foco em um processo de decodificação ou um processo de codificação para um processo de codificação ou um processo de decodificação está incluída no escopo da presente divulgação. A alteração das modalidades descritas em uma ordem predeterminada em uma ordem diferente da ordem descrita também está incluída no escopo da presente divulgação.
[0343] Embora as modalidades acima tenham sido descritas com base em uma série de etapas ou fluxogramas, isso não limita a ordem da série temporal da presente divulgação e pode ser realizada simultaneamente ou em uma ordem diferente, conforme necessário. Além disso, cada um dos componentes (por exemplo, unidades, módulos, etc.) que constituem o diagrama de blocos nas modalidades descritas acima podem ser implementados como um dispositivo de hardware ou software, ou uma pluralidade de componentes podem ser combinados para serem implementados como um único dispositivo de hardware ou software. As modalidades descritas acima podem ser implementadas na forma de comandos de programa que podem ser executados por meio de vários componentes de computador e gravados em uma mídia de gravação legível por computador. O meio de gravação legível por computador pode incluir comandos de programa, arquivos de dados, estruturas de dados e semelhantes, independentemente ou em combinação. O meio de gravação legível por computador inclui, por exemplo, mídia magnética, como um disco rígido, um disquete e uma fita magnética, mídia de gravação óptica, como um CD-ROM e um DVD, mídia magneto-óptica, como um disco flexível, e dispositivos de hardware especialmente configurados para armazenar e executar comandos de programa, como ROM, RAM, memória flash e semelhantes. Os dispositivos de hardware descritos acima podem ser configurados para operar usando um ou mais módulos de software para realizar o processo da presente divulgação e vice-versa.
[0344] A presente divulgação pode ser aplicada a um dispositivo eletrônico que codifica e decodifica um vídeo.

Claims (28)

REIVINDICAÇÕES
1. MÉTODO DE DECODIFICAÇÃO DE VÍDEO, caracterizado por compreender as etapas de: derivar um candidato de mesclagem para um bloco atual a partir de um bloco vizinho do bloco atual; adicionar o candidato de mesclagem derivado a uma lista de candidato de mesclagem; adicionar pelo menos um candidato de mesclagem da região de previsão incluído em uma lista de informações de movimento de região de previsão à lista de candidato de mesclagem quando um número de candidatos de mesclagem adicionados à lista de candidato de mesclagem for menor que um primeiro valor limítrofe; derivar informações de movimento para o bloco atual com base na lista de candidato de mesclagem; e realizar compensação de movimento para o bloco atual com base nas informações de movimento derivadas, em que se adicionar ou não o candidato de mesclagem da região de previsão à lista de candidato de mesclagem é determinado com base em um resultado de comparação entre informações de movimento do candidato de mesclagem da região de previsão e informações de movimento de um candidato de mesclagem incluído na lista de candidato de mesclagem.
2. MÉTODO, de acordo com a reivindicação 1, caracterizado pela comparação ser realizada em pelo menos um candidato de mesclagem na lista de candidato de mesclagem, da qual um índice é menor ou igual a um segundo valor limítrofe.
3. MÉTODO, de acordo com a reivindicação 1, caracterizado pela comparação ser realizada em um candidato de mesclagem derivado de um bloco em uma posição específica.
4. MÉTODO, de acordo com a reivindicação 1, caracterizado pela comparação ser realizada em pelo menos um dentre um candidato de mesclagem derivado a partir de um bloco vizinho posicionado no lado esquerdo em um lado esquerdo do bloco atual e um candidato de mesclagem derivado a partir de um bloco vizinho superior posicionado na parte superior do bloco atual.
5. MÉTODO, de acordo com a reivindicação 1, caracterizado, quando ser determinado que há um candidato de mesclagem na lista de candidato de mesclagem que tem informações de movimento iguais às de um primeiro candidato de mesclagem da região de previsão, pelo primeiro candidato de mesclagem da região de previsão não ser adicionado à lista de candidato de mesclagem, e se adicionar ou não a um segundo candidato de mesclagem da região de previsão à lista de candidato de mesclagem ser determinado com base em um resultado de comparação entre informações de movimento do segundo candidato de mesclagem da região de previsão incluído na lista de informações de movimento de região de previsão e informações de movimento do candidato de mesclagem incluído na lista de candidato de mesclagem.
6. MÉTODO, de acordo com a reivindicação 5, caracterizado pela determinação sobre se o segundo candidato de mesclagem da região de previsão ter informações de movimento iguais às de um candidato de mesclagem que tem informações de movimento iguais às do primeiro candidato de mesclagem da região de previsão ser omitida.
7. MÉTODO, de acordo com a reivindicação 1, caracterizado por uma diferença entre o número de candidatos de mesclagem da região de previsão incluído na lista de candidato de mesclagem da região de previsão e um índice do candidato de mesclagem da região de previsão ser menor ou igual a um terceiro valor limítrofe.
8. MÉTODO, de acordo com a reivindicação 1, caracterizado por ainda compreender a etapa de adicionar um candidato de mesclagem inter-região atual derivado com base nas informações de movimento do bloco atual para a lista de informações de movimento inter-região, em que quando há um candidato de mesclagem da região de previsão igual ao candidato de mesclagem da região de previsão atual, o candidato de mesclagem da região de previsão igual ao candidato de mesclagem da região de previsão atual é excluído, e um índice maior é atribuído ao candidato de mesclagem da região de previsão atual.
9. MÉTODO, de acordo com a reivindicação 1, caracterizado pela comparação ser realizada no candidato de mesclagem da região de previsão com um índice maior do que um quarto valor limítrofe.
10. MÉTODO, de acordo com a reivindicação 1, caracterizado por compreender ainda: quando for determinado que o bloco vizinho não está incluído em uma região predeterminada, adicionar o candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco vizinho à lista de informações de movimento da região de previsão; ou quando for determinado que o bloco vizinho está incluído na região predeterminada, não adicionar o candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco vizinho à lista de informações de movimento da região de previsão,
em que a região predeterminada é uma área de processamento de mesclagem.
11. MÉTODO, de acordo com a reivindicação 10, caracterizado por compreender ainda: adicionar o candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco vizinho incluídas na lista de informações de movimento da região de previsão à lista de candidatos a mesclagem quando o número de candidatos a mesclagem adicionados à lista de candidatos de mesclagem for menor do que o primeiro valor limítrofe.
12. MÉTODO, de acordo com a reivindicação 1, caracterizado por compreender ainda: quando um tamanho do bloco vizinho não for menor do que um tamanho predefinido, adicionar o candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco vizinho à lista de informações de movimento da região de previsão; ou quando o tamanho do bloco vizinho for menor do que o tamanho predefinido, não adicionar o candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco vizinho à lista de informações de movimento da região de previsão.
13. MÉTODO, de acordo com a reivindicação 12, caracterizado por compreender ainda: adicionar o candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco vizinho incluídas na lista de informações de movimento da região de previsão à lista de candidatos a mesclagem quando o número de candidatos de mesclagem adicionados à lista de candidatos de mesclagem for menor do que o primeiro valor limítrofe.
14. MÉTODO DE CODIFICAÇÃO DE VÍDEO, caracterizado por compreender as etapas de: derivar um candidato de mesclagem para um bloco atual a partir de um bloco vizinho do bloco atual; adicionar o candidato de mesclagem derivado a uma lista de candidato de mesclagem; adicionar pelo menos um candidato de mesclagem da região de previsão incluído em uma lista de informações de movimento de região de previsão à lista de candidato de mesclagem quando um número de candidatos de mesclagem adicionados à lista de candidato de mesclagem for menor que um primeiro valor limítrofe; derivar informações de movimento para o bloco atual com base na lista de candidato de mesclagem; e realizar compensação de movimento para o bloco atual com base nas informações de movimento derivadas, em que se adicionar ou não o candidato de mesclagem da região de previsão à lista de candidato de mesclagem é determinado com base em um resultado de comparação entre informações de movimento do candidato de mesclagem da região de previsão e informações de movimento de um candidato de mesclagem incluído na lista de candidato de mesclagem.
15. MÉTODO, de acordo com a reivindicação 14, caracterizado pela comparação ser realizada em pelo menos um candidato de mesclagem na lista de candidato de mesclagem, da qual um índice é menor ou igual a um segundo valor limítrofe.
16. MÉTODO, de acordo com a reivindicação 14, caracterizado pela comparação ser realizada em um candidato de mesclagem derivado de um bloco em uma posição específica.
17. MÉTODO, de acordo com a reivindicação 14, caracterizado pela comparação ser realizada em pelo menos um dentre um candidato de mesclagem derivado a partir de um bloco vizinho posicionado no lado esquerdo em um lado esquerdo do bloco atual e um candidato de mesclagem derivado a partir de um bloco vizinho posicionado na parte superior em um bloco vizinho superior.
18. MÉTODO, de acordo com a reivindicação 14, caracterizado por, quando for determinado que há um candidato de mesclagem na lista de candidato de mesclagem que tem informações de movimento iguais às de um primeiro candidato de mesclagem da região de previsão, o primeiro candidato de mesclagem da região de previsão não ser adicionado à lista de candidato de mesclagem, e se adicionar ou não a um segundo candidato de mesclagem da região de previsão à lista de candidato de mesclagem ser determinado com base em um resultado de comparação entre informações de movimento do segundo candidato de mesclagem da região de previsão incluído na lista de informações de movimento de região de previsão e informações de movimento do candidato de mesclagem incluído na lista de candidato de mesclagem.
19. MÉTODO, de acordo com a reivindicação 18, caracterizado pela determinação sobre se o segundo candidato de mesclagem da região de previsão tem informações de movimento iguais às de um candidato de mesclagem tem informações de movimento iguais às do primeiro candidato de mesclagem da região de previsão ser omitida.
20. MÉTODO, de acordo com a reivindicação 14, caracterizado por uma diferença entre o número de candidatos de mesclagem da região de previsão incluído na lista de candidato de mesclagem da região de previsão e um índice do candidato de mesclagem da região de previsão ser menor ou igual a um terceiro valor limítrofe.
21. MÉTODO, de acordo com a reivindicação 14, caracterizado por ainda compreender a etapa de adicionar um candidato de mesclagem inter-região atual derivado com base nas informações de movimento do bloco atual à lista de informações de movimento inter-região, em que quando há um candidato de mesclagem da região de previsão igual ao candidato de mesclagem da região de previsão atual, o candidato de mesclagem da região de previsão igual ao candidato de mesclagem da região de previsão atual é excluído, e um índice maior é atribuído ao candidato de mesclagem da região de previsão atual.
22. MÉTODO, de acordo com a reivindicação 14, caracterizado pela comparação ser realizada no candidato de mesclagem na região de previsão com um índice maior do que um quarto valor limítrofe.
23. MÉTODO, de acordo com a reivindicação 14, caracterizado por compreender ainda: quando for determinado que o bloco vizinho não está incluído em uma região predeterminada, adicionar o candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco vizinho à lista de informações de movimento da região de previsão; ou quando for determinado que o bloco vizinho está incluído na região predeterminada, não adicionar o candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco vizinho à lista de informações de movimento da região de previsão, em que a região predeterminada é uma área de processamento de mesclagem.
24. MÉTODO, de acordo com a reivindicação 23, caracterizado por compreender ainda: adicionar o candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco vizinho incluídas na lista de informações de movimento da região de previsão à lista de candidatos de mesclagem quando o número de candidatos de mesclagem adicionados à lista de candidatos de mesclagem for menor do que o primeiro valor limítrofe.
25. MÉTODO, de acordo com a reivindicação 14, caracterizado por compreender ainda: quando um tamanho do bloco vizinho não for menor do que um tamanho predefinido, adicionar o candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco vizinho à lista de informações de movimento da região de previsão; ou quando o tamanho do bloco vizinho for menor do que o tamanho predefinido, não adicionar o candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco vizinho à lista de informações de movimento da região de previsão.
26. MÉTODO, de acordo com a reivindicação 25, caracterizado por compreender ainda: adicionar o candidato de mesclagem da região de previsão derivado com base nas informações de movimento do bloco vizinho incluídas na lista de informações de movimento da região de previsão à lista de candidatos de mesclagem quando o número de candidatos de mesclagem adicionados à lista de candidatos de mesclagem for menor do que o primeiro valor limítrofe.
27. APARELHO DE DECODIFICAÇÃO DE VÍDEO, caracterizado por compreender uma parte de interprevisão para realizar o método, conforme definido em qualquer uma das reivindicações 1 a 13.
28. APARELHO DE CODIFICAÇÃO DE VÍDEO, caracterizado por compreender uma parte de interprevisão para realizar o método, conforme definido em qualquer uma das reivindicações 14 a 26.
BR112021008625-0A 2018-11-08 2019-11-08 método de decodificação e codificação de vídeo e aparelho de decodificação e codificação de vídeo BR112021008625A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
KR20180136308 2018-11-08
KR10-2018-0136308 2018-11-08
KR10-2018-0148874 2018-11-27
KR20180148874 2018-11-27
PCT/KR2019/015199 WO2020096427A1 (ko) 2018-11-08 2019-11-08 영상 신호 부호화/복호화 방법 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
BR112021008625A2 true BR112021008625A2 (pt) 2021-08-10

Family

ID=70610734

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021008625-0A BR112021008625A2 (pt) 2018-11-08 2019-11-08 método de decodificação e codificação de vídeo e aparelho de decodificação e codificação de vídeo

Country Status (15)

Country Link
US (2) US11259043B2 (pt)
EP (1) EP3876532A4 (pt)
JP (3) JP7423624B2 (pt)
KR (1) KR20200054112A (pt)
CN (5) CN112956194A (pt)
AU (1) AU2019377757A1 (pt)
BR (1) BR112021008625A2 (pt)
CA (1) CA3118429C (pt)
CL (1) CL2021001164A1 (pt)
IL (1) IL282847A (pt)
MX (1) MX2021005271A (pt)
PH (1) PH12021551029A1 (pt)
SG (1) SG11202104749RA (pt)
WO (1) WO2020096427A1 (pt)
ZA (1) ZA202103441B (pt)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
KR20200078391A (ko) * 2018-12-21 2020-07-01 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
CN113852815B (zh) * 2018-12-25 2022-12-27 北京达佳互联信息技术有限公司 利用三角形形状预测单元的视频编码方法、设备及介质
CN114009037A (zh) * 2019-06-22 2022-02-01 北京字节跳动网络技术有限公司 帧内块复制模式的运动候选列表构建
US20210168354A1 (en) * 2019-12-03 2021-06-03 Mellanox Technologies, Ltd. Video Coding System
WO2022262694A1 (en) * 2021-06-15 2022-12-22 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3907999B1 (en) * 2010-09-02 2023-11-22 LG Electronics, Inc. Inter prediction
KR101506446B1 (ko) * 2010-12-15 2015-04-08 에스케이 텔레콤주식회사 움직임정보 병합을 이용한 부호움직임정보생성/움직임정보복원 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
ES2621231T3 (es) * 2011-04-12 2017-07-03 Sun Patent Trust Método de codificación de video de movimiento, aparato de codificación de video de movimiento, método de decodificación de video de movimiento, aparato de decodificación de video de movimiento y aparato de codificación/decodificación de video de movimiento
CN102158709B (zh) * 2011-05-27 2012-07-11 山东大学 一种解码端可推导的运动补偿预测方法
SI2717574T1 (sl) * 2011-05-31 2021-04-30 JVC Kenwood Corporation Naprava za dekodiranje gibljivih slik, postopek za dekodiranje gibljivih slik, program za dekodiranje gibljivih slik
KR102073405B1 (ko) * 2011-09-09 2020-02-04 엘지전자 주식회사 인터 예측 방법 및 그 장치
KR101423648B1 (ko) * 2011-09-09 2014-07-28 주식회사 케이티 화면 간 예측 수행시 후보 블록 결정 방법 및 이러한 방법을 사용하는 장치
US9083983B2 (en) * 2011-10-04 2015-07-14 Qualcomm Incorporated Motion vector predictor candidate clipping removal for video coding
JP2013090032A (ja) * 2011-10-14 2013-05-13 Jvc Kenwood Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
KR101835625B1 (ko) * 2011-10-26 2018-04-19 인텔렉추얼디스커버리 주식회사 움직임 후보 리스트 생성 방법 및 그를 이용한 부호화 장치
CN103108178B (zh) * 2011-11-11 2016-03-30 华为技术有限公司 视频图像编解码的方法及装置
EP2942961A1 (en) * 2011-11-23 2015-11-11 HUMAX Holdings Co., Ltd. Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
KR20130079261A (ko) * 2011-12-30 2013-07-10 (주)휴맥스 3차원 영상 부호화 방법 및 장치, 및 복호화 방법 및 장치
US20130188715A1 (en) * 2012-01-09 2013-07-25 Qualcomm Incorporated Device and methods for merge list reordering in video coding
US9729873B2 (en) * 2012-01-24 2017-08-08 Qualcomm Incorporated Video coding using parallel motion estimation
US20130336406A1 (en) * 2012-06-14 2013-12-19 Qualcomm Incorporated Redundancy removal for merge/skip mode motion information candidate list construction
CN104396248B (zh) * 2012-10-12 2019-11-08 韩国电子通信研究院 图像编码/解码方法和使用其的装置
JP5942818B2 (ja) * 2012-11-28 2016-06-29 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
CN108965888B (zh) * 2014-03-19 2021-05-04 株式会社Kt 针对多视图视频信号生成合并候选列表的方法及解码装置
KR20150110357A (ko) * 2014-03-21 2015-10-02 주식회사 케이티 다시점 비디오 신호 처리 방법 및 장치
EP3128754B1 (en) * 2014-03-31 2020-11-11 Samsung Electronics Co., Ltd. Interlayer video decoding method for performing sub-block-based prediction and apparatus therefor, and interlayer video encoding method for performing sub-block-based prediction and apparatus therefor
CN107079161B (zh) * 2014-09-01 2020-11-20 寰发股份有限公司 用于屏幕内容以及视频编码的帧内图片块复制的方法
EP4221202A1 (en) * 2015-06-05 2023-08-02 Dolby Laboratories Licensing Corporation Image encoding and decoding method and image decoding device
US10812822B2 (en) * 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
WO2017065357A1 (ko) * 2015-10-16 2017-04-20 엘지전자 주식회사 영상 코딩 시스템에서 예측 향상을 위한 필터링 방법 및 장치
CN108476319A (zh) * 2016-01-11 2018-08-31 三星电子株式会社 图像编码方法和设备以及图像解码方法和设备
WO2017147765A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Methods for affine motion compensation
CN116546209A (zh) * 2016-04-08 2023-08-04 韩国电子通信研究院 用于导出运动预测信息的方法和装置
WO2017176092A1 (ko) * 2016-04-08 2017-10-12 한국전자통신연구원 움직임 예측 정보를 유도하는 방법 및 장치
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
AU2016425069B2 (en) * 2016-09-30 2022-03-03 Huawei Technologies Co., Ltd. Method and apparatus for image coding and decoding through inter prediction
CN108259913A (zh) * 2016-12-29 2018-07-06 北京大学深圳研究生院 一种用于帧间预测帧中的帧内预测方法
US20180242024A1 (en) * 2017-02-21 2018-08-23 Mediatek Inc. Methods and Apparatuses of Candidate Set Determination for Quad-tree Plus Binary-tree Splitting Blocks
US20180310017A1 (en) * 2017-04-21 2018-10-25 Mediatek Inc. Sub-prediction unit temporal motion vector prediction (sub-pu tmvp) for video coding

Also Published As

Publication number Publication date
EP3876532A1 (en) 2021-09-08
PH12021551029A1 (en) 2021-12-06
CN112956194A (zh) 2021-06-11
JP2024038411A (ja) 2024-03-19
US20220150534A1 (en) 2022-05-12
CA3118429C (en) 2023-08-15
ZA202103441B (en) 2022-07-27
WO2020096427A1 (ko) 2020-05-14
US20210250605A1 (en) 2021-08-12
CN117241040A (zh) 2023-12-15
MX2021005271A (es) 2021-06-18
CN113507603A (zh) 2021-10-15
IL282847A (en) 2021-06-30
AU2019377757A1 (en) 2021-06-03
EP3876532A4 (en) 2022-04-20
CN117041592A (zh) 2023-11-10
KR20200054112A (ko) 2020-05-19
CN113507603B (zh) 2023-06-23
JP2022506423A (ja) 2022-01-17
CA3118429A1 (en) 2020-05-14
JP2024038412A (ja) 2024-03-19
CN116760998A (zh) 2023-09-15
SG11202104749RA (en) 2021-06-29
US11695952B2 (en) 2023-07-04
JP7423624B2 (ja) 2024-01-29
US11259043B2 (en) 2022-02-22
CL2021001164A1 (es) 2021-11-12

Similar Documents

Publication Publication Date Title
BR112021008731A2 (pt) método de decodificação de vídeo e método de codificação de vídeo
US11889077B2 (en) Method for encoding/decoding image signal and device therefor
TW201832563A (zh) 用於四叉樹加二叉樹拆分塊的候選集決定的方法與裝置
BR112021008625A2 (pt) método de decodificação e codificação de vídeo e aparelho de decodificação e codificação de vídeo
BR112021008091A2 (pt) método de codificação e decodificação de sinal de vídeo e aparelho de decodificação de vídeo
KR20190038405A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US11750833B2 (en) Video signal encoding and decoding method, and apparatus therefor
ES2955040T3 (es) Método de codificación/descodificación de señales de imagen y dispositivo para el mismo
US20210235075A1 (en) Video encoding and decoding method, video encoder, and video decoder
KR20200084306A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
CN113841399A (zh) 图像编码/解码方法和设备
RU2799079C2 (ru) Способ и устройство кодирования/декодирования сигналов изображений