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

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

Info

Publication number
BR112021012744A2
BR112021012744A2 BR112021012744-5A BR112021012744A BR112021012744A2 BR 112021012744 A2 BR112021012744 A2 BR 112021012744A2 BR 112021012744 A BR112021012744 A BR 112021012744A BR 112021012744 A2 BR112021012744 A2 BR 112021012744A2
Authority
BR
Brazil
Prior art keywords
motion vector
mmvd
current block
mode
encoding
Prior art date
Application number
BR112021012744-5A
Other languages
English (en)
Inventor
Seungsoo JEONG
Minwoo Park
Original Assignee
Samsung Electronics Co., 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 Samsung Electronics Co., Ltd. filed Critical Samsung Electronics Co., Ltd.
Publication of BR112021012744A2 publication Critical patent/BR112021012744A2/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/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
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

método de decodificação de vídeo, aparelho de decodificação de vídeo, e método de codificação de vídeo. é provido um método de decodificação de vídeo incluindo: obter, a partir de um conjunto de parâmetros de sequência, modo de mesclagem de sequência com informação de diferença de vetor de movimento (sequência mmvd) indicando se um modo mmvd é aplicável em uma sequência atual; quando o modo mmvd é aplicável de acordo com a informação de sequência mmvd, obter, a partir de um fluxo de bits, a primeira informação mmvd indicando se o modo mmvd é aplicado em um primeiro modo de predição inter para um bloco atual incluído na sequência atual; quando o modo mmvd é aplicável no primeiro modo de predição inter de acordo com a primeira informação mmvd, reconstruir um vetor de movimento do bloco atual que deve ser usado no primeiro modo de predição inter, usando uma distância de uma diferença de vetor de movimento e uma direção da diferença do vetor de movimento obtida do fluxo de bits; e reconstruir o bloco atual usando o vetor de movimento do bloco atual.

Description

MÉTODO DE DECODIFICAÇÃO DE VÍDEO, APARELHO DE DECODIFICAÇÃO DE VÍDEO, E MÉTODO DE CODIFICAÇÃO DE VÍDEO CAMPO TÉCNICO
[0001] A presente divulgação se refere aos campos de codificação e decodificação de imagem. Em particular, a divulgação se refere a um método e aparelho para codificar um vetor de movimento usada para codificar e decodificar uma imagem e um método e aparelho para decodificar o vetor de movimento.
FUNDAMENTOS DA TÉCNICA
[0002] Nos métodos de codificação e decodificação de uma imagem, uma figura pode ser dividida em blocos para codificar a imagem e cada bloco pode ser codificado por predição por meio de predição inter ou predição intra.
[0003] Um exemplo representativo de predição inter é a codificação de estimativa de movimento usando um método de compressão de uma imagem removendo a redundância temporal entre as figuras. Na codificação de estimativa de movimento, os blocos de uma imagem atual são preditos usando pelo menos uma imagem de referência. Um bloco de referência mais semelhante a um bloco atual pode ser pesquisado em uma faixa predeterminada de busca usando uma função de avaliação predeterminada. O bloco atual é predito com base no bloco de referência e um bloco residual é gerado subtraindo um bloco de predição gerado em decorrência da predição do bloco atual e então codificado. Com relação a isto, para realizar a predição com mais precisão, a interpolação é realizada em uma faixa de busca de figuras de referência de modo a gerar pixels de unidades sub pel menores do que unidades pel inteiras e a predição inter pode ser realizada com base nos pixels gerados de unidades sub pel.
[0004] No padrão como a codificação de vídeo avançada H.264 (AVC) e a codificação de vídeo de alta eficiência (HEVC), um vetor de movimento de blocos pré-codificados adjacentes a um bloco atual ou blocos incluídos em uma figura pré-codificada é usado como um vetor de predição de movimento do bloco atual de modo a predizer um vetor de movimento do bloco atual. Um vetor de movimento diferencial que é uma diferença entre o vetor de movimento do bloco atual e o vetor de movimento de predição é sinalizado para um decodificador por meio de um método predeterminado.
DESCRIÇÃO DE MODALIDADES PROBLEMA TÉCNICO
[0005] Um método de codificação e aparelho de codificação em relação a uma diferença de vetor de movimento e um método de decodificação e aparelho de decodificação em relação à diferença de vetor de movimento, de acordo com uma modalidade, codifica e decodifica de forma eficiente a diferença de vetor de movimento usada em várias ferramentas aplicadas a um modo inter.
SOLUÇÃO PARA O PROBLEMA
[0006] Um método de decodificação de vídeo de acordo com uma modalidade da divulgação pode incluir: obter, a partir de um conjunto de parâmetros de sequência, modo de mesclagem de sequência com informação de diferença de vetor de movimento (sequência MMVD) indicando se um modo MMVD é aplicável em uma sequência atual; quando o modo MMVD é aplicável de acordo com a informação de sequência MMVD, obtendo, a partir de um fluxo de bits, a primeira informação MMVD indicando se o modo MMVD é aplicado em um primeiro modo de predição inter para um bloco atual incluído na sequência atual; quando o modo MMVD é aplicável no primeiro modo de predição inter de acordo com a primeira informação MMVD, reconstruindo um vetor de movimento do bloco atual que deve ser usado no primeiro modo de predição inter, usando uma distância de uma diferença de vetor de movimento e um direção da diferença do vetor de movimento obtida do fluxo de bits; e reconstruir o bloco atual usando o vetor de movimento do bloco atual.
EFEITOS VANTAJOSOS DA DIVULGAÇÃO
[0007] De acordo com uma modalidade, são fornecidos um método de codificação e aparelho de codificação em relação a uma diferença de vetor de movimento e um método de decodificação e aparelho de decodificação em relação a uma diferença de informações de movimento, que determinam se deve usar uma diferença de vetor de movimento na sintaxe de alto nível em um nível de cada sequência, imagem ou unidade de bloco de modo a codificar com eficiência a diferença do vetor de movimento usada em várias ferramentas aplicadas a um modo interno.
[0008] No entanto, os efeitos alcançáveis por métodos de codificação e decodificação de informações de movimento e aparelhos para codificar e decodificar informações de movimento, de acordo com uma modalidade, não estão limitados aos mencionados acima, e outros efeitos não declarados serão claramente compreendidos por um versado na técnica tendo em vista as descrições abaixo.
BREVE DESCRIÇÃO DAS FIGURAS
[0009] Uma breve descrição de cada desenho é fornecida para melhor compreensão dos desenhos citados neste documento.
[00010] A FIG. 1 é um diagrama de blocos esquemático de um aparelho de decodificação de imagem de acordo com uma modalidade.
[00011] A FIG. 2 é um fluxograma de um método de decodificação de imagem de acordo com uma modalidade.
[00012] A FIG. 3 ilustra um processo, realizado por um aparelho de decodificação de imagem, para determinar pelo menos uma unidade de codificação dividindo uma unidade de codificação atual, de acordo com uma modalidade.
[00013] A FIG. 4 ilustra um processo, realizado por um aparelho de decodificação de imagem, para determinar pelo menos uma unidade de codificação dividindo uma unidade de codificação não quadrada, de acordo com uma modalidade.
[00014] A FIG. 5 ilustra um processo, realizado por um aparelho para decodificação de imagem, para dividir uma unidade de codificação com base em pelo menos uma de informações de formato de bloco e informações de modo de formato de divisão, de acordo com uma modalidade.
[00015] A FIG. 6 ilustra um método, realizado por um aparelho de decodificação de imagem, para determinar uma unidade de codificação predeterminada de um número ímpar de unidades de codificação, de acordo com uma modalidade.
[00016] A FIG. 7 ilustra uma ordem de processamento de uma pluralidade de unidades de codificação quando um aparelho de decodificação de imagem determina a pluralidade de unidades de codificação dividindo uma unidade de codificação atual, de acordo com uma modalidade.
[00017] A FIG. 8 ilustra um processo, realizado por um aparelho de decodificação de imagem, de determinar que uma unidade de codificação atual deve ser dividida em um número ímpar de unidades de codificação, quando as unidades de codificação não são processáveis em uma ordem predeterminada, de acordo com uma modalidade.
[00018] A FIG. 9 ilustra um processo, realizado por um aparelho de decodificação de imagem, para determinar pelo menos uma unidade de codificação dividindo uma primeira unidade de codificação, de acordo com uma modalidade.
[00019] A FIG. 10 ilustra que uma forma na qual uma segunda unidade de codificação é divisível é restrita quando uma segunda unidade de codificação de um formato não quadrado, que é determinada quando um aparelho de decodificação de imagem divide uma primeira unidade de codificação, satisfaz uma condição predeterminada, de acordo com uma modalidade.
[00020] A FIG. 11 ilustra um processo, realizado por um aparelho de decodificação de imagem, para dividir uma unidade de codificação quadrada quando a informação do modo de formato de divisão é incapaz de indicar que a unidade de codificação quadrada é dividida em quatro unidades de codificação quadrada, de acordo com uma modalidade.
[00021] A FIG. 12 ilustra que uma ordem de processamento entre uma pluralidade de unidades de codificação pode ser alterada dependendo de um processo de divisão de uma unidade de codificação, de acordo com uma modalidade.
[00022] A FIG. 13 ilustra um processo para determinar uma profundidade de uma unidade de codificação quando um formato e um tamanho da unidade de codificação muda, quando a unidade de codificação é dividida recursivamente de tal modo que uma pluralidade de unidades de codificação seja determinada, de acordo com uma modalidade.
[00023] A FIG. 14 ilustra profundidades que são determináveis com base em formatos e tamanhos de unidades de codificação e índices de parte (PIDs) que são para distinguir entre as unidades de codificação, de acordo com uma modalidade.
[00024] A FIG. 15 ilustra que uma pluralidade de unidades de codificação é determinada com base em uma pluralidade de unidades de dados predeterminadas incluídas em uma imagem, de acordo com uma modalidade.
[00025] A FIG. 16 é um diagrama de blocos de um sistema de codificação e decodificação de imagem.
[00026] A FIG. 17 é um diagrama de blocos detalhado de um aparelho de decodificação de vídeo de acordo com uma modalidade.
[00027] A FIG. 18 é um fluxograma de um método de decodificação de vídeo de acordo com uma modalidade.
[00028] A FIG. 19 é um diagrama de blocos de um aparelho de codificação de vídeo de acordo com uma modalidade.
[00029] A FIG. 20 é um fluxograma de um método de codificação de vídeo de acordo com uma modalidade.
[00030] A FIG. 21 ilustra as localizações dos candidatos a vetor de movimento, de acordo com uma modalidade.
[00031] A FIG. 22 é um diagrama que mostra candidatos de vetor de movimento exibidos em um plano de coordenadas.
[00032] A FIG. 23 ilustra valores e significados de um índice de mesclagem, índices de distância de uma diferença de mesclagem e índices de direção da diferença de mesclagem, de acordo com uma modalidade.
[00033] A FIG. 24 ilustra equações para obter um vetor de movimento usando um vetor de movimento de base e uma diferença de vetor de movimento de mesclagem, de acordo com uma modalidade.
[00034] A FIG. 25 ilustra equações para ajustar a precisão de um preditor de vetor de movimento ou um vetor de movimento base quando a precisão de um índice de distância de uma diferença de mesclagem é 64 de acordo com uma modalidade.
[00035] A FIG. 26 ilustra equações para ajustar a precisão de um preditor de vetor de movimento ou um vetor de movimento base quando a precisão de um índice de distância de uma diferença de mesclagem é 16 de acordo com uma modalidade.
[00036] A FIG. 27 ilustra a tabela de referência para determinar a binarização de uma pluralidade de informações relacionadas à mesclagem de acordo com uma modalidade.
[00037] A FIG. 28 ilustra a tabela de comparação de bin strings de 8 índices de distância de uma diferença de fusão de acordo com várias binarizações.
[00038] A FIG. 29 ilustra uma modalidade da binarização exp- golomb de ordem k.
[00039] A FIG. 30 ilustra a tabela de comparação de uma bin string de 6 índices de distância de uma diferença de mesclagem de acordo com várias binarizações.
[00040] A FIG. 31 ilustra bin strings que são geradas por binarização variável de acordo com grupos de índices de distância de uma diferença de fusão de acordo com uma modalidade.
[00041] A FIG. 32 ilustra palavras de código de casos de 8 índices de distância de índices de diferença de mesclagem de acordo com uma modalidade.
[00042] A FIG. 33 ilustra palavras de código de casos de 6 índices de distância de uma diferença de mesclagem de acordo com uma modalidade.
[00043] A FIG. 34 ilustra partições triangulares que estão disponíveis em um modo de predição de partição triangular de acordo com uma modalidade.
[00044] A FIG. 35 ilustra um bloco de predição determinado usando partições triangulares em um modo de predição de partição triangular de acordo com uma modalidade.
[00045] A FIG. 36 ilustra um fluxograma de um método de decodificação de vídeo de acordo com uma outra modalidade.
[00046] A FIG. 37 ilustra um fluxograma de um método de codificação de vídeo de acordo com uma outra modalidade.
MELHOR MODO
[00047] Um método de decodificação de vídeo de acordo com uma modalidade da divulgação pode incluir: obter, a partir de um conjunto de parâmetros de sequência, modo de mesclagem de sequência com informação de diferença de vetor de movimento (sequência MMVD) indicando se um modo MMVD é aplicável em uma sequência atual; quando o modo MMVD é aplicável de acordo com a informação de sequência MMVD, obtendo, a partir de um fluxo de bits, a primeira informação MMVD indicando se o modo MMVD é aplicado em um primeiro modo de predição inter para um bloco atual incluído na sequência atual; quando o modo MMVD é aplicável no primeiro modo de predição inter de acordo com a primeira informação MMVD, reconstruindo um vetor de movimento do bloco atual que deve ser usado no primeiro modo de predição inter, usando uma distância de uma diferença de vetor de movimento e um direção da diferença do vetor de movimento obtida do fluxo de bits; e reconstruir o bloco atual usando o vetor de movimento do bloco atual.
[00048] De acordo com uma modalidade, a obter, a partir do fluxo de bits, a primeira informação MMVD pode incluir: quando o modo MMVD é aplicável de acordo com a informação MMVD de sequência, obter informação MMVD subpixel indicando se uma diferença de vetor de movimento em uma unidade de pixel inteiro é usado ou uma diferença de vetor de movimento em uma unidade de subpixel é usada na sequência atual; e quando o modo MMVD é aplicável de acordo com as informações de sequência MMVD, obter informações MMVD indicando se o modo MMVD é usado para o bloco atual incluído na sequência atual e a reconstrução do vetor de movimento do bloco atual pode incluir: quando o modo MMVD é usado para o bloco atual de acordo com a informação MMVD, reconstruindo, de acordo com a informação MMVD subpixel, uma distância de uma diferença de vetor de movimento em uma unidade de pixel inteiro ou uma unidade de subpixel a partir de um índice de distância do movimento diferença de vetor do bloco atual obtida do fluxo de bits; e determinar o vetor de movimento do bloco atual usando a distância da diferença do vetor de movimento.
[00049] De acordo com uma modalidade, a reconstrução da distância da diferença do vetor de movimento na unidade de pixel inteiro ou a unidade de subpixel do índice de distância da diferença do vetor de movimento do bloco atual pode incluir: quando o modo MMVD é usado para o bloco atual de acordo com a informação MMVD e a diferença do vetor de movimento na unidade de pixel inteiro é usado de acordo com a informação MMVD de subpixel, reconstruindo a distância da diferença do vetor de movimento na unidade de pixel inteiro a partir do índice de distância da diferença do vetor de movimento do bloco atual obtido do fluxo de bits; e quando o modo MMVD é usado para o bloco atual de acordo com a informação MMVD e a diferença do vetor de movimento na unidade subpixel é usada de acordo com a informação MMVD do sub-pixel,
reconstruindo a distância da diferença do vetor de movimento na unidade de subpixel do índice de distância da diferença do vetor de movimento do bloco atual obtido do fluxo de bits.
[00050] De acordo com uma modalidade, a reconstrução do vetor de movimento do bloco atual pode incluir: obter, a partir do fluxo de bits, informações que indicam um vetor de movimento de base do bloco atual e um índice de direção de uma diferença de vetor de movimento do bloco atual; determinar uma diferença do vetor de movimento do bloco atual usando um índice de distância da diferença do vetor de movimento do bloco atual e o índice de direção da diferença do vetor de movimento; determinar o vetor de movimento de base do bloco atual usando as informações que indicam o vetor de movimento de base do bloco atual; e determinar o vetor de movimento do bloco atual usando o vetor de movimento base e a diferença do vetor de movimento do bloco atual.
[00051] De acordo com uma modalidade, quando o modo MMVD não é aplicável na sequência atual de acordo com a informação de sequência MMVD, tanto a diferença do vetor de movimento na unidade de pixel inteiro quanto a diferença do vetor de movimento na unidade de subpixel podem não ser utilizáveis na sequência atual e no bloco atual.
[00052] De acordo com uma modalidade, a determinação do vetor de movimento do bloco atual pode incluir: quando a distância reconstruída da diferença do vetor de movimento está na unidade de pixel inteiro, arredondar um valor de componente x e um valor de componente y do vetor de movimento base do bloco atual para a unidade de pixel inteiro, e reconstruir o vetor de movimento na unidade de pixel inteiro usando o valor do componente x e o valor do componente y do vetor de movimento base que são arredondados para a unidade de pixel inteiro; e quando a distância reconstruída da diferença do vetor de movimento está na unidade de subpixel, reconstruir um vetor de movimento na unidade de subpixel usando a distância da diferença do vetor de movimento na unidade de subpixel e um valor de componente x e um valor de componente y do vetor de movimento base que é arredondado para a unidade de subpixel.
[00053] De acordo com uma modalidade da divulgação, um aparelho de decodificação de vídeo pode incluir: um obtentor de elemento de sintaxe configurado para obter, a partir de um conjunto de parâmetros de sequência, modo de mesclagem de sequência com informação de diferença de vetor de movimento (sequência MMVD) indicando se um modo MMVD é aplicável em uma sequência atual; e quando o modo MMVD é aplicável de acordo com a informação de sequência MMVD, obter, a partir de um fluxo de bits, a primeira informação MMVD indicando se o modo MMVD é aplicado em um primeiro modo de predição inter para um bloco atual incluído na sequência atual; e um decodificador configurado para, quando o modo MMVD é aplicável no primeiro modo de predição inter de acordo com a primeira informação MMVD, reconstruir um vetor de movimento do bloco atual que deve ser usado no primeiro modo de predição inter, usando uma distância de uma diferença de vetor de movimento e um direção da diferença do vetor de movimento obtida do fluxo de bits; e reconstruir o bloco atual usando o vetor de movimento do bloco atual.
[00054] De acordo com uma modalidade, o obtentor de elemento de sintaxe pode ser configurado para, quando o modo MMVD é aplicável de acordo com a informação MMVD de sequência, obter informação MMVD de subpixel indicando se uma diferença de vetor de movimento em uma unidade de pixel inteiro é usada ou um vetor de movimento diferença em uma unidade de subpixel é usada na sequência atual, e quando o modo MMVD é aplicável de acordo com as informações MMVD da sequência, obter informações MMVD indicando se o modo MMVD é usado para o bloco atual incluído na sequência atual, e o decodificador pode ser configurado para, quando o modo MMVD é usado para o bloco atual de acordo com a informação MMVD, reconstruir, de acordo com a informação MMVD de subpixel, uma distância de uma diferença de vetor de movimento em uma unidade de pixel inteiro ou um subpixel unidade de um índice de distância da diferença do vetor de movimento do bloco atual obtido a partir do fluxo de bits, e determinar o vetor de movimento do bloco atual usando a distância da diferença do vetor de movimento.
[00055] De acordo com uma modalidade da divulgação, um método de codificação de vídeo pode incluir: codificar o modo de mesclagem de sequência com informação de diferença de vetor de movimento (sequência MMVD) indicando se um modo MMVD é aplicável em uma sequência atual; quando o modo MMVD é aplicável na sequência atual, codificar a primeira informação MMVD indicando se o modo MMVD é usado para um bloco atual incluído na sequência atual em um primeiro modo de predição inter; e quando o modo MMVD é aplicado no primeiro modo de predição inter, codificar um índice de distância de uma diferença de vetor de movimento e um índice de direção da diferença de vetor de movimento do bloco atual.
[00056] De acordo com uma modalidade, o método de codificação de vídeo pode incluir ainda: quando o modo MMVD é aplicável na sequência atual, codificar informações MMVD de subpixel indicando se uma diferença de vetor de movimento em uma unidade de pixel inteiro é usada ou uma diferença de vetor de movimento em um a unidade de subpixel é usada na sequência atual; e quando o modo MMVD é aplicável, a codificação de informações MMVD indicando se o modo MMVD é usado para o bloco atual incluído na sequência atual e a codificação do índice de distância da diferença do vetor de movimento e o índice de direção da diferença do vetor de movimento do bloco atual pode incluir, quando o modo MMVD é usado para o bloco atual, codificar o índice de distância da diferença do vetor de movimento do bloco atual que é determinado de acordo com uma distância de uma diferença do vetor de movimento em uma unidade de pixel inteiro ou uma unidade de subpixels.
[00057] De acordo com uma modalidade, a codificação do índice de distância da diferença do vetor de movimento do bloco atual pode incluir: quando o modo MMVD é usado para o bloco atual e a diferença do vetor de movimento na unidade de pixel inteiro é usada, determinar o índice de distância da diferença do vetor de movimento do bloco atual com base na diferença do vetor de movimento na unidade de pixel inteiro; e quando o modo MMVD é usado para o bloco atual e a diferença do vetor de movimento na unidade de subpixel é usada, determinar o índice de distância da diferença do vetor de movimento do bloco atual com base na diferença do vetor de movimento na unidade de subpixel.
[00058] A codificação do índice de distância da diferença do vetor de movimento do bloco atual pode incluir: quando a distância da diferença do vetor de movimento é codificada em uma unidade de pixel inteiro, arredondar um valor de componente x e um valor de componente y de um vetor de movimento de base do bloco atual para a unidade de pixel inteiro, determinar a distância da diferença do vetor de movimento na unidade de pixel inteiro usando o valor do componente x e o valor do componente y do vetor de movimento base que são arredondados para a unidade de pixel inteiro e codificar uma distância índice correspondente à distância da diferença do vetor de movimento na unidade de pixel inteiro; e quando a distância diferencial do vetor de movimento é codificada em uma unidade de subpixel, arredondar um valor de componente x e um valor de componente y do vetor de movimento base do bloco atual para a unidade de subpixel, determinar a distância da diferença do vetor de movimento n unidade de subpixel usando o valor do componente x e o valor do componente y do vetor de movimento de base que são arredondados para a unidade de subpixel e codificar um índice de distância correspondente à distância da diferença do vetor de movimento no subpixel unidade.
[00059] De acordo com uma modalidade da divulgação, um método de decodificação de vídeo pode incluir: obter, a partir de um fluxo de bits, modo de mesclagem de sequência com informação de diferença de vetor de movimento (sequência MMVD) indicando se um modo de predição de partição triangular está habilitado para um bloco atual; obter, a partir do fluxo de bits, a segunda informação indicando se um modo de predição intra / intercombinação está habilitado para o bloco atual; quando o modo de predição de partição triangular é habilitado para o bloco atual de acordo com as informações de sequência MMVD, determinar se o modo de predição de partição triangular deve ser aplicado ao bloco atual, com base em um tamanho e uma largura do bloco atual; e quando o modo de predição de partição triangular é habilitado para o bloco atual de acordo com a informação de sequência MMVD e o modo de predição intra / intercombinação é habilitado para o bloco atual de acordo com a segunda informação, determinar se deve ser aplicado o modo de predição intra / intercombinação para o bloco atual, com base no tamanho e na largura do bloco atual.
[00060] De acordo com uma modalidade, a determinação de se aplicar o modo de predição de partição triangular ao bloco atual, com base no tamanho e na largura do bloco atual, pode incluir, quando a multiplicação do tamanho e a largura do bloco atual for menor do que 64, o tamanho do bloco atual é maior do que um tamanho máximo de uma unidade de codificação, ou a largura do bloco atual é maior do que o tamanho máximo da unidade de codificação, determinar que não está disponível aplicar o modo de predição de partição triangular para o bloco atual.
[00061] De acordo com uma modalidade, a determinação de se aplicar o modo de predição intra / intercombinação ao bloco atual, com base no tamanho e na largura do bloco atual pode incluir, quando a multiplicação do tamanho e a largura do bloco atual é menor do que 64, o tamanho do bloco atual é maior do que um tamanho máximo de uma unidade de codificação, ou a largura do bloco atual é maior do que o tamanho máximo da unidade de codificação, determinar que não está disponível aplicar o modo de predição de intra / intercombinação para o bloco atual.
[00062] De acordo com uma modalidade da divulgação, é provido um meio de gravação legível por computador gravado nele um programa para implementar o método de decodificação de vídeo em um computador.
[00063] De acordo com uma modalidade da divulgação, é provido um meio de gravação legível por computador gravado nele um programa para implementar o método de codificação de vídeo em um computador.
MODO DA DIVULGAÇÃO
[00064] Como a divulgação permite várias alterações e inúmeras modalidades, modalidades particulares serão ilustradas nos desenhos e descritas em detalhes na descrição escrita. Entretanto, isso não se destina a limitar a divulgação a modos particulares de prática e será entendido que todas as mudanças, equivalentes e substitutos que não se afastam do espírito e do escopo técnico de várias modalidades estão abrangidos na divulgação.
[00065] Na descrição das modalidades, explicações detalhadas da técnica relacionada são omitidas quando se considera que elas podem ocultar desnecessariamente a essência da divulgação. Também, números (por exemplo, um primeiro, um segundo e semelhantes) usados nas descrições do relatório descritivo são meramente códigos identificadores para distinguir um elemento de outro.
[00066] Também, no presente relatório descritivo, será entendido que quando os elementos estão "conectados" ou "acoplados" uns aos outros, os elementos podem ser diretamente conectados ou acoplados uns aos outros, mas podem, alternativamente, ser conectados ou acoplados uns aos outros com um elemento intermediário entre os mesmos, a menos que especificado de outra forma.
[00067] No presente relatório descritivo, com relação a um elemento representado como uma "unidade" ou um "módulo", dois ou mais elementos podem ser combinados em um elemento ou um elemento pode ser dividido em dois ou mais elementos de acordo com funções subdivididas. Além disso, cada elemento descrito a seguir pode, adicionalmente, realizar algumas ou todas as funções realizadas por outro elemento, além das funções principais por si mesmo, e algumas das funções principais de cada elemento podem ser realizadas inteiramente por um outro componente.
[00068] Também, no presente relatório descritivo, uma 'imagem' ou uma 'figura' pode denotar uma imagem imóvel de um vídeo ou uma imagem em movimento, isto é, o próprio vídeo.
[00069] Também, no presente relatório descritivo, uma 'amostra' denota dados atribuídos a uma posição de amostragem de uma imagem, isto é, dados a serem processados. Por exemplo, os valores de pixel de uma imagem em um domínio espacial e coeficientes de transformada em uma região de transformada podem ser amostras. Uma unidade incluindo pelo menos uma dessas amostras pode ser definida como um bloco.
[00070] Também, no presente relatório descritivo, um "bloco atual" pode denotar um bloco de uma unidade de codificação maior, unidade de codificação, unidade de predição ou unidade de transformada de uma imagem atual a ser codificada ou decodificada.
[00071] No presente relatório descritivo, um vetor de movimento em uma direção de uma lista 0 pode denotar um vetor de movimento usado para indicar um bloco em uma imagem de referência incluída em na lista 0, e um vetor de movimento em uma direção de uma lista 1 pode denotar um vetor de movimento usado para indicar um bloco em uma imagem de referência incluída na lista 1. Também, um vetor de movimento em uma unidireção pode denotar um vetor de movimento usado para indicar um bloco em uma figura de referência incluída na lista
0 ou lista 1, e um vetor de movimento em uma bidireção pode denotar que o vetor de movimento inclui um vetor de movimento em uma direção de uma lista 0 e um vetor de movimento em uma direção da lista 1.
[00072] Daqui em diante, um aparelho de codificação de imagem e um aparelho de decodificação de imagem e um método de codificação de imagem e um método de decodificação de imagem de acordo com as modalidades serão descritos com referência às FIGS. 1 a 16. Um método para determinar uma unidade de dados de uma imagem, de acordo com uma modalidade, será descrito com referência às FIGS. 3 a 16, e um método de codificação / decodificação de vídeo usando um modo de mesclagem com diferença de vetor de movimento (MMVD) será descrito com referência às FIGS. 17 a 37.
[00073] A seguir, com referência às FIGS. 1 e 2, um método e aparelho para seleção adaptativa com base em unidades de codificação de vários formatos de acordo com uma modalidade da divulgação serão descritos.
[00074] A FIG. 1 é um diagrama de blocos esquemático de um aparelho de decodificação de imagem de acordo com uma modalidade.
[00075] Um aparelho de decodificação de imagem 100 pode incluir um receptor 110 e um decodificador 120. O receptor 110 e o decodificador 120 podem incluir pelo menos um processador. Também, o receptor 110 e o decodificador 120 podem incluir instruções de armazenamento de memória a serem realizadas por pelo menos um processador.
[00076] O receptor 110 pode receber um fluxo de bits. O fluxo de bits inclui as informações de uma imagem codificada por um aparelho de codificação de imagem 2200 para ser descrito posteriormente. Além disso, o fluxo de bits pode ser transmitido a partir do aparelho de codificação de imagem
2200. O aparelho de codificação de imagem 2200 e o aparelho de decodificação de imagem 100 podem ser conectados com fio ou sem fio e o receptor 110 pode receber o fluxo de bits com fio ou sem fio. O receptor 110 pode receber o fluxo de bits de um meio de armazenamento, como um meio óptico ou um disco rígido. O decodificador 120 pode reconstruir uma imagem com base em informações obtidas a partir do fluxo de bits recebido. O decodificador 120 pode obter, a partir do fluxo de bits, um elemento de sintaxe para reconstruir a imagem. O decodificador 120 pode reconstruir a imagem com base no elemento de sintaxe.
[00077] As operações do aparelho de decodificação de imagem 100 serão descritas em detalhes com referência à FIG.2.
[00078] A FIG. 2 é um fluxograma de um método de decodificação de imagem de acordo com uma modalidade.
[00079] De acordo com uma modalidade da divulgação, o receptor 110 recebe um fluxo de bits.
[00080] O aparelho de decodificação de imagem 100 obtém, a partir de um fluxo de bits, um bin string que corresponde a um modo de formato de divisão de uma unidade de codificação (operação 210). O aparelho de decodificação de imagem 100 determina uma regra de divisão da unidade de codificação (operação 220). Além disso, o aparelho de decodificação de imagem 100 divide a unidade de codificação em uma pluralidade de unidades de codificação, com base em pelo menos um dos bin strings que correspondem ao modo de formato de divisão e à regra de divisão (operação 230). O aparelho de decodificação de imagem 100 pode determinar uma primeira faixa permitida de um tamanho da unidade de codificação, de acordo com uma razão da largura e da altura da unidade de codificação, para determinar a regra de divisão. O aparelho de decodificação de imagem 100 pode determinar uma segunda faixa permitida do tamanho da unidade de codificação, de acordo com o modo de formato da unidade de codificação, de maneira a determinar a regra de divisão.
[00081] Daqui em diante, a divisão de uma unidade de codificação será descrita em detalhes de acordo com uma modalidade da divulgação.
[00082] Primeiro, uma imagem pode ser dividida em uma ou mais fatias ou um ou mais blocos. Uma fatia ou um bloco pode ser uma sequência das uma ou mais unidades de codificação maiores (unidades de árvore de codificação (CTUs)). Existe um bloco de codificação maior (bloco de árvore de codificação (CTB)) conceitualmente comparado a uma unidade de codificação maior (CTU).
[00083] O maior bloco de codificação (CTB) denota um bloco NxN incluindo amostras NxN (onde N é um número inteiro). Cada componente de cor pode ser dividido em um ou mais blocos de codificação maiores.
[00084] Quando uma imagem possui três matrizes de amostra (matrizes de amostra para componentes Y, Cr e Cb), uma unidade de codificação maior (CTU) inclui um bloco de codificação maior de uma amostra de luma, dois blocos de codificação maiores correspondentes de amostras de croma e estruturas de sintaxe usadas para codificar a amostra de luma e as amostras de croma. Quando uma imagem é uma imagem monocromática, a maior unidade de codificação inclui o maior bloco de codificação de uma amostra monocromática e estruturas de sintaxe usadas para codificar as amostras monocromáticas.
Quando uma imagem é uma imagem codificada em planos de cores separados de acordo com os componentes de cores, uma unidade de codificação maior inclui estruturas de sintaxe usadas para codificar a figura e amostras da figura.
[00085] Um bloco de codificação maior (CTB) pode ser dividido em blocos de codificação MxN, incluindo amostras de MxN (M e N são números inteiros).
[00086] Quando uma imagem tem matrizes de amostra para componentes Y, Cr e Cb, uma unidade de codificação (CU) inclui um bloco de codificação de uma amostra luma, dois blocos de codificação correspondentes de amostras de croma e estruturas de sintaxe usadas para codificar a amostra de luma e as amostras de croma. Quando uma imagem é uma imagem monocromática, uma unidade de codificação inclui um bloco de codificação de uma amostra monocromática e estruturas de sintaxe usadas para codificar as amostras monocromáticas. Quando uma figura é uma figura codificada em planos de cores separados de acordo com os componentes de cores, uma unidade de codificação inclui estruturas de sintaxe usadas para codificar a figura e as amostras da figura.
[00087] Como descrito anteriormente, um bloco de codificação maior e uma unidade de codificação maior são conceitualmente distintos um do outro, e um bloco de codificação e uma unidade de codificação são conceitualmente distintos um do outro. Ou seja, uma unidade de codificação (maior) refere-se a uma estrutura de dados que inclui um bloco de codificação (maior) incluindo uma amostra correspondente e uma estrutura de sintaxe correspondente ao (maior) bloco de codificação. No entanto, porque é entendido por um versado na técnica que uma (maior) unidade de codificação ou um (maior) bloco de codificação se refere a um bloco de tamanho predeterminado, incluindo um número predeterminado de amostras, um bloco de codificação maior e uma unidade de codificação maior, ou um bloco de codificação e uma unidade de codificação são mencionados no relatório descritivo a seguir sem serem distinguidos, a menos que descrito de outra forma.
[00088] Uma imagem pode ser dividida nas unidades de codificação maiores (CTUs). Um tamanho de cada unidade de codificação maior pode ser determinado com base nas informações obtidas de um fluxo de bits. Uma forma de cada unidade de codificação maior pode ser uma forma quadrada do mesmo tamanho. No entanto, a modalidade não está limitada a ela.
[00089] Por exemplo, as informações sobre um tamanho máximo de um bloco de codificação de luma podem ser obtidas de um fluxo de bits. Por exemplo, o tamanho máximo do bloco de codificação de luma indicado pela informação sobre o tamanho máximo do bloco de codificação de luma pode ser de 4x4, 8x8, 16x16, 32x32, 64x64, 128x128 e 256x256.
[00090] Por exemplo, informações sobre uma diferença de tamanho de bloco de luma e um tamanho máximo de um bloco de codificação de luma que pode ser dividido em dois podem ser obtidas a partir de um fluxo de bits. As informações sobre a diferença de tamanho do bloco de luma podem se referir a uma diferença de tamanho entre a maior unidade de codificação de luma e o maior bloco de codificação de luma que pode ser dividido em dois. Por conseguinte, quando as informações sobre o tamanho máximo do bloco de codificação de luma que podem ser divididas em duas e as informações sobre a diferença de tamanho do bloco de luma obtidas no fluxo de bits são combinadas entre si, um tamanho da maior unidade de codificação de luma pode ser determinado. Um tamanho de uma unidade de codificação maior de croma pode ser determinado usando o tamanho da maior unidade de codificação de luma. Por exemplo, quando uma razão Y: Cb: Cr é 4:2:0, de acordo com um formato de cor, um tamanho de um bloco croma pode ter metade do tamanho de um bloco luma e um tamanho de uma maior unidade de codificação croma pode ter a metade do tamanho de uma maior unidade de codificação luma.
[00091] De acordo com uma modalidade, porque as informações sobre um tamanho máximo de um bloco de codificação de luma que é divisível binário são obtidas de um fluxo de bits, o tamanho máximo do bloco de codificação de luma que é divisível binário pode ser determinado de forma variável. Por outro lado, um tamanho máximo de um bloco de codificação de luma que é divisível ternário pode ser fixo. Por exemplo, o tamanho máximo do bloco de codificação luma que é divisível ternário em uma imagem I pode ser 32x32, e o tamanho máximo do bloco de codificação luma que é divisível ternário em uma imagem P ou uma imagem B pode ser 64x64.
[00092] Além disso, uma unidade de codificação maior pode ser hierarquicamente dividida em unidades de codificação com base nas informações do modo de formato de divisão obtidas de um fluxo de bits. Pelo menos uma informação indicando se a divisão quádrupla é realizada, a informação indicando se a divisão múltipla é realizada, a informação de direção de divisão e a informação de tipo de divisão podem ser obtidas como informação do modo de formato de divisão do fluxo de bits.
[00093] Por exemplo, as informações que indicam se a divisão quádrupla é executada podem indicar se uma unidade de codificação atual é dividida em quádruplos (QUAD_SPLIT) ou não.
[00094] Quando a unidade de codificação atual não é dividida em quádruplos, as informações que indicam se a divisão múltipla é executada podem indicar se a unidade de codificação atual não é mais dividida (NO_SPLIT) ou dividida em binária/ternária.
[00095] Quando a unidade de codificação atual é uma divisão binária ou ternária, as informações da direção de divisão indicam que a unidade de codificação atual é dividida em uma direção horizontal e vertical.
[00096] Quando a unidade de codificação atual é dividida na direção horizontal ou vertical, a informação do tipo de divisão indica que a unidade de codificação atual é uma divisão binária ou uma divisão ternária.
[00097] Um modo de divisão da unidade de codificação atual pode ser determinado de acordo com as informações de direção de divisão e as informações de tipo de divisão. Um modo de divisão quando a unidade de codificação atual é uma divisão binária na direção horizontal pode ser determinado como um modo de divisão horizontal binária (SPLIT_BT_HOR), um modo de divisão quando a unidade de codificação atual é uma divisão ternária na direção horizontal pode ser modo de divisão horizontal ternário (SPLIT_TT_HOR), um modo de divisão quando a unidade de codificação atual é uma divisão binária na direção vertical pode ser determinado como um modo de divisão vertical binária (SPLIT_BT_VER) e um modo de divisão quando a unidade de codificação atual é uma divisão ternária na direção vertical pode ser determinado como um modo de divisão vertical ternário (SPLIT_TT_VER).
[00098] O aparelho de decodificação de imagem 100 pode obter, do fluxo de bits, as informações do modo de formato de divisão de uma bin string. Uma forma do fluxo de bits recebido pelo aparelho de decodificação de imagem 100 pode incluir código binário de comprimento fixo, código unário, código unário truncado, código binário predeterminado ou semelhantes. A string binária é a informação em um número binário. A string binária pode incluir pelo menos um bit. O aparelho de decodificação de imagem 100 pode obter as informações do modo de forma de divisão correspondentes à string binária, com base em uma regra de divisão. O aparelho de decodificação de imagem 100 pode determinar se deve dividir em quatro partes uma unidade de codificação, se não deve dividir uma unidade de codificação, uma direção de divisão e um tipo de divisão, com base em uma bin string.
[00099] A unidade de codificação pode ser menor ou igual à maior unidade de codificação. Por exemplo, porque uma unidade de codificação maior é uma unidade de codificação com um tamanho máximo, a maior unidade de codificação é uma das unidades de codificação. Quando as informações do modo de forma de divisão sobre uma unidade de codificação maior indicam que a divisão não é realizada, uma unidade de codificação determinada na maior unidade de codificação tem o mesmo tamanho que a da maior unidade de codificação. Quando as informações do modo de forma de divisão sobre uma unidade de codificação maior indicam que a divisão é realizada, a maior unidade de codificação pode ser dividida em unidades de codificação. Além disso, quando as informações do modo de forma de divisão sobre uma unidade de codificação indicam que a divisão é realizada, a unidade de codificação pode ser dividida em unidades de codificação menores. No entanto, a divisão da imagem não se limita a ela, e a maior unidade de codificação e a unidade de codificação podem não ser diferenciadas. A divisão da unidade de codificação será descrita em detalhes com referência às FIGS. 3 a 16.
[000100] Além disso, um ou mais blocos de predição para predição podem ser determinados a partir de uma unidade de codificação. O bloco de predição pode ser igual ou menor que a unidade de codificação. Além disso, um ou mais blocos de transformada para transformação podem ser determinados a partir de uma unidade de codificação. O bloco de transformada pode ser igual ou menor que a unidade de codificação.
[000101] Os formatos e tamanhos do bloco de transformada e um bloco de predição podem não estar relacionados um ao outro.
[000102] Em outra modalidade, a predição pode ser realizada usando uma unidade de codificação como uma unidade de predição. Além disso, a transformação pode ser realizada usando uma unidade de codificação como um bloco de transformada.
[000103] A divisão da unidade de codificação será descrita em detalhes com referência às FIGS. 3 a 16. Um bloco atual e um bloco adjacente da divulgação podem indicar uma das maiores unidades de codificação, a unidade de codificação, o bloco de predição e o bloco de transformada. Além disso, o bloco atual da unidade de codificação atual é um bloco que está sendo decodificado ou codificado no momento ou um bloco que está sendo dividido. O bloco adjacente pode ser um bloco reconstruído antes do bloco atual. O bloco adjacente pode ser adjacente ao bloco atual espacial ou temporalmente. O bloco adjacente pode estar localizado em uma das partes inferior esquerda, esquerda, superior esquerda, superior, superior direita, direita e inferior direita do bloco atual.
[000104] A FIG. 3 ilustra um processo, realizado por um aparelho de decodificação de imagem, para determinar pelo menos uma unidade de codificação dividindo uma unidade de codificação atual, de acordo com uma modalidade.
[000105] Um formato de bloco pode incluir 4Nx4N, 4Nx2N, 2Nx4N, 4NxN, Nx4N, 32NxN, Nx32N, 16NxN, Nx16N, 8NxN ou Nx8N. Neste documento, N pode ser um número inteiro positivo. As informações de formato de bloco são informações que indicam pelo menos um de um formato, uma direção, uma razão de largura para altura ou tamanho de uma unidade de codificação.
[000106] O formato da unidade de codificação pode incluir um quadrado e um não quadrado. Quando os comprimentos da largura e da altura da unidade de codificação são os mesmos (ou seja, quando a forma do bloco da unidade de codificação é 4Nx4N), o aparelho de decodificação de imagem 100 pode determinar as informações de forma do bloco da unidade de codificação como um quadrado. O aparelho de decodificação de imagem 100 pode determinar o formato da unidade de codificação como um não quadrado.
[000107] Quando a largura e a altura da unidade de codificação são diferentes uma da outra (isto é, quando o formato do bloco da unidade de codificação é 4Nx2N, 2Nx4N, 4NxN, Nx4N, 32NxN, Nx32N, 16NxN, Nx16N, 8NxN ou Nx8N), o aparelho de decodificação de imagem 100 pode determinar a informação da forma do bloco da unidade de codificação como uma forma não quadrada. Quando a forma da unidade de codificação é não quadrada, o aparelho de decodificação de imagem 100 pode determinar a razão da largura para a altura entre as informações de forma de bloco da unidade de codificação como pelo menos um de 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 1:16, 16:1, 1:32 e 32:1. Além disso, o aparelho de decodificação de imagem 100 pode determinar se a unidade de codificação está em uma direção horizontal ou uma direção vertical, com base no comprimento da largura e no comprimento da altura da unidade de codificação. Também, o aparelho de decodificação de imagem 100 pode determinar o tamanho da unidade de codificação, com base em pelo menos um do comprimento da largura, do comprimento da altura ou da área da unidade de codificação.
[000108] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a forma da unidade de codificação usando as informações de forma de bloco e pode determinar um método de divisão da unidade de codificação usando as informações de modo de forma de divisão. Ou seja, um método de divisão da unidade de codificação indicado pela informação do modo de formato de divisão pode ser determinado de acordo com o formato de bloco indicado pela informação do formato de bloco usado pelo aparelho de decodificação de imagem 100.
[000109] O aparelho de decodificação de imagem 100 pode obter as informações do modo de formato de divisão a partir de um fluxo de bits. No entanto, uma modalidade não está limitada a isso e o aparelho de decodificação de imagem 100 e o aparelho de codificação de imagem 2200 podem determinar as informações preestabelecidas do modo de formato de divisão com base nas informações de formato de bloco. O aparelho de decodificação de imagem 100 pode determinar as informações de modo de formato de divisão pré-acordadas em relação a uma maior unidade de codificação ou uma menor unidade de codificação. Por exemplo, o aparelho de decodificação de imagem 100 pode determinar as informações do modo de formato de divisão em relação à maior unidade de codificação para ser uma divisão quádrupla. Além disso, o aparelho de decodificação de imagem 100 pode determinar as informações do modo de formato de divisão em relação à menor unidade de codificação para "não executar a divisão". Em particular, o aparelho de decodificação de imagem 100 pode determinar o tamanho da maior unidade de codificação como 256x256. O aparelho de decodificação de imagem 100 pode determinar as informações do modo de formato de divisão pré-acordada como sendo uma divisão quádrupla. A divisão quádrupla é um modo de forma de divisão no qual a largura e a altura da unidade de codificação são ambas divididas em dois. O aparelho de decodificação de imagem 100 pode obter uma unidade de codificação de tamanho 128x128 da maior unidade de codificação de tamanho 256x256, com base nas informações do modo de forma de divisão. Além disso, o aparelho de decodificação de imagem 100 pode determinar o tamanho da menor unidade de codificação como sendo 4x4. O aparelho de decodificação de imagem 100 pode obter a informação do modo de formato de divisão indicando "não realizar divisão" com relação à menor unidade de codificação.
[000110] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode usar as informações de formato de bloco indicando que a unidade de codificação atual tem um formato quadrado. Por exemplo, o aparelho de decodificação de imagem 100 pode determinar se não deve ser dividida uma unidade de codificação quadrada, se é dividida verticalmente a unidade de codificação quadrada, se é dividida horizontalmente a unidade de codificação quadrada ou se deve ser dividida a unidade de codificação quadrada em quatro unidades de codificação, com base nas informações do modo de formato de divisão. Com referência à FIG. 3, quando as informações de formato de bloco de uma unidade de codificação atual 300 indicam um formato quadrado, o decodificador 120 pode não dividir uma unidade de codificação 310a tendo o mesmo tamanho que a unidade de codificação atual 300, com base nas informações do modo de formato de divisão indicando não realizar divisão ou pode determinar as unidades de codificação 310b, 310c, 310d, 310e ou 310f divididas com base nas informações do modo de formato de divisão, indicando um método de divisão predeterminado.
[000111] Com referência à FIG. 3, de acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar duas unidades de codificação 310b obtidas dividindo a unidade de codificação atual 300 em uma direção vertical, com base nas informações do modo de formato de divisão indicando a realização da divisão em uma direção vertical. O aparelho de decodificação de imagem 100 pode determinar duas unidades de codificação 310c obtidas pela divisão da unidade de codificação atual 300 em uma direção horizontal, com base nas informações do modo de forma de divisão indicando a realização da divisão em uma direção horizontal. O aparelho de decodificação de imagem 100 pode determinar quatro unidades de codificação 310d obtidas dividindo a unidade de codificação atual 300 nas direções vertical e horizontal, com base nas informações do modo de formato de divisão indicando para executar a divisão nas direções vertical e horizontal. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar três unidades de codificação 310e obtidas dividindo a unidade de codificação atual 300 em uma direção vertical, com base nas informações do modo de forma de divisão indicando para realizar a divisão ternária em uma direção vertical. O aparelho de decodificação de imagem 100 pode determinar três unidades de codificação 310f obtidas pela divisão da unidade de codificação atual 300 em uma direção horizontal, com base nas informações do modo de forma de divisão indicando a realização da divisão ternária em uma direção horizontal. No entanto, os métodos de divisão da unidade de codificação quadrada não se limitam aos métodos descritos anteriormente e as informações do modo de formato de divisão podem indicar vários métodos. Os métodos de divisão predeterminados de divisão da unidade de codificação quadrada serão descritos em detalhes a seguir em relação a várias modalidades.
[000112] A FIG. 4 ilustra um processo, realizado por um aparelho de decodificação de imagem, para determinar pelo menos uma unidade de codificação dividindo uma unidade de codificação não quadrada, de acordo com uma modalidade.
[000113] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode usar informações de formato de bloco indicando que uma unidade de codificação atual tem um formato não quadrado. O aparelho de decodificação de imagem 100 pode determinar se não deve dividir a unidade de codificação atual não quadrada ou se a unidade de codificação atual não quadrada é utilizada usando um método de divisão predeterminado, com base nas informações do modo de formato de divisão. Com referência à FIG. 4, quando a informação de formato de bloco de uma unidade de codificação atual 400 ou
450 indica um formato não quadrado, o aparelho de decodificação de imagem 100 pode determinar uma unidade de codificação 410 ou 460 com o mesmo tamanho da unidade de codificação atual 400 ou 450 com base nas informações do modo de formato de divisão indicando não realizar a divisão, ou determinar as unidades de codificação 420a e 420b, 430a a 430c, 470a e 470b ou 480a a 480c divididas com base nas informações do modo de formato de divisão indicando um método de divisão predeterminado. Os métodos de divisão predeterminados de divisão de uma unidade de codificação não quadrada serão descritos em detalhes a seguir em relação a várias modalidades.
[000114] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar um método de divisão de uma unidade de codificação usando as informações do modo de formato de divisão e, neste caso, a informações do modo de formato de divisão pode indicar o número de uma ou mais unidades de codificação geradas pela divisão de uma unidade de codificação. Com referência à FIG. 4, quando a informação do modo de formato de divisão indica que deve dividir a unidade de codificação atual 400 ou 450 em duas unidades de codificação, o aparelho de decodificação de imagem 100 pode determinar duas unidades de codificação 420a e 420b, ou 470a e 470b incluídas na unidade de codificação atual 400 ou 450 dividindo a unidade de codificação atual 400 ou 450 com base na informação do modo de formato de divisão.
[000115] De acordo com uma modalidade, quando o aparelho de decodificação de imagem 100 divide a unidade de codificação atual não quadrada 400 ou 450 com base nas informações do modo de forma dividida, o aparelho de decodificação de imagem 100 pode considerar a localização de um lado longo da unidade de codificação atual não quadrada 400 ou 450 para dividir uma unidade de codificação atual. Por exemplo, o aparelho de decodificação de imagem 100 pode determinar uma pluralidade de unidades de codificação dividindo a unidade de codificação atual 400 ou 450 em uma direção de divisão um lado longo da unidade de codificação atual 400 ou 450, em consideração ao formato da unidade de codificação atual 400 ou 450.
[000116] De acordo com uma modalidade, quando as informações do modo de forma dividida indica para dividir (divisão ternária) uma unidade de codificação em um número ímpar de blocos, o aparelho de decodificação de imagem 100 pode determinar um número ímpar de unidades de codificação incluídas na unidade de codificação atual 400 ou 450. Por exemplo, quando a informação do modo de formato de divisão indica que deve dividir a unidade de codificação atual 400 ou 450 em três unidades de codificação, o aparelho de decodificação de imagem 100 pode dividir a unidade de codificação atual 400 ou 450 em três unidades de codificação 430a, 430b e 430c, ou 480a, 480b e 480c.
[000117] De acordo com uma modalidade, uma razão da largura para altura da unidade de codificação atual 400 ou 450 pode ser 4:1 ou 1:4. Quando a razão da largura para altura é 4: 1, as informações de formato do bloco podem indicar uma direção horizontal, pois o comprimento da largura é maior que o comprimento da altura. Quando a razão da largura para altura é 1:4, as informações de formato do bloco podem indicar uma direção vertical porque o comprimento da largura é menor que o comprimento da altura. O aparelho de decodificação de imagem 100 pode determinar a divisão e uma unidade de codificação atual em um número ímpar de blocos com base nas informações do modo de formato de divisão. Além disso, o aparelho de decodificação de imagem 100 pode determinar uma direção de divisão da unidade de codificação atual 400 ou 450 com base nas informações de formato de bloco da unidade de codificação atual 400 ou 450. Por exemplo, quando a unidade de codificação atual 400 está na direção vertical, o aparelho de decodificação de imagem 100 pode determinar as unidades de codificação 430a, 430b, e 430c dividindo a unidade de codificação atual 400 na direção horizontal. Também, quando a unidade de codificação atual 450 está na direção horizontal, o aparelho de decodificação de imagem 100 pode determinar as unidades de codificação 480a, 480b, e 480c dividindo a unidade de codificação atual 450 na direção vertical.
[000118] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar um número ímpar de unidades de codificação incluídas na unidade de codificação atual 400 ou 450, e nem todas as unidades de codificação determinadas podem ter o mesmo tamanho. Por exemplo, uma unidade de codificação predeterminada 430b ou 480b entre o número ímpar determinado de unidades de codificação 430a, 430b e 430c, ou 480a, 480b e 480c pode ter um tamanho diferente do tamanho das outras unidades de codificação 430a e 430c, ou 480a e 480c. Ou seja, as unidades de codificação que podem ser determinadas dividindo a unidade de codificação atual 400 ou 450 podem ter vários tamanhos e, em alguns casos, todos os números ímpares de unidades de codificação 430a, 430b e 430c ou 480a, 480b e 480c podem ter tamanhos diferentes.
[000119] De acordo com uma modalidade, quando as informações do modo de formato de divisão indicam para dividir uma unidade de codificação no número ímpar de blocos, o aparelho de decodificação de imagem 100 pode determinar o número ímpar de unidades de codificação incluídas na unidade de codificação atual 400 ou 450 e, além disso, pode colocar uma restrição predeterminada em pelo menos uma unidade de codificação entre o número ímpar de unidades de codificação geradas pela divisão da unidade de codificação atual 400 ou 450. Com referência à FIG. 4, o aparelho de decodificação de imagem 100 pode definir um processo de decodificação em relação à unidade de codificação 430b ou 480b localizada no centro entre as três unidades de codificação 430a, 430b e 430c ou 480a, 480b e 480c geradas como a unidade de codificação atual 400 ou 450 é dividida para ser diferente das outras unidades de codificação 430a e 430c, ou 480a e 480c. Por exemplo, o aparelho de decodificação de imagem 100 pode restringir a unidade de codificação 430b ou 480b na localização central para não ser mais dividida ou para ser dividida apenas um número predeterminado de vezes, ao contrário das outras unidades de codificação 430a e 430c, ou 480a e 480c.
[000120] A FIG. 5 ilustra um processo, realizado por um aparelho para decodificação de imagem, para dividir uma unidade de codificação com base em pelo menos uma de informações de formato de bloco e informações de modo de formato de divisão, de acordo com uma modalidade.
[000121] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar dividir ou não dividir uma primeira unidade de codificação quadrada 500 em unidades de codificação, com base em pelo menos uma das informações de formato de bloco e informações de modo de formato de divisão. De acordo com uma modalidade, quando as informações do modo de formato de divisão indicam para dividir a primeira unidade de codificação 500 em uma direção horizontal, o aparelho de decodificação de imagem 100 pode determinar uma segunda unidade de codificação 510 dividindo a primeira unidade de codificação 500 em uma direção horizontal. Uma primeira unidade de codificação, uma segunda unidade de codificação e uma terceira unidade de codificação usada de acordo com uma modalidade são termos usados para entender uma relação antes e depois da divisão de uma unidade de codificação. Por exemplo, uma segunda unidade de codificação pode ser determinada dividindo uma primeira unidade de codificação e uma terceira unidade de codificação pode ser determinada dividindo a segunda unidade de codificação. Será entendido que a relação da primeira unidade de codificação, da segunda unidade de codificação e da terceira unidade de codificação segue as descrições anteriores.
[000122] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar dividir ou não dividir a segunda unidade de codificação determinada 510 em unidades de codificação, com base nas informações do modo de formato de divisão. Com referência à FIG. 5, o aparelho de decodificação de imagem 100 pode dividir a segunda unidade de codificação não quadrada 510, que é determinada pela divisão da primeira unidade de codificação 500, em uma ou mais terceiras unidades de codificação 520a ou 520b, 520c e 520d com base pelo menos uma das informações do modo de divisão e nas informações do modo de formato de divisão ou não pode dividir a segunda unidade de codificação não quadrada 510. O aparelho de decodificação de imagem 100 pode obter as informações do modo de forma de divisão e pode obter uma pluralidade de segundas unidades de codificação de várias formas (por exemplo, 510) dividindo a primeira unidade de codificação 500, com base nas informações obtidas do modo de forma de divisão e a segunda unidade de codificação 510 pode ser dividida usando um método de divisão da primeira unidade de codificação 500 com base nas informações do modo de forma de divisão. De acordo com uma modalidade, quando a primeira unidade de codificação 500 é dividida nas segundas unidades de codificação 510 com base nas informações do modo de forma de divisão da primeira unidade de codificação 500, a segunda unidade de codificação 510 também pode ser dividida nas terceiras unidades de codificação (por exemplo, 520a, ou 520b, 520c e 520d) com base nas informações do modo de forma de divisão da segunda unidade de codificação 510. Ou seja, uma unidade de codificação pode ser dividida recursivamente com base nas informações do modo de forma de divisão de cada unidade de codificação. Portanto, uma unidade de codificação quadrada pode ser determinada dividindo uma unidade de codificação não quadrada e uma unidade de codificação não quadrada pode ser determinada dividindo recursivamente a unidade de codificação quadrada.
[000123] Com referência à FIG. 5, uma unidade de codificação predeterminada (por exemplo, uma unidade de codificação localizada em uma localização central ou uma unidade de codificação quadrada) dentre um número ímpar de terceiras unidades de codificação 520b, 520c e 520d determinadas pela divisão da segunda unidade de codificação não quadrada 510 pode ser dividida recursivamente. De acordo com uma modalidade, a terceira unidade de codificação quadrada 520c entre o número ímpar de terceiras unidades de codificação
520b, 520c e 520d pode ser dividida na direção horizontal em uma pluralidade de quartas unidades de codificação. Uma quarta unidade de codificação não quadrada 530b ou 530d entre a pluralidade de quartas unidades de codificação 530a, 530b, 530c e 530d pode ser re-dividida em uma pluralidade de unidades de codificação. Por exemplo, a quarta unidade de codificação não quadrada 530b ou 530d pode ser re-dividida em um número ímpar de unidades de codificação. Um método que pode ser usado para dividir recursivamente uma unidade de codificação será descrito a seguir em relação a várias modalidades.
[000124] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode dividir cada uma das terceiras unidades de codificação 520a, ou 520b, 520c e 520d em unidades de codificação, com base nas informações do modo de formato de divisão. Além disso, o aparelho de decodificação de imagem 100 pode determinar não dividir a segunda unidade de codificação 510 com base nas informações do modo de formato de divisão. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode dividir a segunda unidade de codificação não quadrada 510 no número ímpar de terceiras unidades de codificação 520b, 520c e 520d. O aparelho de decodificação de imagem 100 pode colocar uma restrição predeterminada em uma terceira unidade de codificação predeterminada entre o número ímpar de terceiras unidades de codificação 520b, 520c e 520d. Por exemplo, o aparelho de decodificação de imagem 100 pode restringir a terceira unidade de codificação 520c em uma localização central dentre o número ímpar de terceiras unidades de codificação 520b, 520c e 520d para não ser mais dividida ou para ser dividida em um número configurável de vezes.
[000125] Com referência à FIG. 5, o aparelho de decodificação de imagem 100 pode restringir a terceira unidade de codificação 520c, que está na localização central entre o número ímpar de terceiras unidades de codificação 520b, 520c e 520d incluídas na segunda unidade de codificação não quadrada 510, para não ser mais dividida, para ser dividida usando um método de divisão predeterminado (por exemplo, dividida em apenas quatro unidades de codificação ou dividida usando um método de divisão da segunda unidade de codificação 510) ou para ser dividida apenas um número predeterminado de vezes (por exemplo, divisão apenas n vezes (onde n> 0)). Entretanto, as restrições na terceira unidade de codificação 520c na localização central não se limitam aos exemplos descritos acima e podem incluir várias restrições para decodificar a terceira unidade de codificação 520c na localização central diferentemente das outras terceiras unidades de codificação 520b e 520d.
[000126] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode obter a informação do modo de formato de divisão, que é usada para dividir uma unidade de codificação atual, a partir de uma localização predeterminada na unidade de codificação atual.
[000127] A FIG. 6 ilustra um método, realizado por um aparelho de decodificação de imagem, de determinar uma unidade de codificação predeterminada entre um número ímpar de unidades de codificação, de acordo com uma modalidade.
[000128] Com referência à FIG. 6, as informações do modo de formato de divisão de uma unidade de codificação atual 600 ou 650 podem ser obtidas a partir de uma amostra de uma localização predeterminada (por exemplo, uma amostra 640 ou 690 de uma localização central) dentre uma pluralidade de amostras incluídas na unidade de codificação atual 600 ou 650. No entanto, a localização predeterminada na unidade de codificação atual 600, a partir da qual pelo menos uma parte das informações do modo de formato de divisão pode ser obtida, não está limitada à localização central na FIG. 6 e pode incluir várias localizações incluídas na unidade de codificação atual 600 (por exemplo, superior, inferior, esquerda, direita, superior esquerda, inferior esquerda, superior direita e inferior direita, ou semelhantes). O aparelho de decodificação de imagem 100 pode obter as informações do modo de formato de divisão a partir da localização predeterminada e pode determinar dividir ou não dividir a unidade de codificação atual em unidades de codificação de formatos variados e tamanhos variados.
[000129] De acordo com uma modalidade, quando a unidade de codificação atual é dividida em um número predeterminado de unidades de codificação, o aparelho de decodificação de imagem 100 pode selecionar uma das unidades de codificação. Vários métodos podem ser usados para selecionar uma dentre uma pluralidade de unidades de codificação, conforme serão descritos a seguir em relação a várias modalidades.
[000130] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode dividir a unidade de codificação atual em uma pluralidade de unidades de codificação e pode determinar uma unidade de codificação em uma localização predeterminada.
[000131] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode usar informações indicando as localizações do número ímpar de unidades de codificação para determinar uma unidade de codificação em uma localização central entre o número ímpar de unidades de codificação. Com referência à FIG. 6, o aparelho de decodificação de imagem 100 pode determinar o número ímpar de unidades de codificação 620a, 620b e 620c ou o número ímpar de unidades de codificação 660a, 660b e 660c dividindo a unidade de codificação atual 600 ou a unidade de codificação atual 650. O aparelho de decodificação de imagem 100 pode determinar a unidade de codificação intermediária 620b ou a unidade de codificação intermediária 660b usando informações sobre as localizações do número ímpar das unidades de codificação 620a, 620b e 620c ou o número ímpar de unidades de codificação 660a, 660b e 660c. Por exemplo, o aparelho de decodificação de imagem 100 pode determinar a unidade de codificação 620b da localização central, determinando as localizações das unidades de codificação 620a, 620b e 620c com base em informações indicando as localizações de amostras predeterminadas incluídas nas unidades de codificação 620a, 620b e 620c. Em detalhes, o aparelho de decodificação de imagem 100 pode determinar a unidade de codificação 620b na localização central, determinando as localizações das unidades de codificação 620a, 620b e 620c com base em informações indicando as localizações das amostras superior esquerda 630a, 630b e 630c da codificação unidades 620a, 620b e 620c.
[000132] De acordo com uma modalidade, as informações indicando as localizações das amostras superior esquerda 630a, 630b e 630c, que são incluídas nas unidades de codificação 620a, 620b e 620c, respectivamente, podem incluir informações sobre as localizações ou coordenadas das unidades de codificação 620a, 620b e 620c em uma imagem. De acordo com uma modalidade, as informações indicando as localizações das amostras superior esquerda 630a, 630b e 630c, incluídas nas unidades de codificação 620a, 620b e 620c, respectivamente, podem incluir informações indicando larguras ou alturas das unidades de codificação 620a, 620b e 620c incluídos na unidade de codificação atual 600, e as larguras ou alturas podem corresponder a informações indicando as diferenças entre as coordenadas das unidades de codificação 620a, 620b e 620c na imagem. Ou seja, o aparelho de decodificação de imagem 100 pode determinar a unidade de codificação 620b na localização central, usando diretamente a informação sobre as localizações ou coordenadas das unidades de codificação 620a, 620b e 620c na figura, ou usando a informação sobre as larguras ou alturas das unidades de codificação, que correspondem aos valores de diferença entre as coordenadas.
[000133] De acordo com uma modalidade, as informações indicando a localização da amostra superior esquerda 630a da unidade de codificação superior 620a podem incluir coordenadas (xa, ya), as informações indicando a localização da amostra superior esquerda 630b da unidade de codificação central 620b podem incluir coordenadas (xb, yb) e informações indicando a localização da amostra superior esquerda 630c da unidade de codificação inferior 620c podem incluir coordenadas (xc, yc). O aparelho de decodificação de imagem 100 pode determinar a unidade de codificação intermediária 620b usando as coordenadas das amostras superiores esquerda 630a, 630b e 630c que estão incluídas nas unidades de codificação 620a, 620b e 620c, respectivamente. Por exemplo, quando as coordenadas das amostras superior esquerda 630a, 630b e 630c são classificadas em ordem crescente ou decrescente, a unidade de codificação 620b incluindo as coordenadas (xb, yb) da amostra 630b em uma localização central pode ser determinada como uma unidade de codificação em uma localização central entre as unidades de codificação 620a, 620b e 620c determinado pela divisão da unidade de codificação atual 600. No entanto, as coordenadas que indicam as localizações das amostras superior esquerda 630a, 630b e 630c podem incluir coordenadas indicando localizações absolutas na imagem ou podem usar coordenadas (dxb, dyb) indicando uma localização relativa da amostra superior esquerda 630b da unidade de codificação intermediária 620b e coordenadas (dxc, dyc) indicando uma localização relativa da amostra superior esquerda 630c da unidade de codificação inferior 620c com referência à localização da amostra superior esquerda 630a da unidade de codificação superior 620a. Um método para determinar uma unidade de codificação em uma localização predeterminada usando coordenadas de uma amostra incluída na unidade de codificação como informação indicando que a localização da amostra não está limitada ao método descrito anteriormente e pode incluir vários métodos aritméticos capazes de usar as coordenadas da amostra.
[000134] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode dividir a unidade de codificação atual 600 em uma pluralidade de unidades de codificação 620a, 620b e 620c, e pode selecionar uma das unidades de codificação 620a, 620b e 620c com base em um critério predeterminado. Por exemplo, o aparelho de decodificação de imagem 100 pode selecionar a unidade de codificação 620b, que tem um tamanho diferente das outras,
dentre as unidades de codificação 620a, 620b e 620c.
[000135] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar as larguras ou alturas de cada das unidades de codificação 620a, 620b e 620c usando as coordenadas (xa, ya) que são as informações indicando a localização da amostra superior esquerda 630a da unidade de codificação superior 620a, as coordenadas (xb, yb) que são as informações indicando a localização da amostra superior esquerda 630b da unidade de codificação intermediária 620b e as coordenadas (xc, yc) que são as informações indicando a localização da amostra superior esquerda 630c da unidade de codificação inferior 620c. O aparelho de decodificação de imagem 100 pode determinar os tamanhos respectivos das unidades de codificação 620a, 620b e 620c usando as coordenadas (xa, ya), (xb, yb) e (xc, yc) indicando as localizações das unidades de codificação 620a, 620b e 620c. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a largura da unidade de codificação superior 620a como sendo a largura da unidade de codificação atual 600. O aparelho de decodificação de imagem 100 pode determinar a altura da unidade de codificação superior 620a para ser yb-ya. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a largura da unidade de codificação intermediária 620b como sendo uma largura da unidade de codificação atual 600. O aparelho de decodificação de imagem 100 pode determinar a altura da unidade de codificação intermediária 620b como sendo yc-yb. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a largura ou a altura da unidade de codificação inferior 620c usando a largura ou a altura da unidade de codificação atual 600 ou as larguras ou alturas das unidades de codificação superior e intermediária 620a e 620b. O aparelho de decodificação de imagem 100 pode determinar uma unidade de codificação, que tem um tamanho diferente das outras, com base nas larguras e alturas determinadas das unidades de codificação 620a, 620b, e 620c. Com referência à FIG. 6, o aparelho de decodificação de imagem 100 pode determinar a unidade de codificação intermediária 620b, que tem um tamanho diferente do tamanho das unidades de codificação superior e inferior 620a e 620c, como a unidade de codificação da localização predeterminada. No entanto, o método descrito acima, realizado pelo aparelho de decodificação de imagem 100, de determinação de uma unidade de codificação com um tamanho diferente do tamanho das outras unidades de codificação corresponde apenas a um exemplo de determinação de uma unidade de codificação em uma localização predeterminada usando os tamanhos de unidades de codificação, que são determinados com base nas coordenadas das amostras e, portanto, vários métodos para determinar uma unidade de codificação em uma localização predeterminada, comparando os tamanhos de unidades de codificação, que são determinados com base nas coordenadas de amostras predeterminadas, podem ser usados.
[000136] O aparelho de decodificação de imagem 100 pode determinar a largura ou altura de cada uma das unidades de codificação 660a, 660b e 660c usando as coordenadas (xd, yd) que são informações indicando uma localização de uma amostra superior esquerda 670a da unidade de codificação esquerda 660a, as coordenadas (xe, ye) que são informações indicando uma localização da amostra superior esquerda 670b da unidade de codificação intermediária 660b e as coordenadas (xf, yf) que são informações indicando uma localização da amostra superior esquerda 670c da unidade de codificação direita 660c. O aparelho de decodificação de imagem 100 pode determinar os respectivos tamanhos das unidades de codificação 660a, 660b e 660c usando as coordenadas (xd, yd), (xe, ye) e (xf, yf) indicando as localizações das unidades de codificação 660a, 660b e 660c.
[000137] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a largura da unidade de codificação esquerda 660a para ser xe-xd. O aparelho de decodificação de imagem 100 pode determinar a altura da unidade de codificação esquerda 660a para ser a altura da unidade de codificação atual 650. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a largura da unidade de codificação intermediária 660b como xf-xe. O aparelho de decodificação de imagem 100 pode determinar a altura da unidade de codificação intermediária 660b como a altura da unidade de codificação atual 650. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a largura ou a altura da unidade de codificação direita 660c usando a largura ou a altura da unidade de codificação atual 650 ou as larguras ou alturas das unidades de codificação esquerda e intermediária 660a e 660b. O aparelho de decodificação de imagem 100 pode determinar uma unidade de codificação, que tem um tamanho diferente das outras, com base nas larguras e alturas determinadas das unidades de codificação 660a, 660b, e 660c. Com referência à FIG. 6, o aparelho de decodificação de imagem 100 pode determinar a unidade de codificação intermediária 660b, que tem um tamanho diferente dos tamanhos das unidades de codificação esquerda e direita 660a a 660c, como a unidade de codificação da localização predeterminada. No entanto, o método descrito acima, realizado pelo aparelho de decodificação de imagem 100, de determinação de uma unidade de codificação com um tamanho diferente do tamanho das outras unidades de codificação corresponde apenas a um exemplo de determinação de uma unidade de codificação em uma localização predeterminada usando os tamanhos de unidades de codificação, que são determinados com base nas coordenadas das amostras e, portanto, vários métodos para determinar uma unidade de codificação em uma localização predeterminada, comparando os tamanhos de unidades de codificação, que são determinados com base nas coordenadas de amostras predeterminadas, podem ser usados.
[000138] Entretanto, as localizações das amostras consideradas para determinar as localizações das unidades de codificação não estão limitadas às localizações superiores esquerdas descritas acima e a informação sobre as localizações arbitrárias das amostras incluídas nas unidades de codificação pode ser usada.
[000139] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode selecionar uma unidade de codificação em uma localização predeterminada entre um número ímpar de unidades de codificação determinadas pela divisão da unidade de codificação atual, considerando a forma da unidade de codificação atual. Por exemplo, quando a unidade de codificação atual tem um formato não quadrado, cuja largura é maior que uma altura, o aparelho de decodificação de imagem 100 pode determinar a unidade de codificação na localização predeterminada na direção horizontal. Ou seja, o aparelho de decodificação de imagem 100 pode determinar uma das unidades de codificação em diferentes locais na direção horizontal e pode colocar uma restrição na unidade de codificação. Quando a unidade de codificação atual tem um formato não quadrado, cuja altura é maior que uma largura, o aparelho de decodificação de imagem 100 pode determinar a unidade de codificação na localização predeterminado na direção vertical. Ou seja, o aparelho de decodificação de imagem 100 pode determinar uma das unidades de codificação em localizações diferentes em uma direção vertical e pode colocar uma restrição na unidade de codificação.
[000140] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode usar as informações indicando as respectivas localizações de um número par de unidades de codificação para determinar a unidade de codificação na localização predeterminada entre o número par de unidades de codificação. O aparelho de decodificação de imagem 100 pode determinar um número par de unidades de codificação dividindo (divisão binária) a unidade de codificação atual e pode determinar a unidade de codificação na localização predeterminada usando as informações sobre os locais do número par de unidades de codificação. Uma operação relacionada a ela pode corresponder à operação de determinar uma unidade de codificação em uma localização predeterminada (por exemplo, uma localização central) entre um número ímpar de unidades de codificação, que foi descrito em detalhes anteriormente em relação à FIG. 6 e, portanto, descrições detalhadas dos mesmos não são fornecidas aqui.
[000141] De acordo com uma modalidade, quando uma unidade de codificação atual não quadrada é dividida em uma pluralidade de unidades de codificação, as informações predeterminadas sobre uma unidade de codificação em uma localização predeterminada podem ser usadas em uma operação de divisão para determinar a unidade de codificação na localização predeterminada entre a pluralidade de unidades de codificação. Por exemplo, o aparelho de decodificação de imagem 100 pode usar pelo menos uma informação do formato de bloco e a informação do modo de formato de divisão, que são armazenadas em uma amostra incluída em uma unidade de codificação intermediária, em uma operação de divisão para determinar uma unidade de codificação em uma localização central entre a pluralidade de unidades de codificação determinada pela divisão da unidade de codificação atual.
[000142] Com referência à FIG. 6, o aparelho de decodificação de imagem 100 pode dividir a unidade de codificação atual 600 na pluralidade de unidades de codificação 620a, 620b e 620c com base nas informações do modo de forma dividida e pode determinar a unidade de codificação 620b em uma localização central dentre a pluralidade das unidades de codificação 620a, 620b e 620c. Além disso, o aparelho de decodificação de imagem 100 pode determinar a unidade de codificação 620b na localização central, em consideração de uma localização a partir da qual a informação do modo de forma de divisão é obtida. Ou seja, a informação do modo de forma de divisão da unidade de codificação atual 600 pode ser obtida a partir da amostra 640 em uma localização central da unidade de codificação atual 600 e, quando a unidade de codificação atual 600 é dividida na pluralidade de unidades de codificação 620a, 620b e 620c com base nas informações do modo de forma de divisão, a unidade de codificação 620b incluindo a amostra 640 pode ser determinada como a unidade de codificação na localização central. Entretanto, a informação usada para determinar a unidade de codificação na localização central não se limita à informação do modo de formato de divisão e vários tipos de informação podem ser usados para determinar a unidade de codificação na localização central.
[000143] De acordo com uma modalidade, as informações predeterminadas para identificar a unidade de codificação na localização predeterminada podem ser obtidas a partir de uma amostra predeterminada incluída em uma unidade de codificação a ser determinada. Com referência à FIG. 6, o aparelho de decodificação de imagem 100 pode usar a informação do modo de formato de divisão, que é obtida a partir de uma amostra em uma localização predeterminada na unidade de codificação atual 600 (por exemplo, uma amostra na localização central da unidade de codificação atual 600) para determinar um unidade de codificação em uma localização predeterminada entre a pluralidade das unidades de codificação 620a, 620b e 620c determinada pela divisão da unidade de codificação atual 600 (por exemplo, uma unidade de codificação na localização central entre uma pluralidade de unidades de codificação divididas). Ou seja, o aparelho de decodificação de imagem 100 pode determinar a amostra na localização predeterminada, considerando um formato de bloco da unidade de codificação atual 600, pode determinar a unidade de codificação 620b incluindo uma amostra, a partir da qual informações predeterminadas (por exemplo, as informações do modo de forma de divisão) podem ser obtidas, entre a pluralidade de unidades de codificação 620a, 620b e 620c, determinadas pela divisão da unidade de codificação atual 600, e podem colocar uma restrição predeterminada na unidade de codificação 620b. Com referência à FIG. 6, de acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a amostra 640 na localização central da unidade de codificação atual 600 como a amostra da qual a informação predeterminada pode ser obtida e pode colocar uma restrição predeterminada na unidade de codificação 620b incluindo a amostra 640, em uma operação de decodificação. No entanto, a localização da amostra a partir da qual a informação predeterminada pode ser obtida não está limitada à localização descrita acima e pode incluir locais arbitrários das amostras incluídas na unidade de codificação 620b a serem determinadas para uma restrição.
[000144] De acordo com uma modalidade, a localização da amostra a partir da qual a informação predeterminada pode ser obtida pode ser determinada com base no formato da unidade de codificação atual 600. De acordo com uma modalidade, as informações de formato do bloco podem indicar se a unidade de codificação atual tem um formato quadrado ou não quadrado e a localização da amostra da qual as informações predeterminadas podem ser obtidas pode ser determinada com base no formato. Por exemplo, o aparelho de decodificação de imagem 100 pode determinar uma amostra localizada em um limite para dividir pelo menos um de uma largura e altura da unidade de codificação atual pela metade, como a amostra da qual a informação predeterminada pode ser obtida, usando pelo menos as informações sobre a largura da unidade de codificação atual e as informações sobre a altura da unidade de codificação atual. Como um outro exemplo, quando a informação de formato do bloco da unidade de codificação atual indica um formato não quadrado, o aparelho de decodificação de imagem 100 pode determinar uma das amostras incluindo um limite para dividir um lado longo da unidade de codificação atual, como a amostra da qual a informação predeterminada pode ser obtida.
[000145] De acordo com uma modalidade, quando a unidade de codificação atual é dividida em uma pluralidade de unidades de codificação, o aparelho de decodificação de imagem 100 pode usar as informações do modo de formato de divisão para determinar uma unidade de codificação em uma localização predeterminada entre a pluralidade de unidades de codificação. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode obter as informações do modo de formato de divisão de uma amostra em uma localização predeterminada em uma unidade de codificação e pode dividir a pluralidade de unidades de codificação, que são geradas pela divisão da unidade de codificação atual, usando as informações do modo de formato de divisão, que são obtidas a partir da amostra da localização predeterminada em cada uma da pluralidade de unidades de codificação. Ou seja, uma unidade de codificação pode ser dividida recursivamente com base nas informações do modo de formato de divisão, que são obtidas a partir da amostra na localização predeterminada em cada unidade de codificação. Uma operação de dividir recursivamente uma unidade de codificação foi descrita acima em relação à FIG. 5 e, assim, descrições detalhadas não serão fornecidas aqui.
[000146] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar uma ou mais unidades de codificação dividindo a unidade de codificação atual e pode determinar uma ordem de decodificação da uma ou mais unidades de codificação, com base em um bloco predeterminado (por exemplo, a unidade de codificação atual).
[000147] A FIG. 7 ilustra uma ordem de processamento de uma pluralidade de unidades de codificação quando um aparelho de decodificação de imagem determina a pluralidade de unidades de codificação dividindo uma unidade de codificação atual, de acordo com uma modalidade.
[000148] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar segundas unidades de codificação 710a e 710b dividindo uma primeira unidade de codificação 700 em uma direção vertical, pode determinar as segundas unidades de codificação 730a e 730b dividindo a primeira unidade de codificação 700 em uma direção horizontal ou pode determinar as segundas unidades de codificação 750a, 750b, 750c e 750d dividindo a primeira unidade de codificação 700 nas direções vertical e horizontal, com base na informação do modo de formato de divisão.
[000149] Com referência à FIG. 7, o aparelho de decodificação de imagem 100 pode determinar o processamento das segundas unidades de codificação 710a e 710b, que são determinadas dividindo a primeira unidade de codificação 700 em uma direção vertical, em uma ordem de direção horizontal 710c. O aparelho de decodificação de imagem 100 pode determinar o processamento das segundas unidades de codificação 730a e 730b, que são determinadas dividindo a primeira unidade de codificação 700 em uma direção horizontal, em uma ordem de direção vertical 730c. O aparelho de decodificação de imagem 100 pode determinar as segundas unidades de codificação 750a, 750b, 750c, e 750d, que são determinadas pela divisão da primeira unidade de codificação 700 nas direções vertical e horizontal, de acordo com uma ordem predeterminada (por exemplo, uma ordem de varredura raster ou ordem de varredura Z 750e) pelo qual as unidades de codificação em uma linha são processadas e, então, as unidades de codificação em uma próxima linha são processadas.
[000150] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode dividir recursivamente as unidades de codificação. Com referência à FIG. 7, o aparelho de decodificação de imagem 100 pode determinar a pluralidade de unidades de codificação 710a e 710b, 730a e 730b, ou 750a, 750b, 750c, e 750d dividindo a primeira unidade de codificação 700 e pode dividir recursivamente cada uma da pluralidade determinada de unidades de codificação 710a, 710b, 730a, 730b, 750a, 750b, 750c, e 750d. Um método de divisão da pluralidade de unidades de codificação 710a e 710b, 730a e 730b, ou 750a, 750b, 750c, e 750d pode corresponder a um método de divisão da primeira unidade de codificação 700. Desta forma, cada uma da pluralidade das unidades de codificação 710a e 710b, 730a e 730b, ou 750a, 750b, 750c, e 750d pode ser dividida independentemente em uma pluralidade de unidades de codificação. Com referência à FIG. 7, o aparelho de decodificação de imagem 100 pode determinar as segundas unidades de codificação 710a e 710b dividindo a primeira unidade de codificação 700 em uma direção vertical e pode determinar dividir independentemente ou não dividir cada uma das segundas unidades de codificação 710a e 710b.
[000151] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar terceiras unidades de codificação 720a e 720b dividindo a segunda unidade de codificação esquerda 710a em uma direção horizontal e não pode dividir a segunda unidade de codificação direita 710b.
[000152] De acordo com uma modalidade, uma ordem de processamento de unidades de codificação pode ser determinada com base em uma operação de divisão de uma unidade de codificação. Em outras palavras, uma ordem de processamento de unidades de codificação dividida pode ser determinada com base em uma ordem de processamento de unidades de codificação imediatamente antes de serem divididas. O aparelho de decodificação de imagem 100 pode determinar uma ordem de processamento das terceiras unidades de codificação 720a e 720b determinadas pela divisão da segunda unidade de codificação esquerda 710a, independentemente da segunda unidade de codificação direita 710b. Como as terceiras unidades de codificação 720a e 720b são determinadas dividindo a segunda unidade de codificação esquerda 710a na direção horizontal, as terceiras unidades de codificação 720a e 720b podem ser processadas na ordem de direção vertical 720c. Também, como as segundas unidades de codificação esquerda e direita 710a e 710b são processadas na ordem de direção horizontal 710c, a segunda unidade de codificação direita 710b pode ser processada depois que as terceiras unidades de codificação 720a e 720b incluídas na segunda unidade de codificação esquerda 710a são processadas na ordem de direção vertical 720c. Uma operação de determinação de uma ordem de processamento de unidades de codificação com base em uma unidade de codificação antes de ser dividida não se limita ao exemplo descrito anteriormente e vários métodos podem ser utilizados para processar independentemente unidades de codificação, que são divididas e determinadas de vários formatos, em uma ordem predeterminada.
[000153] A FIG. 8 ilustra um processo, realizado por um aparelho de decodificação de imagem, de determinar que uma unidade de codificação atual deve ser dividida em um número ímpar de unidades de codificação, quando as unidades de codificação não são processáveis em uma ordem predeterminada, de acordo com uma modalidade.
[000154] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar que a unidade de codificação atual é para ser dividida em um número ímpar de unidades de codificação, com base nas informações obtidas no modo de formato de divisão. Com referência à FIG. 8, uma primeira unidade de codificação quadrada 800 pode ser dividida em segundas unidades de codificação não quadradas 810a e 810b e as segundas unidades de codificação 810a e 810b podem ser divididas independentemente em terceiras unidades de codificação 820a e 820b, e 820c, 820d, e 820e. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a pluralidade de terceiras unidades de codificação 820a e 820b dividindo a segunda unidade de codificação esquerda 810a em uma direção horizontal e pode dividir a segunda unidade de codificação direita 810b no número ímpar de terceiras unidades de codificação 820c, 820d, e 820e.
[000155] De acordo com uma modalidade, o aparelho de decodificação de vídeo 100 pode determinar se alguma unidade de codificação é dividida em um número ímpar de unidades de codificação, determinando se as terceiras unidades de codificação 820a e 820b, e 820c, 820d, e 820e são processáveis em uma ordem predeterminada. Com referência à FIG. 8, o aparelho de decodificação de imagem 100 pode determinar as terceiras unidades de codificação 820a e 820b, e 820c, 820d, e 820e dividindo recursivamente a primeira unidade de codificação 800. O aparelho de decodificação de imagem 100 pode determinar se qualquer uma da primeira unidade de codificação 800, das segundas unidades de codificação 810a e 810b ou das terceiras unidades de codificação 820a e 820b e 820c, 820d e 820e são divididas em um número ímpar de unidades de codificação, com base em pelo menos uma das informações de formato de bloco e informações do modo de formato de divisão. Por exemplo, uma unidade de codificação localizada à direita entre as segundas unidades de codificação 810a e 810b pode ser dividida em um número ímpar de terceiras unidades de codificação 820c, 820d e 820e. Uma ordem de processamento de uma pluralidade de unidades de codificação incluídas na primeira unidade de codificação 800 pode ser uma ordem predeterminada (por exemplo, uma ordem de digitalização Z 830) e o aparelho de decodificação de imagem 100 pode determinar se as terceiras unidades de codificação 820c, 820d e 820e, que são determinadas dividindo a segunda unidade de codificação direita 810b em um número ímpar de unidades de codificação, satisfazem uma condição para processamento na ordem predeterminada.
[000156] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar se as terceiras unidades de codificação 820a e 820b, e 820c, 820d, e 820e incluídas na primeira unidade de codificação 800 satisfazem a condição de processamento na ordem predeterminada e a condição se refere a se pelo menos uma de uma largura e altura das segundas unidades de codificação 810a e 810b deve ser dividida ao meio ao longo de um limite das terceiras unidades de codificação 820a e 820b, e 820c, 820d, e 820e. Por exemplo, as terceiras unidades de codificação 820a e 820b determinadas quando a altura da segunda unidade de codificação esquerda 810a do formato não quadrado é dividida ao meio podem satisfazer a condição. Pode ser determinado que as terceiras unidades de codificação 820c, 820d, e 820e não satisfazem a condição em virtude dos limites das terceiras unidades de codificação 820c, 820d, e 820e determinados quando a segunda unidade de codificação direita 810b é dividida em três unidades de codificação serem incapazes de dividir a largura ou a altura da segunda unidade de codificação direita 810b ao meio. Quando a condição não é satisfeita como descrito anteriormente, o aparelho de decodificação de imagem 100 pode determinar desconectar uma ordem de varredura e pode determinar que a segunda unidade de codificação direita 810b deve ser dividida em um número ímpar de unidades de codificação, com base em um resultado da determinação. De acordo com uma modalidade, quando uma unidade de codificação é dividida em um número ímpar de unidades de codificação, o aparelho de decodificação de imagem 100 pode colocar uma restrição predeterminada em uma unidade de codificação em uma localização predeterminada entre as unidades de codificação divididas. A restrição ou a localização predeterminada foi descrita anteriormente em relação a várias modalidades e, portanto, as descrições detalhadas das mesmas não serão fornecidas aqui.
[000157] A FIG. 9 ilustra um processo, realizado por um aparelho de decodificação de imagem, para determinar pelo menos uma unidade de codificação dividindo uma primeira unidade de codificação, de acordo com uma modalidade.
[000158] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode dividir uma primeira unidade de codificação 900, com base na informação do modo de formato de divisão, que é obtida através do receptor 110. A primeira unidade de codificação quadrada 900 pode ser dividida em quatro unidades de codificação quadradas ou pode ser dividida em uma pluralidade de unidades de codificação não quadradas. Por exemplo, referindo-se à FIG. 9, quando a primeira unidade de codificação 900 tem uma forma quadrada e as informações do modo de forma de divisão indicam para dividir a primeira unidade de codificação 900 em unidades de codificação não quadradas, o aparelho de decodificação de imagem 100 pode dividir a primeira unidade de codificação 900 em uma pluralidade de unidades de codificação não quadradas. Em detalhes, quando a informação do modo de formato de divisão indica que deve determinar um número ímpar de unidades de codificação dividindo a primeira unidade de codificação 900 em uma direção horizontal ou vertical, o aparelho de decodificação de imagem 100 pode dividir a primeira unidade de codificação quadrada 900 em um número ímpar de unidades de codificação, por exemplo, segundas unidades de codificação 910a, 910b e 910c determinadas pela divisão da primeira unidade de codificação quadrada 900 em uma direção vertical ou segundas unidades de codificação 920a, 920b e 920c determinadas pela divisão da primeira unidade de codificação quadrada 900 em uma direção horizontal.
[000159] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar se as segundas unidades de codificação 910a, 910b, 910c, 920a, 920b e 920c incluídas na primeira unidade de codificação 900 satisfazem uma condição para processamento em uma ordem predeterminada e a condição se relaciona a se pelo menos uma de uma largura e altura da primeira unidade de codificação 900 é para ser dividida ao meio ao longo de um limite das segundas unidades de codificação 910a, 910b, 910c, 920a, 920b e 920c.
Com referência à FIG. 9, porque os limites das segundas unidades de codificação 910a, 910b e 910c determinados pela divisão da primeira unidade de codificação quadrada 900 em uma direção vertical não dividem a largura da primeira unidade de codificação 900 pela metade, pode ser determinado que a primeira unidade de codificação 900 não satisfaz a condição de processamento na ordem predeterminada.
Também, como os limites das segundas unidades de codificação 920a, 920b e 920c determinados pela divisão da primeira unidade de codificação quadrada 900 em uma direção horizontal não dividem pela metade a altura da primeira unidade de codificação 900, pode-se determinar que a primeira unidade de codificação 900 não satisfaz a condição de processamento na ordem predeterminada.
Quando a condição não é satisfeita como descrito anteriormente, o aparelho de decodificação de imagem 100 pode decidir desconectar uma ordem de varredura e pode determinar que a primeira unidade de codificação 900 é para ser dividida em um número ímpar de unidades de codificação, com base no resultado da decisão.
De acordo com uma modalidade, quando uma unidade de codificação é dividida em um número ímpar de unidades de codificação, o aparelho de decodificação de imagem 100 pode colocar uma restrição predeterminada em uma unidade de codificação em uma localização predeterminada entre as unidades de codificação divididas.
A restrição ou a localização predeterminada foi descrita anteriormente em relação a várias modalidades e, portanto, as descrições detalhadas das mesmas não serão fornecidas aqui.
[000160] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar unidades de codificação de vários formatos dividindo uma primeira unidade de codificação.
[000161] Com referência à FIG. 9, o aparelho de decodificação de imagem 100 pode dividir a primeira unidade de codificação quadrada 900 ou uma primeira unidade de codificação não quadrada 930 ou 950 em unidades de codificação de vários formatos.
[000162] A FIG. 10 ilustra que um formato no qual uma segunda unidade de codificação é divisível é restrita quando uma segunda unidade de codificação com um formato não quadrado, que é determinado quando um aparelho de decodificação de imagem divide uma primeira unidade de codificação, satisfaz uma condição predeterminada, de acordo com uma modalidade.
[000163] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar dividir uma primeira unidade de codificação quadrada 1000 em segundas unidades de codificação não quadradas 1010a e 1010b ou 1020a e 1020b, com base em informações do modo de formato de divisão, que são obtidas pelo receptor 110. As segundas unidades de codificação 1010a e 1010b ou 1020a e 1020b podem ser divididas independentemente. Como tal, o aparelho de decodificação de imagem 100 pode determinar dividir ou não dividir a segunda unidade de codificação 1010a e 1010b ou 1020a e 1020b em uma pluralidade de unidades de codificação, com base nas informações do modo de formato de divisão de cada uma das segundas unidades de codificação 1010a e 1010b ou 1020a e 1020b. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar terceiras unidades de codificação 1012a e 1012b dividindo a segunda unidade de codificação esquerda não quadrada 1010a, que é determinada dividindo a primeira unidade de codificação 1000 em uma direção vertical, em uma direção horizontal. No entanto, quando a segunda unidade de codificação esquerda 1010a é dividida na direção horizontal, o aparelho de decodificação de imagem 100 pode restringir a segunda unidade de codificação direita 1010b a não ser dividida na direção horizontal na qual a segunda unidade de codificação esquerda 1010a é dividida. Quando as terceiras unidades de codificação 1014a e 1014b são determinadas dividindo a segunda unidade de codificação direita 1010b em uma mesma direção, porque as segundas unidades de codificação esquerda e direita 1010a e 1010b são divididas independentemente na direção horizontal, as terceiras unidades de codificação 1012a e 1012b ou 1014a e 1014b podem ser determinadas. Entretanto, este caso serve igualmente como um caso em que o aparelho de decodificação de imagem 100 divide a primeira unidade de codificação 1000 em quatro segundas unidades de codificação quadrada 1030a, 1030b, 1030c e 1030d, com base na informação do modo de formato de divisão e pode ser ineficiente em termos de decodificação de imagem.
[000164] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar terceiras unidades de codificação 1022a e 1022b, ou 1024a e 1024b dividindo a segunda unidade de codificação não quadrada 1020a ou 1020b, que é determinada dividindo a primeira unidade de codificação 1000 em uma direção horizontal, em uma direção vertical. Entretanto, quando uma segunda unidade de codificação (por exemplo, a segunda unidade de codificação superior 1020a) é dividida na direção vertical, pelo motivo descrito anteriormente, o aparelho de decodificação de imagem 100 pode restringir a outra segunda unidade de codificação (por exemplo, a segunda codificação inferior 1020b) para não ser dividida na direção vertical na qual a segunda unidade de codificação superior 1020a é dividida.
[000165] A FIG. 11 ilustra um processo, realizado por um aparelho de decodificação de imagem, de dividir uma unidade de codificação quadrada quando as informações do modo de formato de divisão indicam que a unidade de codificação quadrada não deve ser dividida em quatro unidades de codificação quadradas, de acordo com uma modalidade.
[000166] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar segundas unidades de codificação 1110a e 1110b ou 1120a e 1120b, etc. dividindo uma primeira unidade de codificação 1100 com base em informações do modo de formato de divisão. As informações do modo de forma de divisão podem incluir as informações sobre vários métodos de divisão de uma unidade de codificação, mas as informações sobre os vários métodos de divisão podem não incluir as informações de dividir uma unidade de codificação em quatro unidades de codificação quadradas. De acordo com essas informações do modo de forma de divisão, o aparelho de decodificação de imagem 100 pode não dividir a primeira unidade de codificação quadrada 1100 em quatro segundas unidades de codificação quadradas 1130a, 1130b, 1130c e 1130d. O aparelho de decodificação de imagem 100 pode determinar as segundas unidades de codificação não quadradas 1110a e 1110b ou 1120a e 1120b, etc., com base nas informações do modo de forma de divisão.
[000167] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode dividir independentemente as segundas unidades de codificação não quadradas 1110a e 1110b ou 1120a e 1120b, etc. Cada uma das segundas unidades de codificação 1110a e 1110b ou 1120a e 1120b, etc. pode ser dividida recursivamente em uma ordem predeterminada e esse método de divisão pode corresponder a um método de divisão da primeira unidade de codificação 1100, com base nas informações do modo de formato de divisão.
[000168] Por exemplo, o aparelho de decodificação de imagem 100 pode determinar a terceira unidade de codificação quadrada 1112a e 1112b dividindo a segunda unidade de codificação esquerda 1110a em uma direção horizontal e pode determinar a terceira unidade de codificação quadrada 1114a e 1114b dividindo a segunda unidade de codificação direita 1110b em uma direção horizontal. Além disso, o aparelho de decodificação de imagem 100 pode determinar as terceiras unidades de codificação quadradas 1116a, 1116b, 1116c e 1116d dividindo ambas as segundas unidades de codificação esquerda e direita 1110a e 1110b na direção horizontal. Neste caso, podem ser determinadas unidades de codificação que têm o mesmo formato que as quatro unidades de codificação quadrada 1130a, 1130b, 1130c e 1130d divididas da primeira unidade de codificação 1100.
[000169] Como outro exemplo, o aparelho de decodificação de imagem 100 pode determinar a terceira unidade de codificação quadrada 1122a e 1122b dividindo a segunda unidade de codificação superior 1120a em uma direção vertical e pode determinar a terceira unidade de codificação quadrada 1124a e 1124b dividindo a segunda unidade de codificação inferior
1120b em uma direção vertical. Além disso, o aparelho de decodificação de imagem 100 pode determinar as terceiras unidades de codificação quadradas 1126a, 1126b, 1126c e 1126d dividindo as segundas unidades de codificação tanto superior quanto inferior 1120a e 1120b em uma direção vertical. Neste caso, podem ser determinadas unidades de codificação que têm o mesmo formato que as quatro unidades de codificação quadrada 1130a, 1130b, 1130c e 1130d divididas da primeira unidade de codificação 1100.
[000170] A FIG. 12 ilustra que uma ordem de processamento entre uma pluralidade de unidades de codificação pode ser alterada dependendo de um processo de divisão de uma unidade de codificação, de acordo com uma modalidade.
[000171] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode dividir uma primeira unidade de codificação 1200, com base em informações do modo de forma de divisão. Quando uma forma de bloco indica uma forma quadrada e as informações do modo de forma dividida indicam dividir a primeira unidade de codificação 1200 em pelo menos uma das direções horizontal e vertical, o aparelho de decodificação de imagem 100 pode determinar as segundas unidades de codificação 1210a e 1210b ou 1220a e 1220b, etc. dividindo a primeira unidade de codificação 1200. Com referência à FIG. 12, as segundas unidades de codificação não quadradas 1210a e 1210b ou 1220a e 1220b determinadas pela divisão da primeira unidade de codificação 1200 em apenas uma direção horizontal ou vertical podem ser divididas independentemente com base nas informações do modo de forma de divisão de cada unidade de codificação. Por exemplo, o aparelho de decodificação de imagem 100 pode determinar as terceiras unidades de codificação 1216a, 1216b, 1216c e 1216d dividindo as segundas unidades de codificação 1210a e 1210b, que são geradas dividindo a primeira unidade de codificação 1200 em uma direção vertical, em uma direção horizontal e pode determinar terceiras unidades de codificação 1226a, 1226b, 1226c e 1226d dividindo as segundas unidades de codificação 1220a e 1220b, que são geradas dividindo a primeira unidade de codificação 1200 em uma direção horizontal, em uma direção vertical. Uma operação de divisão das segundas unidades de codificação 1210a e 1210b ou 1220a e 1220b foi descrita anteriormente em relação à FIG. 11 e, portanto, descrições detalhadas não serão fornecidas aqui.
[000172] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode processar unidades de codificação em uma ordem predeterminada. Uma operação de processamento de unidades de codificação em uma ordem predeterminada foi descrita anteriormente em relação à FIG. 7 e, portanto, descrições detalhadas não serão fornecidas aqui. Com referência à FIG. 12, o aparelho de decodificação de imagem 100 pode determinar quatro terceiras unidades de codificação quadradas 1216a, 1216b, 1216c e 1216d e 1226a, 1226b, 1226c e 1226d dividindo a primeira unidade de codificação quadrada 1200. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar ordens de processamento das terceiras unidades de codificação 1216a, 1216b, 1216c e 1216d e 1226a, 1226b, 1226c e 1226d com base em uma forma de divisão pela qual a primeira unidade de codificação 1200 é dividida.
[000173] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar as terceiras unidades de codificação 1216a, 1216b, 1216c e 1216d dividindo as segundas unidades de codificação 1210a e 1210b geradas pela divisão da primeira unidade de codificação 1200 na direção vertical, na direção horizontal e pode processar as terceiras unidades de codificação 1216a, 1216b, 1216c e 1216d em uma ordem de processamento 1217 para processar inicialmente as terceiras unidades de codificação 1216a e 1216c, incluídas na segunda unidade de codificação esquerda 1210a, na direção vertical e, então processar a terceira unidade de codificação 1216b e 1216d, que estão incluídas na segunda unidade de codificação 1210b direita, na direção vertical.
[000174] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar as terceiras unidades de codificação 1226a, 1226b, 1226c e 1226d dividindo as segundas unidades de codificação 1220a e 1220b geradas pela divisão da primeira unidade de codificação 1200 em uma direção horizontal, em uma direção vertical e pode processar as terceiras unidades de codificação 1226a, 1226b, 1226c e 1226d em uma ordem de processamento 1227 para processar inicialmente as terceiras unidades de codificação 1226a e 1226b, que estão incluídas na segunda unidade de codificação superior 1220a, em uma direção horizontal e então processar a terceira unidade de codificação 1226c e 1226d, que estão incluídas na segunda unidade de codificação inferior 1220b, em uma direção horizontal.
[000175] Com referência à FIG. 12, as terceiras unidades de codificação quadradas 1216a, 1216b, 1216c e 1216d e 1226a, 1226b, 1226c e 1226d podem ser determinadas dividindo as segundas unidades de codificação 1210a e 1210b, e 1220a e 1220b, respectivamente. Embora as segundas unidades de codificação 1210a e 1210b sejam determinadas dividindo a primeira unidade de codificação 1200 em uma direção vertical diferente das segundas unidades de codificação 1220a e 1220b que são determinadas pela divisão da primeira unidade de codificação 1200 em uma direção horizontal, as terceiras unidades de codificação 1216a, 1216b, 1216c e 1216d e 1226a, 1226b, 1226c e 1226d divididas a partir daí, eventualmente, mostram as unidades de codificação com a mesma forma dividida da primeira unidade de codificação 1200. Como tal, dividindo recursivamente uma unidade de codificação de maneiras diferentes, com base nas informações do modo de formato de divisão, o aparelho de decodificação de imagem 100 pode processar uma pluralidade de unidades de codificação em ordens diferentes, mesmo quando as unidades de codificação são finalmente determinadas como tendo o mesmo formato.
[000176] A FIG. 13 ilustra um processo de determinação de uma profundidade de uma unidade de codificação como um formato e um tamanho da unidade de codificação alterada, quando a unidade de codificação é dividida recursivamente de tal modo que uma pluralidade de unidades de codificação seja determinada, de acordo com uma modalidade.
[000177] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a profundidade da unidade de codificação, com base em um critério predeterminado. Por exemplo, o critério predeterminado pode ser o comprimento de um lado longo da unidade de codificação. Quando o comprimento de um lado longo de uma unidade de codificação antes de ser dividido é 2n vezes (n> 0) o comprimento de um lado longo de uma unidade de codificação atual de divisão, o aparelho de decodificação de imagem 100 pode determinar que uma profundidade da unidade de codificação atual é aumentada a partir de uma profundidade da unidade de codificação antes de ser dividida, por n. Na descrição a seguir, uma unidade de codificação com uma profundidade aumentada é expressa como uma unidade de codificação com uma profundidade mais inferior.
[000178] Com referência à FIG. 13, de acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar uma segunda unidade de codificação 1302 e uma terceira unidade de codificação 1304 de profundidades mais inferiores dividindo uma primeira unidade de codificação quadrada 1300 com base em informações de formato de bloco indicando um formato quadrado (por exemplo, as informações do formato do bloco podem ser expressas como '0: QUADRADO'). Supondo que o tamanho da primeira unidade de codificação quadrada 1300 seja 2N × 2N, a segunda unidade de codificação 1302 determinada dividindo uma largura e altura da primeira unidade de codificação 1300 em 1/2 pode ter um tamanho de N×N.
Além disso, a terceira unidade de codificação 1304 determinada pela divisão de uma largura e altura da segunda unidade de codificação 1302 em 1/2 pode ter um tamanho de N/2 × N/2. Neste caso, uma largura e altura da terceira unidade de codificação 1304 são 1/4 vezes as da primeira unidade de codificação 1300. Quando uma profundidade da primeira unidade de codificação 1300 é D, uma profundidade da segunda unidade de codificação 1302, cuja largura e altura são 1/2 vez a da primeira unidade de codificação 1300, pode ser D+1 e uma profundidade da terceira unidade de codificação 1304, cuja largura e altura são 1/4 vez as da primeira unidade de codificação 1300, pode ser D+2.
[000179] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar uma segunda unidade de codificação 1312 ou 1322 e uma terceira unidade de codificação 1314 ou 1324, de profundidades inferiores dividindo uma primeira unidade de codificação não quadrada 1310 ou 1320 com base em informações do formato do bloco indicando um formato não quadrado (por exemplo, as informações da forma do bloco podem ser expressas como '1:NS_VER' indicando um formato não quadrado, cuja altura é maior que uma largura ou como '2:NS_HOR' indicando um formato não quadrado, cuja largura é maior que uma altura).
[000180] O aparelho de decodificação de imagem 100 pode determinar uma segunda unidade de codificação 1302, 1312 ou 1322 dividindo pelo menos uma de uma largura e altura da primeira unidade de codificação 1310 tendo um tamanho de N×2N.
Ou seja, o aparelho de decodificação de imagem 100 pode determinar a segunda unidade de codificação 1302 com um tamanho de N×N ou a segunda unidade de codificação 1322 com um tamanho de N × N/2 dividindo a primeira unidade de codificação 1310 em uma direção horizontal, ou pode determinar a segunda unidade de codificação 1312 tendo um tamanho de N/2 × N dividindo a primeira unidade de codificação 1310 nas direções horizontal e vertical.
[000181] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a segunda unidade de codificação 1302, 1312 ou 1322 dividindo pelo menos uma de uma largura e altura da primeira unidade de codificação 1320 com um tamanho de 2N × N. Ou seja, o aparelho de decodificação de imagem 100 pode determinar a segunda unidade de codificação 1302 com um tamanho de N×N ou a segunda unidade de codificação 1312 com um tamanho de N/2 × N dividindo a primeira unidade de codificação 1320 em uma direção vertical, ou pode determinar a segunda unidade de codificação 1322 com um tamanho de N × N/2 dividindo a primeira unidade de codificação 1320 nas direções horizontal e vertical.
[000182] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a terceira unidade de codificação 1304, 1314 ou 1324 dividindo pelo menos uma de uma largura e altura da segunda unidade de codificação 1302 tendo um tamanho de N×N. Ou seja, o aparelho de decodificação de imagem 100 pode determinar a terceira unidade de codificação 1304 tendo um tamanho de N/2 × N/2, a terceira unidade de codificação 1314 tendo um tamanho de N/4 × N/2 ou a terceira unidade de codificação 1324 tendo um tamanho de N/2 × N/4 dividindo a segunda unidade de codificação 1302 nas direções vertical e horizontal.
[000183] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a terceira unidade de codificação 1304, 1314 ou 1324 dividindo pelo menos uma de uma largura e altura da segunda unidade de codificação 1312 tendo um tamanho de N/2 × N. Ou seja, o aparelho de decodificação de imagem 100 pode determinar a terceira unidade de codificação 1304 tendo um tamanho de N/2 ×N/2 ou a terceira unidade de codificação 1324 tendo um tamanho de N/2 × N/4 dividindo a segunda unidade de codificação 1312 em uma direção horizontal, ou pode determinar a terceira unidade de codificação 1314 tendo um tamanho de N/4 × N/2 dividindo a segunda unidade de codificação 1312 nas direções vertical e horizontal.
[000184] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar a terceira unidade de codificação 1304, 1314 ou 1324 dividindo pelo menos uma de uma largura e altura da segunda unidade de codificação 1322 tendo um tamanho de N × N/2. Ou seja, o aparelho de decodificação de imagem 100 pode determinar a terceira unidade de codificação 1304 tendo um tamanho de N/2 ×N/2 ou a terceira unidade de codificação 1314 tendo um tamanho de N/4 × N/2 dividindo a segunda unidade de codificação 1322 em uma direção vertical, ou pode determinar a terceira unidade de codificação 1324 tendo um tamanho de N/2 × N/4 dividindo a segunda unidade de codificação 1322 nas direções vertical e horizontal.
[000185] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode dividir a unidade de codificação quadrada 1300, 1302 ou 1304 em uma direção horizontal ou vertical. Por exemplo, o aparelho de decodificação de imagem 100 pode determinar a primeira unidade de codificação 1310 com um tamanho de N × 2N dividindo a primeira unidade de codificação 1300 com um tamanho de 2N × 2N em uma direção vertical, ou pode determinar a primeira unidade de codificação 1320 tendo um tamanho de 2N × N dividindo a primeira unidade de codificação 1300 em uma direção horizontal. De acordo com uma modalidade, quando uma profundidade é determinada com base no comprimento do lado mais longo de uma unidade de codificação, uma profundidade de uma unidade de codificação determinada dividindo a primeira unidade de codificação 1300 tendo um tamanho de 2N × 2N na direção horizontal ou vertical pode ser a mesma que a profundidade da primeira unidade de codificação 1300.
[000186] De acordo com uma modalidade, uma largura e altura da terceira unidade de codificação 1314 ou 1324 podem ser 1/4 vezes as da primeira unidade de codificação 1310 ou 1320. Quando uma profundidade da primeira unidade de codificação 1310 ou 1320 é D, uma profundidade da segunda unidade de codificação 1312 ou 1322, cuja largura e altura são 1/2 vez da primeira unidade de codificação 1310 ou 1320, pode ser D+1 e uma profundidade da terceira unidade de codificação 1314 ou 1324, cuja largura e altura são 1/4 vez da primeira unidade de codificação 1310 ou 1320, pode ser D+2.
[000187] A FIG. 14 ilustra profundidades que são determináveis com base em formatos e tamanhos de unidades de codificação e índices de parte (PIDs) que são para distinguir as unidades de codificação, de acordo com uma modalidade.
[000188] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar segundas unidades de codificação de várias formas dividindo uma primeira unidade de codificação quadrada 1400. Com referência à FIG. 14, o aparelho de decodificação de imagem 100 pode determinar segundas unidades de codificação 1402a e 1402b, 1404a e 1404b e 1406a, 1406b, 1406c e 1406d dividindo a primeira unidade de codificação 1400 em pelo menos uma das direções vertical e horizontal com base nas informações do modo de forma de divisão. Ou seja, o aparelho de decodificação de imagem 100 pode determinar as segundas unidades de codificação 1402a e 1402b, 1404a e 1404b e 1406a, 1406b, 1406c e 1406d, com base na informação do modo de formato de divisão da primeira unidade de codificação 1400.
[000189] De acordo com uma modalidade, profundidades das segundas unidades de codificação 1402a e 1402b, 1404a e 1404b e 1406a, 1406b, 1406c e 1406d, que são determinadas com base nas informações do modo de forma de divisão da primeira unidade de codificação quadrada 1400, pode ser determinada com base no comprimento de um lado comprido. Por exemplo, porque o comprimento de um lado da primeira unidade de codificação quadrada 1400 é igual ao comprimento de um lado longo das segundas unidades de codificação não quadradas 1402a e 1402b e 1404a e 1404b, a primeira unidade de codificação 1400 e as segundas unidades de codificação não quadradas 1402a e 1402b e 1404a e 1404b podem ter a mesma profundidade, por exemplo, D. No entanto, quando o aparelho de decodificação de imagem 100 divide a primeira unidade de codificação 1400 nas quatro unidades de codificação quadradas 1406a, 1406b, 1406c e 1406d com base nas informações do modo de forma de divisão, porque o comprimento de um lado das segundas unidades de codificação quadradas 1406a, 1406b, 1406c e 1406d é 1/2 vez o comprimento de um lado da primeira unidade de codificação 1400, uma profundidade das segundas unidades de codificação 1406a, 1406b, 1406c e 1406d pode ser D+1, que é mais profunda que a profundidade D da primeira unidade de codificação 1400 por 1.
[000190] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar uma pluralidade de segundas unidades de codificação 1412a e 1412b e 1414a, 1414b e 1414c dividindo uma primeira unidade de codificação 1410, cuja altura é maior que uma largura, em uma direção horizontal com base nas informações do modo de forma de divisão. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar uma pluralidade de segundas unidades de codificação 1422a e 1422b e 1424a, 1424b e 1424c dividindo uma primeira unidade de codificação 1420, cuja largura é maior que uma altura, em uma direção vertical com base na informação do modo de formato de divisão.
[000191] De acordo com uma modalidade, uma profundidade das segundas unidades de codificação 1412a e 1412b, 1414a, e 1414b e 1414c, 1422a e 1422b e 1424a, 1424b e 1424c, que são determinadas com base nas informações do modo de formato de divisão da primeira unidade de codificação não quadrada 1410 ou 1420, pode ser determinada com base no comprimento de um lado longo da mesma. Por exemplo, em virtude de o comprimento de um lado das segundas unidades de codificação quadradas 1412a e 1412b ser 1/2 vez o comprimento de um lado longo da primeira unidade de codificação 1410 com um formato não quadrado, cuja altura é maior que uma largura, uma profundidade das segundas unidades de codificação quadrada 1412a e 1412b é D+1, que é mais profunda que a profundidade D da primeira unidade de codificação não quadrada 1410 por 1.
[000192] Além disso, o aparelho de decodificação de imagem 100 pode dividir a primeira unidade de codificação não quadrada 1410 em um número ímpar de segundas unidades de codificação 1414a, 1414b e 1414c com base nas informações do modo de forma de divisão. O número ímpar de segundas unidades de codificação 1414a, 1414b e 1414c pode incluir as segundas unidades de codificação não quadradas 1414a e 1414c e a segunda unidade de codificação quadrada 1414b. Nesse caso, porque o comprimento de um lado longo das segundas unidades de codificação não quadradas 1414a e 1414c e o comprimento de um lado da segunda unidade de codificação quadrada 1414b são 1/2 vezes o comprimento de um lado longo da primeira unidade de codificação 1410, uma profundidade das segundas unidades de codificação 1414a, 1414b e 1414c pode ser D+1, que é mais profunda que a profundidade D da primeira unidade de codificação não quadrada 1410 por 1. O aparelho de decodificação de imagem 100 pode determinar as profundidades das unidades de codificação divididas a partir da primeira unidade de codificação 1420 com um formato não quadrado, cuja largura é maior que uma altura, usando o método descrito anteriormente para determinar as profundidades das unidades de codificação divididas a partir da primeira unidade de codificação 1410.
[000193] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar PIDs para identificar unidades de codificação divididas, com base em uma razão de tamanho entre as unidades de codificação quando um número ímpar de unidades de codificação divididas não tem tamanhos iguais. Com referência à FIG. 14, uma unidade de codificação 1414b de uma localização central entre um número ímpar de unidades de codificação divididas 1414a, 1414b e
1414c pode ter uma largura igual à das outras unidades de codificação 1414a e 1414c e uma altura que é duas vezes a das outras unidades de codificação 1414a e 1414c. Ou seja, neste caso, a unidade de codificação 1414b na localização central pode incluir duas das outras unidades de codificação 1414a ou 1414c. Portanto, quando um PID da unidade de codificação 1414b na localização central é 1 com base em uma ordem de digitalização, um PID da unidade de codificação 1414c localizado próximo à unidade de codificação 1414b pode ser aumentado em 2 e, portanto, pode ser 3. Ou seja, a descontinuidade nos valores de PID pode estar presente. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar se um número ímpar de unidades de codificação de divisão não tem tamanhos iguais, com base na descontinuidade presente nos PIDs para identificar as unidades de codificação de divisão.
[000194] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar se deve usar um método de divisão específico, com base em valores de PID para identificar uma pluralidade de unidades de codificação determinadas pela divisão de uma unidade de codificação atual. Com referência à FIG. 14, o aparelho de decodificação de imagem 100 pode determinar um número par de unidades de codificação 1412a e 1412b ou um número ímpar de unidades de codificação 1414a, 1414b e 1414c dividindo a primeira unidade de codificação 1410 com uma forma retangular, cuja altura é maior que uma largura. O aparelho de decodificação de imagem 100 pode usar PIDs indicando respectivas unidades de codificação, de modo a identificar as respectivas unidades de codificação. De acordo com uma modalidade, o PID pode ser obtido de uma amostra em uma localização predeterminada de cada unidade de codificação (por exemplo, amostra esquerda superior).
[000195] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar uma unidade de codificação em uma localização predeterminada entre as unidades de codificação divididas, usando os PIDs para distinguir as unidades de codificação. De acordo com uma modalidade, quando a informação do modo de formato de divisão da primeira unidade de codificação 1410 tendo uma forma retangular, cuja altura é maior que uma largura, indica dividir uma unidade de codificação em três unidades de codificação, o aparelho de decodificação de imagem 100 pode dividir a primeira unidade de codificação 1410 em três unidades de codificação 1414a, 1414b e 1414c. O aparelho de decodificação de imagem 100 pode atribuir um PID a cada uma das três unidades de codificação 1414a, 1414b e 1414c. O aparelho de decodificação de imagem 100 pode comparar PIDs de um número ímpar de unidades de codificação divididas para determinar uma unidade de codificação em uma localização central entre as unidades de codificação. O aparelho de decodificação de imagem 100 pode determinar a unidade de codificação 1414b tendo um PID correspondente a um valor médio entre os PIDs das unidades de codificação, como a unidade de codificação na localização central entre as unidades de codificação determinadas dividindo a primeira unidade de codificação 1410. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar PIDs para distinguir unidades de codificação divididas, com base em uma razão de tamanho entre as unidades de codificação quando as unidades de codificação divididas não têm tamanhos iguais.
Com referência à FIG. 14, a unidade de codificação 1414b gerada pela divisão da primeira unidade de codificação 1410 pode ter uma largura igual à das outras unidades de codificação 1414a e 1414c e uma altura que é duas vezes a das outras unidades de codificação 1414a e 1414c.
Nesse caso, quando o PID da unidade de codificação 1414b na localização central é 1, o PID da unidade de codificação 1414c localizado próximo à unidade de codificação 1414b pode ser aumentado em 2 e, portanto, pode ser 3. Quando o PID é aumentado não uniformemente como descrito acima, o aparelho de decodificação de imagem 100 pode determinar que uma unidade de codificação é dividida em uma pluralidade de unidades de codificação, incluindo uma unidade de codificação com um tamanho diferente das outras unidades de codificação.
De acordo com uma modalidade, quando as informações do modo de formato de divisão indicam dividir uma unidade de codificação em um número ímpar de unidades de codificação, o aparelho de decodificação de imagem 100 pode dividir uma unidade de codificação atual de tal maneira que uma unidade de codificação de uma localização predeterminada entre um número ímpar de unidades de codificação (por exemplo, uma unidade de codificação de uma localização central) tenha um tamanho diferente do das outras unidades de codificação.
Neste caso, o aparelho de decodificação de imagem 100 pode determinar a unidade de codificação da localização central, que tem um tamanho diferente, usando PIDs das unidades de codificação.
No entanto, os PIDs e o tamanho ou localização da unidade de codificação da localização predeterminada não se limitam aos exemplos descritos anteriormente e vários PIDs e várias localizações e tamanhos de unidades de codificação podem ser utilizados.
[000196] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode usar uma unidade de dados predeterminada em que uma unidade de codificação começa a ser dividida recursivamente.
[000197] A FIG. 15 ilustra que uma pluralidade de unidades de codificação é determinada com base em uma pluralidade de unidades de dados predeterminadas incluídas em uma imagem, de acordo com uma modalidade.
[000198] De acordo com uma modalidade, uma unidade de dados predeterminada pode ser definida como uma unidade de dados em que uma unidade de codificação começa a ser dividida recursivamente usando informações do modo de formato de divisão. Ou seja, a unidade de dados predeterminada pode corresponder a uma unidade de codificação com uma profundidade mais alta, a qual é usada para determinar uma pluralidade de unidades de codificação de divisão de uma imagem atual. Nas descrições a seguir, para facilitar a explicação, a unidade de dados predeterminada é referida como uma unidade de dados de referência.
[000199] De acordo com uma modalidade, a unidade de dados de referência pode ter um tamanho predeterminado e um formato predeterminado. De acordo com uma modalidade, uma unidade de codificação de referência pode incluir amostras M×N. Aqui, M e N podem ser iguais entre si e podem ser números inteiros expressos como potências de 2. Ou seja, a unidade de dados de referência pode ter um formato quadrado ou não quadrado e pode ser dividida em um número inteiro de unidades de codificação.
[000200] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode dividir a imagem atual em uma pluralidade de unidades de dados de referência. De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode dividir a pluralidade de unidades de dados de referência, que são divididas da imagem atual, usando as informações do modo de forma de divisão de cada unidade de dados de referência. A operação para dividir a unidade de dados de referência pode corresponder a uma operação de divisão usando uma estrutura de árvore de quatro nós.
[000201] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode determinar o tamanho mínimo permitido para as unidades de dados de referência incluídas na imagem atual. Consequentemente, o aparelho de decodificação de imagem 100 pode determinar várias unidades de dados de referência com tamanhos iguais ou maiores que o tamanho mínimo e pode determinar uma ou mais unidades de codificação usando a informação do modo de formato de divisão com referência à unidade de dados de referência determinada.
[000202] Com referência à FIG. 15, o aparelho de decodificação de imagem 100 pode usar uma unidade de codificação de referência quadrada 1500 ou uma unidade de codificação de referência não quadrada 1502. De acordo com uma modalidade, o formato e o tamanho das unidades de codificação de referência podem ser determinados com base em várias unidades de dados capazes de incluir uma ou mais unidades de codificação de referência (por exemplo, sequências, figuras, fatias, segmentos de fatia, ladrilhos, grupos de ladrilho, unidades de codificação maiores ou semelhantes).
[000203] De acordo com uma modalidade, o receptor 110 do aparelho de decodificação de imagem 100 pode obter, a partir de um fluxo contínuo de dados, pelo menos uma das informações de forma da unidade de codificação de referência e informações de tamanho da unidade de codificação de referência em relação a cada uma das várias unidades de dados. Uma operação de divisão da unidade de codificação de referência quadrada 1500 em uma ou mais unidades de codificação foi descrita anteriormente em relação à operação de divisão da unidade de codificação atual 300 da FIG. 3, e uma operação de divisão da unidade de codificação de referência não quadrada 1502 em uma ou mais unidades de codificação foi descrita acima em relação à operação de divisão da unidade de codificação atual 400 ou 450 da FIG. 4. Assim, descrições detalhadas não serão fornecidas aqui.
[000204] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode usar um PID para identificar o tamanho e o formato das unidades de codificação de referência, para determinar o tamanho e o formato das unidades de codificação de referência de acordo com algumas unidades de dados determinadas com base em uma condição predeterminada. Ou seja, o receptor 110 pode obter, do fluxo de bits, apenas o PID para identificar o tamanho e a forma das unidades de codificação de referência em relação a cada fatia, segmento de fatia, bloco, grupos de bloco, ou unidade de codificação maior que é uma unidade de dados que satisfaz uma condição predeterminada (por exemplo, uma unidade de dados com um tamanho igual ou menor que uma fatia) entre as várias unidades de dados (por exemplo, sequências, imagens, fatias, ladrilhos, grupos de ladrilhos, segmentos de fatia, unidades de codificação maiores ou semelhantes). O aparelho de decodificação de imagem 100 pode determinar o tamanho e o formato das unidades de dados de referência em relação a cada unidade de dados, que satisfaz a condição predeterminada, usando o PID. Quando as informações de formato da unidade de codificação de referência e as informações de tamanho da unidade de codificação de referência são obtidas e usadas no fluxo de bits de acordo com cada unidade de dados com um tamanho relativamente pequeno, a eficiência do uso do fluxo de bits pode não ser alta e, portanto, apenas o PID pode ser obtido e usado em vez de obter diretamente as informações de formato da unidade de codificação de referência e as informações de tamanho da unidade de codificação de referência. Nesse caso, pelo menos uma das dimensões e formatos das unidades de codificação de referência correspondentes ao PID para identificação do tamanho e do formato das unidades de codificação de referência pode ser determinada previamente. Ou seja, o aparelho de decodificação de imagem 100 pode determinar pelo menos um dentre o tamanho e formato das unidades de codificação de referência incluídos em uma unidade de dados que serve como uma unidade para obter o PID, selecionando pelo menos um dentre o tamanho e o formato determinados acima das unidades de codificação de referência com base no PID.
[000205] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode usar uma ou mais unidades de codificação de referência incluídas em uma unidade de codificação maior. Ou seja, uma unidade de codificação maior dividida de uma imagem pode incluir uma ou mais unidades de codificação de referência, e as unidades de codificação podem ser determinadas dividindo recursivamente cada unidade de codificação de referência. De acordo com uma modalidade, pelo menos uma de uma largura e altura da maior unidade de codificação pode ser um número inteiro vezes pelo menos uma da largura e altura das unidades de codificação de referência. De acordo com uma modalidade, o tamanho das unidades de codificação de referência pode ser obtido dividindo a maior unidade de codificação n vezes com base em uma estrutura de árvore de quatro nós. Ou seja, o aparelho de decodificação de imagem 100 pode determinar as unidades de codificação de referência dividindo a maior unidade de codificação n vezes com base em uma estrutura de árvore de quatro nós e pode dividir a unidade de codificação de referência com base em pelo menos uma informação de formato do bloco e a informação do modo de formato de divisão de acordo com várias modalidades.
[000206] De acordo com uma modalidade, o aparelho de decodificação de imagem 100 pode obter informações sobre o formato do bloco indicando o formato de uma unidade de codificação atual ou informações sobre o modo de formato de divisão indicando um método de divisão da unidade de codificação atual, a partir do fluxo contínuo de dados, e pode usar as informações obtidas. As informações do modo de forma de divisão podem ser incluídas no fluxo contínuo de dados relacionado a várias unidades de dados. Por exemplo, o aparelho de decodificação de imagem 100 pode usar as informações do modo de forma de divisão incluídas em um conjunto de parâmetros de sequência, um conjunto de parâmetros de imagem, um conjunto de parâmetros de vídeo, um cabeçalho de fatia, um cabeçalho de segmento de fatia, um cabeçalho de bloco, ou um cabeçalho de grupo de blocos. Além disso, o aparelho de decodificação de imagem 100 pode obter, a partir do fluxo de bits, um elemento de sintaxe correspondente à informação de formato do bloco ou à informação do modo de formato de divisão de acordo com cada unidade de codificação maior, cada unidade de codificação de referência ou cada bloco de processamento, e pode usar o elemento de sintaxe obtido.
[000207] Daqui em diante, um método para determinar uma regra de divisão de acordo com uma modalidade da divulgação será descrito em detalhes.
[000208] O aparelho de decodificação de imagem 100 pode determinar uma regra de divisão de uma imagem. A regra de divisão pode ser predeterminada entre o aparelho de decodificação de imagem 100 e o aparelho de codificação de imagem 2200. O aparelho de decodificação de imagem 100 pode determinar a regra de divisão da imagem com base em informações obtidas de um fluxo de bits. O aparelho de decodificação de imagem 100 pode determinar a regra de divisão com base nas informações obtidas de pelo menos um entre um conjunto de parâmetros de sequência, um conjunto de parâmetros de imagem, um conjunto de parâmetros de vídeo, um cabeçalho de fatia, um cabeçalho de segmento de fatia, um cabeçalho de bloco, ou um cabeçalho de grupo de blocos. O aparelho de decodificação de imagem 100 pode determinar a regra de divisão de maneira diferente de acordo com quadros, fatias, ladrilhos, camadas temporais, unidades de codificação maiores ou unidades de codificação.
[000209] O aparelho de decodificação de imagem 100 pode determinar a regra de divisão com base em uma forma do bloco de uma unidade de codificação. O formato do bloco pode incluir um tamanho, formato, uma razão de largura para altura e uma direção da unidade de codificação. O aparelho de decodificação de imagem 100 pode predeterminar para determinar a regra de divisão com base no formato do bloco da unidade de codificação. No entanto, a modalidade não está limitada a ela. O aparelho de decodificação de imagem 100 pode determinar a regra de divisão, com base na informação obtida a partir do fluxo de bits recebido.
[000210] O formato da unidade de codificação pode incluir um quadrado e um não quadrado. Quando os comprimentos da largura e da altura da unidade de codificação são os mesmos, o aparelho de decodificação de imagem 100 pode determinar a forma da unidade de codificação como quadrada. Também, quando os comprimentos da largura e da altura da unidade de codificação não são os mesmos, o aparelho de decodificação de imagem 100 pode determinar o formato da unidade de codificação como um formato não quadrado.
[000211] O tamanho da unidade de codificação pode incluir vários tamanhos, como 4x4, 8x4, 4x8, 8x8, 16x4, 16x8 e a 256x256. O tamanho da unidade de codificação pode ser classificado com base no comprimento de um lado comprido da unidade de codificação, no comprimento de um lado curto ou na área. O aparelho de decodificação de imagem 100 pode aplicar a mesma regra de divisão às unidades de codificação classificadas como o mesmo grupo. Por exemplo, o aparelho de decodificação de imagem 100 pode classificar as unidades de codificação tendo os mesmos comprimentos dos lados longos como tendo o mesmo tamanho. Além disso, o aparelho de decodificação de imagem 100 pode aplicar a mesma regra de divisão a unidades de codificação com os mesmos comprimentos de lados longos.
[000212] A razão da largura para a altura da unidade de codificação pode incluir 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 1:16,
16:1, 32:1, 1:32 ou semelhantes. Além disso, uma direção da unidade de codificação pode incluir uma direção horizontal e uma direção vertical. A direção horizontal pode indicar um caso em que o comprimento da largura da unidade de codificação é maior que o comprimento da sua altura. A direção vertical pode indicar um caso em que o comprimento da largura da unidade de codificação é menor que o comprimento da sua altura.
[000213] O aparelho de decodificação de imagem 100 pode determinar adaptativamente a regra de divisão com base no tamanho da unidade de codificação. O aparelho de decodificação de imagem 100 pode determinar diferentemente um modo de forma de divisão permitido com base no tamanho da unidade de codificação. Por exemplo, o aparelho de decodificação de imagem 100 pode determinar se a divisão é permitida com base no tamanho da unidade de codificação. O aparelho de decodificação de imagem 100 pode determinar uma direção de divisão de acordo com o tamanho da unidade de codificação. O aparelho de decodificação de imagem 100 pode determinar um tipo de divisão permitido de acordo com o tamanho da unidade de codificação.
[000214] A regra de divisão determinada com base no tamanho da unidade de codificação pode ser uma regra de divisão predeterminada no aparelho de decodificação de imagem 100. Também, o aparelho de decodificação de imagem 100 pode determinar a regra de divisão, com base na informação obtida a partir do fluxo de bits.
[000215] O aparelho de decodificação de imagem 100 pode determinar adaptativamente a regra de divisão com base em uma localização da unidade de codificação. O aparelho de decodificação de imagem 100 pode determinar adaptativamente a regra de divisão com base na localização da unidade de codificação na imagem.
[000216] Além disso, o aparelho de decodificação de imagem 100 pode determinar a regra de divisão, para que as unidades de codificação geradas por meio de diferentes caminhos de divisão não tenham a mesma forma de bloco. No entanto, uma modalidade não é limitada a ela, e as unidades de codificação geradas por diferentes caminhos de divisão têm a mesma forma de bloco. As unidades de codificação geradas pelos diferentes caminhos de divisão podem ter diferentes ordens de processamento de decodificação. Como as ordens de processamento de decodificação foram descritas anteriormente com referência à FIG. 12, seus detalhes não são fornecidos novamente.
[000217] A FIG. 16 é um diagrama de blocos de um sistema de codificação e decodificação de imagem.
[000218] Um final de codificação 1610 de um sistema de codificação e decodificação de imagem 1600 transmite um fluxo de bits codificado de uma imagem e um final de decodificação 1650 produz uma imagem reconstruída recebendo e decodificando o fluxo de bits. Aqui, o final de decodificação 1550 pode ter uma configuração semelhante ao aparelho de decodificação de imagem 100.
[000219] No final de codificação 1610, um codificador de predição 1615 envia uma imagem de referência por meio de predição inter e predição intra, e um transformador e quantizador 1620 quantiza os dados residuais entre a figura de referência e uma imagem de entrada atual para um coeficiente de transformada quantizado e envia o coeficiente de transformada quantizado. Um codificador de entropia 1625 transforma o coeficiente de transformada quantizado codificando o coeficiente de transformada quantizado e envia o coeficiente de transformada quantizado transformado como um fluxo de bits. O coeficiente de transformada quantizado é reconstruído como dados de um domínio espacial por meio de um quantizador inverso e transformador inverso 1630 e os dados do domínio espacial são enviados como uma imagem reconstruída por meio de um filtro de desbloqueio 1635 e um filtro de laço
1640. A imagem reconstruída pode ser usada como uma imagem de referência de uma próxima imagem de entrada por meio do codificador de predição 1615.
[000220] Dados de imagem codificados entre o fluxo de bits recebido pelo final de decodificação 1650 são reconstruídos como dados residuais de um domínio espacial por meio de um decodificador de entropia 1655 e um quantizador inverso e transformador inverso 1660. Os dados de imagem de um domínio espacial são configurados quando uma imagem de referência e saída de dados residuais de um decodificador de predição 1675 são combinados e um filtro de desbloqueio 1665 e um filtro de laço 1670 podem gerar uma imagem reconstruída em relação a uma imagem original atual realizando a filtração nos dados de imagem do domínio espacial. A imagem reconstruída pode ser usada pelo decodificador de predição 1675 como uma imagem de referência para uma próxima imagem original.
[000221] O filtro de laço 1640 do final da codificação 1610 realiza a filtração de laço usando a entrada de informação de filtro de acordo com uma entrada do usuário ou configuração do sistema. A informação de filtro usada pelo filtro de laço 1640 é enviada ao codificador de entropia 1625 e transmitida para a extremidade de decodificação 1650 juntamente com os dados de imagem codificados. O filtro de laço 1670 da extremidade de decodificação 1650 pode realizar a filtração de laço com base na entrada de informação de filtro da extremidade de decodificação 1650.
[000222] A seguir, com referência às FIGS. 17 a 20, um método e aparelho para codificar ou decodificar um vídeo expandindo um modo de mesclagem com diferença de vetor de movimento, de acordo com uma modalidade divulgada no presente relatório descritivo, será agora descrito.
[000223] A FIG. 17 é um diagrama de blocos de um aparelho de decodificação de vídeo de acordo com uma modalidade.
[000224] Com referência à FIG. 17, um aparelho de decodificação de vídeo 1700 de acordo com uma modalidade pode incluir um obtentor de elemento de sintaxe 1710 e um decodificador 1720.
[000225] O aparelho de decodificação de imagem 1700 pode obter um fluxo de bits gerado em decorrência da codificação de uma imagem, e pode decodificar informação de movimento para predição inter com base na informação incluída no fluxo de bits.
[000226] O aparelho de decodificação de vídeo 1700 de acordo com uma modalidade pode incluir um processador central (não mostrado) para controlar o obtentor de elemento de sintaxe 1710 e o decodificador 1720. Alternativamente, o obtentor de elemento de sintaxe 1710 e o decodificador 1720 podem operar por seus próprios processadores (não mostrados) e os processadores podem operar sistematicamente entre si para operar o aparelho de decodificação de vídeo 1700. Alternativamente, o obtentor de elemento de sintaxe 1710 e o decodificador 1720 podem ser controlados de acordo para controlar por um processador externo (não mostrado) do aparelho de decodificação de vídeo 1700.
[000227] O aparelho de decodificação de vídeo 1700 pode incluir um ou mais armazenamentos de dados (não mostrados) que armazenam dados de entrada / saída do obtentor do elemento de sintaxe 1710 e o decodificador 1720. O aparelho de decodificação de vídeo 1700 pode incluir um controlador de memória (não mostrado) para controlar a entrada e saída de dados para e a partir do armazenamento de dados.
[000228] O aparelho de decodificação de vídeo 1700 pode realizar uma operação de decodificação de imagem incluindo predição operando conectivamente com um processador de decodificação de vídeo interno ou um processador de decodificação de vídeo externo, de modo a reconstruir uma imagem por meio de decodificação de imagem. O processador de decodificação de vídeo interno do aparelho de decodificação de vídeo 1700 de acordo com uma modalidade pode realizar uma operação de decodificação de imagem básica de uma maneira que não apenas um processador separado, mas também um módulo de processamento de decodificação de imagem incluído em um aparelho de processamento central ou um aparelho de processamento gráfico, realize a operação básica de decodificação de imagem.
[000229] O aparelho de decodificação de vídeo 1700 pode ser incluído no aparelho de decodificação de imagem 100 descrito anteriormente. Por exemplo, o obtentor do elemento de sintaxe 1710 pode ser incluído no receptor 110 do aparelho de decodificação de imagem 100 da FIG. 1, e o obtentor do elemento de sintaxe 1710 e o decodificador 1720 pode ser incluído no decodificador 120 do aparelho de decodificação de imagem 100.
[000230] O obtentor de elemento de sintaxe 1710 recebe um fluxo de bits gerado como resultado da codificação de uma imagem. O fluxo de bits pode incluir informações para determinar um vetor de movimento usado para predição inter de um bloco atual. O bloco atual é um bloco gerado quando uma imagem é dividida de acordo com uma estrutura em árvore e, por exemplo, pode corresponder a uma maior unidade de codificação, uma unidade de codificação ou uma unidade de transformada.
[000231] O obtentor de elemento de sintaxe 1710 pode determinar o bloco atual com base na informação de formato de bloco e / ou informação sobre um modo de formato de divisão, que estão incluídos em pelo menos um de um conjunto de parâmetros de sequência, um conjunto de parâmetros de figura, um conjunto de parâmetros de vídeo, um cabeçalho de fatia e um cabeçalho de segmento de fatia. Além disso, o obtentor de elemento de sintaxe 1710 pode obter, a partir do fluxo de bits, um elemento de sintaxe correspondente à informação de formato de bloco ou a informação sobre o modo de formato de divisão de acordo com cada maior unidade de codificação, cada unidade de codificação de referência ou cada bloco de processamento, e pode usar o elemento de sintaxe obtido para determinar o bloco atual.
[000232] O fluxo de bits pode incluir informações que indicam um modo de predição do bloco atual e o modo de predição do bloco atual pode incluir um modo intra e um modo inter. Quando o modo de predição do bloco atual é o modo interno, um esquema de codificação / decodificação de um vetor de movimento pode incluir pelo menos um de um modo de mesclagem, um modo de pular e um modo MMVD. No modo de mesclagem ou no modo de pular, uma lista de candidatos de mesclagem incluindo candidatos de vetor de movimento é usada, e um candidato de vetor de movimento indicado por um índice de mesclagem entre os candidatos de vetor de movimento pode ser determinado como um candidato de vetor de movimento de mesclagem. O modo MMVD representa um modo de mesclagem com diferença de vetor de movimento e pode ser um modo no qual um vetor de movimento de predição do bloco atual é determinado pela aplicação de uma diferença de vetor de movimento distinguida de acordo com uma distância de uma diferença e uma direção da distância, a um vetor de movimento de base determinado entre os candidatos de vetor de movimento.
[000233] De acordo com uma modalidade, as informações relacionadas ao modo MMVD podem ser obtidas a partir do fluxo de bits. As informações relacionadas ao modo MMVD de acordo com uma modalidade podem incluir pelo menos uma das informações que indicam se o modo MMVD é usado para o bloco atual (a seguir, informações MMVD), informações que indicam o vetor de movimento de base do bloco atual (a seguir, fusão índice), informações que indicam a distância da diferença do vetor de movimento de base para os candidatos de vetor de movimento (daqui em diante, um índice de distância de uma diferença) e informações que indicam a direção da diferença do vetor de movimento de base para os candidatos de vetor de movimento (daqui em diante, um índice de direção da diferença).
[000234] O obtentor de elemento de sintaxe 1710 pode obter as informações relacionadas ao modo MMVD no formato de um elemento de sintaxe de uma sintaxe correspondente a pelo menos uma unidade de entre uma unidade de codificação, uma unidade de transformada, uma maior unidade de codificação, uma unidade de fatia e uma unidade de imagem.
[000235] O aparelho de decodificação de vídeo 1700 pode receber a sintaxe na forma de um fluxo de bits, pode obter o elemento de sintaxe da sintaxe executando a decodificação de entropia e pode interpretar várias informações indicadas por cada elemento de sintaxe. Portanto, pode ser entendido que o obtentor de elemento de sintaxe 1710 obtém várias informações (elementos de sintaxe) do fluxo de bits (sintaxe).
[000236] O decodificador 1720 pode verificar se o modo MMVD é usado para o bloco atual, com base na informação MMVD obtida a partir do fluxo de bits. As informações que indicam se o modo MMVD é aplicado podem incluir um sinalizador ou um índice.
[000237] De acordo com uma modalidade, o modo MMVD pode ser aplicado a várias ferramentas que estão disponíveis em um modo de predição inter. Por conseguinte, o aparelho de decodificação de vídeo 1700 precisa determinar se o modo MMVD é aplicado a cada ferramenta do modo de predição inter.
[000238] Por exemplo, em um primeiro esquema, se o modo MMVD é aplicado a cada ferramenta pode ser determinado apenas.
[000239] Como outro exemplo, em um segundo esquema, após se o modo MMVD é aplicado a todas as ferramentas é determinado primeiro, se aplicável, se o modo MMVD é aplicado a cada ferramenta é determinado. Quando o modo MMVD não é aplicado a todas as ferramentas, não é necessário determinar se o modo MMVD é aplicado a cada ferramenta.
[000240] Para determinar se deve aplicar o modo MMVD, o aparelho de decodificação de vídeo 1700 de acordo com uma modalidade pode obter, a partir de um fluxo de bits, um elemento de sintaxe incluindo informações, como um sinalizador. Portanto, no primeiro esquema, mesmo quando o modo MMVD não é aplicado a várias ferramentas, o aparelho de decodificação de vídeo 1700 tem que obter, a partir de um bitstream, um sinalizador para determinar que o modo MMVD não é aplicado a cada uma das várias ferramentas.
[000241] No entanto, de acordo com o segundo esquema, o aparelho de decodificação de vídeo 1700 pode primeiro obter, a partir do fluxo de bits, um sinalizador indicando se o modo MMVD está habilitado para várias ferramentas. Quando o modo MMVD é aplicável, com base no sinalizador, o aparelho de decodificação de vídeo 1700 pode obter um sinalizador para cada ferramenta de modo a determinar se o modo MMVD é aplicado. Quando o modo MMVD não é aplicável, com base no sinalizador que indica se o modo MMVD está habilitado para várias ferramentas, o aparelho de decodificação de vídeo 1700 não precisa obter adicionalmente um sinalizador indicando se o modo MMVD é aplicado a cada ferramenta, de modo que a decodificação a eficiência pode ser aumentada.
[000242] A seguir, uma modalidade será agora descrita, na qual, para cada sequência e de acordo com o segundo esquema, o aparelho de decodificação de vídeo 1700 primeiro determina se o modo MMVD é aplicável e, se aplicável, determina se o modo MMVD é aplicado a um determinado ferramenta.
[000243] O obtentor de elemento de sintaxe 1710 de acordo com uma modalidade pode obter, a partir de um conjunto de parâmetros de sequência, informações de sequência MMVD indicando se o modo MMVD é aplicável em uma sequência atual. O modo MMVD em uma sequência se refere coletivamente a modos de predição de ajuste de um vetor de movimento usando um índice de distância e um índice de direção do vetor de movimento que são sinalizados separadamente do vetor de movimento, em vários modos de predição inter realizados a um nível de dados igual a ou menos do que uma sequência. Quando o modo MMVD é aplicável de acordo com a sequência de informações MMVD, o obtentor de elemento de sintaxe 1710 de acordo com uma modalidade pode, adicionalmente, obter a primeira informação MMVD indicando se o modo MMVD é aplicado em um primeiro modo de predição inter e segunda informação MMVD indicando se o modo MMVD é aplicado em um segundo modo de predição inter para um bloco atual incluído na sequência atual. Quando o modo MMVD é aplicado no primeiro modo de predição inter de acordo com a primeira informação de MMVD, o decodificador 1720 pode reconstruir um vetor de movimento de acordo com o modo MMVD no primeiro modo de predição inter, e quando o modo MMVD é aplicado no segundo modo de predição inter de acordo com a segunda informação MMVD, o decodificador 1720 pode reconstruir o vetor de movimento de acordo com o modo MMVD no segundo modo de predição inter. No entanto, quando o modo MMVD não é aplicável de acordo com a informação de sequência MMVD, o obtentor de elemento de sintaxe 1710 de acordo com uma modalidade não precisa obter, a partir do fluxo de bits, a primeira informação MMVD e a segunda informação MMVD.
[000244] Em um exemplo particular, o obtentor de elemento de sintaxe 1710 pode obter, a partir do conjunto de parâmetros de sequência, as informações de sequência MMVD indicando se o modo MMVD é aplicável na sequência atual. Quando o modo MMVD é aplicável de acordo com as informações de sequência MMVD, o obtentor de elemento de sintaxe 1710 de acordo com uma modalidade pode obter informações de sequência de subpixel MMVD indicando se uma diferença de vetor de movimento em uma unidade de pixel inteiro é usada ou uma diferença de vetor de movimento em um unidade de subpixel é usada na sequência atual. Quando o modo MMVD é aplicável de acordo com a informação de sequência MMVD, o obtentor de elemento de sintaxe 1710 de acordo com uma modalidade pode obter informação MMVD indicando se o modo MMVD é usado para o bloco atual incluído na sequência atual.
[000245] Quando o modo MMVD é usado para o bloco atual de acordo com as informações MMVD, o decodificador 1720 pode reconstruir, de acordo com as informações MMVD, uma distância de uma diferença de vetor de movimento em uma unidade de pixel inteiro ou uma unidade de subpixel a partir de um índice de distância da diferença do vetor de movimento do bloco atual obtido do fluxo de bits. O obtentor de elemento de sintaxe 1710 de acordo com uma modalidade pode determinar um vetor de movimento do bloco atual usando a distância da diferença do vetor de movimento e pode reconstruir o bloco atual usando o vetor de movimento do bloco atual.
[000246] Além disso, quando um modo de salto ou um modo de mesclagem é usado para o bloco atual, o obtentor de elemento de sintaxe 1710 pode extrair, do fluxo de bits, a informação MMVD indicando se o modo MMVD é aplicado.
[000247] Quando o modo MMVD é usado para o bloco atual, os candidatos de vetor de movimento podem ser definidos de acordo com a distância variável da diferença e a direção variável da diferença do vetor de movimento base.
[000248] A distância da diferença é um valor determinado com base em uma unidade de pixel base (por exemplo, uma unidade de 1/4 pixel) e pode indicar uma diferença por unidades de pixel base. Por exemplo, quando a distância da diferença entre o vetor de movimento de base e o vetor de movimento é 1, o vetor de movimento e o vetor de movimento de base são diferentes por uma distância de pixel correspondente a uma unidade de 1/4 de pixel. A distância da diferença pode ter um valor correspondente a um número inteiro, um número racional ou um número irracional.
[000249] Quando uma menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual é a mesma que a unidade de pixel de base, o decodificador 1720 pode determinar vetores de movimento de acordo com uma distância predeterminada de uma diferença.
[000250] No entanto, quando a menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual é diferente da unidade de pixel base, o decodificador 1720 pode escalar a distância da diferença predeterminada e, em seguida, determinar o candidato de vetor de movimento para o vetor de movimento base, com base na distância da diferença escalonada.
[000251] Quando o vetor de movimento do bloco atual é capaz de indicar pixels correspondentes a uma unidade de pixel inteiro, uma unidade de 1/2 pixel, uma unidade de 1/4 de pixel e uma unidade de 1/8 de pixel, a menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual é de 1/8 da unidade de pixel. Além disso, quando a unidade de pixel de base é uma unidade de 1/4 de pixel, o decodificador 1720 pode aumentar a distância da diferença para determinar o vetor de movimento.
[000252] De acordo com uma modalidade, o decodificador 1720 pode escalonar a distância da diferença de acordo com uma razão da unidade de pixel de base para a menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual.
[000253] De acordo com uma modalidade, o decodificador 1720 pode aumentar a distância da diferença quando a unidade de pixel de base é maior do que a menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual.
[000254] De acordo com uma modalidade, o vetor de movimento de base do bloco atual pode ser determinado a partir de uma lista de candidato a mesclagem usada no modo de salto e no modo de mesclagem. A lista de candidato a mesclagem pode incluir blocos adjacentes relacionados ao bloco atual espacial e temporalmente. Os blocos adjacentes relacionados ao bloco atual espacial e temporalmente podem incluir um bloco decodificado antes do bloco atual. Consequentemente, o vetor de movimento de base de acordo com uma modalidade pode ser determinado a partir de um vetor de movimento de um bloco adjacente determinado a partir da lista de candidato a mesclagem.
[000255] O bloco adjacente relacionado espacialmente ao bloco atual pode incluir, por exemplo, um bloco localizado à esquerda do bloco atual e um bloco localizado por cima do bloco atual, mas não está limitado aos mesmos. Também, o bloco adjacente temporalmente relacionado ao bloco atual pode incluir, por exemplo, um bloco localizado no mesmo ponto do bloco atual dentre os blocos incluídos em uma figura de referência diferente da figura atual, incluindo o bloco atual e um bloco espacialmente adjacente ao bloco localizado no mesmo ponto.
[000256] De acordo com uma modalidade, o decodificador 1720 pode determinar vetores de movimento dos blocos adjacentes relacionados ao bloco atual como o vetor de movimento de base.
O decodificador 1720 pode determinar o vetor de movimento de base em uma lista de candidatos de mesclagem usando um índice de mesclagem obtido a partir do fluxo de bits. O índice de mesclagem pode ser referido como um índice de mesclagem.
[000257] O índice de mesclagem de acordo com uma modalidade pode indicar no máximo um segundo candidato na lista de candidatos de mesclagem.
[000258] Alternativamente, o decodificador 1720 pode modificar os vetores de movimento dos blocos adjacentes relacionados ao bloco atual e pode determinar os vetores de movimento modificados como o vetor de movimento de base. De acordo com uma modalidade, o decodificador 1720 pode determinar o vetor de movimento de base da mesma maneira que um método para determinar uma lista de candidato a preditores de vetor de movimento em um modo de predição de vetor de movimento avançado (AMVP) do padrão de codificação de vídeo de alta eficiência (HEVC).
[000259] O índice de mesclagem do bloco atual de acordo com uma modalidade pode ser codificada por meio de um método de codificação de comprimento fixo (FLC), um método de codificação unário ou um método de codificação unário truncado e, então, pode ser incluída no fluxo de bits. Por exemplo, quando o índice de mesclagem é decodificado por meio do método FLC, um valor cMax pode ser 1.
[000260] Quando o vetor de movimento de base para o bloco atual é determinado, o codificador 1720 pode determinar o vetor de movimento aplicando o vetor de movimento de base à diferença do vetor de movimento de mesclagem.
[000261] O obtentor de elemento de sintaxe 1710 pode obter, a partir do fluxo de bits, informações indicando pelo menos um de um índice de distância de uma diferença e um índice de direção de uma diferença, e o decodificador 1720 pode determinar a diferença do vetor de movimento de fusão, com base em pelo menos um do índice de distância da diferença e o índice de direção da diferença. O vetor de movimento do bloco atual pode ser determinado a partir do vetor de movimento base.
[000262] O obtentor de elemento de sintaxe 1710 de acordo com uma modalidade pode decodificar o índice de distância da diferença por meio do método de codificação unário truncado e, neste momento, um valor cMax pode ser 7 e um valor cRiceParam pode ser 0. O obtentor de elemento de sintaxe 1710 de acordo com uma modalidade pode decodificar o índice de direção da diferença por meio do método FLC e, neste momento, um valor cMax pode ser 3 e um valor cRiceParam pode ser 0.
[000263] O decodificador 1720 de acordo com uma modalidade, pode escalonar a distância da diferença verificada a partir do fluxo de bits de acordo com uma razão da unidade de pixel de base para a menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual. Quando a unidade de pixel base (por exemplo, uma unidade de 1/4 de pixel) é maior do que a menor unidade de pixel (por exemplo, uma unidade de 1/8 de pixel) capaz de ser indicada pelo vetor de movimento do bloco atual, o codificador 1720 pode aumentar a distância da diferença verificada a partir do fluxo de bits.
[000264] A distância escalonada da diferença pode indicar uma diferença nas menores unidades de pixel. Por exemplo, quando a menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual é uma unidade de 1/8 de pixel e a distância escalonada da diferença é 2, o decodificador 1720 pode determinar o vetor de movimento tendo uma diferença por uma distância de pixel correspondendo a duas unidades de 1/8 de pixel do vetor de movimento base.
[000265] Conforme descrito acima, a distância da diferença predeterminada com base na unidade de pixel de base é usada para determinar o vetor de movimento do bloco atual com base no vetor de movimento de base determinado a partir da lista de candidato a mesclagem e em virtude de a informação que indica a distância da diferença com base no unidade de pixel base ser sinalizada através do fluxo de bits, o decodificador inter 1720 de uma precisão capaz de indicar a menor unidade de pixel, diferente de uma precisão da unidade de pixel base, pode escalonar a distância da diferença sinalizada por meio do fluxo de bits, de acordo com a menor unidade de pixel.
[000266] A distância da diferença determinada com base na unidade de pixel base e a distância da diferença escalonada com base na menor unidade de pixel pode ser a mesma em relação a uma distância de pixel.
[000267] De acordo com uma modalidade, a informação que indica a menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual pode ser incluída no fluxo de bits. O obtentor de elemento de sintaxe 1710 pode obter a informação que indica a menor unidade de pixel do fluxo de bits correspondente a pelo menos um nível dentre um bloco, uma fatia e uma figura.
[000268] Pelo menos um do índice de distância da diferença e do índice de direção da diferença para determinar o vetor de movimento do bloco atual pode ser obtido a partir do fluxo de bits em um nível de unidade de transformada, um nível de unidade de codificação, um nível de unidade de codificação maior, um nível de fatia ou um nível de figura.
[000269] O obtentor de elemento de sintaxe 1710 de acordo com uma modalidade pode obter alguns bins entre o índice de distância da diferença realizando a decodificação de entropia usando informações de contexto (variável de contexto) e pode obter bins restantes realizando a decodificação de entropia em um modo de desvio.
[000270] Ao realizar a decodificação de entropia em uma maneira de codificação aritmética binária adaptiva ao contexto (CABAC) no fluxo de bits, cada bin de um elemento de sintaxe pode ser extraído e a informação de contexto pode ser usada para cada bin. A decodificação de um modo de desvio pode ser realizada, em que a decodificação de entropia baseada em probabilidade com probabilidade igual de 0,5 é realizada sem usar as informações de contexto. Para a decodificação de entropia de um bin atual, é determinado se a informação de contexto é usada e qual informação de contexto deve ser usada.
[000271] O obtentor de elemento de sintaxe 1710 de acordo com uma modalidade pode obter um primeiro bin do índice de distância da diferença do vetor de movimento de mesclagem executando a decodificação de entropia usando as informações de contexto no fluxo de bits. Além disso, o obtentor de elemento de sintaxe 1710 pode obter outros bins do índice de distância da diferença do vetor de movimento de mesclagem executando a decodificação de entropia no modo de desvio no fluxo de bits
[000272] O obtentor de elemento de sintaxe 1710 de acordo com uma modalidade pode realizar a decodificação de entropia no fluxo de bits no modo de desvio para obter um bin de dois bits indicando o índice de direção da diferença.
[000273] O obtentor de elemento de sintaxe 1710 pode obter informação indicando um vetor de movimento residual do fluxo de bits no nível da unidade de transformada, o nível da unidade de codificação, o maior nível da unidade de codificação, o nível de fatia ou o nível de figura.
[000274] Candidatos a vetor de movimento que podem ser determinados a partir do vetor de movimento de base no modo MMVD de acordo com uma modalidade serão descritos abaixo com referência à FIG. 21.
[000275] A FIG. 21 ilustra as posições dos candidatos a vetor de movimento, de acordo com uma modalidade.
[000276] O decodificador 1720 de acordo com uma modalidade pode determinar o vetor de movimento do bloco atual aplicando a diferença do vetor de movimento de mesclagem ao vetor de movimento de base. De acordo com uma modalidade, quando uma direção de predição do bloco atual é bidirecional, a diferença do vetor de movimento de mesclagem pode ser incluída no fluxo de bits apenas para modo unidirecional. Por exemplo, a informação que indica a diferença do vetor de movimento de mesclagem pode ser incluída no fluxo de bits apenas para modo unidirecional de qualquer uma dentre uma direção de lista 0 e uma direção de lista 1.
[000277] A FIG. 21 ilustra vetores de movimento que podem ser determinados no modo MMVD em predição bidirecional.
[000278] Um vetor de movimento de base 2125 em uma direção L0 e um vetor de movimento de base 2135 em uma direção de L1 de um bloco atual 2110 de uma imagem atual 2100 são determinados em uma lista de candidato a mesclagem. O vetor de movimento de base 2125 na direção L0 indica uma localização de uma formato de linha tracejada em uma figura de referência L0 2120 e o vetor de movimento de base 2135 na direção de L1 indica uma localização de um formato de linha tracejada em uma figura de referência L1 2130.
[000279] No entanto, no modo MMVD, a diferença do vetor de movimento pode ser aplicada a cada um do vetor de movimento de base 2125 e ao vetor de movimento de base 2135 na direção L1, com base no índice de direção da diferença e no índice de distância da diferença.
[000280] Por exemplo, pode ser determinado se uma distância entre um vetor de movimento de base e um candidato a vetor de movimento é s, 2s, 3s ou semelhantes, de acordo com o índice de distância da diferença. Quando o índice de distância da diferença indica s, um candidato a vetor de movimento gerado em decorrência da aplicação da diferença de vetor de movimento ao vetor de movimento base pode indicar uma localização de um círculo preto entre a figura de referência L0 2120 e a figura de referência L1 2130. Quando o índice de distância da diferença indica 2s, o candidato a vetor de movimento gerado em decorrência da aplicação da diferença do vetor de movimento ao vetor de movimento base pode indicar uma localização de um círculo branco entre a figura de referência L0 2120 e a figura de referência L1 2130.
[000281] Por exemplo, pode ser determinado se uma direção entre o vetor de movimento de base e o vetor de movimento candidato é + ou - nas direções dos eixos x e y, de acordo com o índice de direção da diferença. Em particular, o índice de direção da diferença pode indicar um dentre (+, 0), (-, 0), (0, +) e (0, -) em uma direção ao eixo (x, y).
[000282] Consequentemente, um vetor de movimento indicando uma localização entre a figura de referência L0 2120 e a figura de referência L1 2130 pode ser determinado combinando o índice de distância da diferença e o índice de direção da diferença.
[000283] Daqui em diante, com referência à FIG. 22, será descrito um método para determinar os candidatos de vetor de movimento que podem ser determinados a partir do vetor de movimento de base. A FIG. 22 é um diagrama que mostra os candidatos de vetor de movimento exibidos em um plano de coordenadas e ilustra os candidatos de vetor de movimento determinados de acordo com a distância da diferença predeterminada com base na unidade de pixel base correspondente a uma unidade de 1/4 de pixel.
[000284] Com referência à FIG. 22, o decodificador 1720 pode determinar candidatos localizados de acordo com uma forma predeterminada em relação à configuração dos candidatos de vetor de movimento. O formato predeterminado pode ser semelhante a um polígono, como um diamante, um retângulo ou um círculo.
[000285] O decodificador 1720 pode determinar candidatos em uma distância uniforme de uma diferença de um ponto correspondente ao vetor de movimento de base como os candidatos do vetor de movimento. O decodificador 1720 pode determinar os candidatos de vetor de movimento em uma primeira distância de uma diferença de um ponto pré-definido, determinar os candidatos de vetor de movimento em uma segunda distância da diferença do ponto pré-definido e pode determinar os candidatos de vetor de movimento em uma enésima distância da diferença do ponto predefinido. A distância da diferença pode ser determinada de acordo com a definição de um usuário. Alternativamente, o decodificador 1720 pode determinar diretamente a distância da diferença com base nas informações relacionadas ao bloco atual, uma camada temporal ou um grupo de imagens (GOP), ou obter, através do fluxo de bits, informações indicando a distância da diferença para determinar os candidatos do vetor de movimento.
[000286] O decodificador 1720 pode determinar a distância da diferença para determinar o candidato de vetor de movimento do bloco atual de acordo com uma distância de uma diferença determinada em um alto nível mais alto do que um nível correspondente ao bloco atual.
[000287] O número de candidatos ao vetor de movimento pode ser determinado independentemente para cada distância de uma diferença. O decodificador 1720 pode determinar o número de candidatos a vetor de movimento para cada distância de uma diferença do bloco atual, de acordo com a informação sobre o número determinado no alto nível superior ao nível correspondente ao bloco atual.
[000288] A FIG. 22 ilustra um caso em que o número de candidatos de vetor de movimento em cada distância de uma diferença é 4. Além disso, na FIG. 22, existem 3 distâncias da diferença, mas o número de distâncias da diferença não se limita a 3.
[000289] Com referência à FIG. 22, o decodificador 1720 pode determinar candidatos a vetor de movimento tendo uma distribuição de um formato de diamante com base em um vetor de movimento de base (x, y) 2201.
[000290] O decodificador 1720 pode determinar candidatos a vetor de movimento (x + 1, y) 2202, (x-1, y) 2203, (x, y + 1) 2204 e (x, y-1) 2205 na distância da diferença de 1 do vetor de movimento de base (x, y) 2201.
[000291] O decodificador 1720 pode determinar candidatos a vetor de movimento (x + 2, y) 2206, (x-2, y) 2207, (x, y + 2) 2208 e (x, y-2) 2209 na distância da diferença de 2 do vetor de movimento de base (x, y) 2201.
[000292] O decodificador 1720 pode determinar os candidatos a vetor de movimento (x + 4, y) 2210, (x-4, y) 2211, (x, y + 4) 2212 e (x, y-4) 2213 na distância da diferença de 4 do vetor de movimento de base (x, y) 2201.
[000293] De acordo com uma modalidade, o decodificador 1720 pode determinar os candidatos de vetor de movimento localizados em distâncias diferentes de uma diferença para cada vetor de movimento de base. Por exemplo, dentre uma pluralidade de vetores de movimento de base, um candidato a vetor de movimento tendo uma distância de uma diferença de 1 pode ser determinado para um primeiro vetor de movimento de base e um candidato a vetor de movimento tendo uma distância de uma diferença de 2 pode ser determinado para uma segunda vetor de movimento de base. Alternativamente, por exemplo, um candidato a vetor de movimento tendo uma distância de uma diferença de 1 e um candidato a vetor de movimento tendo uma distância de uma diferença de 2 pode ser determinado para o primeiro vetor de movimento de base e um candidato a vetor de movimento tendo uma distância de uma diferença de 4 e um candidato a vetor de movimento com uma distância de uma diferença de 8 pode ser determinado para o segundo vetor de movimento de base.
[000294] Quando diferentes distâncias de uma diferença são mapeadas para vetores de movimento de base de uma maneira 1:1, o obtentor de elemento de sintaxe 1710 pode obter, a partir do fluxo de bits, apenas informações que indicam o vetor de movimento de base do bloco atual ou informações que indicam a distância da diferença e determinar a distância da diferença para especificar o vetor de movimento do bloco atual e o vetor de movimento base do bloco atual.
[000295] Conforme descrito acima, a distância da diferença para determinar os candidatos a vetor de movimento pode ser determinada com base na unidade de pixel de base, e quando a menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual é diferente da unidade de pixel de base, o decodificador 1720 pode ajustar em escala a distância da diferença predefinida para configurar um grupo candidato para cada vetor de movimento de base.
[000296] Quando o vetor de movimento do bloco atual é capaz de indicar pixels correspondentes a uma unidade de pixel inteiro, uma unidade de 1/2 pixel, uma unidade de 1/4 de pixel e uma unidade de 1/8 de pixel, a menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual é de 1/8 da unidade de pixel. Além disso, quando a unidade de pixel de base é uma unidade de 1/4 de pixel, o decodificador 1720 pode aumentar a distância da diferença. De acordo com uma modalidade, o decodificador 1720 pode aumentar a distância da diferença de acordo com uma razão da unidade de pixel de base para a menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual. Quando a menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual é uma unidade de pixel m, a unidade de pixel base é uma unidade de pixel n e a distância da diferença é k, o decodificador 1720 pode aumentar em escala a distância da diferença de k por k × n / m.
[000297] O obtentor de elemento de sintaxe 1710 de acordo com uma modalidade pode determinar o modo de predição do bloco atual para ser um dentre o modo de salto e o modo de mesclagem. No modo de salto ou modo de mesclagem, o decodificador 1720 de acordo com uma modalidade pode gerar uma lista de candidatos de mesclagem incluindo blocos adjacentes referidos na predição do vetor de movimento do bloco atual no modo de salto ou modo de mesclagem.
[000298] No modo de ignorar ou no modo de mesclagem, o obturador de elemento de sintaxe 1710 pode obter informações MMVD indicando se um vetor de movimento determinado a partir da lista de candidatos de mesclagem do bloco atual e uma diferença de vetor de movimento de mesclagem são usados. Quando a diferença do vetor de movimento de mesclagem é usada de acordo com as informações de MMVD, a predição pode ser realizada de acordo com o modo MMVD no qual o vetor de movimento determinado a partir da lista de candidatos de mesclagem do bloco atual e a diferença de vetor de movimento de mesclagem são usados. Quando a diferença do vetor de movimento de mesclagem é usada de acordo com a informação MMVD, o obtentor de elemento de sintaxe 1710 pode obter um índice de mesclagem do fluxo de bits. O decodificador 1720 de acordo com uma modalidade pode determinar o vetor de movimento de base de um candidato determinado com base no índice de mesclagem, na lista de candidatos de mesclagem. O decodificador 1720 pode determinar a diferença do vetor de movimento de mesclagem usando o índice de distância da diferença do vetor de movimento de mesclagem e o índice de direção da diferença do vetor de movimento de mesclagem do bloco atual, e pode determinar o vetor de movimento do bloco atual usando o vetor de movimento de base e a diferença do vetor de movimento de mesclagem.
[000299] O decodificador 1720 de acordo com uma modalidade pode reconstruir o bloco atual usando o vetor de movimento do bloco atual. O decodificador 1720 pode determinar um bloco de referência em uma imagem de referência usando o vetor de movimento do bloco atual e pode determinar as amostras de predição correspondentes ao bloco atual dentre as amostras de referência incluídas no bloco de referência.
[000300] Quando o modo de predição do bloco atual de acordo com uma modalidade é o modo de mesclagem e o modo MMVD é selecionado, o codificador 1720 pode determinar o vetor de movimento de base do bloco atual da lista de candidato a mesclagem e pode determinar o vetor de movimento do bloco atual usando o vetor de movimento de base e a diferença do vetor de movimento de mesclagem. Quando o modo de predição do bloco atual é o modo de mesclagem, o aparelho de decodificação de vídeo 1700 pode analisar os coeficientes de transformada do bloco atual do fluxo de bits e pode obter amostras residuais realizando quantização inversa e transformação inversa nos coeficientes de transformada. O decodificador 1720 pode determinar amostras reconstruídas do bloco atual combinando as amostras de predição do bloco atual e as amostras residuais do bloco atual.
[000301] Quando o modo de predição do bloco atual de acordo com uma modalidade é o modo de salto e o modo de MMVD é selecionado, o decodificador 1720 pode determinar o vetor de movimento do bloco atual usando a diferença de vetor de movimento de mesclagem e o vetor de movimento de base determinado a partir da lista de candidato a mesclagem. Entretanto, em virtude de o modo de predição do bloco atual ser o modo de salto, o aparelho de decodificação de vídeo 1700 não analisa os coeficientes de transformada do bloco atual do fluxo de bits e, portanto, não obtém as amostras residuais. No modo de salto, o decodificador 1720 pode determinar as amostras de predição do bloco atual para ser as amostras reconstruídas do bloco atual sem as amostras residuais.
[000302] Daqui em diante, um método de decodificação de vídeo incluindo a realização de predição inter no modo MMVD será agora descrito com referência às FIGS. 18 a 36.
[000303] A FIG. 18 ilustra um fluxograma de um método de decodificação de vídeo de acordo com uma modalidade.
[000304] Na operação 1810, o obtentor de elemento de sintaxe 1710 pode obter, a partir de um conjunto de parâmetros de sequência, informações de sequência MMVD indicando se o modo MMVD é aplicável em uma sequência atual.
[000305] Na operação 1820, quando o modo MMVD é aplicável de acordo com a informação de sequência MMVD, o obtentor de elemento de sintaxe 1710 pode obter, a partir de um fluxo de bits, a primeira informação MMVD indicando se o modo MMVD é usado para um bloco atual incluído na sequência atual em um primeiro modo de predição inter.
[000306] Na operação 1830, quando o modo MMVD é aplicável no primeiro modo de predição inter de acordo com a primeira informação MMVD, o decodificador 1720 pode reconstruir um vetor de movimento do bloco atual que deve ser usado no primeiro modo de predição inter, usando uma distância de uma diferença do vetor de movimento e uma direção da diferença do vetor de movimento obtida a partir do fluxo de bits.
[000307] Quando uma diferença do vetor de movimento de mesclagem é usada para o bloco atual de acordo com a informação MMVD, o obtentor de elemento de sintaxe 1710 pode obter um índice de mesclagem do fluxo de bits. O índice de mesclagem indica um candidato em uma lista de candidatos de mesclagem. O obtentor de elemento de sintaxe 1710 pode determinar um vetor de movimento de base de um candidato determinado com base no índice de mesclagem, na lista de candidatos de mesclagem.
[000308] O decodificador 1720 pode determinar se o modo MMVD é selecionado para o bloco atual com base na informação MMVD obtida em um modo de salto ou modo de mesclagem. Quando o modo MMVD é selecionado para o bloco atual, ou seja, quando o vetor de movimento determinado a partir da lista de candidatos de mesclagem do bloco atual e a diferença do vetor de movimento de mesclagem são usados, o obtentor de elemento de sintaxe 1710 pode obter o índice de mesclagem do fluxo de bits.
[000309] O índice de mesclagem é uma informação de 1 bit. Além disso, o índice de mesclagem pode ser obtido usando uma parte das informações de contexto para um primeiro bin do índice de mesclagem. O obtentor de elemento de sintaxe 1710 pode realizar a decodificação de entropia usando informações de contexto para obter o índice de mesclagem no modo de salto ou no modo de mesclagem.
[000310] O número máximo de candidatos para os quais a seleção é permitida de acordo com o índice de mesclagem quando o modo MMVD é selecionado no modo ignorar ou no modo de mesclagem pode ser menor que o número máximo de candidatos incluídos na lista de candidatos de mesclagem. Por exemplo, como o índice de mesclagem é um sinalizador de 1 bit, o índice de mesclagem pode indicar um candidato entre no máximo dois candidatos na lista de candidatos de mesclagem.
[000311] O obtentor de elemento de sintaxe 1710 pode obter dois bins indicando um índice de direção da diferença do vetor de movimento de mesclagem, executando a decodificação de entropia em um modo de desvio no fluxo de bits. O obtentor de elemento de sintaxe 1710 pode obter um primeiro bin indicando o índice de distância da diferença do vetor de movimento de mesclagem realizando decodificação de entropia usando a informação de contexto no fluxo de bits e pode obter outros bins indicando o índice de distância da diferença do vetor de movimento de mesclagem realizando decodificação de entropia no modo de desvio.
[000312] Na operação 1840, o decodificador 1720 pode reconstruir o bloco atual usando o vetor de movimento do bloco atual.
[000313] O decodificador 1720 pode determinar a diferença do vetor de movimento de mesclagem do bloco atual usando o índice de distância da diferença do vetor de movimento de mesclagem do bloco atual e o índice de direção da diferença do vetor de movimento de mesclagem do, e pode determinar o vetor de movimento do bloco atual usando o vetor de movimento de base e a diferença do vetor de movimento de mesclagem.
[000314] O decodificador 1720 pode determinar um bloco de referência em uma imagem de referência usando o vetor de movimento do bloco atual e pode determinar as amostras de predição correspondentes ao bloco atual das amostras de predição incluídas no bloco de referência. O decodificador 1720 pode adicionar as amostras de predição do bloco atual e as amostras residuais do bloco atual, de modo a determinar as amostras reconstruídas do bloco atual em um modo de predição diferente do modo de salto. Quando as amostras residuais não estão disponíveis como no modo de salto, as amostras reconstruídas do bloco atual podem ser determinadas apenas a partir das amostras de predição do bloco atual.
[000315] Em um modo de predição de vetor de movimento geral (AMVP ou predição de vetor de movimento temporal avançado (ATMVP)) que não é o modo de salto nem o modo de mesclagem, o aparelho de decodificação de vídeo 1700 obtém um índice preditor de vetor de movimento e uma diferença de vetor de movimento. O aparelho de decodificação de vídeo 1700 pode determinar um preditor de vetor de movimento indicado pelo índice de preditor de vetor de movimento em uma lista de preditor de vetor de movimento e determinar um vetor de movimento combinando o preditor de vetor de movimento e informação de diferença de vetor de movimento.
[000316] Comparado ao modo de predição do vetor de movimento geral, o modo de salto e o modo de mesclagem não usam a diferença do vetor de movimento. No entanto, quando o modo MMVD é selecionado no modo de salto ou no modo de mesclagem, a diferença do vetor de movimento de mesclagem é usada. Comparação ao modo de predição de vetor de movimento geral, a diferença de vetor de movimento de mesclagem no modo MMVD tem brevidade de expressão em comparação com a diferença de vetor de movimento.
[000317] Por exemplo, a informação necessária para representar uma diferença do vetor de movimento geral em uma direção de predição L0 ou uma direção de predição L1 inclui informação abs_mvd_greater0_flag indicando se um valor absoluto da diferença do vetor de movimento é maior que 0, informação abs_mvd_greater1_flag indicando se o valor absoluto do movimento a diferença do vetor é maior que 1, informação abs_mvd_minus2 indicando um valor obtido subtraindo 2 do valor absoluto da diferença do vetor de movimento e a informação mvd_sign_flag indicando um sinal da diferença do vetor de movimento.
[000318] Por outro lado, as informações necessárias para representar a diferença do vetor de movimento de mesclagem na direção de previsão L0 ou na direção de previsão L1 são apenas informações de uma direção de uma diferença e um índice de distância da diferença. Consequentemente, como a diferença do vetor de movimento de fusão pode ser representada usando apenas as informações da direção da diferença e o índice de distância da diferença, uma quantidade de bits necessária para sinalizar a diferença do vetor de movimento de fusão pode ser significativamente reduzida, em comparação com uma quantidade de bits necessários para sinalizar a diferença geral do vetor de movimento.
[000319] A FIG. 36 ilustra um fluxograma de um método de decodificação de vídeo de acordo com uma outra modalidade.
[000320] A operação 1810 é igual à descrita acima com referência à FIG. 18.
[000321] A operação 1822 e a operação 1824 correspondem a operações particulares da operação 1820 da FIG. 18. Na operação 1822, quando o modo MMVD é aplicável de acordo com informações de sequência MMVD, o obtentor de elemento de sintaxe 1710 pode obter informações de sequência de subpixel MMVD indicando se uma diferença de vetor de movimento em uma unidade de pixel inteiro é usada ou uma diferença de vetor de movimento em um unidade de subpixel é usada em uma sequência atual. Quando o modo MMVD não é aplicável de acordo com a informação de sequência MMVD, tanto a diferença do vetor de movimento na unidade de pixel inteiro quanto a diferença do vetor de movimento na unidade de subpixel podem não ser aplicáveis na sequência atual e no bloco atual.
[000322] Na operação 1824, quando o modo MMVD é aplicável de acordo com a informação de sequência MMVD, o obtentor de elemento de sintaxe 1710 pode obter informação MMVD indicando se o modo MMVD é usado para o bloco atual incluído na sequência atual. Ou seja, as informações de MMVD indicam se o modo MMVD é aplicado quando o bloco atual está em um modo de salto ou de mesclagem.
[000323] O obtentor de elemento de sintaxe 1710 pode realizar a decodificação de entropia usando informações de contexto para obter as informações de MMVD no modo de salto ou no modo de mesclagem. Quando a informação MMVD é obtida, a operação 1832 é executada.
[000324] A operação 1832 é uma operação particular de operação 1830 da FIG. 18.
[000325] Na operação 1832, quando o modo MMVD é habilitado para o bloco atual de acordo com a informação MMVD, o decodificador 1720 pode determinar, de acordo com a informação MMVD subpixel, se a diferença do vetor de movimento na unidade de pixel inteiro é usada ou o movimento a diferença de vetor na unidade de subpixel é usada na sequência atual e pode reconstruir uma distância de uma diferença de vetor de movimento em uma unidade de pixel inteiro ou uma unidade de subpixel a partir de um índice de distância da diferença de vetor de movimento do bloco atual obtido de um fluxo de bits.
[000326] Quando o modo MMVD é usado para o bloco atual de acordo com a informação MMVD, e a diferença do vetor de movimento na unidade de pixel inteiro é usada de acordo com a informação MMVD subpixel, o decodificador 1720 pode reconstruir a distância da diferença do vetor de movimento na unidade de pixel inteiro do índice de distância da diferença do vetor de movimento do bloco atual.
[000327] Da mesma forma, quando o modo MMVD é usado para o bloco atual de acordo com a informação MMVD, e a diferença de vetor de movimento na unidade de subpixel é usada de acordo com a informação MMVD de subpixel, o decodificador 1720 pode reconstruir a distância do movimento diferença de vetor na unidade de subpixel do índice de distância da diferença de vetor de movimento do bloco atual.
[000328] Quando a distância reconstruída da diferença do vetor de movimento está na unidade de pixel inteiro, o decodificador 1720 pode arredondar um valor de componente x e um valor de componente y de um vetor de movimento base do bloco atual para a unidade de pixel inteiro e pode reconstruir o vetor de movimento na unidade de pixel inteiro usando o valor do componente x e o valor do componente y do vetor de movimento de base que são arredondados para a unidade de pixel inteiro.
[000329] Quando a distância reconstruída da diferença do vetor de movimento está na unidade de subpixel, o decodificador 1720 pode reconstruir um vetor de movimento na unidade de subpixel usando a distância da diferença do vetor de movimento na unidade de subpixel, e um x valor de componente e um valor de componente y de um vetor de movimento básico que são arredondados para a unidade de subpixel.
[000330] Portanto, quando MMVD é aplicado na sequência atual, com base nas informações de sequência MMVD obtidas a partir de um conjunto de parâmetros de sequência (SPS), o aparelho de decodificação de vídeo 1700 pode obter adicionalmente, a partir do fluxo de bits, as informações de MMVD de subpixel e as informações de MMVD. No entanto, quando o MMVD não é aplicado na sequência atual, com base na informação de sequência MMVD, o aparelho de decodificação de vídeo 1700 não precisa analisar adicionalmente, a partir do fluxo de bits, tanto a informação MMVD de subpixel quanto a informação MMVD. Como as informações que indicam se deve ou não aplicar MMVD são obtidas por estágios de acordo com os níveis de sintaxe, como o SPS, uma sintaxe de unidade de codificação e semelhantes, uma carga do aparelho de decodificação de vídeo 1700 para decodificar um elemento de sintaxe relacionado à aplicação do MMVD pode ser diminuído.
[000331] O padrão VVC atual permite uma resolução de um vetor de movimento em uma unidade de 1/4 pixel, uma unidade de 1 pixel ou uma unidade de 4 pixels. A este respeito, a precisão de uma diferença de vetor de movimento (MVD) deve ser igual à precisão de um preditor de vetor de movimento ou uma resolução de um vetor de movimento. A este respeito, quando a precisão de uma unidade de pixel inteiro é usada, a precisão do vetor de movimento pode ser arredondada para a unidade de pixel inteiro, de modo que a eficiência de codificação possa ser aumentada. No entanto, o arredondamento em uma resolução de uma unidade de 1 pixel é executado para uma resolução de uma unidade de 4 pixels. Ao fazer isso, um procedimento de interpolação de uma unidade de subpixel pode ser diminuído e a precisão do preditor de vetor de movimento não pode ser perdida. Quando o arredondamento é executado em relação a 4 pixels, a precisão do preditor de vetor de movimento pode se deteriorar. Portanto, o arredondamento em uma unidade de 1 pixel pode ser executado em um preditor de vetor de movimento cuja resolução é determinada como igual ou maior que 1 pixel.
[000332] Um algoritmo pelo qual um vetor de movimento é armazenado apenas em uma unidade de pixel específica e, em seguida, é reconstruído por meio de uma operação de deslocamento, quando necessário. Nesse caso, não importa como uma unidade de pixel a ser arredondada de acordo com a resolução do vetor de movimento seja pequena, a informação de arredondamento mínima deve ser a resolução de uma unidade de armazenamento.
[000333] Daqui em diante, um aparelho de codificação de vídeo realizando predição inter selecionando um modo MMVD em um modo de salto ou um modo de mesclagem será descrito com referência à FIG. 19.
[000334] A FIG. 19 é um diagrama de blocos de um aparelho de codificação de vídeo de acordo com uma modalidade.
[000335] Com referência à FIG. 19, um aparelho de codificação de vídeo 1900 de acordo com uma modalidade pode incluir um executor de predição inter 1910 e um codificador de elemento de sintaxe 1920.
[000336] O aparelho de codificação de vídeo 1900 pode codificar informação de movimento determinada pela realização de predição inter e pode enviar a informação de movimento codificada na forma de um fluxo de bits. O executor de predição inter 1910 pode determinar várias informações de predição inter e o codificador de elemento de sintaxe 1920 pode codificar as informações de predição inter na forma de elementos de sintaxe e pode emitir um fluxo de bits na forma de uma sintaxe que é um grupo de elementos de sintaxe para cada unidade de codificação ou cada bloco.
[000337] O aparelho de codificação de vídeo 1900 de acordo com uma modalidade pode incluir um processador central (não mostrado) para controlar o executor de predição inter 1910 e o codificador de elemento de sintaxe 1920. Alternativamente, o executor de predição inter 1910 e o codificador de elemento de sintaxe 1920 podem operar por seus próprios processadores (não mostrados) e os processadores podem operar sistematicamente entre si para operar o aparelho de codificação de vídeo 1900. Alternativamente, o executor de predição inter 1910 e o codificador de elemento de sintaxe 1920 podem ser controlados de acordo com o controle por um processador externo (não mostrado) do aparelho de codificação de vídeo 1900.
[000338] O aparelho de codificação de vídeo 1900 pode incluir um ou mais armazenamentos de dados (não mostrados) armazenando dados de entrada / saída do executor de predição inter 1910 e o codificador de elemento de sintaxe 1920. O aparelho de codificação de vídeo 1900 pode incluir um controlador de memória (não mostrado) para controlar a entrada e saída de dados do armazenamento de dados.
[000339] O aparelho de codificação de vídeo 1900 pode realizar uma operação de codificação de imagem, incluindo predição, operando de forma conectiva com um processador de codificação de vídeo interno ou um processador de codificação de vídeo externo, de modo a codificar uma imagem. O processador de codificação de vídeo interno do aparelho de codificação de vídeo 1900 de acordo com uma modalidade pode realizar uma operação de codificação de imagem básica de uma maneira que não apenas um processador separado, mas também um módulo de processamento de codificação de imagem incluído em um aparelho de processamento central ou um aparelho de processamento gráfico, realize a operação básica de codificação de imagem.
[000340] O executor de predição inter 1910 de acordo com uma modalidade pode determinar um vetor de movimento de um bloco atual executando a predição inter no bloco atual.
[000341] O executor de predição inter 1910 de acordo com uma modalidade pode gerar uma lista de candidatos de mesclagem incluindo blocos adjacentes referidos na codificação de predição do vetor de movimento do bloco atual quando a predição inter é realizada no bloco atual em um de um modo de salto e um modo de mesclagem.
[000342] O codificador de elemento de sintaxe 1920 de acordo com uma modalidade pode determinar se deve usar um vetor de movimento de base determinado na lista de candidatos de mesclagem do bloco atual e uma diferença de vetor de movimento de mesclagem em um modo de salto ou um modo de mesclagem. Quando a diferença do vetor de movimento de mesclagem é usada, o codificador de elemento de sintaxe 1920 pode gerar um índice de mesclagem e pode realizar a codificação de entropia em uma sequência de bits do índice de mesclagem. O índice de mesclagem indica o vetor de movimento de base na lista de candidatos a mesclagem.
[000343] O codificador de elemento de sintaxe 1920 pode gerar um índice de distância da diferença do vetor de movimento de mesclagem e um índice de direção da diferença do vetor de movimento de mesclagem correspondente a uma diferença entre o vetor de movimento de base e um vetor de movimento do bloco atual. O codificador de elemento de sintaxe 1920 pode realizar a codificação de entropia em uma sequência de bits do índice de distância da diferença do vetor de movimento de mesclagem e pode realizar a codificação de entropia no índice de direção da diferença do vetor de movimento de mesclagem.
[000344] De acordo com uma modalidade, o modo MMVD pode ser aplicado a várias ferramentas que estão disponíveis em um modo de predição inter. Por conseguinte, o aparelho de codificação de vídeo 1900 pode codificar informações que indicam se o modo MMVD é aplicado a cada ferramenta do modo de predição inter.
[000345] Por exemplo, em um primeiro esquema, apenas as informações que indicam se o modo MMVD é aplicado a cada ferramenta podem ser codificadas.
[000346] Como outro exemplo, em um segundo esquema, as informações que indicam se o modo MMVD é aplicado a todas as ferramentas podem ser codificadas primeiro e, se aplicável, as informações que indicam se o modo MMVD é aplicado a cada ferramenta podem ser codificadas. Quando o modo MMVD não é aplicado a todas as ferramentas, não é necessário codificar informações indicando se o modo MMVD é aplicado a cada ferramenta.
[000347] No primeiro esquema, mesmo quando o modo MMVD não é aplicado a todas as ferramentas, o aparelho de codificação de vídeo 1900 tem que codificar um sinalizador para determinar que o modo MMVD não é aplicado a cada uma das várias ferramentas.
[000348] No entanto, de acordo com o segundo esquema, quando o modo MMVD não está habilitado para todas as ferramentas, o aparelho de codificação de vídeo 1900 pode codificar apenas um sinalizador indicando que não é aplicado a todas as ferramentas e pode não precisar codificar adicionalmente um sinalizador indicando se para aplicar o modo MMVD a cada ferramenta, de modo que a eficiência da codificação possa ser aumentada.
[000349] De acordo com o segundo esquema, o codificador de elemento de sintaxe 1920 pode primeiro codificar informações de sequência MMVD indicando se o modo MMVD está habilitado para uma sequência atual. Quando o modo MMVD é aplicável na sequência atual, o codificador de elemento de sintaxe 1920 pode determinar se deve codificar uma diferença de vetor de movimento de acordo com o modo MMVD em um primeiro modo de predição inter e pode determinar se deve codificar uma diferença de vetor de movimento de acordo com o modo MMVD em um segundo modo de predição inter. Por conseguinte, o codificador de elemento de sintaxe 1920 pode codificar adicionalmente a primeira informação MMVD indicando se o modo MMVD é aplicado no primeiro modo de predição inter e a segunda informação MMVD indicando se o modo MMVD é aplicado no segundo modo de predição inter para o bloco atual incluído no sequência atual. No entanto, quando o modo MMVD não é aplicável, o codificador de elemento de sintaxe 1920 de acordo com uma modalidade pode codificar apenas a informação MMVD de sequência e pode não codificar a primeira informação MMVD e a segunda informação MMVD.
[000350] Como um exemplo particular do segundo esquema, o codificador de elemento de sintaxe 1920 pode codificar a informação de sequência MMVD indicando se o modo MMVD é aplicável na sequência atual. Quando o modo MMVD é aplicável, o codificador de elemento de sintaxe 1920 de acordo com uma modalidade pode codificar informações de sequência de subpixel MMVD indicando se uma diferença de vetor de movimento em uma unidade de pixel inteiro é usada ou uma diferença de vetor de movimento em um unidade de subpixel é usada na sequência atual. Quando o modo MMVD é aplicável, o codificador de elemento de sintaxe 1920 de acordo com uma modalidade pode codificar informações MMVD indicando se o modo MMVD é usado para o bloco atual incluído na sequência atual.
[000351] Daqui em diante, uma modalidade na qual o aparelho de codificação de vídeo 1900 codifica a informação MMVD de sequência, a informação MMVD de subpixel de sequência e a informação MMVD por estágios de acordo com o segundo esquema será agora descrita com referência às FIGS. 20 e 37.
[000352] A FIG. 20 ilustra um fluxograma de um método de codificação de vídeo de acordo com uma modalidade.
[000353] Na operação 2010, o codificador de elemento de sintaxe 1920 pode codificar as informações de sequência MMVD indicando se o modo MMVD é aplicável em uma sequência atual.
[000354] Na operação 2020, quando o modo MMVD é aplicável na sequência atual, o codificador de elemento de sintaxe 1920 pode codificar a primeira informação MMVD indicando se o modo MMVD é usado para um bloco atual em um primeiro modo de predição inter.
[000355] Na operação 2030, quando o modo MMVD é aplicado no primeiro modo de predição inter, o codificador de elemento de sintaxe 1920 pode codificar um índice de distância de uma diferença de vetor de movimento e um índice de direção da diferença de vetor de movimento do bloco atual.
[000356] O executor de predição inter 1910 pode gerar uma lista de candidatos de mesclagem incluindo blocos adjacentes referidos na predição de um vetor de movimento do bloco atual quando a predição inter é realizada no bloco atual em um de um modo de salto e um modo de mesclagem. O codificador de elemento de sintaxe 1920 pode gerar informações MMVD indicando se um vetor de movimento de base determinado a partir da lista de candidatos de mesclagem do bloco atual e uma diferença de vetor de movimento de mesclagem são usados.
[000357] Quando a diferença do vetor de movimento de mesclagem é usada, o codificador de elemento de sintaxe 1920 pode gerar um índice de mesclagem indicando um vetor de movimento de base na lista de candidatos de mesclagem. O codificador de elemento de sintaxe 1920 pode realizar a codificação de entropia em uma sequência de bits do índice de mesclagem usando um pedaço de informação de contexto.
[000358] O codificador de elemento de sintaxe 1920 pode gerar um índice de distância da diferença do vetor de movimento de mesclagem e um índice de direção da diferença do vetor de movimento de mesclagem correspondente a uma diferença entre o vetor de movimento de base e um vetor de movimento do bloco atual.
[000359] O executor de predição inter 1910 de acordo com uma modalidade pode determinar o vetor de movimento do bloco atual, que indica um bloco de referência em uma figura de referência.
[000360] O executor de predição inter 1910 de acordo com uma modalidade pode determinar o modo de predição do vetor de movimento do bloco atual para ser um do modo de salto e modo de mesclagem. O codificador de elemento de sintaxe 1920 pode gerar informações de modo de salto indicando se o modo de predição do bloco atual é o modo de salto e informações de modo de mesclagem indicando se o modo de predição é o modo de mesclagem.
[000361] Quando o modo de predição do bloco atual é o modo de salto ou o modo de mesclagem, o codificador de elemento de sintaxe 1920 pode determinar se o vetor de movimento do bloco atual é predito no modo MMVD usando a diferença de vetor de movimento de mesclagem e o vetor de movimento de base determinado da lista de candidatos de mesclagem do bloco atual. O codificador de elemento de sintaxe 1920 pode gerar a informação MMVD indicando se o vetor de movimento é predito no modo MMVD.
[000362] Quando a informação de movimento é predita de acordo com o modo MMVD, o codificador de elemento de sintaxe 1920 de acordo com uma modalidade pode determinar o índice de mesclagem indicando o vetor de movimento de base na lista de candidatos de mesclagem. O codificador de elemento de sintaxe 1920 pode realizar a codificação de entropia aplicando uma parte da informação de contexto no índice de mesclagem para codificar o índice de mesclagem indicando um candidato na lista de candidatos de mesclagem.
[000363] De acordo com uma modalidade, o número de candidatos que o índice de mesclagem pode indicar na lista de candidatos de mesclagem é no máximo 2 e, portanto, o índice de mesclagem pode ser uma informação de 1 bit.
[000364] O codificador de elemento de sintaxe 1920 pode determinar a diferença do vetor de movimento de mesclagem entre o vetor de movimento do bloco atual e o vetor de movimento de base e pode gerar o índice de distância da diferença do vetor de movimento de mesclagem do bloco atual e o índice de direção da diferença do vetor de movimento de mesclagem.
[000365] Quando o modo de predição do bloco atual de acordo com uma modalidade é o modo de mesclagem e o modo MMVD é selecionado, o codificador de elemento de sintaxe 1920 pode gerar o índice de mesclagem indicando o vetor de movimento de base do bloco atual da lista de candidatos de mesclagem, e pode gerar informações da distância da diferença e informações da direção da diferença para indicar a diferença do vetor de movimento de mesclagem entre o vetor de movimento do bloco atual e o vetor de movimento de base.
[000366] Quando o modo de predição do bloco atual é o modo de mesclagem, o aparelho de codificação de vídeo 1900 pode determinar amostras do bloco de referência indicado pelo vetor de movimento do bloco atual como as amostras de predição do bloco atual. O aparelho de codificação de vídeo 1900 pode determinar as amostras residuais que são a diferença entre as amostras originais e as amostras de predição do bloco atual. O aparelho de codificação de vídeo 1900 pode codificar os coeficientes de transformada gerados realizando transformação e quantização nas amostras residuais do bloco atual.
[000367] De acordo com uma modalidade, quando o modo de predição do bloco atual é o modo de salto, o bloco atual é codificado apenas com as amostras de predição do bloco atual e, assim, o aparelho de codificação de vídeo 1900 não codifica as amostras residuais do bloco atual. Mesmo quando o modo de predição do bloco atual de acordo com uma modalidade é o modo de pular e o modo MMVD é selecionado, o codificador de elemento de sintaxe 1920 pode codificar a informação MMVD, o índice de mesclagem, informação da distância da diferença e informação de a direção da diferença, sem codificar as amostras residuais.
[000368] Quando o vetor de movimento é codificado no modo MMVD, o codificador de elemento de sintaxe 1920 pode realizar a codificação de entropia aplicando uma parte da informação de contexto ao índice de mesclagem. O índice de mesclagem indica um candidato na lista de candidatos de mesclagem. O índice de mesclagem de acordo com uma modalidade é informação de 1 bit e, assim, pode ser obtida usando uma parte da informação de contexto para um primeiro bin.
[000369] O codificador de elemento de sintaxe 1920 pode realizar a codificação de entropia no índice de distância da diferença do vetor de movimento de mesclagem do bloco atual e o índice de direção da diferença do vetor de movimento de mesclagem.
[000370] O codificador de elemento de sintaxe 1920 de acordo com uma modalidade pode realizar a codificação de entropia em dois bins indicando o índice de direção da diferença do vetor de movimento de mesclagem, respectivamente, por meio do modo de desvio. O codificador de elemento de sintaxe 1920 pode realizar a codificação de entropia em um primeiro bin indicando o índice de distância da diferença do vetor de movimento de mesclagem usando as informações de contexto e pode realizar a codificação de entropia em outros bins indicando o índice de distância da diferença do vetor de movimento de mesclagem respectivamente no modo de desvio.
[000371] A FIG. 23 ilustra valores e significados de um índice de mesclagem, índices de distância de uma diferença de mesclagem e índices de direção da diferença de mesclagem, de acordo com uma modalidade.
[000372] O índice de direção da diferença de mesclagem indica um índice de distância de uma diferença de vetor de movimento de mesclagem. O índice de direção da diferença de mesclagem indica um índice de direção da diferença do vetor de movimento de mesclagem.
[000373] O aparelho de decodificação de vídeo 1700 pode determinar um vetor de movimento de um bloco atual com base no índice de mesclagem, o índice de direção da diferença de mesclagem e o índice de direção da diferença de mesclagem.
[000374] A tabela 2600 da FIG. 23 ilustra o índice de mesclagem de acordo com uma modalidade e um candidato a vetor de movimento correspondente ao mesmo. Uma lista de candidato a mesclagem de acordo com uma modalidade inclui quatro candidatos a vetor de movimento (1o, 2o, 3o, e 4o candidatos MV) e o índice de mesclagem pode ser exibido em um índice (0, 1, 2 ou 3) indicando um deles.
[000375] Em um modo MMVD, um candidato de vetor de movimento indicado pelo índice de mesclagem entre a lista de candidatos de mesclagem pode ser determinado como um vetor de movimento de base.
[000376] Na Tabela 2610 da FIG. 23, o índice de direção da diferença de mesclagem de acordo com uma modalidade é um número inteiro entre 0 a 7 e cada índice pode ser binarizado de acordo com um método de codificação unário truncado. O índice de direção da diferença de mesclagem pode indicar um de 2N, em que N é de 0 a 7. A distância da diferença de mesclagem é determinada com base em uma unidade de pixel de base, e quando a unidade de pixel de base é 1/4, uma distância de uma diferença de vetor de movimento de mesclagem correspondente ao índice de direção da diferença de mesclagem 0 pode denotar um 1/4 a distância de pixel e uma distância de uma diferença de vetor de movimento de mesclagem correspondente ao índice de direção da diferença de mesclagem 1 pode denotar uma distância de 1/2 pixel. Uma distância de uma diferença de vetor de movimento de mesclagem correspondente ao índice de direção da diferença de mesclagem 7 pode denotar uma distância de 32 pixels.
[000377] Conforme descrito acima, quando uma menor unidade de pixel capaz de ser indicada pelo vetor de movimento do bloco atual é menor do que a unidade de pixel base, a distância da diferença do vetor de movimento de mesclagem pode ser ajustada em escala de acordo com uma razão da menor unidade de pixel para a unidade de pixel base. Por exemplo, quando a unidade de pixel base é 1/4 unidade de pixel e a menor unidade de pixel é 1/8 unidade de pixel, e quando um índice indicando a distância da diferença do vetor de movimento de mesclagem obtida a partir de um fluxo de bits é 0, uma distância da diferença de vetor de movimento de mesclagem 1 correspondente ao índice 0 pode ser aumentado para 2.
[000378] Além disso, na Tabela 2620, um índice de direção de uma diferença de vetor de movimento de mesclagem de um bin string 00 denota um candidato de vetor de movimento alterado ao longo de uma direção + em um eixo X com base no vetor de movimento de base e uma direção de uma diferença de vetor de movimento de mesclagem de um bin string 11 denota um candidato a vetor de movimento alterado ao longo da direção - em um eixo Y com base no vetor de movimento base.
[000379] O índice de mesclagem, o índice de direção da diferença de mesclagem e o índice de direção da diferença de mesclagem da FIG. 23 são apenas exemplos e os índices disponíveis no modo MMVD proposto na divulgação não estão limitados aos mesmos.
[000380] Por exemplo, o número de candidatos que podem ser selecionados da lista de candidatos a mesclagem no modo MMVD pode ser limitado a 2 e o índice de mesclagem pode ser um índice de 1 bit.
[000381] A FIG. 24 ilustra equações para obter um vetor de movimento usando um vetor de movimento de base e uma diferença de vetor de movimento de mesclagem, de acordo com uma modalidade.
[000382] mvLX [x] [y] [n] denota um vetor de movimento de um bloco atual. x, y denota coordenadas x, y do bloco atual, e n denota um dentre um componente de direção horizontal e um componente de direção vertical de um vetor de movimento mvLX. mvLX [x] [y] [0] denota o componente de direção horizontal do vetor de movimento mvLX e mvLX [x] [y] [1] denota o componente de direção vertical do vetor de movimento mvLX.
[000383] mxLXN [m] denota um vetor de movimento de base indicado por um índice de mesclagem na lista de candidato a mesclagem. m denota um componente de direção horizontal e um componente de direção vertical de um vetor de movimento de base mvLXN. mvLXN [0] denota o componente de direção horizontal do vetor de movimento base mvLXN e mvLXN [1] denota o componente de direção vertical do vetor de movimento de base mvLXN.
[000384] refineMxLX [l] denota uma diferença de vetor de movimento de mesclagem. l denota um componente de direção horizontal e um componente de direção vertical de uma diferença de vetor de movimento de mesclagem refineMxLX. refineMxLX [0] denota o componente de direção horizontal da diferença do vetor de movimento de mesclagem refineMxLX e refineMxLX [1] denota o componente de direção vertical da diferença do vetor de movimento de mesclagem refineMxLX.
[000385] Em mvLX, mxLXN e refineMxLX, LX denota uma dentre uma direção de predição L0 e uma direção de predição L1. Consequentemente, mvL0, mxL0N e refineMxL0 denotam o vetor de movimento, o vetor de movimento de base e a diferença do vetor de movimento de mesclagem na direção de predição L0, e mvL1,
mxL1N e refineMxL1 denotam o vetor de movimento, o vetor de movimento de base e a diferença do vetor de movimento de mesclagem na direção de predição L1.
[000386] O aparelho de decodificação de vídeo 1700 de acordo com uma modalidade obtém o índice mesclagem de um fluxo de bits e determina o componente de direção horizontal mxLXN [0] do vetor de movimento de base indicado pelo índice de mesclagem da lista de candidato a mesclagem e o componente de direção vertical mxLXN [1] do vetor de movimento de base.
[000387] O aparelho de decodificação de vídeo 1700 de acordo com uma modalidade obtém um índice de direção de uma diferença de mesclagem e um índice de distância de uma diferença de mesclagem do fluxo de bits e determina o componente de direção horizontal refineMxLX [0] da diferença de vetor de movimento de mesclagem e o componente de direção vertical refineMxLX [1] da diferença do vetor de movimento de mesclagem usando o índice de direção da diferença de mesclagem e o índice de distância da diferença de mesclagem.
[000388] O aparelho de decodificação de vídeo 1700 de acordo com uma modalidade pode obter o componente de direção horizontal mvLX [0] [0] [0] do vetor de movimento do bloco atual adicionando o componente de direção horizontal mxLXN [0] do vetor de movimento de base e o componente de direção horizontal refineMxLX [0] da diferença do vetor de movimento de mesclagem e obtém o componente de direção vertical mvLX [0]
[0] [1] do vetor de movimento do bloco atual adicionando o componente de direção vertical mxLXN [1] do vetor de movimento de base e o componente de direção vertical refineMxLX [1] da diferença do vetor de movimento de mesclagem.
[000389] A FIG. 37 ilustra um fluxograma de um método de codificação de vídeo de acordo com uma outra modalidade.
[000390] A operação 2010 é igual à descrita acima com referência à operação 2010 da FIG. 20.
[000391] As operações 2022 e 2024 correspondem a operações particulares de operação 2020 da FIG. 20.
[000392] Na operação 2022, o executor de predição inter 1910 pode determinar se deve aplicar um modo MMVD em uma sequência atual. Desta forma, o codificador de elemento de sintaxe 1920 pode codificar informações de sequência MMVD indicando se o modo MMVD é aplicável na sequência atual.
[000393] Na operação 2022, quando o modo MMVD é aplicável, o executor de predição inter 1910 pode determinar se uma diferença de vetor de movimento em uma unidade de pixel inteiro é usada ou uma diferença de vetor de movimento em uma unidade de subpixel é usada na sequência atual. Por conseguinte, quando o modo MMVD é aplicável, o codificador de elemento de sintaxe 1920 pode codificar informações MMVD de subpixel indicando se a diferença do vetor de movimento na unidade de pixel inteiro é usada ou a diferença do vetor de movimento na unidade de subpixel é usada no atual sequência.
[000394] Na operação 2024, quando o modo MMVD é aplicável, o executor de predição inter 1910 pode determinar se o modo MMVD é usado para um bloco atual incluído na sequência atual. Por conseguinte, quando o modo MMVD é aplicável, o codificador de elemento de sintaxe 1920 pode codificar informações MMVD indicando se o modo MMVD é usado para o bloco atual incluído na sequência atual.
[000395] A operação 2032 é uma operação particular de operação 2030 da FIG. 20. Na operação 2032, quando o modo MMVD é usado para o bloco atual, o codificador de elemento de sintaxe 1920 pode codificar um índice de distância de uma diferença de vetor de movimento do bloco atual que é determinado de acordo com uma distância de uma diferença de vetor de movimento em uma unidade de pixel inteiro ou uma unidade de subpixel.
[000396] Quando o modo MMVD é usado para o bloco atual e a diferença do vetor de movimento na unidade de pixel inteiro é usada, o codificador de elemento de sintaxe 1920 pode determinar e codificar o índice de distância da diferença do vetor de movimento do bloco atual, com base na distância da diferença do vetor de movimento na unidade de pixel inteiro.
[000397] Quando o modo MMVD é usado para o bloco atual e a diferença do vetor de movimento na unidade de subpixel é usada, o codificador de elemento de sintaxe 1920 pode determinar e codificar o índice de distância da diferença do vetor de movimento do bloco atual, com base na distância da diferença do vetor de movimento na unidade de subpixel.
[000398] Quando o modo MMVD não é aplicável, o codificador de elemento de sintaxe 1920 pode não codificar as informações MMVD de subpixel e as informações MMVD.
[000399] Quando a distância da diferença do vetor de movimento é codificada na unidade de pixel inteiro, o codificador de elemento de sintaxe 1920 pode arredondar um valor de componente x e um valor de componente y de um vetor de movimento base do bloco atual para a unidade de pixel inteiro e pode determinar a distância da diferença do vetor de movimento na unidade de pixel inteiro usando o valor do componente x e o valor do componente y do vetor de movimento de base que são arredondados para a unidade de pixel inteiro. Por conseguinte, o codificador de elemento de sintaxe 1920 pode codificar o índice de distância correspondente à distância da diferença do vetor de movimento na unidade de pixel inteiro.
[000400] Quando a distância da diferença do vetor de movimento é codificada na unidade de subpixel, o codificador do elemento de sintaxe 1920 pode arredondar um valor de componente x e um valor de componente y de um vetor de movimento base do bloco atual na unidade de subpixel, e pode determine a distância da diferença do vetor de movimento na unidade de subpixel usando o valor do componente x e o valor do componente y do vetor de movimento base que são arredondados para a unidade do subpixel. Por conseguinte, o codificador de elemento de sintaxe 1920 pode codificar o índice de distância correspondente à distância da diferença de vetor de movimento na unidade de subpixel.
[000401] Portanto, quando o MMVD é aplicado na sequência atual, o aparelho de codificação de vídeo 1900 pode codificar não apenas a informação MMVD da sequência, mas também codificar adicionalmente a informação MMVD subpixel e a informação MMVD. No entanto, quando o MMVD não é aplicado na sequência atual, o aparelho de decodificação de vídeo 1700 pode codificar apenas a informação MMVD de sequência e pode não precisar codificar adicionalmente tanto a informação MMVD subpixel quanto a informação MMVD. Como as informações que indicam se deve aplicar MMVD são codificadas por estágios de acordo com os níveis de sintaxe, como o SPS, uma sintaxe de unidade de codificação e semelhantes, uma carga do aparelho de codificação de vídeo 1900 para codificar um elemento de sintaxe relacionado à aplicação do MMVD pode ser diminuído.
[000402] O aparelho de decodificação de vídeo 1700 e o aparelho de codificação de vídeo 1900 de acordo com uma modalidade podem sinalizar um índice de distância de uma diferença de vetor de movimento, em vez de um tamanho de um vetor de movimento, no modo MMVD. Além disso, em vez de informações de sinal indicando uma direção do vetor de movimento, um índice de direção de uma diferença de vetor de movimento de mesclagem pode ser sinalizado no modo MMVD.
[000403] O índice de distância da diferença do vetor de movimento pode ser representado com base na precisão de um vetor de movimento que é usado em um codec de vídeo incorporado no aparelho de decodificação de vídeo 1700 e no aparelho de codificação de vídeo 1900. Por exemplo, em um codec de codificação de vídeo versátil (VVC), uma unidade de 1/16 pixel é usada internamente como um MV. No entanto, a precisão que indica um vetor de movimento é representada como 1/4. Portanto, quando um índice de distância do modo MMVD é 1, a variação de um vetor de movimento é expressa com precisão de 1/4. Quando um índice de distância do modo MMVD é 2, a variação de um vetor de movimento é expressa com precisão de 1/2. Uma pluralidade de precisões de vetor de movimento pode ser expressa usando índices de distância e uma direção de um vetor de movimento pode ser expressa como um índice de direção de uma diferença de vetor de movimento de mesclagem.
[000404] A diferença do vetor de movimento de mesclagem pode ser adicionada a um preditor de vetor de movimento correspondente a um vetor de movimento de base que é selecionado em uma lista de candidatos de mesclagem. Como um índice de distância expressa a precisão de um vetor de movimento, um preditor de vetor de movimento deve ser arredondado com a mesma precisão, de modo que a precisão de um vetor de movimento final possa corresponder à precisão do índice de distância.
[000405] Predictor (valor arredondado com informação do índice de distância) + diferença do vetor de movimento de fusão (índice de distância * precisão predefinida) * índice de direção
[000406] A precisão de uma diferença de vetor de movimento de mesclagem pode ser aplicada a um modo de predição inter usado por um vetor de movimento atual. Um conceito de precisão de vetor de movimento de acordo com um índice de distância de uma diferença de vetor de movimento de mesclagem pode ser aplicado a um preditor de vetor de movimento de um modo de predição inter incluindo um modo de salto, um modo de mesclagem, um modo de salto afim, um modo de mesclagem afim, um modo de combinação inter / intra, um modo B generalizado, um modo de partição triangular, um modo AMVP, um modo de resolução de vetor de movimento adaptativo (AMVR), um modo AMVP afim ou semelhantes que estão disponíveis em um codec de vídeo atual. Além disso, o conceito de precisão do vetor de movimento de acordo com o índice de distância da diferença do vetor de movimento de mesclagem pode ser aplicado a um componente de diferença do vetor de movimento (incluindo um primeiro componente mvd, um segundo componente mvd, ..., um componente Nésimo mvd) em cada modo de predição inter. Portanto, vários índices usados em cada modo de predição inter podem ser interpretados e usados como a precisão do vetor de movimento correspondente aos mesmos.
[000407] A seguir, com referência às FIGS. 25 e 26, um método para combinar uma distância de uma diferença de mesclagem com a precisão de um vetor de movimento ou um preditor de vetor de movimento será agora descrito.
[000408] A FIG. 25 ilustra equações para ajustar a precisão de um preditor de vetor de movimento ou um vetor de movimento base quando a precisão de um índice de distância de uma diferença de mesclagem é 64 de acordo com uma modalidade. A FIG. 26 ilustra equações para ajustar a precisão de um preditor de vetor de movimento ou um vetor de movimento base quando a precisão de um índice de distância de uma diferença de mesclagem é 16 de acordo com uma modalidade.
[000409] Um modo MMVD se refere a um esquema de expressar uma diferença de vetor de movimento como um expoente logarítmico. Por exemplo, a precisão de um vetor de movimento ou localização de pixel pode ser selecionada para ser 1/4, 1/2, 1, 2, 4, 8, 16 ou 32. Quando uma diferença de vetor de movimento é expressa em uma unidade de pixel inteiro no modo MMVD, um preditor de vetor de movimento também é definido em uma unidade de pixel inteiro, de modo que a precisão da diferença do vetor de movimento e a precisão do preditor de vetor de movimento podem ser definidas para ser igual no modo MMVD. Ao permitir que a precisão da diferença do vetor de movimento e a precisão do preditor do vetor de movimento sejam iguais, um processo de filtragem de interpolação para compensação de movimento pode ser ignorado e, ao fazer isso, a largura de banda do barramento de dados para acessar uma memória externa é diminuída, tal que a eficiência de codificação / decodificação pode ser aumentada.
[000410] Para um exemplo particular, a precisão de um vetor de movimento nas FIGS. 25 e 26 é 1/16. Quando a precisão do vetor de movimento é 1/16 e a distância de uma diferença do vetor de movimento é 64, a distância da diferença do vetor de movimento pode ser de 4 pixels em uma unidade de pixel inteiro.
[000411] Na FIG. 25, para arredondar os componentes x e y do MVP real (um preditor de vetor de movimento ou um vetor de movimento de base) em uma unidade de 4 pixels de acordo com a distância da diferença do vetor de movimento, o componente x e o componente y de MVP podem ser arredondados para 64. MVP [0] indica o componente x do MVP e MVP [1] indica o componente y do MVP.
[000412] Na FIG. 26, quando o MVP é sempre arredondado para uma unidade de pixel inteiro, porque a precisão do vetor de movimento é 1/16, o componente x e o componente y do MVP podem ser arredondados para 16.
[000413] Um sinalizador que representa informações indicando se deve ser aplicado o modo MMVD usado em um modo de salto ou um modo de mesclagem, e informações indicando se deve ser aplicado o modo MMVD usado em outros métodos de predição podem ser usados em sintaxe de alto nível.
[000414] Como o modo MMVD é um método para a transmissão de um vetor de movimento, o modo MMVD pode ser usado em todas as tecnologias de predição inter, transmitindo uma diferença de vetor de movimento e tecnologias de predição intra (por exemplo, uma tecnologia de referência de imagem atual (CRP)) usando um vetor de movimento. Ativar sinalizadores para indicar se o modo MMVD é aplicável nas respectivas tecnologias de previsão podem ser incluídos na sintaxe de alto nível.
[000415] Como outro exemplo, para representar um sinalizador do modo MMVD para outras tecnologias de predição, como um modo MMVD a ser aplicado a um ponto de controle afim, um modo MMVD a ser aplicado a um modo de subbloco, um modo MMVD a ser aplicado a uma técnica de predição de partição triangular, um modo MMVD a ser aplicado a um modo de predição intra /
intercombinação, ou semelhante, um sinalizador MMVD no modo de ignorar e um sinalizador MMVD no modo de mesclagem podem ser usados. Ou seja, todas as técnicas de predição usando o modo MMVD na sintaxe de alto nível podem ser controladas simultaneamente por um sinalizador de ativação MMVD representativo. Quando um sinalizador de ativação MMVD é 1, o modo MMVD pode ser usado em todas as técnicas de predição e quando o sinalizador de ativação MMVD é 0, o modo MMVD não pode ser usado em todas as técnicas de predição.
[000416] Como outro exemplo, um sinalizador representativo pode ser sinalizado e sinalizadores particulares podem ser sinalizados condicionalmente. Quando há uma ferramenta para a qual o modo MMVD é usado, o aparelho de codificação de vídeo 1900 pode primeiro transmitir mmvd_enalble_flag que é um sinalizador representativo na sintaxe de alto nível. Quando mmvd_enalble_flag é 1, o aparelho de decodificação de vídeo 1700 pode sequencialmente analisar sinalizadores indicando se o modo MMVD é aplicado em outras técnicas de predição inter e, então, pode determinar se o modo MMVD é aplicado a cada uma das outras técnicas de predição inter.
[000417] Por exemplo, em um caso em que o modo MMVD é aplicado a uma técnica afim, quando um sinalizador de ativação MMVD que é um sinalizador representativo é 1, pode ser interpretado que o modo MMVD a ser aplicado a um ponto de controle afim (CP) tem sido usado.
[000418] Como outro exemplo, quando é confirmado que o sinalizador de ativação de MMVD que é o sinalizador representativo é 1, pode significar que o modo MMVD foi usado em uma certa técnica de predição inter. Além disso, o aparelho de decodificação de vídeo 1700 pode analisar sinalizadores do modo MMVD para respectivas técnicas de predição inter particulares, determinando assim se o modo MMVD foi usado em cada técnica de predição inter. Essas sintaxes para as respectivas técnicas podem ter uma relação de análise que depende do sinalizador de ativação de mmvd representativo e as relações de análise entre as sintaxes para as respectivas técnicas podem ser paralelas.
[000419] O modo MMVD inclui dois modos que são o modo MMVD de um modo de salto e o modo MMVD de um modo de mesclagem. O aparelho de decodificação de vídeo 1700 e o aparelho de codificação de vídeo 1900 de acordo com uma modalidade podem determinar se é o modo de salto, sinalizando um sinalizador de modo de salto de um bloco atual, e então pode determinar se é tanto o modo de salto quanto o modo MMVD, sinalizando um sinalizador MMVD. Além disso, quando não é o modo de salto, o aparelho de decodificação de vídeo 1700 e o aparelho de codificação de vídeo 1900 podem determinar se é o modo de mesclagem, sinalizando um sinalizador de modo de mesclagem e, em seguida, pode determinar se é tanto o modo de mesclagem quanto o modo MMVD, sinalizando o sinalizador MMVD. O aparelho de decodificação de vídeo 1700 pode indiretamente identificar a existência ou não existência de resíduo, de acordo com o sinalizador dentre o sinalizador de modo de salto e o sinalizador de modo de mesclagem, o sinalizador MMVD é sinalizado posteriormente. Ou seja, quando o sinalizador MMVD é sinalizado após o sinalizador de modo de salto, não existe resíduo, mas, quando o sinalizador MMVD é sinalizado após o sinalizador de modo de mesclagem, pode existir resíduo.
[000420] Em um exemplo diferente, a seguir, o modo MMVD pode ser usado independentemente do modo de salto e do modo de mesclagem. Uma modalidade será agora descrita, na qual, quando o aparelho de decodificação de vídeo 1700 e o aparelho de codificação de vídeo 1900 de acordo com uma modalidade usam um sinalizador MMVD independente, informação separada indicando se deve ser usado resíduo é sinalizada.
[000421] O aparelho de codificação de vídeo 1900 de acordo com uma modalidade pode gerar, após um sinalizador MMVD, e transmitir um elemento de sintaxe sobre se deve ser usado resíduo. Por exemplo, quando o sinalizador MMVD é 1, um sinalizador (por exemplo, no_residue_flag) para determinar se deve ou não transmitir resíduo de um bloco atual pode ser transmitido separadamente depois disso. Quando no_residue_flag é 1, o aparelho de decodificação de vídeo 1700 pode determinar que o sinalizador MMVD é 1 no modo de salto e pode realizar a decodificação sem resíduo. Quando no_residue_flag é 0, o aparelho de decodificação de vídeo 1700 pode determinar que o sinalizador MMVD é 1 no modo de mesclagem, pode adicionalmente analisar resíduo e, em seguida, pode realizar a decodificação.
[000422] Como outro exemplo, se os componentes residuais dos respectivos componentes de cor que são Y, Cb, Cr existem como em um modo de predição de vetor de movimento avançado (AMVP) do padrão HEVC é verificado por meio de cbf, e o resíduo pode ser analisado de acordo com um resultado do verificando. Por exemplo, se os resíduos em relação aos respectivos componentes que são Y, Cb, Cr existem podem ser determinados por sinalização cbf de uma unidade de codificação (cu_cbf), cbf de uma unidade de transformada de um componente Y (tu_cbf_luma), cbf de uma unidade de transformada de um componente Cb (tu_cbf_cb), cbf de uma unidade de transformada de um componente Cr (tu_cbf_cr) e semelhantes. Como outro exemplo,
um sinalizador indicando se existe resíduo em todos os componentes Y, Cb, Cr pode ser sinalizado.
[000423] Como outro exemplo, o modo MMVD pode não ser permitido para o modo de salto, mas pode ser permitido apenas para o modo de mesclagem. Como as informações de movimento são preditas em um modo de mesclagem normal da mesma maneira que no modo de salto, é possível presumir que sempre existe resíduo no modo de mesclagem. Ou seja, no padrão HEVC, é assumido que root_cbf é sempre 1 e, portanto, existe resíduo em pelo menos um componente entre os componentes Y, Cb, Cr. Após root_cbf, sinalizadores indicando se existe resíduo podem ser sinalizados respectivamente para componentes (Y, Cb, Cr). No entanto, quando o modo MMVD é permitido apenas no modo de mesclagem, mesmo quando não existe resíduo no modo MMVD, um sinalizador para indicar se existe resíduo pode ser sinalizado para cada um de Y, Cb, Cr. Nesse caso, embora o modo MMVD seja do modo de mesclagem, quando não existe resíduo em um bloco atual, root_cbf pode ser sinalizado para determinar a existência ou não existência de resíduo usando um root_cbf.
[000424] Além disso, no padrão VVC atual, um modo em que predição intra e predição inter são combinados para gerar dados de predição, ou um modo de predição de partição triangular em que a predição é realizada permitindo uma partição conectando vértices de uma linha diagonal de um bloco pode ser permitido apenas para o modo de mesclagem. Semelhante ao método proposto acima, embora o modo MMVD seja do modo mesclagem, quando não existe resíduo em um bloco atual, root_cbf pode ser sinalizado para determinar a existência ou não existência de resíduo usando um root_cbf.
[000425] A FIG. 27 ilustra a tabela de referência para determinar a binarização de uma pluralidade de informações relacionadas à mesclagem de acordo com uma modalidade.
[000426] Por exemplo, a binarização do elemento de sintaxe mmvd_merge_flag indicando se ele está predito em um modo MMVD é a binarização de comprimento fixo (FL) e, a este respeito, o valor do parâmetro cMax é 1. A binarização de mmvd_cand_flag correspondente a um índice de mesclagem também é FL e, a esse respeito, o valor do parâmetro cMax pode ser 1.
[000427] A binarização do elemento de sintaxe mmvd_distance_idx correspondente a um índice de distância de uma diferença de vetor de movimento de mesclagem é binarização de Rice truncada (TR) e, a este respeito, o valor do parâmetro cMax pode ser 7 e o valor cRiceParam pode ser 0. A binarização do elemento de sintaxe mmvd_direction_idx correspondente a um índice de direção da diferença do vetor de movimento de mesclagem é FL e, a este respeito, o valor do parâmetro cMax pode ser 3.
[000428] A seguir, com referência às FIGS. 28 a 33, várias binarizações para uma pluralidade de peças de informações relacionadas ao MMVD serão agora descritas.
[000429] A FIG. 28 ilustra a tabela de comparação de bin strings de 8 índices de distância (mmvd) de uma diferença de mesclagem de acordo com várias binarizações.
[000430] Um índice de distância (mmvd) de uma diferença de mesclagem pode ser mapeado para um valor que indica uma distância particular de uma diferença de vetor de movimento em um modo MMVD. Por exemplo, os índices 0, 1, 2, 3, 4, 5, 6 e 7 podem ser mapeados respectivamente para 4, 8, 16, 32, 64, 128, 256 e 512 de distâncias de uma diferença de vetor de movimento. Como outro exemplo, os índices 0, 1, 2, 3, 4, 5, 6 e 7 podem ser mapeados respectivamente para 1, 2, 4, 8, 16, 32, 64 e 128 de distâncias de uma diferença de vetor de movimento.
[000431] Tabela de comparação da FIG. 28 mostra bin strings correspondentes a índices de distância de acordo com a binarização 1 e binarização 2 quando o número de índices de distância de uma diferença de vetor de movimento de mesclagem é de 0 a 7, ou seja, 8.
[000432] A binarização 1 é um esquema de codificação unário truncado no qual o comprimento de um bin string correspondente a um índice torna-se menor à medida que o índice se torna menor. Este esquema é uma binarização útil, assumindo que, conforme um índice se torna pequeno, a distância de uma diferença de vetor de movimento correspondente a ele ocorre com mais frequência. No entanto, não é verdade que a distância de uma diferença de vetor de movimento correspondente a um primeiro índice de 0 de acordo com uma característica e uma resolução de uma imagem ocorre com mais frequência.
[000433] Mesmo quando um primeiro índice não corresponde a uma distância de uma diferença de vetor de movimento que ocorre com mais frequência, é verdade que um pequeno índice corresponde a uma distância de uma diferença de vetor de movimento que ocorre com mais frequência. Com base no fato descrito acima, de acordo com a binarização 2, o aparelho de codificação de vídeo 1900 aloca um bin string de 2 bits para índices de distância de 0, 1 e 2, e aloca um bin string de um número menor de bits para índices de distância de 3, 4, 5, 6 e 7, em comparação com a binarização 1. Portanto, em comparação com a binarização 1, de acordo com a binarização 2, pode-se esperar um efeito no qual uma probabilidade de que um índice de distância de uma diferença de vetor de movimento ocorra e o número de bits de um bin string correspondente a ela sejam completa e uniformemente corrigidos.
[000434] Em uma modalidade adicional, o aparelho de codificação de vídeo 1900 pode determinar um bin string correspondente a um índice de distância, de acordo com uma probabilidade de ocorrência real de um índice de distância de uma diferença de vetor de movimento em uma imagem natural real. Codificação de comprimento variável (VLC) pela qual, quando uma probabilidade de ocorrência de um índice de distância específico de uma diferença de vetor de movimento é igual ou superior a 50%, um bin string de 1 bit é alocada a um índice de distância correspondente à distância da diferença pode ser usada. No entanto, quando uma probabilidade de ocorrência de uma distância de uma diferença de vetor de movimento é globalmente menor que 50%, um bin string correspondente a um índice de distância de uma diferença de vetor de movimento pode ser determinada, de acordo com a binarização 2.
[000435] O aparelho de decodificação de vídeo 1700 pode realizar binarização inversa em um índice de distância de uma diferença de vetor de movimento de acordo com a binarização selecionada pelo aparelho de codificação de vídeo 1900. Ou seja, o aparelho de decodificação de vídeo 1700 pode analisar, a partir de um fluxo de bits, um bin string do índice de distância da diferença do vetor de movimento e pode determinar o índice de distância da diferença do vetor de movimento correspondente ao bin string, de acordo com a binarização selecionada pelo aparelho de codificação de vídeo 1900.
[000436] O aparelho de codificação de vídeo 1900 de acordo com uma modalidade pode determinar um índice de distância de uma diferença de vetor de movimento, de acordo com a binarização exp-golomb de ordem k.
[000437] A FIG. 29 ilustra uma modalidade da binarização exp- golomb de ordem k.
[000438] A binarização exp-golomb de ordem k refere-se a um esquema para expressão de bits baseada em probabilidade variável de acordo com um expoente de k. Em comparação com a binarização 2, a binarização exp-golomb de ordem k pode promover até mesmo um comprimento de um bin string de acordo com uma probabilidade de ocorrência de uma distância de uma diferença de vetor de movimento.
[000439] Conforme ilustrado na FIG. 29, pode ser definido que um comprimento de um bin string correspondente a índices de distância de 0 e 1 é 2, um comprimento de um bin string correspondente a índices de distância de 2, 3 e 4 é 3, um comprimento de um bin string correspondente a um índice de distância de 5 é 4, e um comprimento de um bin string correspondente a índices de distância de 6 e 7 é 5. Quando o expoente k é alterado, os bin strings alocados aos respectivos índices de distância podem ser alterados.
[000440] Em outra modalidade, um bin string de um índice de distância de uma diferença de vetor de movimento de MMVD pode ser determinado de acordo com um processo de binarização de Rice truncado (TR). Por exemplo, uma variável cMax pode ser definida como 7 e cRiceParam pode ser definida como 7, que são necessários no processo de binarização TR, ou cMax pode ser definida como 7 e cRiceParam pode ser definida como 1.
[000441] Em outra modalidade, em uma sequência atual, uma imagem atual, uma fatia atual, um ladrilho atual ou uma maior unidade de codificação atual, isto é, em cada nível de dados, de acordo com uma probabilidade de ocorrência do índice de distância da diferença do vetor de movimento, cRiceParam do processo de binarização TR pode ser definido de forma variável. À medida que cRiceParam se torna grande, é possível alocar bits com uma probabilidade uniforme, de modo que cRiceParam pode ser definido separadamente em um nível correspondente e sinalizado. As informações de cRiceParam usadas em cada nível de dados podem ser sinalizadas por meio de informações de cabeçalho de um nível de dados correspondente.
[000442] Em um exemplo mais específico, a binarização pode ser alterada de forma variável com base em uma probabilidade de ocorrência de um índice de distância de uma diferença de vetor de movimento MMVD em cada nível de dados. Além disso, a binarização não pode ser limitada ao processo de binarização TR, mas pode ser alterada com base na tabela de binarização de um esquema VLC predefinido ou esquema FLC de acordo com várias probabilidades de ocorrência.
[000443] Como outro exemplo, a eficiência da codificação pode ser aumentada alterando de forma variável um valor máximo de um índice de distância de um vetor de movimento MMVD que é usado em cada sequência, cada imagem, cada fatia, cada ladrilho ou cada CTU. Por exemplo, quando o processo de binarização TR é usado, o valor cMax pode ser alterado. Para usar 6 índices de distância, o valor cMax pode ser alterado para 5. As informações de número com respeito a cMax podem ser incluídas nas informações de cabeçalho de um nível de dados atual. Além disso, cMax pode ser alterado de forma variável de acordo com uma probabilidade de ocorrência de um índice de distância em um nível de dados correspondente.
[000444] Em outra modalidade, independentemente da binarização sendo usada quando um índice de distância de uma diferença de vetor de movimento de um modo MMVD é binarizado, a codificação de entropia à qual um modelo de contexto é aplicado pode ser realizada em um primeiro bit de um bin string correspondente ao índice de distância. É porque, quando os símbolos são agrupados de acordo com as probabilidades na binarização, onde um símbolo e um bin string são combinados, um primeiro bit de um bin string representa a classificação primária pela qual cada grupo de símbolos é identificado. Portanto, quando um modelo de contexto é aplicado a um primeiro bit de um bin string, pode ser esperada uma maior eficiência de codificação de entropia.
[000445] De acordo com a binarização, um modelo de contexto pode ser aplicado a um segundo bit. Além disso, quando uma probabilidade de ocorrência de uma pluralidade de índices de distância particulares é alta, a eficiência de codificação de entropia pode ser aumentada pela aplicação de binarização usando contexto. Por exemplo, quando uma probabilidade de ocorrência de índices de distância de 0 e 1 é alta na binarização 1 e binarização 2 descritas acima, a eficiência da codificação de entropia pode ser aumentada aplicando a binarização usando contexto para um primeiro bit e um segundo bit.
[000446] Por exemplo, em um caso onde a binarização usando contexto é usada, quando um primeiro bit de um bin string é 0, um índice de distância correspondente a ele pode ser 0 ou 1, e quando o primeiro bit de um bin string é 1, outros excluindo 0 e 1 pode ser índices de distância.
[000447] Em outro exemplo, apenas quando o primeiro bit é 1, um modelo de contexto pode ser aplicado a um segundo bit imediatamente depois disso. É porque o segundo bit pode ser classificado com uma probabilidade particular em um segundo grupo (um grupo em que o primeiro bit é 1). Portanto, em um caso em que o primeiro bit é 1, quando o modelo de contexto é aplicado ao segundo bit, a eficiência da codificação de entropia pode ser aumentada ainda mais.
[000448] A FIG. 30 ilustra a tabela de comparação de uma bin string de 6 índices de distância de uma diferença de mesclagem de acordo com várias binarizações.
[000449] Semelhante à FIG. 28, pode ser definido que um comprimento de um bin string correspondente aos índices de distância de 0, 1 e 2 é 2, um comprimento de um bin string correspondente a um índice de distância de 3 é 3 e um comprimento de um bin string correspondendo a índices de distância de 4 e 5 é 4.
[000450] A FIG. 31 ilustra bin strings que são geradas por binarização variável de acordo com grupos de índices de distância de uma diferença de fusão de acordo com uma modalidade.
[000451] A FIG. 31 ilustra um bin strings de acordo com a binarização 1 e a binarização 2 quando o número de índices de distância de uma diferença de vetor de movimento de um modo MMVD é N. Um índice de distância pode ser mapeado para um valor de distância particular de um vetor de movimento. Por exemplo, o índice de distância pode ser mapeado para casos em que os tamanhos de uma distância de uma diferença de vetor de movimento são 4, 8, 16, 32, 64, 128, 256 e 512. Como outro exemplo, o índice de distância pode ser mapeado para 1, 2, 4,
8, 16, 32, 64 e 128 que são tamanhos da distância da diferença do vetor de movimento.
[000452] De acordo com a binarização 1, a codificação unária truncada (codificação T-unária) pode ser usada para expressar um índice de distância.
[000453] Pelo contrário, para aumentar a eficiência de codificação de entropia, nas binarizações 2 e 3, um elemento de sintaxe é adicionado a cada índice de distância separado. O elemento de sintaxe é um sinalizador usado no agrupamento de índices de distância correspondentes de modo a realizar a codificação com bits mínimos agrupando separadamente os índices de distância mais prováveis.
[000454] Um grupo de índice de distância refere-se a um grupo de índices de distância com alta probabilidade de seleção e inclui índices que são selecionados com mais frequência de uma determinada lista de índice de distância. Portanto, o sinalizador pode ser determinado com base em sinalizadores acumulados por um grupo de índice de distância de blocos que já estão codificados em um quadro atual ou uma fatia. Em outro exemplo, um sinalizador de um bloco atual pode ser determinado usando um sinalizador correspondente de um bloco adjacente codificado no modo MMVD.
[000455] As informações sobre qual índice de distância em um grupo de índice de distância deve ser usado podem ser sinalizadas por meio de sintaxe de alto nível, e um índice de distância selecionado com base nas informações pode ser usado em uma imagem, um ladrilho, uma fatia e semelhantes que são inferior à sintaxe de alto nível.
[000456] De acordo com a binarização 2, quando se assume que os primeiros índices de distância 0 e 1 são os candidatos mais prováveis, um grupo de índice de distância 0 incluindo índices de distância 0 e 1 pode ser determinado. Um grupo 1 incluindo outros índices de distância pode ser determinado. Um sinalizador de grupo de 0 pode ser alocado para o grupo 0, e um sinalizador de grupo de 1 pode ser alocado para o grupo 1. Em geral, o número de índices incluídos no grupo 1 pode ser determinado subtraindo o número de índices incluídos no grupo 0 do número máximo de índices de distância. Por exemplo, um número obtido subtraindo 2 que é o número de índices do grupo 0 de N + 1 que é o número máximo de índices de distância pode ser o número de índices do grupo 1.
[000457] Um modelo de contexto pode ser aplicado a um sinalizador de grupo. Como os índices de distância selecionáveis estão incluídos no grupo 0, a eficiência da codificação de entropia pode ser melhorada usando o modelo de contexto.
[000458] Os índices incluídos no grupo 0 podem ser codificados usando FLC e os índices incluídos no grupo 1 podem ser organizados a partir dos menores e, em seguida, podem ser codificados usando codificação T-unária.
[000459] De acordo com a binarização 3, um grupo 0 incluindo índices de distância de 0, 1, 2 e 3 é determinado, assumindo que os primeiros índices de distância de 0, 1, 2 e 3 são os candidatos mais prováveis. Um grupo 1 incluindo outros índices de distância é determinado. Em geral, o número de índices incluídos no grupo 1 pode ser determinado subtraindo o número de índices incluídos no grupo 0 do número máximo de índices de distância.
[000460] Um modelo de contexto pode ser aplicado a um sinalizador de grupo. Os índices incluídos no grupo 0 podem ser codificados usando FLC e os índices incluídos no grupo 1 podem ser organizados a partir dos menores e, em seguida, podem ser codificados usando codificação T-unária.
[000461] Nas binarizações 2 e 3 descritas com referência à FIG. 31, os índices de distância incluídos no grupo 0 nem sempre são codificados usando FLC e os índices de distância incluídos no grupo 1 nem sempre são codificados usando codificação T-unária. Alguns índices incluídos no grupo 0 podem ser codificados usando FLC e outros índices podem ser codificados usando codificação T-unária. Da mesma forma, alguns índices incluídos no grupo 1 podem ser codificados usando FLC e outros índices podem ser codificados usando codificação T- unária.
[000462] A seguir, com referência às FIGS. 32 e 33, binarização em que a palavra de código é alocada de forma diferente com base na precisão de uma distância de uma diferença de vetor de movimento.
[000463] A FIG. 32 ilustra palavras de código de casos de 8 índices de distância (mmvd) de uma diferença de mesclagem de acordo com uma modalidade. A FIG. 33 ilustra palavras de código de casos de 6 índices de distância (mmvd) de uma diferença de mesclagem de acordo com uma modalidade.
[000464] Um deslocamento de distância de uma diferença de vetor de movimento pode ser apenas um número expresso como potências de 2 (2 ^ n, onde n é um inteiro). De acordo com se o deslocamento de distância se refere à precisão em uma unidade de subpixel ou precisão em uma unidade de pixel inteiro, pode ser alocada uma palavra de código com relação a um índice de distância. Por exemplo, referindo-se à FIG. 32, um número total de distâncias de uma diferença de vetor de movimento pode ser 8 e os seus valores podem ser 1/4, 1/2, 1, 2, 4, 8, 16 e 32. Os deslocamentos de distância de 1/4 e 1/2 em unidades de subpixel podem ser determinados como um grupo, e outros deslocamentos de distância podem ser identificados como outro grupo, de modo que a palavra de código em relação a um índice de distância pode ser alocada a cada grupo por usando binarizações diferentes. De acordo com cada grupo de precisão, a palavra de código de um índice de distância pode ser determinada usando FLC ou pode ser determinada usando VLC incluindo codificação T-unária. A FIG. 32 ilustra palavras de código para os respectivos índices de distância em uma modalidade na qual existem 8 deslocamentos de distância, e a FIG. 33 ilustra palavras de código para os respectivos índices de distância em uma modalidade na qual existem 6 deslocamentos de distância.
[000465] Binarizações como nas FIGS. 32 e 33 podem ser eficazes em um caso em que a probabilidade de que ocorra um deslocamento de distância da precisão de subpixel real é maior do que a probabilidade de que ocorra um deslocamento de distância de precisão em uma unidade de pixel inteiro. Em particular, uma probabilidade de 0 em um sinalizador de precisão é aumentada para melhorar a eficiência de codificação de entropia, de modo que uma quantidade de bits possa ser diminuída.
[000466] Em métodos de expressão de palavra de código de acordo com as FIGS. 32 e 33, um sinalizador de precisão e um índice em cada precisão podem ser expressos, respectivamente, como elementos de sintaxe. Diferentes binarizações podem ser aplicadas em um mesmo elemento de sintaxe, de acordo com os bits.
[000467] Daqui em diante, uma modalidade será agora descrita, na qual o aparelho de decodificação de vídeo 1700 e o aparelho de codificação de vídeo 1900 aplicam um modo de predição de partição triangular e um modo de predição de combinação intra / inter.
[000468] De acordo com o modo de predição de partição triangular, um bloco atual pode ser dividido em dois formatos de partição triangular ao longo de uma linha diagonal conectando vértices opostos de um bloco quadrado e a predição pode ser realizada em cada uma das partições triangulares. De acordo com esta técnica de predição, uma área onde os blocos de predição do contato de duas partições triangulares é preenchida com um valor de predição obtido pela realização de filtragem nos blocos de predição das duas partições triangulares, de modo que um novo bloco de predição quadrado seja gerado.
[000469] A FIG. 34 ilustra partições triangulares que estão disponíveis em um modo de predição de partição triangular de acordo com uma modalidade.
[000470] As partições triangulares PU1 e PU2 podem ser determinadas conectando um vértice superior esquerdo e um vértice inferior direito de um bloco atual 3400 virados um para o outro. As partições triangulares PU1 e PU2 podem ser determinadas conectando um vértice superior direito e um vértice inferior esquerdo de um bloco atual 3410 virados um para o outro.
[000471] Os blocos atuais 3400 e 3410 podem ser unidades de codificação.
[000472] Diferentes vetores de movimento podem ser determinados para partições triangulares de acordo com a previsão usando duas partições triangulares e informações sobre um vetor de movimento podem ser sinalizadas entre o aparelho de codificação de vídeo 1900 e o aparelho de decodificação de vídeo 1700.
[000473] A FIG. 35 ilustra um bloco de predição determinado usando partições triangulares em um modo de predição de partição triangular de acordo com uma modalidade.
[000474] Um tamanho de um bloco de predição 3500 pode ser de 8x8 e blocos de predição de partição triangular podem ser gerados em um modo de partição triangular. Ao realizar a filtração nos valores de predição P1 e P2 dos blocos de predição de partição triangular, um valor de predição final de uma área intermediária onde os blocos de predição de partição triangular entram em contato uns com os outros pode ser determinado. Um peso de filtração pode ser determinado em proporção inversa a uma distância de uma área de bloco de predição para um bloco de predição de partição triangular.
[000475] Por exemplo, N que é um número marcado em cada pixel da área intermediária do bloco de predição 3500 indica um peso de filtração. Quando N é 7, um peso de filtração de 7/8 pode ser alocado para P1 (7/8 * P1) que é um valor de predição de um bloco de predição próximo entre os blocos de predição de partição triangular, um peso de filtração de 8-7 = 1 pode ser alocado para P2 (1/8 * P2) que é um valor de predição de um bloco de predição distante e, em seguida, uma soma ponderada de seus resultados pode ser determinada como um valor de predição final (7/8 * P1 + 1 / 8 * P2). Quando N é 6, um peso de filtração de 6/8 pode ser alocado para P1 (6/8 * P1) que é um valor de predição de um bloco de predição próximo de entre os blocos de predição de partição triangular, um peso de filtração de 8-6 = 2 pode ser alocado para P2 (2/8 * P2) que é um valor de predição de um bloco de predição distante e, em seguida, uma soma ponderada de seus resultados pode ser determinada como um valor de predição final (6/8 * P1 + 2 / 8 * P2).
[000476] Em um caso onde o tamanho de um bloco de predição 3510 é 4*4, quando N é 7, um peso de filtração de 7/8 pode ser alocado para P1 (7/8 * P1) que é um valor de predição de um bloco de predição próximo entre os blocos de predição de partição triangular, um peso de filtração de 8-7 = 1 pode ser alocado para P2 (1/8 * P2) que é um valor de predição de um bloco de predição distante e, em seguida, uma soma ponderada de seus resultados pode ser determinada como um valor de predição final (7/8 * P1 + 1 / 8 * P2).
[000477] O modo de partição triangular de acordo com uma modalidade não pode ser usado para uma unidade de codificação com um tamanho pequeno, isto é, um caso em que a multiplicação de uma largura e uma altura da unidade de codificação é menor que 64. Isso ocorre porque o efeito de divisão de uma unidade de codificação diminui quando um pequeno bloco é dividido em partições triangulares.
[000478] Além disso, quando uma partição triangular não cobre um objeto em uma unidade de codificação muito grande, um método de divisão de uma unidade de codificação de árvore de quatro nós ou árvore ternária pode ser ainda mais eficiente. Como a sobrecarga de um sinalizador que ocorre no modo de partição triangular é uma carga, e o cálculo da predição da partição triangular aumenta a complexidade de um codificador, o modo de partição triangular pode ser ineficiente para uma unidade de codificação com um tamanho grande particular.
[000479] Portanto, o aparelho de decodificação de vídeo 1700 e o aparelho de codificação de vídeo 1900 de acordo com uma modalidade podem determinar se deve realizar o modo de partição triangular de acordo com as condições abaixo. Aqui, MAX_CU_SIZE indica o tamanho máximo de uma unidade de codificação.
[000480] Condição 1: (largura * altura <64 || largura> = MAX_CU_SIZE || altura> = MAX_CU_SIZE)
[000481] Ou seja, quando a multiplicação de um tamanho e uma largura de um bloco atual é menor que 64, o tamanho do bloco atual é maior do que um tamanho máximo de uma unidade de codificação, ou a largura do bloco atual é maior que o tamanho máximo da unidade de codificação, o aparelho de decodificação de vídeo 1700 e o aparelho de codificação de vídeo 1900 de acordo com uma modalidade podem determinar que não está disponível para aplicar o modo de predição de partição triangular ao bloco atual.
[000482] De acordo com a Condição 1, a aplicação do modo de partição triangular é evitada em relação a uma área para a qual a eficiência predita é baixa, de modo que a complexidade de um codificador pode ser diminuída, a sinalização de um sinalizador de modo desnecessário pode ser evitada e, assim, a eficiência de codificação pode ser melhorada.
[000483] Como na Condição 2 abaixo, os valores de limiar de altura e largura de uma unidade de codificação podem ser modificados para MAX_CU_SIZE / 2.
[000484] Condição 2: (largura * altura <64 || largura> = MAX_CU_SIZE/2 || altura> = MAX_CU_SIZE/2 )
[000485] O aparelho de decodificação de vídeo 1700 e o aparelho de codificação de vídeo 1900 de acordo com uma modalidade podem determinar um bloco de predição através de um modo de combinação intra / inter.
[000486] O modo de combinação intra / inter (ou um modo de hipóteses múltiplas) refere-se a uma tecnologia pela qual um bloco atual é predito em cada um de um modo de predição intra e um modo de predição inter de modo a gerar respectivos blocos de predição, e dois blocos de predição são peso médio para gerar um novo bloco de predição.
[000487] Os elementos de sintaxe necessários, respectivamente, para o modo predição intra e o modo predição inter são transmitidos para o aparelho de decodificação de vídeo 1700 para realizar predição intra e predição inter.
[000488] O aparelho de codificação de vídeo 1900 pode transmitir, na forma de um índice de mesclagem, um elemento de sintaxe relacionado ao modo de predição inter e o aparelho de decodificação de vídeo 1700 pode reconstruir um vetor de movimento e uma imagem de referência.
[000489] Um elemento de sintaxe relacionado ao modo de predição intra pode incluir informações de direção de predição intra indicando um dos 4 modos (modos DC, planar, horizontal e vertical).
[000490] O modo de combinação intra / inter de acordo com uma modalidade não pode ser usado para uma unidade de codificação com um tamanho pequeno, isto é, um caso em que a multiplicação de uma largura e uma altura da unidade de codificação é menor que 64. Isso ocorre porque uma carga de cálculos que ocorrem em um cálculo de combinação de predição intra e predição inter é maior do que um efeito de divisão de uma unidade de codificação.
[000491] Portanto, o aparelho de decodificação de vídeo 1700 e o aparelho de codificação de vídeo 1900 de acordo com uma modalidade podem determinar se deve realizar o modo de partição triangular de acordo com as condições abaixo. Aqui, MAX_CU_SIZE indica o tamanho máximo de uma unidade de codificação.
[000492] Condição 1: (largura * altura <64 || largura> = MAX_CU_SIZE || altura> = MAX_CU_SIZE)
[000493] Ou seja, quando a multiplicação de um tamanho e uma largura de um bloco atual é menor que 64, o tamanho do bloco atual é maior do que um tamanho máximo de uma unidade de codificação, ou a largura do bloco atual é maior que o tamanho máximo da unidade de codificação, o aparelho de decodificação de vídeo 1700 e o aparelho de codificação de vídeo 1900 de acordo com uma modalidade podem determinar que não está disponível para aplicar o modo de combinação inter / intra ao bloco atual.
[000494] De acordo com a Condição 1, a aplicação do modo de partição triangular é evitada em relação a uma área para a qual a eficiência predita é baixa, de modo que a complexidade de um codificador pode ser diminuída, a sinalização de um sinalizador de modo desnecessário pode ser evitada e, assim, a eficiência de codificação pode ser melhorada.
[000495] Como na Condição 2 abaixo, os valores de limiar de altura e largura de uma unidade de codificação podem ser modificados para MAX_CU_SIZE / 2.
[000496] Condição 2: (largura * altura <64 || largura> = MAX_CU_SIZE/2 || altura> = MAX_CU_SIZE/2 )
[000497] Além disso, quando o modo de predição de partição triangular está habilitado, o aparelho de decodificação de vídeo 1700 de acordo com uma modalidade pode determinar se um modo de predição de combinação intra / inter está habilitado.
[000498] O obtentor de elemento de sintaxe 1710 de acordo com uma modalidade pode obter, a partir de um fluxo de bits, informações de sequência MMVD indicando se o modo de predição de partição triangular está habilitado para o bloco atual. Além disso, o obtentor de elemento de sintaxe 1710 pode obter, a partir do fluxo de bits, uma segunda informação indicando se o modo de predição de combinação intra / inter está habilitado para o bloco atual.
[000499] Quando o modo de predição de partição triangular está habilitado para o bloco atual de acordo com a informação de sequência MMVD, o decodificador 1720 de acordo com uma modalidade pode determinar se deve aplicar o modo de predição de partição triangular ao bloco atual, com base em um tamanho e uma largura do bloco atual. Quando a multiplicação do tamanho e da largura do bloco atual é menor que 64, o tamanho do bloco atual é maior do que o tamanho máximo de uma unidade de codificação, ou a largura do bloco atual é maior do que o tamanho máximo da codificação unidade, pode ser determinado que não está disponível para aplicar o modo de predição de partição triangular ao bloco atual.
[000500] Quando o modo de predição de partição triangular está habilitado para o bloco atual de acordo com a informação de sequência MMVD, e o modo de predição de combinação intra / inter está habilitado para o bloco atual de acordo com a segunda informação, o decodificador 1720 de acordo com uma modalidade pode determinar se deve aplique o modo de predição de combinação intra / inter ao bloco atual, com base no tamanho e na largura do bloco atual. Quando a multiplicação do tamanho e a largura do bloco atual é menor que 64, o tamanho do bloco atual é maior que o tamanho máximo da unidade de codificação, ou a largura do bloco atual é maior que o tamanho máximo da codificação unidade, pode ser determinado que não está disponível para aplicar o modo de predição de combinação intra / inter ao bloco atual.
[000501] Em particular, quando o modo de predição de partição triangular está habilitado, o modo de predição de combinação intra / inter está habilitado, a multiplicação do tamanho e da largura do bloco atual é igual ou maior que 64, o tamanho do bloco atual é igual a ou menor do que o tamanho máximo da unidade de codificação, ou a largura do bloco atual é igual ou menor do que o tamanho máximo da unidade de codificação, o decodificador 1720 pode aplicar o modo de predição de combinação intra / inter ao bloco atual.
[000502] De forma semelhante, quando o modo de predição de partição triangular está habilitado, o aparelho de codificação de vídeo 1900 de acordo com uma modalidade pode determinar se o modo de predição de combinação intra / inter está habilitado.
[000503] Quando o modo de predição de partição triangular é ativado para um bloco atual, o executor de predição inter 1910 de acordo com uma modalidade pode determinar se deve aplicar o modo de predição de partição triangular ao bloco atual, com base em um tamanho e uma largura do bloco atual. Quando a multiplicação do tamanho e da largura do bloco atual é menor que 64, o tamanho do bloco atual é maior do que o tamanho máximo de uma unidade de codificação, ou a largura do bloco atual é maior do que o tamanho máximo da codificação unidade, pode ser determinado que não está disponível para aplicar o modo de predição de partição triangular ao bloco atual.
[000504] Quando o modo de predição de partição triangular está habilitado para o bloco atual, e o modo de predição de combinação intra / inter está habilitado para o bloco atual de acordo com a segunda informação, o executor de predição inter 1910 de acordo com uma modalidade pode determinar se deve aplique o modo de predição de combinação intra / inter ao bloco atual, com base no tamanho e na largura do bloco atual. Quando a multiplicação do tamanho e a largura do bloco atual é menor que 64, o tamanho do bloco atual é maior que o tamanho máximo da unidade de codificação, ou a largura do bloco atual é maior que o tamanho máximo da codificação unidade, pode ser determinado que não está disponível para aplicar o modo de predição de combinação intra / inter ao bloco atual.
[000505] O codificador de elemento de sintaxe 1920 de acordo com uma modalidade pode codificar informações de sequência MMVD indicando se o modo de predição de partição triangular está habilitado para o bloco atual. Além disso, o codificador de elemento de sintaxe 1920 pode codificar uma segunda informação indicando se o modo de predição de combinação intra / inter está habilitado para o bloco atual.
[000506] Em particular, quando o modo de predição de partição triangular está habilitado, o modo de predição de combinação intra / inter está habilitado, a multiplicação do tamanho e da largura do bloco atual é igual ou maior que 64, o tamanho do bloco atual é igual a ou menor do que o tamanho máximo da unidade de codificação, ou a largura do bloco atual é igual ou menor do que o tamanho máximo da unidade de codificação, o executor de predição inter 1910 pode aplicar o modo de predição de combinação intra / inter ao bloco atual.
[000507] Enquanto isso, as modalidades da divulgação podem ser escritas como programas que são executáveis em um computador e os programas podem ser armazenados em um meio.
[000508] O meio pode armazenar continuamente os programas executáveis por computador ou pode armazenar temporariamente os programas executáveis por computador para execução ou transferência. Além disso, a mídia pode ser qualquer uma das várias mídias de gravação ou mídia de armazenamento em que uma única parte ou pluralidade de partes de hardware são combinadas e a mídia não está limitada à diretamente conectada a um determinado sistema de computador, mas pode ser distribuída em uma rede. Exemplos do meio incluem mídia magnética, como um disco rígido, um disquete e uma fita magnética, mídia de gravação óptica, como disco compacto de memória somente de leitura (CD-ROM) e um disco versátil digital (DVD), magneto-óptico mídia como disco flexível, memória somente leitura (ROM), memória de acesso aleatório (RAM), uma memória flash, etc., que são configuradas para armazenar instruções do programa. Também, outros exemplos de meio incluem mídias de gravação e mídias de armazenamento gerenciada por lojas de aplicativos que distribuem aplicativos ou por sites, servidores semelhantes e fornecendo ou distribuindo outros vários tipos de software.
[000509] Embora uma ou mais modalidades da divulgação sejam descritas em detalhes com referência às modalidades exemplificativas acima, será entendido pelos versados na técnica que a divulgação não está limitada às modalidades, e várias mudanças na forma e nos detalhes podem ser feito nele sem se afastar do espírito e escopo da divulgação.

Claims (15)

- REIVINDICAÇÕES -
1. MÉTODO DE DECODIFICAÇÃO DE VÍDEO, caracterizado pelo fato de que compreende: obter, a partir de um conjunto de parâmetros de sequência, modo de mesclagem de sequência com informações de diferença de vetor de movimento (sequência MMVD) indicando se um modo MMVD está ativado para uma sequência atual; quando o modo MMVD está habilitado de acordo com a informação de sequência MMVD, obtendo, a partir de um fluxo de bits, a primeira informação MMVD indicando se o modo MMVD é usado em um primeiro modo de predição inter para um bloco atual compreendido na sequência atual; quando o modo MMVD é usado no primeiro modo de predição inter de acordo com a primeira informação MMVD, reconstruir um vetor de movimento do bloco atual que deve ser usado no primeiro modo de predição inter, usando uma distância de uma diferença do vetor de movimento e uma direção da diferença do vetor de movimento obtida a partir do fluxo de bits; e reconstruir o bloco atual usando o vetor de movimento do bloco atual.
2. Método de decodificação de vídeo, de acordo com a reivindicação 1, caracterizado pelo fato de que obter, a partir do fluxo de bits, da primeira informação MMVD compreende: quando o modo MMVD é habilitado de acordo com a informação de sequência MMVD, obter informação MMVD de subpixel indicando se uma diferença de vetor de movimento em uma unidade de pixel inteiro é usada ou uma diferença de vetor de movimento em uma unidade de subpixel é usada na sequência atual; e quando o modo MMVD está habilitado de acordo com a sequência de informações MMVD, obter informações MMVD indicando se o modo MMVD é usado para o bloco atual compreendido na sequência atual, e a reconstrução do vetor de movimento do bloco atual compreende: quando o modo MMVD é usado para o bloco atual de acordo com as informações MMVD, reconstruir, de acordo com as informações MMVD subpixel, uma distância da diferença de vetor de movimento em uma unidade de pixel inteiro ou uma unidade de subpixel a partir de um índice de distância da diferença do vetor de movimento do bloco atual obtido do fluxo de bits; e determinar o vetor de movimento do bloco atual usando a distância da diferença do vetor de movimento.
3. Método de decodificação de vídeo, de acordo com a reivindicação 2, caracterizado pelo fato de que reconstruir a distância da diferença do vetor de movimento na unidade de pixel inteiro ou na unidade de subpixel do índice de distância da diferença do vetor de movimento do bloco atual compreende: quando o modo MMVD é usado para o bloco atual de acordo com a informação MMVD, e a diferença do vetor de movimento na unidade de pixel inteiro é usada de acordo com a informação MMVD subpixel, reconstruir a distância da diferença do vetor de movimento na unidade de pixel inteiro do índice de distância da diferença do vetor de movimento do bloco atual obtida a partir do fluxo de bits; e. quando o modo MMVD é usado para o bloco atual de acordo com a informação MMVD, e a diferença de vetor de movimento na unidade de subpixel é usada de acordo com a informação MMVD de subpixel reconstruir a distância do movimento diferença de vetor na unidade de subpixel do índice de distância da diferença de vetor de movimento do bloco atual obtida a partir do fluxo de bits.
4. Método de decodificação de vídeo de acordo com a reivindicação 1, caracterizado pelo fato de que reconstruir o vetor de movimento do bloco atual compreende: obter, a partir do fluxo de bits, informações que indicam um vetor de movimento de base do bloco atual e um índice de direção de uma diferença de vetor de movimento do bloco atual; determinar uma diferença do vetor de movimento do bloco atual usando um índice de distância da diferença do vetor de movimento do bloco atual e o índice de direção da diferença do vetor de movimento; determinar o vetor de movimento de base do bloco atual usando as informações que indicam o vetor de movimento de base do bloco atual; e determinar o vetor de movimento do bloco atual usando o vetor de movimento de base e a diferença do vetor de movimento do bloco atual.
5. Método de decodificação de vídeo, de acordo com a reivindicação 2, caracterizado pelo fato de que, quando o modo MMVD não está habilitado para a sequência atual de acordo com a informação de sequência MMVD, tanto a diferença do vetor de movimento na unidade de pixel inteiro quanto a diferença do vetor de movimento na unidade de subpixel são não utilizáveis na sequência atual e no bloco atual.
6. Método de decodificação de vídeo de acordo com a reivindicação 2, caracterizado pelo fato de que determinar o vetor de movimento do bloco atual compreende: quando a distância reconstruída da diferença do vetor de movimento está na unidade de pixel inteiro, arredondar um valor de componente x e um valor de componente y do vetor de movimento base do bloco atual para a unidade de pixel inteiro e reconstruir o vetor de movimento na unidade de pixel inteiro usando o valor do componente x e o valor do componente y do vetor de movimento de base que são arredondados para a unidade de pixel inteiro; e quando a distância reconstruída da diferença do vetor de movimento está na unidade de subpixel, reconstruir um vetor de movimento na unidade de subpixel usando a distância da diferença do vetor de movimento na unidade de subpixel, e um valor de componente x e um valor de componente y de um vetor de movimento de base que são arredondados para a unidade de subpixel.
7. APARELHO DE DECODIFICAÇÃO DE VÍDEO, caracterizado pelo fato de que compreende: um obtentor de elemento de sintaxe configurado para obter, a partir de um conjunto de parâmetros de sequência, modo de mesclagem de sequência com diferença de vetor de movimento (sequência MMVD) informações que indicam se um modo MMVD está ativado para uma sequência atual e quando o modo MMVD é ativado de acordo com a sequência MMVD informações, obter, a partir de um fluxo de bits, as primeiras informações MMVD indicando se o modo MMVD é aplicado em um primeiro modo de predição inter para um bloco atual compreendido na sequência atual; e um decodificador configurado para, quando o modo MMVD está habilitado no primeiro modo de predição inter de acordo com a primeira informação MMVD, reconstruir um vetor de movimento do bloco atual que deve ser usado no primeiro modo de predição inter, usando uma distância de uma diferença do vetor de movimento e uma direção da diferença do vetor de movimento obtida do fluxo de bits e reconstruir o bloco atual usando o vetor de movimento do bloco atual.
8. Aparelho de decodificação de vídeo, de acordo com a reivindicação 7, caracterizado pelo fato de que o obtentor de elemento de sintaxe é configurado para, quando o modo MMVD é ativado de acordo com as informações de sequência MMVD, obter informações de MMVD de subpixel indicando se uma diferença de vetor de movimento em uma unidade de pixel inteiro é usada ou uma diferença de vetor de movimento em uma unidade de subpixel é usada na sequência atual, e quando o modo MMVD está habilitado de acordo com as informações de sequência MMVD, obter informações MMVD indicando se o modo MMVD é usado para o bloco atual compreendido na sequência atual, e o decodificador é configurado para, quando o modo MMVD é usado para o bloco atual de acordo com a informação MMVD, reconstruir, de acordo com a informação MMVD subpixel, uma distância da diferença do vetor de movimento em uma unidade de pixel inteiro ou um sub pixel unidade de um índice de distância da diferença do vetor de movimento do bloco atual obtido a partir do fluxo de bits, e determinar o vetor de movimento do bloco atual usando a distância da diferença do vetor de movimento.
9. MÉTODO DE CODIFICAÇÃO DE VÍDEO, caracterizado pelo fato de que compreende:
codificar o modo de mesclagem de sequência com informação de diferença de vetor de movimento (sequência MMVD) indicando se um modo MMVD está habilitado para uma sequência atual; quando o modo MMVD está habilitado para a sequência atual, codificar a primeira informação MMVD indicando se o modo MMVD é usado para um bloco atual compreendido na sequência atual em um primeiro modo de predição inter; e quando o modo MMVD é usado no primeiro modo de predição inter, a codificação de um índice de distância de uma diferença de vetor de movimento e um índice de direção da diferença de vetor de movimento do bloco atual.
10. Método de codificação de vídeo, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende ainda: quando o modo MMVD está habilitado para a sequência atual, codificar informações MMVD de subpixel indicando se uma diferença de vetor de movimento em uma unidade de pixel inteiro é usada ou uma diferença de vetor de movimento em uma unidade de subpixel é usada na sequência atual; e quando o modo MMVD está ativado, a codificação de informações MMVD indicando se o modo MMVD é usada para o bloco atual compreendido na sequência atual, e a codificação do índice de distância da diferença do vetor de movimento e o índice de direção da diferença do vetor de movimento do bloco atual compreende, quando o modo MMVD é usado para o bloco atual, codificar o índice de distância da diferença do vetor de movimento do bloco atual que é determinado de acordo com uma distância da diferença do vetor de movimento em uma unidade de pixel inteiro ou uma unidade de subpixel.
11. Método de codificação de vídeo, de acordo com a reivindicação 9, caracterizado pelo fato de que a codificação do índice de distância da diferença de vetor de movimento do bloco atual compreende: quando o modo MMVD é usado para o bloco atual e a diferença do vetor de movimento na unidade de pixel inteiro é usada, determinar o índice de distância da diferença do vetor de movimento do bloco atual com base na diferença do vetor de movimento na unidade de pixel inteiro; e quando o modo MMVD é usado para o bloco atual e a diferença do vetor de movimento na unidade de subpixel é usada, determinar o índice de distância da diferença do vetor de movimento do bloco atual com base na diferença do vetor de movimento na unidade de subpixel.
12. Método de codificação de vídeo, de acordo com a reivindicação 9, caracterizado pelo fato de que a codificação do índice de distância da diferença de vetor de movimento do bloco atual compreende: quando a distância da diferença do vetor de movimento é codificada em uma unidade de pixel inteiro, arredondar um valor de componente x e um valor de componente y de um vetor de movimento base do bloco atual para a unidade de pixel inteiro, determinar a distância da diferença do vetor de movimento no unidade de pixel inteiro usando o valor do componente x e o valor do componente y do vetor de movimento de base que são arredondados para a unidade de pixel inteiro e codificar um índice de distância correspondente à distância da diferença do vetor de movimento na unidade de pixel inteiro; e quando a distância da diferença do vetor de movimento é codificada em uma unidade de subpixel, arredondar um valor de componente x e um valor de componente y do vetor de movimento base do bloco atual para a unidade de subpixel, determinar a distância da diferença do vetor de movimento na unidade de subpixel usando o valor do componente x e o valor do componente y do vetor de movimento de base que são arredondados para a unidade de subpixel e codificar um índice de distância correspondente à distância da diferença do vetor de movimento no sub unidade de pixel.
13. MÉTODO DE DECODIFICAÇÃO DE VÍDEO, caracterizado pelo fato de que compreende: obter, a partir de um fluxo de bits, o modo de mesclagem de sequência com informações de diferença de vetor de movimento (sequência MMVD) indicando se um modo de predição de partição triangular está habilitado para um bloco atual; obter, a partir do fluxo de bits, a segunda informação indicando se um modo de predição de combinação intra / inter está habilitado para o bloco atual; quando o modo de predição de partição triangular está habilitado para o bloco atual de acordo com as informações de sequência MMVD, determinar se o modo de predição de partição triangular deve ser aplicado ao bloco atual, com base em um tamanho e uma largura do bloco atual; e quando o modo de predição de partição triangular está habilitado para o bloco atual de acordo com a informação de sequência MMVD, e o modo de predição de combinação intra / inter está habilitado para o bloco atual de acordo com a segunda informação, determinar se deve aplicar o modo de predição de combinação intra / inter ao bloco atual, com base no tamanho e na largura do bloco atual.
14. Método de decodificação de vídeo, de acordo com a reivindicação 13, caracterizado pelo fato de que determinar se deve aplicar o modo de predição de partição triangular ao bloco atual, com base no tamanho e na largura do bloco atual, compreende, quando a multiplicação do tamanho e a largura do bloco atual for menor do que 64, o tamanho do bloco atual é maior do que um tamanho máximo de uma unidade de codificação, ou a largura do bloco atual é maior do que o tamanho máximo da unidade de codificação, determinar que não está disponível aplicar o modo de predição de partição triangular para o bloco atual.
15. Método de decodificação de vídeo, de acordo com a reivindicação 13, caracterizado pelo fato de que determinar se deve aplicar o modo de predição de combinação intra / inter ao bloco atual, com base no tamanho e na largura do bloco atual compreende, quando a multiplicação do tamanho e a largura do bloco atual é menor do que 64, o tamanho do bloco atual é maior do que um tamanho máximo de uma unidade de codificação, ou a largura do bloco atual é maior do que o tamanho máximo da unidade de codificação, determinar que não está disponível aplicar o modo de predição de combinação de intra / inter para o bloco atual.
BR112021012744-5A 2018-12-28 2019-12-30 Método de decodificação de vídeo, aparelho de decodificação de vídeo, e método de codificação de vídeo BR112021012744A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862785742P 2018-12-28 2018-12-28
US62/785,742 2018-12-28
US201962792266P 2019-01-14 2019-01-14
US62/792,266 2019-01-14
PCT/KR2019/018738 WO2020139059A1 (ko) 2018-12-28 2019-12-30 움직임 벡터 차분의 부호화 방법 및 부호화 장치, 및 움직임 벡터 차분의 복호화 방법 및 복호화 장치

Publications (1)

Publication Number Publication Date
BR112021012744A2 true BR112021012744A2 (pt) 2021-09-08

Family

ID=71126657

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021012744-5A BR112021012744A2 (pt) 2018-12-28 2019-12-30 Método de decodificação de vídeo, aparelho de decodificação de vídeo, e método de codificação de vídeo

Country Status (6)

Country Link
US (3) US11627335B2 (pt)
EP (1) EP3905675A4 (pt)
KR (2) KR20220008386A (pt)
CN (5) CN118694933A (pt)
BR (1) BR112021012744A2 (pt)
WO (1) WO2020139059A1 (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113615176A (zh) * 2018-12-31 2021-11-05 北京达佳互联信息技术有限公司 用于在视频编解码中信令发送运动合并模式的系统和方法
WO2020141911A1 (ko) * 2019-01-02 2020-07-09 엘지전자 주식회사 화면간 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
EP3937489B1 (en) * 2019-03-08 2024-08-14 Jvckenwood Corporation Moving image encoding device, moving image encoding method, moving image encoding program, moving image decoding device, moving image decoding method, and moving image decoding program
US12003757B2 (en) * 2019-03-10 2024-06-04 Lg Electronics Inc. Video signal processing method and device for processing motion vector difference information for inter prediction in video signal
WO2021204190A1 (en) * 2020-04-09 2021-10-14 Beijing Bytedance Network Technology Co., Ltd. Motion vector difference for block with geometric partition
US20220286709A1 (en) * 2021-02-26 2022-09-08 Lemon Inc. Methods of coding images/videos with alpha channels
US12058310B2 (en) 2021-02-26 2024-08-06 Lemon Inc. Methods of coding images/videos with alpha channels

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080162432A1 (en) 2006-12-29 2008-07-03 Wen-Shan Wang Search table for unary k-th order exp-golomb decoder
JP5969041B2 (ja) * 2011-11-08 2016-08-10 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute 候補リスト共有方法及びこのような方法を使用する装置
CN104012089B (zh) 2011-12-23 2017-11-28 韩国电子通信研究院 用于设置时间合并候选的参考画面索引的方法和设备
CN104041034B (zh) * 2012-01-19 2018-10-16 索尼公司 图像处理设备和方法
KR101586125B1 (ko) * 2013-12-17 2016-02-02 세종대학교산학협력단 영상의 복호화/부호화 방법 및 장치
EP4418654A3 (en) 2014-10-31 2024-11-06 Samsung Electronics Co., Ltd Video encoding device and video decoding device using high-precision skip encoding and method thereof
CN106303543B (zh) 2015-05-15 2018-10-30 华为技术有限公司 视频图像编码和解码的方法、编码设备和解码设备
EP3383040A4 (en) * 2016-01-11 2018-10-17 Samsung Electronics Co., Ltd. Image encoding method and apparatus, and image decoding method and apparatus
US10979732B2 (en) 2016-10-04 2021-04-13 Qualcomm Incorporated Adaptive motion vector precision for video coding
GB2560720B (en) 2017-03-20 2021-08-25 Canon Kk Method and apparatus for encoding and transmitting at least a spatial part of a video sequence
KR102521521B1 (ko) 2017-09-12 2023-04-14 삼성전자주식회사 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치
US11051036B2 (en) * 2018-07-14 2021-06-29 Mediatek Inc. Method and apparatus of constrained overlapped block motion compensation in video coding
CN118784864A (zh) * 2018-12-07 2024-10-15 夏普株式会社 运动图像解码装置
US11122272B2 (en) * 2018-12-26 2021-09-14 Mediatek Inc. Triangle prediction with applied-block settings and motion storage settings

Also Published As

Publication number Publication date
CN113454991B (zh) 2024-08-06
US20240107058A1 (en) 2024-03-28
WO2020139059A1 (ko) 2020-07-02
US11871030B2 (en) 2024-01-09
CN118694934A (zh) 2024-09-24
KR20210055781A (ko) 2021-05-17
KR20220008386A (ko) 2022-01-20
CN118694932A (zh) 2024-09-24
CN118714304A (zh) 2024-09-27
EP3905675A4 (en) 2022-10-26
US20230232038A1 (en) 2023-07-20
US11627335B2 (en) 2023-04-11
US20220021900A1 (en) 2022-01-20
CN113454991A (zh) 2021-09-28
EP3905675A1 (en) 2021-11-03
KR102349457B1 (ko) 2022-01-10
CN118694933A (zh) 2024-09-24

Similar Documents

Publication Publication Date Title
BR112021003300B1 (pt) Método de decodificação de vídeo, aparelho de decodificação de vídeo, método de codificação de vídeo, e aparelho de codificação de vídeo
BR112021012744A2 (pt) Método de decodificação de vídeo, aparelho de decodificação de vídeo, e método de codificação de vídeo
KR102332528B1 (ko) 움직임 벡터 차분값을 이용한 비디오 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치
BR112020001881B1 (pt) Método para decodificar informações de movimento
BR112016027428B1 (pt) Inicialização de paleta de preditor em codificação de vídeo com base em paleta
BR112021011807A2 (pt) Método de decodificação de imagem realizado por um aparelho de decodificação de imagem, meio legível por computador, aparelho de decodificação de imagem, e método de codificação de imagem realizado por um aparelho de codificação de imagem
KR20220025269A (ko) 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치
KR20210012038A (ko) 타일 및 타일 그룹을 이용하는 비디오 부호화 및 복호화 방법, 타일 및 타일 그룹을 이용하는 비디오 부호화 및 복호화 장치
CN114641999A (zh) 使用工具集的图像解码装置及其图像解码方法、和图像编码装置及其图像编码方法
BR112020004381A2 (pt) método de decodificação de vídeo, aparelho de decodificação de vídeo, método de codificação de vídeo, e aparelho de codificação de vídeo
CN112703731B (zh) 基于子块对图像进行编码的方法和装置以及对图像进行解码的方法和装置
BR122022004577B1 (pt) Método de decodificação de vídeo, aparelho de decodificação de vídeo, método de codificação de vídeo, e aparelho de codificação de vídeo
BR122022004555B1 (pt) Método de decodificação de vídeo, aparelho de decodificação de vídeo, método de codificação de vídeo, e aparelho de codificação de vídeo
BR112020007550B1 (pt) Método para decodificar informações de movimento
BR122022003521B1 (pt) Método para decodificar informações de movimento, e método para codificar informações de movimento
BR122022003522B1 (pt) Aparelho de decodificação de informações de movimento, e método para codificar informações de movimento