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

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

Info

Publication number
BR112021005175A2
BR112021005175A2 BR112021005175-9A BR112021005175A BR112021005175A2 BR 112021005175 A2 BR112021005175 A2 BR 112021005175A2 BR 112021005175 A BR112021005175 A BR 112021005175A BR 112021005175 A2 BR112021005175 A2 BR 112021005175A2
Authority
BR
Brazil
Prior art keywords
candidate
block
merge
region
prediction
Prior art date
Application number
BR112021005175-9A
Other languages
English (en)
Inventor
Bae Keun Lee
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp., Ltd. filed Critical Guangdong Oppo Mobile Telecommunications Corp., Ltd.
Publication of BR112021005175A2 publication Critical patent/BR112021005175A2/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

MÉTODO DE DECODIFICAÇÃO DE VÍDEO, MÉTODO DE CODIFICAÇÃO DE VÍDEO, APARELHO DE DECODIFICAÇÃO DE VÍDEO E APARELHO DE CODIFICAÇÃO DE VÍDEO. Trata-se de um método de decodificação de imagem de acordo com a presente invenção que compreende as etapas de: gerar uma lista de candidatos de mescla para um primeiro bloco; selecionar um dentre candidatos de mescla incluídos na lista de candidatos de mescla; e realizar compensação de movimento no primeiro bloco com base em informações de movimento sobre o candidato de mescla selecionado, sendo que candidatos de mescla de inter-região incluídos em uma tabela de informações de movimento de inter-região pode ser adicionado à lista de candidatos de mescla com base no número de candidatos de mescla espacial e candidatos de mescla temporal incluídos na lista de candidatos de mescla.

Description

MÉTODO DE DECODIFICAÇÃO DE VÍDEO, MÉTODO DE CODIFICAÇÃO DE VÍDEO, APARELHO DE DECODIFICAÇÃO DE VÍDEO E APARELHO DE CODIFICAÇÃO DE VÍDEO CAMPO DA TÉCNICA
[001] A presente revelação refere-se a um método de codificação e decodificação de sinal de vídeo e um aparelho para o mesmo.
ANTECEDENTES
[002] Conforme painéis de exibição se tornam cada vez maiores, serviços de vídeo de qualidade muito maior são cada vez mais necessários. O maior problema de serviços de vídeo de alta definição é o aumento significativo de volume de dados, e, para solucionar esse problema, estudos para aprimorar a taxa de compressão de vídeo são ativamente conduzidos. Como um exemplo representativo, o Grupo de Especialistas de Foto em Movimento (MPEG) e o Grupo de Especialistas de Conversão em Código de Vídeo (VCEG) sob a Telecomunicação de União de Telecomunicação Internacional (ITU-T) formaram o Time Colaborativo Unido em Conversão em Código de Vídeo (JCT-VC) em
2009. O JCT-VC propôs Conversão em Código de Vídeo de Alta Eficiência (HEVC), que é um padrão de compressão de Vídeo que tem um desempenho de compressão cerca de duas vezes tão alto quanto o desempenho de compressão de H.264/AVC, e o mesmo é aprovado como um padrão em 25 de janeiro de 2013. Com o rápido avanço nos serviços de vídeo de alta definição, o desempenho do HEVC revela gradualmente suas limitações.
SUMARIO PROBLEMA DA TÉCNICA
[003] Um objetivo da presente revelação é fornecer um método de derivação de um candidato de mescla diferente de candidatos de mescla derivados de blocos candidatos adjacentes a um bloco atual, e um aparelho para realizar o método, ao codificar/decodificar um sinal de vídeo.
[004] Outro objetivo da presente revelação é fornecer um método de derivação de candidatos de mescla com uso de uma lista de informações de movimento de inter-região, e um aparelho para realizar o método, ao codificar/decodificar um sinal de vídeo.
[005] Outro objetivo da presente revelação é fornecer um método de derivação de candidatos de mescla de blocos incluídos em uma área de processamento de mescla, e um aparelho para realizar o método, ao codificar/decodificar um sinal de vídeo.
[006] Os problemas técnicos a serem alcançados na presente revelação não são limitados aos problemas técnicos mencionados acima, e outros problemas não mencionados podem ser claramente entendidos pelos elementos versados na técnica a partir da descrição a seguir.
SOLUÇÃO PARA O PROBLEMA
[007] Um método de decodificação/codificação de sinal de vídeo de acordo com a presente revelação inclui as etapas de: gerar uma lista de candidatos de mescla para um primeiro bloco; selecionar qualquer um dentre candidatos de mescla incluídos na lista de candidatos de mescla; e realizar compensação de movimento para o primeiro bloco com base em informações de movimento do candidato de mescla selecionado. Nesse ponto, um candidato de mescla de inter-região incluído em uma lista de informações de movimento de inter-região é adicionado à lista de candidatos de mescla com base no número de candidatos de mescla espacial e candidatos de mescla temporal incluídos na lista de candidatos de mescla.
[008] No método de codificação e decodificação de sinal de vídeo de acordo com a presente revelação, a lista de informações de movimento de inter-região pode incluir um candidato de mescla de inter-região derivado com base em informações de movimento de um bloco decodificado antes do primeiro bloco. Nesse ponto, a lista de informações de movimento de inter-região pode não ser atualizada com base em informações de movimento de um segundo bloco incluído em uma área de processamento de mescla igual à do primeiro bloco.
[009] No método de codificação e decodificação de sinal de vídeo de acordo com a presente revelação, quando o primeiro bloco é incluído em uma área de processamento de mescla, um candidato de mescla temporário derivado com base em informações de movimento do primeiro bloco é adicionado a uma lista de informações de movimento temporária, e quando a decodificação de todos os blocos incluídos na área de processamento de mescla é concluída, o candidato de mescla temporário pode ser atualizado na lista de informações de movimento de inter-região.
[010] No método de codificação e decodificação de sinal de vídeo de acordo com a presente revelação, com base em um resultado de determinar a possibilidade de um primeiro candidato de mescla de inter-região incluído na lista de informações de movimento de inter-região é igual a pelo menos um candidato de mescla incluído na lista de candidatos de mescla, a possibilidade ou não de adicionar o primeiro candidato de mescla de inter-região à lista de candidatos de mescla pode ser determinada.
[011] No método de codificação e decodificação de sinal de vídeo de acordo com a presente revelação, a determinação pode ser realizada comparando-se pelo menos um candidato de mescla cujo valor de índice é menor ou igual a um valor limítrofe com o primeiro candidato de mescla de inter- região.
[012] No método de codificação e decodificação de sinal de vídeo de acordo com a presente revelação, quando é determinado que há um candidato de mescla igual ao primeiro candidato de mescla de inter-região, o primeiro candidato de mescla de inter-região não é adicionado à lista de candidatos de mescla e, com base em um resultado de determinar a possibilidade de um segundo candidato de mescla de inter-região incluído na lista de informações de movimento de inter-região ser igual a pelo menos um candidato de mescla incluído na lista de candidatos de mescla, a possibilidade ou não de adicionar o segundo candidato de mescla de inter-região à lista de candidatos de mescla pode ser determinada. Nesse ponto, uma determinação quanto a possibilidade de o segundo candidato de mescla de inter-região ser igual ao candidato de mescla que é igual ao primeiro candidato de mescla de inter-região pode ser omitida.
[013] Recursos brevemente resumidos acima em relação à presente revelação são meramente aspectos exemplificadores da descrição detalhada da presente revelação que serão descritos abaixo, e não limitam o escopo da presente revelação.
EFEITOS VANTAJOSOS
[014] De acordo com a presente revelação, a eficiência de interpredição pode ser aprimorada fornecendo-se um método de derivação de um candidato de mescla diferente de candidatos de mescla derivado de blocos candidatos adjacentes a um bloco atual.
[015] De acordo com a presente revelação, a eficiência de interpredição pode ser aprimorada fornecendo-se um método de derivação de candidatos de mescla com uso de uma lista de informações de movimento de inter-região.
[016] De acordo com a presente revelação, a eficiência de interpredição pode ser aprimorada fornecendo-se um método de derivação de candidatos de mescla de blocos incluídos em uma área de processamento de mescla.
[017] Os efeitos que podem ser obtidos da presente revelação não são limitados aos efeitos mencionados acima, e outros efeitos não mencionados podem ser claramente entendidos pelos elementos versados na técnica a partir da descrição a seguir.
BREVE DESCRIÇÃO DAS FIGURAS:
[018] A Figura 1 é um diagrama que mostra um codificador de vídeo de acordo com uma modalidade da presente revelação.
[019] A Figura 2 é um diagrama de blocos que mostra um decodificador de vídeo de acordo com uma modalidade da presente revelação.
[020] A Figura 3 é uma vista que mostra uma unidade de árvore de conversão em código básica de acordo com uma modalidade da presente revelação.
[021] A Figura 4 é uma vista que mostra vários tipos de partição de um bloco de conversão em código.
[022] A Figura 5 é uma vista que mostra um resultado de particionamento de uma unidade de árvore de conversão em código.
[023] A Figura 6 é um fluxograma que ilustra um método de interpredição de acordo com uma modalidade da presente revelação.
[024] A Figura 7 é uma vista que mostra um movimento não linear de um objeto.
[025] A Figura 8 é um fluxograma que ilustra um método de interpredição com base em um movimento afim de acordo com uma modalidade da presente revelação.
[026] A Figura 9 é uma vista que mostra um exemplo de vetores de semente afim de cada modelo de movimento afim.
[027] A Figura 10 é uma vista que mostra um exemplo de vetores afins de sub-blocos em um modelo de movimento de 4 parâmetros.
[028] A Figura 11 é um fluxograma que ilustra um processo de derivação de informações de movimento de um bloco atual com uso de um modo de mescla.
[029] A Figura 12 é uma vista que mostra um exemplo de blocos candidatos usado para derivar um candidato de mescla.
[030] A Figura 13 é uma vista que mostra posições de amostras de referência.
[031] A Figura 14 é uma vista que mostra um exemplo de blocos candidatos usados para derivar um candidato de mescla.
[032] A Figura 15 é uma vista que mostra um exemplo no qual a posição de uma amostra de referência é mudada.
[033] A Figura 16 é uma vista que mostra um exemplo no qual a posição de uma amostra de referência é mudada.
[034] A Figura 17 é um fluxograma que ilustra um processo de atualização de uma lista de informações de movimento de inter-região.
[035] A Figura 18 é uma vista que mostra uma modalidade de atualização de uma lista de candidatos de mescla de inter-região.
[036] A Figura 19 é uma vista que mostra um exemplo no qual um índice de um candidato de mescla de inter- região anteriormente armazenado é atualizado.
[037] A Figura 20 é uma vista que mostra a posição de um sub-bloco representativo.
[038] A Figura 21 é uma vista que mostra um exemplo no qual uma lista de informações de movimento de inter- região é gerada para cada modo de interpredição.
[039] A Figura 22 é uma vista que mostra um exemplo no qual um candidato de mescla de inter-região incluído em uma lista de informações de movimento a longo prazo é adicionado a uma lista de candidatos de mescla.
[040] A Figura 23 é uma vista que mostra um exemplo no qual uma verificação de redundância é realizada somente em alguns dos candidatos de mescla.
[041] A Figura 24 é uma vista que mostra um exemplo no qual uma verificação de redundância é omitida para um candidato de mescla específico.
[042] A Figura 25 é uma vista que mostra um exemplo no qual blocos candidatos incluídos na mesma área de processamento de mescla que o bloco atual são ajustados para serem indisponíveis como um candidato de mescla.
[043] A Figura 26 é uma vista que mostra uma lista de informações de movimento temporária.
[044] A Figura 27 é uma vista que mostra um exemplo de mesclagem de uma lista de informações de movimento de inter-região e uma lista de informações de movimento temporária.
[045] A Figura 28 é um fluxograma que ilustra um método de intrapredição de acordo com uma modalidade da presente revelação.
[046] A Figura 29 é uma vista que mostra amostras de referência incluídas em cada linha de amostra de referência.
[047] A Figura 30 é uma vista que mostra modos de intrapredição.
[048] As Figuras 31 e 32 são vistas que mostram um exemplo de um arranjo unidimensional que arranja amostras de referência em uma linha.
[049] A Figura 33 é uma vista que mostra um exemplo de ângulos formados entre modos de intrapredição angulares e uma linha reta paralela ao eixo geométrico x.
[050] A Figura 34 é uma vista que mostra uma modalidade de aquisição de amostras de predição quando o bloco atual é um formato não quadrado.
[051] A Figura 35 é uma vista que mostra modos de intrapredição de ângulo amplo.
[052] A Figura 36 é uma vista que mostra uma modalidade de aplicação de PDPC.
[053] A Figura 37 é uma vista que mostra um exemplo no qual um segundo candidato de mescla é especificado considerando uma ordem de busca de blocos candidatos.
[054] A Figura 38 é uma vista que mostra um exemplo no qual um primeiro candidato de mescla e um segundo candidato de mescla são selecionados dentre candidatos de mescla derivados de blocos não vizinhos.
[055] A Figura 39 é uma vista que mostra um exemplo no qual valores de ponderação aplicados a blocos de predição são determinados com base no formato de blocos candidatos.
[056] A Figura 40 é uma vista que mostra um exemplo de ajuste de um candidato de mescla não afim, em vez de um candidato de mescla afim, como um segundo candidato de mescla.
[057] A Figura 41 é uma vista que mostra um exemplo no qual um candidato de mescla é substituído.
[058] A Figura 42 é um fluxograma que ilustra um processo de determinação de intensidade de bloco.
[059] A Figura 43 é uma vista que mostra candidatos de filtro pré-definidos.
DESCRIÇÃO DETALHADA DA MODALIDADE PREFERENCIAL
[060] Doravante, uma modalidade da presente revelação será descrita em detalhes com referência aos desenhos anexos.
[061] A codificação e decodificação de um vídeo é realizada pela unidade do bloco. Por exemplo, um processo de codificação/decodificação, tal como transformada, quantização, predição, filtração em circuito, reconstrução ou similares pode ser realizado em um bloco de conversão em código, um bloco de transformada ou um bloco de predição.
[062] Doravante, um bloco a ser codificado/decodificado será denominado como um “bloco atual”. Por exemplo, o bloco atual pode representar um bloco de conversão em código, um bloco de transformada ou um bloco de predição de acordo com uma etapa atual de processo de codificação/decodificação.
[063] Adicionalmente, pode ser entendido que o termo “unidade” usado neste relatório descritivo indica uma unidade básica para realizar um processo específico de codificação/decodificação, e o termo “bloco” indica um arranjo de amostra de um tamanho predeterminado. A menos que declarado de outro modo, “bloco” e “unidade” podem ser usados para ter o mesmo significado. Por exemplo, em uma modalidade descrita abaixo, pode ser entendido que um bloco de conversão em código e uma unidade de conversão em código têm o mesmo significado.
[064] A Figura 1 é um diagrama que mostra um codificador de vídeo de acordo com uma modalidade da presente revelação.
[065] Em referência à Figura 1, um aparelho de codificação de vídeo 100 pode incluir uma parte de particionamento de foto 110, uma parte de predição 120 e 125, uma parte de transformada 130, uma parte de quantização 135 uma parte de rearranjo 160, uma parte de conversão em código de entropia 165, uma parte de quantização inversa 140, uma parte de transformada inversa 145, uma parte de filtro 150 e uma memória 155.
[066] Cada um dos componentes mostrados na Figura 1 é independentemente mostrado para representar funções características diferentes uma da outra em um aparelho de codificação de vídeo, e isso não significa que cada componente seja formado pela unidade de configuração de hardware separado ou hardware único. Ou seja, cada componente é incluído para ser listado como um componente para conveniência de explicação, e pelo menos dois dos componentes podem ser combinados para formar um componente único, ou um componente pode ser dividido em uma pluralidade de componentes para realizar uma função. Modalidades integradas e modalidades separadas dos componentes são também incluídos no escopo da presente revelação se os mesmos não se afastarem da essência da presente revelação.
[067] Adicionalmente, alguns dos componentes não são componentes essenciais que realizam funções essenciais na presente revelação, e podem ser componentes opcionais somente para aprimorar o desempenho. A presente revelação pode ser implementada para incluir somente os componentes essenciais para implementar a essência da presente revelação incluindo os componentes usados somente para aprimorar o desempenho, e uma estrutura que inclui somente componentes essenciais excluindo os componentes opcionais usados somente para aprimorar desempenho é também incluído no escopo da presente revelação.
[068] A parte de particionamento de foto 110 pode particionar uma foto de entrada em pelo menos uma unidade de processamento. Nesse ponto, a unidade de processamento pode ser uma unidade de predição (PU), uma unidade de transformada (TU), ou uma unidade de conversão em código (CU). A parte de particionamento de foto 110 pode particionar uma foto em uma combinação de uma pluralidade de unidades de conversão em código, unidades de predição, e unidades de transformada, e codificar uma foto selecionando-se uma combinação de uma unidade de conversão em código, uma unidade de predição, e uma unidade de transformada com base em um critério predeterminado (por exemplo, uma função de custo).
[069] Por exemplo, uma foto pode ser particionada em uma pluralidade de unidades de conversão em código. De modo a particionar as unidades de conversão em código em uma foto, uma estrutura de árvore recursiva, tal como uma estrutura de árvore quadrática pode ser usada. Um vídeo ou uma unidade de conversão em código particionada em diferentes unidades de conversão em código com uso da maior unidade de conversão em código como uma raiz pode ser particionada para ter tantos nós filhos quanto o número de unidades de conversão em código particionadas. Uma unidade de conversão em código que não é mais particionada de acordo com uma restrição predeterminada se torna um nó de folha. Ou seja, quando é assumido que somente particionamento quadrado é possível para uma unidade de conversão em código, a uma unidade de conversão em código pode ser particionada em até quatro diferentes unidades de conversão em código.
[070] Doravante, em uma modalidade da presente revelação, a unidade de conversão em código pode ser usada como um significado de uma unidade que realiza codificação ou um significado de uma unidade que realiza decodificação.
[071] A unidade de predição pode ser uma que é particionada em um formato de pelo menos um quadrado, retângulo ou similares do mesmo tamanho dentro de uma unidade de conversão em código, ou a mesma pode ser qualquer uma unidade de predição, dentre as unidades de predição particionadas dentro de uma unidade de conversão em código, que é particionada para ter um formato e/ou tamanho diferente daqueles de outra unidade de predição.
[072] Se a unidade de conversão em código não for uma menor unidade de conversão em código quando uma unidade de predição que realiza intrapredição com base na unidade de conversão em código é gerada, intrapredição pode ser realizada sem particionar uma foto em uma pluralidade de unidades de predição NxN.
[073] A parte de predição 120 e 125 pode incluir uma parte de interpredição 120 que realiza interpredição e uma parte de intrapredição 125 que realiza intrapredição. Pode ser determinada a possibilidade de usar interpredição ou realizar intrapredição para uma unidade de predição, e determinar informações específicas (por exemplo, modo de intrapredição, vetor de movimento, foto de referência, etc.) de acordo com cada método de predição. Nesse ponto, uma unidade de processamento para realizar predição pode ser diferente de uma unidade de processamento para determinar um método de predição e conteúdo específico. Por exemplo, um método de predição e um modo de predição pode ser determinado em uma unidade de predição, e predição pode ser realizado em uma unidade de transformada. Um coeficiente residual (bloco residual) entre o bloco de predição reconstruído e o bloco original pode ser inserido na parte de transformada 130. Adicionalmente, informações de modo de predição, informações de vetor de movimento e similares usados para predição podem ser codificadas pela parte de conversão em código de entropia 165 em conjunto com o coeficiente residual e transferidas para um decodificador. Quando um modo de codificação específico é usado, um bloco original pode ser codificado como o mesmo é e transmitido a um decodificador sem gerar um bloco de predição através da parte de predição 120 e 125.
[074] A parte de interpredição 120 pode prever uma unidade de predição com base em informações em pelo menos uma foto dentre fotos antes e depois da foto atual e, em alguns casos, a mesma pode prever uma unidade de predição com base em informações em uma área parcial que foi codificada na foto atual. A parte de interpredição 120 pode incluir uma parte de interpolação de foto de referência, uma parte de predição de movimento e uma parte de compensação de movimento.
[075] A parte de interpolação de foto de referência pode receber informações de foto de referência da memória 155 e gerar informações de pixel de um número inteiro de pixels ou menos da foto de referência. No caso de um pixel de luminância, um filtro de interpolação de 8 toques baseado em DCT com um coeficiente de filtro variado pode ser usado para gerar informações de pixel de um número inteiro de pixels ou menos pela unidade de 1/4 pixels. No caso de um sinal de diferença de cor, um filtro de interpolação d 4 toques baseado em DCT com um coeficiente de filtro variado pode ser usado para gerar informações de pixel de um número inteiro de pixels ou menos pela unidade de 1/8 pixels.
[076] A parte de predição de movimento pode realizar predição de movimento com base na foto de referência interpolada pela parte de interpolação de foto de referência. Vários métodos, tais como um algoritmo de compatibilidade de bloco baseada em busca total (FBMA), uma busca em três etapas (TSS), e um novo algoritmo de busca em três etapas (NTS) podem ser usados como um método de cálculo de um vetor de movimento. O vetor de movimento pode ter um valor de vetor de movimento de uma unidade de 1/2 ou 1/4 pixels com base em pixels interpolados. A parte de predição de movimento pode prever uma unidade de predição atual variando-se a predição de movimento. Vários métodos, tais como um modo de salto, um modo de mescla, um modo de predição de vetor de movimento avançado (AMVP), um modo de intrabloco de cópia e similares pode ser usado como o modo de predição de movimento.
[077] A parte de intrapredição 125 pode gerar uma unidade de predição com base nas informações em pixels de referência na vizinhança do bloco atual, que é informações de pixel na foto atual. Quando um bloco na vizinhança da unidade de predição atual é um bloco no qual interpredição foi realizado e desse modo o pixel de referência é um pixel no qual a interpredição foi realizada, o pixel de referência incluído no bloco no qual interpredição foi realizada pode ser usada no lugar de informações de pixel de referência de um bloco na vizinhança no qual a intrapredição foi realizada. Ou seja, quando um pixel de referência está indisponível, pelo menos um pixel de referência dentre pixels disponíveis de referência pode ser usado no lugar de informações indisponíveis de pixel de referência.
[078] Na intrapredição, o modo de predição pode ter um modo de predição angular que usa informações de pixel de referência de acordo com uma direção de predição, e um modo de predição não angular que não usa informações direcionais ao realizar predição. Um modo para prever informações de luminância pode ser diferente de um modo para prever informações de diferença de cor, e informações de modo de intrapredição usadas para prever informações de luminância ou informações de sinal de luminância previstas podem ser usadas para prever as informações de diferença de cor.
[079] Se o tamanho da unidade de predição for igual ao tamanho da unidade de transformada quando intrapredição é realizada, a intrapredição pode ser realizada para a unidade de predição com base em um pixel no lado esquerdo, um pixel no lado esquerdo superior, e um pixel no topo da unidade de predição. No entanto, se o tamanho da unidade de predição for diferente do tamanho da unidade de transformada quando a intrapredição é realizada, a intrapredição pode ser realizada com uso de um pixel de referência com base na unidade de transformada. Adicionalmente, a intrapredição que usa particionamento tipo NxN pode ser usada somente para a menor unidade de conversão em código.
[080] O método de intrapredição pode gerar um bloco de predição depois de aplicar um filtro de Intrassuavização Adaptativa (AIS) ao pixel de referência de acordo com um modo de predição. O tipo do filtro de AIS aplicado ao pixel de referência pode variar. De modo a realizar o método de intrapredição, o modo de intrapredição da unidade de predição atual pode ser previsto do modo de intrapredição da unidade de predição que existe na vizinhança da unidade de predição atual. Quando um modo de predição da unidade de predição atual é previsto com uso das informações de modo previstas da unidade de predição vizinha, se os modos de intrapredição da unidade de predição atual forem iguais à unidade de predição na vizinhança, informações que indicam que os modos de predição da unidade de predição atual são iguais à unidade de predição na vizinhança podem ser transmitidas com uso de informações de sinalização predeterminadas, e se os modos de predição da unidade de predição atual e da unidade de predição na vizinhança forem diferentes uns dos outros, informações de modo de predição do bloco atual podem ser codificadas realizando-se conversão em código de entropia.
[081] Adicionalmente, um bloco residual que inclui uma unidade de predição que realizou predição com base na unidade de predição gerada pela parte de predição 120 e 125 e informações de coeficiente residual, que é um valor de diferença da unidade de predição com o bloco original, podem ser geradas. O bloco residual gerado pode ser inserido na parte de transformada 130.
[082] A parte de transformada 130 pode transformar o bloco residual que inclui o bloco original e as informações de coeficiente residual da unidade de predição geradas através da parte de predição 120 e 125 com uso de um método de transformada, tal como Transformada de Cosseno Discreta (DCT), Transformada de Seno Discreta (DST), ou KLT. A possibilidade de aplicar a DCT, a DST ou a KLT para transformar o bloco residual pode ser determinada com base em informações de modo de intrapredição de uma unidade de predição usada para gerar o bloco residual.
[083] A parte de quantização 135 pode quantizar valores transformados no domínio de frequência pela parte de transformada 130. Coeficientes de quantização podem variar de acordo com o bloco ou a importância de um vídeo. Um valor calculado pela parte de quantização 135 pode ser fornecido à parte de quantização inversa 140 e à parte de rearranjo 160.
[084] A parte de rearranjo 160 pode rearranjar valores de coeficiente para os coeficientes residuais quantizados.
[085] A parte de rearranjo 160 pode mudar coeficientes de um formato de bloco bidimensional em um formato de vetor unidimensional através de um método de leitura de coeficiente. Por exemplo, a parte de rearranjo 160 pode ler coeficientes de DC até coeficientes de domínio de alta frequência com uso de um método de varredura em zigue-zague, e mudar os coeficientes para um formato de vetor unidimensional. De acordo com o tamanho da unidade de transformada e o modo de intrapredição, uma leitura vertical de leitura dos coeficientes de um formato de bloco bidimensional na direção de coluna e uma leitura horizontal de leitura dos coeficientes de um formato de bloco bidimensional na direção de fileira pode ser usada em vez da leitura em zigue-zague. Ou seja, de acordo com o tamanho da unidade de transformada e o modo de intrapredição, um método de leitura que será usado pode ser determinado dentre a leitura em zigue- zague, a leitura de direção vertical, e a leitura de direção horizontal.
[086] A parte de conversão em código de entropia 165 pode realizar conversão em código de entropia com base em valores calculados pela parte de rearranjo 160. A conversão em código de entropia pode usar vários métodos de codificação tais como Golomb Exponencial, Conversão em Código de Comprimento Variável Adaptativo de Contexto (CAVLC), Conversão em Código Aritmético Binário Adaptativo de Contexto (CABAC) e similares.
[087] A parte de conversão em código de entropia 165 pode codificar várias informações, tais como informações de coeficiente residual e informações de tipo de bloco de uma unidade de conversão em código, informações de modo de predição, informações de unidade de particionamento, informações de unidade de predição e informações de unidade de transmissão, informações de vetor de movimento, informações de quadro de referência, informações de interpolação de bloco, e informações de filtração inseridas da parte de rearranjo 160 e a partes de predição 120 e 125.
[088] A parte de conversão em código de entropia
165 pode codificar por entropia o valor de coeficiente de uma entrada de unidade de conversão em código inseridas da parte de rearranjo 160.
[089] A parte de quantização inversa 140 e a parte de transformada inversa 145 quantizam de modo inverso os valores quantizados pela parte de quantização 135 e transformam de modo inverso os valores transformados pela parte de transformada 130. O coeficiente residual gerado pela parte de quantização inversa 140 e a parte de transformada inversa 145 podem ser combinados com a unidade de predição previstos através de uma parte de estimativa de movimento, uma parte de compensação de movimento, e uma parte de intrapredição incluída na parte de predição 120 e 125 para gerar um bloco reconstruído.
[090] A parte de filtro 150 pode incluir pelo menos um dentre um filtro de desbloqueio, uma unidade de compensação de desbloqueio, e um filtro de circuito adaptativo (ALF).
[091] O filtro de desbloqueio pode remover a distorção de bloco gerada pela delimitação entre blocos na foto reconstruída. De modo a determine a possibilidade ou não de realizar desbloqueio, a possibilidade ou não de aplicar o filtro de desbloqueio ao bloco atual pode ser determinado com base nos pixels incluídos em várias colunas ou fileiras incluídas no bloco. Um filtro forte ou um filtro fraco pode ser aplicado de acordo com a intensidade de filtração de desbloqueio necessária quando o filtro de desbloqueio é aplicado a um bloco. Adicionalmente, quando filtração de direção vertical e filtração de direção horizontal são realizadas ao aplicar o filtro de desbloqueio, filtração de direção horizontal e filtração de direção vertical podem ser processadas em paralelo.
[092] A unidade de correção de deslocamento pode corrigir um deslocamento ao vídeo original pela unidade de pixel para um vídeo no qual o desbloqueio foi realizado. De modo a realizar correção de deslocamento para uma foto específica, é possível usar um método de divisão de pixels incluídos no vídeo a um determinado número de áreas, determinando uma área para realizar deslocamento, e aplicar o deslocamento à área, ou um método de aplicação de um deslocamento em consideração de informações de borda de cada pixel.
[093] Filtração de Circuito Adaptativo (ALF) pode ser realizada com base em um valor obtido comparando-se o vídeo reconstruído e filtrado com o vídeo original. Depois de dividir os pixels incluídos no vídeo em grupos predeterminados, um filtro a ser aplicado a um grupo normal pode ser determinado, e filtração pode ser realizada de modo diferente para cada grupo. Um sinal de luminância, que é as informações relacionadas à possibilidade ou não de aplicar ALF, pode ser transmitido para cada unidade de conversão em código (CU), e o formato e coeficiente de filtro de um filtro de ALF a ser aplicado pode variar de acordo com cada bloco. Adicionalmente, um filtro de ALF do mesmo tipo (tipo fixo) pode ser aplicado independentemente da característica de um bloco a ser aplicado.
[094] A memória 155 pode armazenar a bloco ou foto reconstruída calculada através da parte de filtro 150, e o bloco ou foto reconstruída ou armazenada pode ser fornecida à parte de predição 120 e 125 quando interpredição é realizada.
[095] A Figura 2 é um diagrama de blocos que mostra um decodificador de vídeo de acordo com uma modalidade da presente revelação.
[096] Em referência à Figura 2, um vídeo decodificador 200 pode incluir uma parte de decodificação de entropia 210, uma parte de rearranjo 215, uma parte de quantização inversa 220, uma parte de transformada inversa 225, uma parte de predição 230 e 235, uma parte de filtro 240 e uma memória 245.
[097] Quando um fluxo de bits de vídeo é inserido a partir de um codificador de vídeo, o fluxo de bits de entrada pode ser decodificado em um procedimento oposto ao do codificador de vídeo.
[098] A parte de decodificação de entropia 210 pode realizar decodificação de entropia em um procedimento oposto ao de realizar conversão em código de entropia na parte de decodificação de entropia do codificador de vídeo. Por exemplo, vários métodos correspondentes ao método realizado pelo codificador de vídeo, tal como Golomb Exponencial, Conversão em Código de Comprimento Variável Adaptativo de Contexto (CAVLC), e Conversão em Código Aritmético Binário Adaptativo de Contexto (CABAC), podem ser aplicados.
[099] A parte de decodificação de entropia 210 pode decodificar informações relacionadas à intrapredição e interpredição realizada pelo codificador.
[100] A parte de rearranjo 215 pode realizar rearranjo no fluxo de bits decodificado por entropia pela parte de decodificação de entropia 210 com base no rearranjo método realizado pelo codificador. Os coeficientes expressos em um formato de vetor unidimensional podem ser reconstruídos e rearranjados como coeficientes de formato de bloco bidimensional. A parte de rearranjo 215 pode receber informações relacionadas à leitura de coeficiente realizada pela parte de codificação e realizar reconstrução através de um método de leitura inversa com base na ordem de leitura realizada pela parte de codificação correspondente.
[101] A parte de quantização inversa 220 pode realizar quantização inversa com base em um parâmetro de quantização fornecido pelo codificador e um valor de coeficiente do bloco rearranjado.
[102] A parte de transformada inversa 225 pode realizar transformada inversa, isto é, DCT inversa, DST inversa, ou KLT inversa, para a transformada, isto é, DCT, DST, ou KLT, realizada pela parte de transformada em um resultado da quantização realizada pelo codificador de vídeo. A transformada inversa pode ser realizada com base em uma unidade de transmissão determinada pelo codificador de vídeo. A parte de transformada inversa 225 do vídeo decodificador pode realizar seletivamente uma técnica de transformada (por exemplo, DCT, DST, KLT) de acordo com uma pluralidade de informações, tais como um método de predição, um tamanho de um bloco atual, uma direção de predição e similares.
[103] A parte de predição 230 e 235 pode gerar um bloco de predição com base em informações relacionadas à geração de um bloco de predição fornecido pelo decodificador de entropia 210 e informações em um bloco ou foto anteriormente decodificado fornecido pela memória 245.
[104] Conforme descrito acima, se o tamanho da unidade de predição e o tamanho da unidade de transformada forem iguais quando intrapredição é realizada da mesma maneira que a operação do codificador de vídeo, intrapredição é realizada na unidade de predição com base no pixel existente no lado esquerdo, o pixel no lado esquerdo superior e o pixel no topo da unidade de predição. No entanto, se o tamanho da unidade de predição e o tamanho da unidade de transformada forem diferentes quando a intrapredição é realizada, intrapredição pode ser realizada com uso de um pixel de referência com base em uma unidade de transformada. Adicionalmente, a intrapredição que usa particionamento tipo NxN pode ser usada somente para a menor unidade de conversão em código.
[105] A parte de predição 230 e 235 pode incluir uma parte de determinação de unidade de predição, uma parte de interpredição e uma parte de intrapredição. A parte de determinação de unidade de predição pode receber várias informações, tais como informações de unidade de predição input da parte de decodificação de entropia 210, informações de modo de predição do método de intrapredição, informações relacionadas à predição de movimento de um método de interpredição, e similares, identificar a unidade de predição a partir da unidade de conversão em código atual, e determinar a possibilidade de a unidade de predição realizar interpredição ou intrapredição. A parte de interpredição 230 pode realizar interpredição na unidade de predição atual com base em informações incluídas em pelo menos uma foto dentre fotos antes e depois da foto atual que inclui a unidade de predição atual com uso de informações necessárias para interpredição da unidade de predição atual fornecida pelo codificador de vídeo. Alternativamente, a parte de interpredição 230 pode realizar interpredição com base em informações em uma área parcial anteriormente reconstruída na foto atual incluindo a unidade de predição atual.
[106] De modo a realizar interpredição, a mesma pode ser determinada, com base na unidade de conversão em código, a possibilidade do método de predição de movimento da unidade de predição incluída em uma unidade de conversão em código correspondente é um modo de salto, um modo de mescla, um vetor de movimento modo de predição (AMVP modo), ou um modo de intrabloco de cópia.
[107] A parte de intrapredição 235 pode gerar um bloco de predição com base nas informações no pixel na foto atual. Quando a unidade de predição é uma unidade de predição que realizou intrapredição, a intrapredição pode ser realizada com base em informações de modo de intrapredição da unidade de predição fornecida pelo codificador de vídeo. A parte de intrapredição 235 pode incluir um filtro de Intrassuavização Adaptativa (AIS), uma parte de interpolação de pixel de referência, e um filtro de DC. O filtro de AIS é uma parte que realiza filtração no pixel de referência do bloco atual, e pode determinar a possibilidade ou não de aplicar o filtro de acordo com o modo de predição da unidade de predição atual e aplicar o filtro. A filtração de AIS pode ser realizada no pixel de referência do bloco atual com uso do modo de predição e informações de filtro de AIS da unidade de predição fornecida pelo codificador de vídeo. Quando o modo de predição do bloco atual é um modo que não realiza filtração de AIS, o filtro de AIS pode não ser aplicado.
[108] Quando o modo de predição da unidade de predição é uma unidade de predição que realiza intrapredição com base em um pixel valor obtido interpolando-se o pixel de referência, a parte de interpolação de pixel de referência pode gerar um pixel de referência de uma unidade de pixel que tem um valor de número inteiro ou menos interpolando-se o pixel de referência. Quando o modo de predição da unidade de predição atual é um modo de predição que gera um bloco de predição sem interpolar o pixel de referência, o pixel de referência pode não ser interpolado. O filtro de DC pode gerar um bloco de predição através de filtração quando o modo de predição do bloco atual é o modo de DC.
[109] O bloco ou foto reconstruída pode ser fornecida à parte de filtro 240. A parte de filtro 240 pode incluir um filtro de desbloqueio, uma unidade de correção de deslocamento e uma ALF.
[110] Informações na possibilidade de um filtro de desbloqueio são aplicadas a um bloco ou foto correspondente e informações na possibilidade de um filtro forte ou um filtro fraco é aplicado quando um filtro de desbloqueio é aplicado pode ser fornecido pelo codificador de vídeo. O filtro de desbloqueio do vídeo decodificador pode ser dotado de informações relacionadas ao filtro de desbloqueio fornecido pelo codificador de vídeo, e o vídeo decodificador pode realizar filtração de desbloqueio em um bloco correspondente.
[111] A unidade de correção de deslocamento pode realizar correção de deslocamento no vídeo reconstruído com base no tipo de correção de deslocamento e informações de valor de deslocamento aplicadas ao vídeo quando codificação é realizada.
[112] A ALF pode ser aplicada a uma unidade de conversão em código com base em informações na possibilidade ou não de aplicar a ALF e informações em coeficientes de ALF fornecidas pelo codificador. As informações de ALF podem ser fornecidas para serem incluídas em um conjunto de parâmetros específicos.
[113] A memória 245 pode armazenar a foto reconstruída ou bloco e usa-la como uma foto de referência ou um bloco de referência e pode fornecer a foto reconstruída a uma unidade de saída.
[114] A Figura 3 é uma vista que mostra uma unidade de árvore de conversão em código básica de acordo com uma modalidade da presente revelação.
[115] Um bloco de conversão em código de um tamanho máximo pode ser definido como um bloco de árvore de conversão em código. Uma foto é particionada em uma pluralidade de unidades de árvore de conversão em código (CTUs). A unidade de árvore de conversão em código é uma unidade de conversão em código que tem um tamanho máximo e pode ser denominado como uma Unidade de Conversão em Código Grande (LCU). A Figura 3 mostra um exemplo no qual uma foto é particionada em uma pluralidade de unidades de árvore de conversão em código.
[116] O tamanho da unidade de árvore de conversão em código pode ser definido em um nível de foto ou um nível de sequência. Para essa finalidade, informações que indicam o tamanho da unidade de árvore de conversão em código podem ser sinalizadas através de um conjunto de parâmetros de foto ou um conjunto de parâmetros de sequência.
[117] Por exemplo, o tamanho da unidade de árvore de conversão em código para a foto inteira em uma sequência pode ser ajustado para 128x128. Alternativamente, no nível de foto, qualquer um dentre 128x128 e 256x256 pode ser determinado como o tamanho da unidade de árvore de conversão em código.
Por exemplo, o tamanho da unidade de árvore de conversão em código pode ser ajustado para 128x128 em uma primeira foto, e o tamanho da unidade de árvore de conversão em código pode ser ajustado para 256x256 em uma segunda foto.
[118] Blocos de codificação podem ser geradas particionando-se uma unidade de árvore de conversão em código. O bloco de conversão em código indica uma unidade básica para realizar codificação/decodificação. Por exemplo, predição ou transformada pode ser realizada para cada bloco de conversão em código, ou um modo de codificação de predição pode ser determinado para cada bloco de conversão em código. Aqui, o modo de codificação de predição indica um método de geração de uma foto de predição. Por exemplo, o modo de codificação de predição pode incluir predição dentro de uma foto (intrapredição), predição entre fotos (interpredição), referência de foto atual (CPR) ou intrabloco de cópia (IBC) ou predição combinada. Para o bloco de conversão em código, um bloco de predição pode ser gerado com uso de pelo menos um modo de codificação de predição dentre a intrapredição, a interpredição, a referência de foto atual e a predição combinada.
[119] Informações que indicam o modo de codificação de predição do bloco atual podem ser sinalizadas através de um fluxo de bits. Por exemplo, as informações podem ser uma sinalização de 1 bit que indica a possibilidade de o modo de codificação de predição ser um intramodo ou um intermodo. Somente quando o modo de codificação de predição do bloco atual é determinado como o intermodo, a referência de foto atual ou a predição combinada pode ser usada.
[120] A referência de foto atual é para ajustar a foto atual como uma foto de referência e obter um bloco de predição do bloco atual a partir de uma área que já foi codificada/decodificada na foto atual. Aqui, a foto atual significa uma foto que inclui o bloco atual. Informações que indicam a possibilidade de a referência de foto atual ser aplicada ao bloco atual podem ser sinalizadas através de um fluxo de bits. Por exemplo, as informações podem ser uma sinalização de 1 bit. Quando a sinalização é verdadeira, o modo de codificação de predição do bloco atual pode ser determinado como a referência de foto atual, e quando a sinalização é falsa, o modo de predição do bloco atual pode ser determinado como interpredição.
[121] Alternativamente, o modo de codificação de predição do bloco atual pode ser determinado com base em uma foto de referência o índice. Por exemplo, quando o índice de foto de referência indica a foto atual, o modo de codificação de predição do bloco atual pode ser determinado como a referência de foto atual. Quando o índice de foto de referência indica uma foto diferente de a foto atual, o modo de codificação de predição do bloco atual pode ser determinado como interpredição. Ou seja, a referência de foto atual é um método de predição com uso de informações em uma área na qual a codificação/decodificação foi concluída na foto atual, e interpredição é um método de predição com uso de informações em outra foto na qual a codificação/decodificação foi concluída.
[122] A predição combinada representa um modo de codificação no qual duas ou mais dentre a intrapredição, a interpredição e a foto de referência atual são combinadas. Por exemplo, quando a predição combinada é aplicada, um primeiro bloco de predição pode ser gerado com base em uma dentre a intrapredição, a interpredição, e a referência de foto atual, e um segundo bloco de predição pode ser gerado com base um no outro. Quando o primeiro bloco de predição e o segundo bloco de predição são gerados, um bloco de predição final pode ser gerado através de uma operação média ou uma operação de soma ponderada do primeiro bloco de predição e do segundo bloco de predição. Informações que indicam a possibilidade ou não de a predição combinada ser aplicada podem ser sinalizadas através de um fluxo de bits. As informações pode ser uma sinalização de 1 bit.
[123] A Figura 4 é uma vista que mostra vários tipos de partição de um bloco de conversão em código.
[124] O bloco de conversão em código pode ser particionado em uma pluralidade de blocos de conversão em código com base em particionamento de árvore quádrupla, particionamento de árvore binária, ou particionamento de árvore ternária. O bloco de conversão particionado em código pode ser particionado novamente em uma pluralidade de blocos de conversão em código com base no particionamento de árvore quádrupla, o particionamento de árvore binária ou o particionamento de árvore ternária.
[125] O particionamento de árvore quádrupla se refere a uma técnica de particionamento que particiona um bloco atual em quatro blocos. Como resultado do particionamento de árvore quádrupla, o bloco atual pode ser particionado em quatro partições em formato de quadrado (consultar “SPLIT QT” da Figura 4(a)).
[126] O particionamento de árvore binária se refere a uma técnica de particionamento que particiona um bloco atual em dois blocos. O particionamento de um bloco atual em dois blocos ao longo da direção vertical (isto é, com uso de uma linha vertical que corta bloco atual) pode ser denominado como particionamento de árvore binária de direção vertical, e particionamento um bloco atual em dois blocos ao longo da direção horizontal (isto é, com uso de uma linha horizontal que corta o bloco atual) pode ser denominado como particionamento de árvore binária de direção horizontal. Como resultado do particionamento de árvore binária, o bloco atual pode ser particionado em duas partições em formato não quadrado. “SPLIT BT VER” da Figura 4(b) mostra um resultado do particionamento de árvore binária de direção vertical, e “SPLIT BT HOR” da Figura 4(c) mostra um resultado do particionamento de árvore binária de direção horizontal.
[127] O particionamento de árvore ternária se refere a uma técnica de particionamento que particiona um bloco atual em três blocos. O particionamento um bloco atual em três blocos ao longo da direção vertical (isto é, com uso de duas linhas verticais que cortam bloco atual) pode ser denominado como particionamento de árvore ternária de direção vertical, e particionamento um bloco atual em três blocos ao longo da direção horizontal (isto é, com uso de duas linhas horizontais que cortam o bloco atual) pode ser denominado como particionamento de árvore ternária de direção horizontal. Como resultado do particionamento de árvore ternária, o bloco atual pode ser particionado em três partições em formato não quadrado. Nesse ponto, a largura/altura de uma partição posicionado no centro do bloco atual pode ser duas vezes tão larga quanto a largura/altura das outras partições. “SPLIT TT VER” da Figura 4(d) mostra um resultado do particionamento de árvore ternária de direção vertical, e “SPLIT TT HOR” da Figura 4 (e) mostra um resultado do particionamento de árvore ternária de direção horizontal.
[128] O número de vezes de particionamento de uma unidade de árvore de conversão em código pode ser definido como uma profundidade de particionamento. A profundidade de particionamento máximo de uma unidade de árvore de conversão em código pode ser determinado na sequência ou nível de foto. Consequentemente, a profundidade de particionamento máximo de uma unidade de árvore de conversão em código pode ser diferente para cada sequência ou foto.
[129] Alternativamente, a profundidade de particionamento máximo para cada técnica de particionamento pode ser individualmente determinada. Por exemplo, a profundidade de particionamento máximo permitida para o particionamento de árvore quádrupla pode ser diferente da profundidade de particionamento máximo permitida para o particionamento de árvore binária e/ou o particionamento de árvore ternária.
[130] O codificador pode sinalizar informações que indicam pelo menos um dentre o tipo de particionamento e a profundidade de particionamento do bloco atual através de um fluxo de bits. O decodificador pode determinar o tipo de particionamento e a profundidade de particionamento de uma unidade de árvore de conversão em código com base nas informações analisadas a partir do fluxo de bits.
[131] A Figura 5 é uma vista que mostra um resultado de particionamento de uma unidade de árvore de conversão em código.
[132] O particionamento um bloco de conversão em código com uso de uma técnica de particionamento, tal como particionamento de árvore quádrupla, particionamento de árvore binária, e/ou particionamento de árvore ternária pode ser denominado como particionamento de múltiplas árvores.
[133] Blocos de codificação gerados aplicando-se o particionamento de múltiplas árvores a um bloco de conversão em código pode ser denominado como blocos de conversão em código inferiores. Quando a profundidade de particionamento de um bloco de conversão em código é k, a profundidade de particionamento dos blocos de conversão em código inferiores é ajustada para k + 1.
[134] De modo contrário, para blocos de conversão em código que tem uma profundidade de particionamento de k + 1, um bloco de conversão em código que tem uma profundidade de particionamento de k pode ser denominado como um bloco de conversão em código superior.
[135] O tipo de particionamento do bloco de conversão em código atual pode ser determinado com base em pelo menos um dentre um tipo de particionamento de um bloco de conversão em código superior e um tipo de particionamento de um bloco de conversão em código vizinho. Aqui, o bloco de conversão em código vizinho é um bloco de conversão em código adjacente ao bloco de conversão em código atual e pode incluir pelo menos um dentre um bloco vizinho superior e um bloco vizinho esquerdo do bloco de conversão em código atual, e um bloco vizinho adjacente ao canto esquerdo superior. Aqui, o tipo de particionamento pode incluir pelo menos um dentre a possibilidade ou não de um particionamento de árvore quádrupla, a possibilidade ou não de um particionamento de árvore binária, direção de particionamento de árvore binária, a possibilidade ou não de um particionamento de árvore ternária e direção de particionamento de árvore ternária.
[136] De modo a determine um tipo de particionamento de um bloco de conversão em código, informações que indicam a possibilidade ou não de o bloco de conversão em código podem ser particionadas podem ser sinalizadas através de um fluxo de bits. As informações é uma sinalização de 1 bit de “split cu flag”, e quando a sinalização é verdadeira, isso indica que o bloco de conversão em código é particionado por uma técnica de particionamento de árvore quádrupla.
[137] Quando split cu flag é verdadeiro, informações que indicam a possibilidade de o bloco de conversão em código ser particionado com árvore quádrupla podem ser sinalizadas através de um fluxo de bits. As informações é uma sinalização de 1 bit de split qt flag, e quando a sinalização é verdadeira, o bloco de conversão em código pode ser particionado em quatro blocos.
[138] Por exemplo, no exemplo mostrado na Figura 5, visto que uma unidade de árvore de conversão em código é particionada com árvore quádrupla, quatro blocos de conversão em código que tem uma profundidade de particionamento de 1 são geradas. Adicionalmente, é mostrado que particionamento de árvore quádrupla é aplicado novamente ao primeiro e quarto blocos de conversão em código dentre os quatro blocos de conversão em código gerados como um resultado do particionamento de árvore quádrupla. Como resultado, quatro blocos de conversão em código que tem uma profundidade de particionamento de 2 pode ser gerada.
[139] Adicionalmente, blocos de conversão em código que tem uma profundidade de particionamento de 3 podem ser geradas aplicando-se o particionamento de árvore quádrupla novamente a um bloco de conversão em código que tem uma profundidade de particionamento de 2.
[140] Quando particionamento de árvore quádrupla não é aplicado ao bloco de conversão em código, a possibilidade de particionamento de árvore binária ou particionamento de árvore ternária ser realizada no bloco de conversão em código pode ser determinada em consideração de pelo menos um dentre o tamanho do bloco de conversão em código, a possibilidade de o bloco de conversão em código ser posicionado na delimitação de foto, a profundidade de particionamento máximo, e o tipo de particionamento de um bloco vizinho. Quando é determinado para realizar particionamento de árvore binária ou particionamento de árvore ternária no bloco de conversão em código, informações que indicam a direção de particionamento podem ser sinalizadas através de um fluxo de bits. As informações podem ser uma sinalização de 1 bit de mtt split cu vertical flag. Com base na sinalização, a possibilidade de a direção de particionamento ser uma direção vertical ou uma direção horizontal pode ser determinada. Adicionalmente, informações que indicam à possibilidade de particionamento de árvore binária ou particionamento de árvore ternária ser aplicada ao bloco de conversão em código podem ser sinalizadas através de um fluxo de bits. As informações podem ser uma sinalização de 1 bit de mtt split cu binary flag. Com base na sinalização, a possibilidade de particionamento de árvore binária ou particionamento de árvore ternária ser aplicada ao bloco de conversão em código pode ser determinada.
[141] Por exemplo, no exemplo mostrado na Figura 5, é mostrado que particionamento de árvore binária de direção vertical é aplicado a um bloco de conversão em código que tem uma profundidade de particionamento de 1, particionamento de árvore ternária de direção vertical é aplicado ao bloco de conversão em código de lado esquerdo dentre os blocos de conversão em código gerados como um resultado do particionamento, e particionamento de árvore binária de direção vertical é aplicado ao bloco de conversão em código de lado direito.
[142] Interpredição é um modo de codificação de predição que prevê um bloco atual com uso de informações de uma foto anterior. Por exemplo, um bloco na mesma posição que o bloco atual na foto anterior (doravante, um bloco colocado) pode ser ajustado como o bloco de predição do bloco atual. Doravante, um bloco de predição gerado com base em um bloco na mesma posição que o bloco atual será denominado como um bloco colocado de predição.
[143] De modo contrário, quando um objeto que existe na foto anterior se moveu para outra posição na foto atual, o bloco atual pode ser previsto de modo eficaz com uso de um movimento do objeto. Por exemplo, quando a direção de movimento e o tamanho de um objeto pode ser conhecida comparando-se a foto anterior e a foto atual, um bloco de predição (ou uma foto de predição) do bloco atual pode ser gerado em consideração de informações de movimento do objeto. Doravante, o bloco de predição gerado com uso de informações de movimento pode ser denominado como um bloco de predição de movimento.
[144] Um bloco residual pode ser gerado subtraindo-se o bloco de predição do bloco atual. Nesse ponto, quando há um movimento de um objeto, a energia do bloco residual pode ser reduzida com uso do bloco de predição de movimento em vez do bloco colocado de predição e, portanto, o desempenho de compressão do bloco residual pode ser aprimorado.
[145] Conforme descrito acima, a geração de um bloco de predição com uso de informações de movimento pode ser denominada como predição de compensação de movimento. Na maior parte da interpredição, um bloco de predição pode ser gerado com base na predição de compensação de movimento.
[146] As informações de movimento podem incluir pelo menos um dentre um vetor de movimento, uma foto de referência o índice, uma direção de predição e um índice de peso bidirecional. O vetor de movimento representa a direção de movimento e o tamanho de um objeto. A foto de referência o índice especifica uma foto de referência do bloco atual dentre fotos de referência incluídas em uma lista de foto de referência. A direção de predição indica qualquer um dentre predição unidirecional LO, predição unidirecional Ll1 e predição bidirecional (predição LO e predição Ll1). De acordo com a direção de predição do bloco atual, pelo menos uma dentre informações de movimento na direção LO e informações de movimento na direção Ll pode ser usada. O índice de peso bidirecional especifica um valor de ponderação aplicado a um bloco de predição LO e um valor de ponderação aplicado a um bloco de predição L1l.
[147] A Figura 6 é um fluxograma que ilustra um método de interpredição de acordo com uma modalidade da presente revelação.
[148] Em referência à Figura 6, o método de interpredição inclui as etapas de determinar um modo de interpredição de um bloco atual (S601), adquirir informações de movimento do bloco atual de acordo com o modo de interpredição determinado (S602), e realizar predição de compensação de movimento para o bloco atual com base nas informações de movimento adquiridas (S603).
[149] Aqui, o modo de interpredição representa várias técnicas para determinar informações de movimento do bloco atual, e pode incluir um modo de interpredição que usa informações de movimento translacional e um modo de interpredição que usa informações de movimento afim. Por exemplo, o modo de interpredição com uso de informações de movimento translacional pode incluir um modo de mescla e um vetor de movimento modo de predição, e o modo de interpredição com uso de informações de movimento afim pode incluir um modo de mescla afim e um modo de predição de vetor de movimento afim. As informações de movimento do bloco atual podem ser determinadas com base em um bloco vizinho adjacente ao bloco atual ou informações analisadas a partir de um fluxo de bits de acordo com o modo de interpredição.
[150] Doravante, o método de interpredição com uso de informações de movimento afim será descrito em detalhes.
[151] A Figura 7 é uma vista que mostra um movimento não linear de um objeto.
[152] Um movimento não linear de um objeto pode ser gerado em um vídeo. Por exemplo, conforme mostrado no exemplo da Figura 7, um movimento não linear de um objeto, tal como zoom-in, zoom-out, rotação, transformada afim ou similares de uma câmera pode ocorrer. Quando um movimento não linear de um objeto ocorre, o movimento do objeto não pode ser expresso de modo eficaz com um vetor de movimento translacional. Consequentemente, a eficiência de codificação pode ser aprimorada com uso de um movimento afim em vez de um movimento translacional em uma área em que um movimento não linear de um objeto ocorre.
[153] A Figura 8 é um fluxograma que ilustra um método de interpredição com base em um movimento afim de acordo com uma modalidade da presente revelação.
[154] A possibilidade de uma técnica de interpredição com base em um movimento afim ser aplicada ao bloco atual pode ser determinada com base nas informações analisadas a partir de um fluxo de bits. Especificamente, a possibilidade de a técnica de interpredição com base em um movimento afim ser aplicada ao bloco atual pode ser determinada com base em pelo menos um dentre uma sinalização que indica a possibilidade de o modo de mescla afim ser aplicado ao bloco atual e uma sinalização que indica a possibilidade de o modo de predição de vetor de movimento afim ser aplicado ao bloco atual.
[155] Quando a técnica de interpredição com base em um movimento afim é aplicada ao bloco atual, um modelo de movimento afim do bloco atual pode ser determinado (S801). O modelo de movimento afim pode ser determinado como pelo menos um dentre um modelo de movimento afim de seis parâmetros e um modelo de movimento afim de quatro parâmetros. O modelo de movimento afim de seis parâmetros expressa um movimento afim com uso de seis parâmetros, e o modelo de movimento afim de quatro parâmetros expressa um movimento afim com uso de quatro parâmetros.
[156] A Equação 1 expressa um movimento afim com uso de seis parâmetros. O movimento afim representa um movimento translacional para uma área predeterminada determinada por vetores de semente afim. [EQUAÇÃO 1) v,=ax-—-byt+e v, =cx+d +f
[157] Quando um movimento afim é expresso com uso de seis parâmetros, um movimento complicado pode ser expresso. No entanto, à medida que o número de bits necessários para codificar cada um dos parâmetros aumenta, eficiência de codificação pode ser diminuída. Consequentemente, o movimento afim pode ser expresso com uso de quatro parâmetros. A Equação 2 expressa um movimento afim com uso de quatro parâmetros. [Equação 2] v, =ax—- by+e v, =bx+ay+f
[158] Informações para determinar um modelo de movimento afim do bloco atual podem ser codificadas e sinalizadas através de um fluxo de bits. Por exemplo, as informações podem ser uma sinalização de 1 bit de “affine type flag”. Quando o valor da sinalização é O, o mesmo pode indicar que um modelo de movimento afim de 4 parâmetros é aplicado, e quando o valor da sinalização é 1, o mesmo pode indicar que um modelo de movimento afim de 6 parâmetros é aplicado. A sinalização pode ser codificada pela unidade de fatia, peça ou bloco (por exemplo, pela unidade de bloco de conversão em código ou árvore de conversão em código). Quando uma sinalização é sinalizada no nível de fatia, um modelo de movimento afim determinado no nível de fatia pode ser aplicado a todos os blocos pertencentes à fatia.
[159] Alternativamente, um modelo de movimento afim do bloco atual pode ser determinado com base em um modo de interpredição afim do bloco atual. Por exemplo, quando o modo de mescla afim é aplicado, o modelo de movimento afim do bloco atual pode ser determinado como um modelo de movimento de 4 parâmetros. De modo contrário, quando o modo de predição de vetor de movimento afim é aplicado, informações para determinar o modelo de movimento afim do bloco atual podem ser codificadas e sinalizadas através de um fluxo de bits. Por exemplo, quando o modo de predição de vetor de movimento afim é aplicado ao bloco atual, o modelo de movimento afim do bloco atual pode ser determinado com base na sinalização de 1 bit de “affine type flag”.
[160] Em seguida, um vetor de semente afim do bloco atual pode ser derivado (S802). Quando um modelo de movimento afim de 4 parâmetros é selecionado, vetores de movimento em dois pontos de controle do bloco atual podem ser derivados. De modo contrário, quando um modelo de movimento afim de 6 parâmetros é selecionado, vetores de movimento em três pontos de controle do bloco atual podem ser derivados. O vetor de movimento em um ponto de controle pode ser denominado como um vetor de semente afim. O ponto de controle pode incluir pelo menos um dentre o canto esquerdo superior, o canto direito superior e o canto esquerdo de fundo do bloco atual.
[161] A Figura 9 é uma vista que mostra um exemplo de vetores de semente afim de cada modelo de movimento afim.
[162] No modelo de movimento afim de 4 parâmetros, vetores de semente afim podem ser derivados para dois dentre o canto esquerdo superior, o canto direito superior e o canto esquerdo de fundo. Por exemplo, conforme mostrado no exemplo da Figura 9(a), quando um modelo de movimento afim de 4 parâmetros é selecionado, um vetor afim pode ser derivado com uso do vetor de semente afim svo para o canto esquerdo superior do bloco atual (por exemplo, amostra esquerda superior (x1, yl)) e o vetor de semente afim sv, para o canto direito superior do bloco atual (por exemplo, a amostra direita superior (xl, yl)). Também é possível usar um vetor de semente afim para o canto esquerdo de fundo em vez do vetor de semente afim para o canto esquerdo superior, ou usar um vetor de semente afim para o canto esquerdo de fundo em vez do vetor de semente afim para o canto direito superior.
[163] No modelo de movimento afim de 6 parâmetros, vetores de semente afim podem ser derivados para o canto esquerdo superior, o canto direito superior e o canto esquerdo de fundo. Por exemplo, conforme mostrado no exemplo da Figura 9 (b), quando um modelo de movimento afim de 6 parâmetros é selecionado, um vetor afim pode ser derivado com uso do vetor de semente afim svo para o canto esquerdo superior do bloco atual (por exemplo, amostra esquerda superior (xl, yl)), o vetor de semente afim sv, para o canto direito superior do bloco atual (por exemplo, a amostra direita superior (xl, yl)), e o vetor de semente afim sv2 para o canto esquerdo superior do bloco atual (por exemplo, amostra esquerda superior (x2, y2)).
[164] Na modalidade descrito abaixo, no modelo de movimento afim de 4 parâmetros, os vetores de semente afim do ponto de controle esquerdo superior e do ponto de controle direito superior serão denominados como um primeiro vetor de semente afim e um segundo vetor de semente afim, respectivamente. Nas modalidades que usam o primeiro vetor de semente afim e o segundo vetor de semente afim descritos abaixo, pelo menos um dentre o primeiro vetor de semente afim e o segundo vetor de semente afim podem ser substituídos pelo vetor de semente afim do ponto de controle esquerdo de fundo (um terceiro vetor de semente afim) ou o vetor de semente afim do ponto de controle direito de fundo (um quarto vetor de semente afim).
[165] Adicionalmente, no modelo de movimento afim de 6 parâmetros, os vetores de semente afim do ponto de controle esquerdo superior, o ponto de controle direito superior, e o ponto de controle esquerdo de fundo serão denominados como um primeiro vetor de semente afim, um segundo vetor de semente afim, e um terceiro vetor de semente afim, respectivamente. Nas modalidades que usam o primeiro vetor de semente afim, o segundo vetor de semente afim, e o terceiro vetor de semente afim descritos abaixo, pelo menos um dentre o primeiro vetor de semente afim, o segundo vetor de semente afim, e o terceiro vetor de semente afim podem ser substituídos pelo vetor de semente afim do ponto de controle direito de fundo (um quarto vetor de semente afim).
[166] Um vetor afim pode ser derivado para cada sub-bloco com uso dos vetores de semente afim (S803). Aqui, o vetor afim representa um vetor de movimento translacional derivado com base nos vetores de semente afim. O vetor afim de um sub-bloco pode ser denominado como um vetor de movimento de sub-bloco afim ou um vetor de movimento de sub-bloco.
[167] A Figura 10 é uma vista que mostra um exemplo de vetores afins de sub-blocos em um modelo de movimento de 4 parâmetros.
[168] O vetor afim do sub-bloco pode ser derivado com base na posição do ponto de controle, na posição do sub- bloco e no vetor de semente afim. Por exemplo, a Equação 3 mostra um exemplo de derivação de um vetor de sub-bloco afim.
[EQUAÇÃO 3] v. = Fa x) - Emo 9 + SVox 7 = Emma a) CO = y6) + Sto,
[169] Na Equação 3, (x, y) denota a posição de um sub-bloco. Aqui, a posição de um sub-bloco indica a posição de uma amostra de referência incluída no sub-bloco. A amostra de referência pode ser uma amostra posicionada no canto esquerdo superior do sub-bloco, ou uma amostra cujo pelo menos um dentre as coordenadas de eixo geométrico x e eixo geométrico y é um ponto central. (xo, Yo) denota a posição do primeiro ponto de controle, e (Svox, Svoy) denota o primeiro vetor de semente afim. Adicionalmente, (xi, y1) denota a posição do segundo ponto de controle, e (svix, Sv1i,y) denota o segundo vetor de semente afim.
[170] Quando o primeiro ponto de controle e o segundo ponto de controle correspondem ao canto esquerdo superior e ao canto direito superior do bloco atual respectivamente, x1-xo pode ser ajustado para a um valor igual à largura do bloco atual.
[171] Em seguida, a predição de compensação de movimento para cada sub-bloco pode ser realizada com uso do vetor afim de cada sub-bloco (S804). Como resultado de realização da predição de compensação de movimento, um bloco de predição para cada sub-bloco pode ser gerado. Os blocos de predição dos sub-blocos podem ser ajustados como os blocos de predição do bloco atual.
[172] Em seguida, um método de interpredição com uso de informações de movimento translacional será descrito em detalhes.
[173] Informações de movimento do bloco atual podem ser derivadas de informações de movimento de outro bloco. Aqui, outro bloco pode ser um bloco codificado/decodificado por interpredição antes do bloco atual. O ajuste as informações de movimento do bloco atual para serem iguais às informações de movimento de outro bloco pode ser definido como um modo de mescla. Adicionalmente, o ajuste do vetor de movimento de outro bloco como a predição valor do vetor de movimento do bloco atual pode ser definido como um vetor de movimento modo de predição.
[174] A Figura 11 é um fluxograma que ilustra um processo de derivação de informações de movimento de um bloco atual com uso de um modo de mescla.
[175] Um candidato de mescla do bloco atual pode ser derivado (S1101). O candidato de mescla do bloco atual pode ser derivado de um bloco codificado/decodificado por interpredição antes do bloco atual.
[176] A Figura 12 é uma vista que mostra um exemplo de blocos candidatos usado para derivar um candidato de mescla.
[177] Os blocos candidatos podem incluir pelo menos um dentre blocos vizinhos que incluem uma amostra adjacente ao bloco atual ou blocos não vizinhos incluindo uma amostra não adjacente ao bloco atual. Doravante, amostras para determinar blocos candidatos são definidas como amostras de referência. Adicionalmente, uma amostra de referência adjacente ao bloco atual é denominada como amostra de referência vizinha, e uma amostra de referência não adjacente ao bloco atual é denominada como amostra de referência não vizinha.
[178] A amostra de referência vizinha pode ser incluída em uma coluna vizinha da coluna mais à esquerda do bloco atual ou uma fileira vizinha da fileira superior do bloco atual. Por exemplo, quando as coordenadas da amostra esquerda superior do bloco atual é (0, 0), pelo menos um dentre um bloco que inclui uma amostra de referência na posição de (-1, H-1), um bloco que inclui uma amostra de referência na posição de (W-1, -1), um bloco que inclui uma amostra de referência na posição de (W, -1), um bloco que inclui uma amostra de referência na posição de (-1, H) e um bloco que inclui uma amostra de referência na posição de (-1, -1) pode ser usado como um bloco candidato. Em referência ao desenho, blocos vizinhos do índice O a 4 podem ser usados como blocos candidatos.
[179] A amostra de referência não Vizinha representa uma amostra cujo pelo menos uma dentre uma distância de eixo geométrico x e uma distância de eixo geométrico y de uma amostra de referência adjacente ao bloco atual tem um valor pré-definido. Por exemplo, pelo menos um dentre um bloco que inclui uma amostra de referência cuja distância de eixo geométrico x da amostra de referência esquerda é um valor pré- definido, um bloco que inclui uma amostra não vizinha cuja distância de eixo geométrico y da amostra de referência superior é um valor pré-definido, e um bloco que inclui uma amostra não vizinha cuja distância de eixo geométrico x e a distância de eixo geométrico y da amostra de referência esquerda superior são valores pré-definidos pode ser usada como um bloco candidato. Os valores pré-definidos podem ser um número natural, tal como 4, 8, 12, 16 ou similares. Em referência ao desenho, pelo menos um dentre os blocos do índice a 26 podem ser usados como um bloco candidato.
[180] Uma amostra não posicionada na mesma linha vertical, linha horizontal, ou linha diagonal visto que a amostra de referência vizinha pode ser ajustada como uma amostra de referência não vizinha.
[181] A Figura 13 é uma vista que mostra posições de amostras de referência.
[182] Conforme mostrado no exemplo da Figura 13, as coordenadas x das amostras de referência não vizinhas superior podem ser ajustadas para serem diferentes das coordenadas x das amostras de referência vizinhas superior. Por exemplo, quando a posição da amostra de referência superior vizinha é (W-1, -1), a posição de uma amostra de referência superior não vizinha separadas tanto quanto N da amostra de referência superior vizinha no eixo geométrico y pode ser ajustada a ((W/2)-l, -1-N), e a posição de uma amostra de referência superior não vizinha separada tanto quanto 2N da amostra de referência superior vizinha no eixo geométrico y pode ser ajustada para (0, -1-2N). Ou seja, a posição de uma amostra de referência não vizinha pode ser determinada com base na posição de uma amostra de referência vizinha e uma distância da amostra de referência vizinha.
[183] Doravante, um bloco candidato incluindo uma amostra de referência vizinha dentre os blocos candidatos é denominado como um bloco vizinho, e um bloco que inclui uma amostra de referência não vizinha é denominado como um bloco não vizinho.
[184] Quando a distância entre o bloco atual e o bloco candidato é maior ou igual a um valor limítrofe, o bloco candidato pode ser ajustado para ser disponível como um candidato de mescla. O valor limítrofe pode ser determinado com base no tamanho da unidade de árvore de conversão em código. Por exemplo, o valor limítrofe pode ser ajustado à altura (ctu height) da unidade de árvore de conversão em código ou um valor obtido adicionando-se ou subtraindo-se um deslocamento à altura ou da mesma (por exemplo, ctu height + N) da unidade de árvore de conversão em código. O deslocamento N é um valor pré-definido no codificador e no decodificador, e pode ser ajustado para 4, 8, 16, 32 ou ctu height.
[185] Quando a diferença entre a coordenada de eixo geométrico y do bloco atual e a coordenada de eixo geométrico y de uma amostra incluída em um bloco candidato é maior do que o valor limítrofe, o bloco candidato pode ser determinado para ser indisponível como um candidato de mescla.
[186] Alternativamente, um bloco candidato que não pertence à mesma unidade de árvore de conversão em código visto que o bloco atual pode ser ajustado para ser indisponível como um candidato de mescla. Por exemplo, quando uma amostra de referência se desvia da delimitação superior de uma unidade de árvore de conversão em código à qual o bloco atual pertence, um bloco candidato incluindo a amostra de referência pode ser ajustado para ser indisponível como um candidato de mescla.
[187] Quando a delimitação superior do bloco atual é adjacente à delimitação superior da unidade de árvore de conversão em código, uma pluralidade de blocos candidatos é determinada para ser indisponível como um candidato de mescla, e desse modo, a eficiência de codificação/decodificação do bloco atual pode diminuir. Para solucionar esse problema, blocos candidatos podem ser ajustados de modo que o número de blocos candidatos posicionados no lado esquerdo do bloco atual seja maior do que o número de blocos candidatos posicionados no topo do bloco atual.
[188] A Figura 14 é uma vista que mostra um exemplo de blocos candidatos usado para derivar um candidato de mescla.
[189] Conforme mostrado no exemplo da Figura 14, blocos superiores pertencentes às N colunas de bloco superior do bloco atual e blocos de lado esquerdo pertencentes ao M colunas de bloco de lado esquerdo do bloco atual podem ser ajustadas como blocos candidatos. Nesse ponto, o número de blocos de lado esquerdo candidatos pode ser ajustado para ser maior do que o número de blocos candidatos superiores ajustando-se M para ser maior do que N.
[190] Por exemplo, a diferença entre a coordenada de eixo geométrico y da amostra de referência no bloco atual e a coordenada de eixo geométrico y do bloco superior que pode ser usado como um bloco candidato pode ser ajustado para não exceder N vezes a altura do bloco atual. Adicionalmente, a diferença entre a coordenada de eixo geométrico x da amostra de referência no bloco atual e a coordenada de eixo geométrico x do bloco de lado esquerdo que pode ser usado como um bloco candidato pode ser ajustado para não exceder M vezes a largura do bloco atual.
[191] Por exemplo, no exemplo mostrado na Figura 14, é mostrado que blocos pertencentes às colunas de dois blocos superiores do bloco atual e blocos pertencentes às colunas de cinco blocos de lado esquerdas do bloco atual são ajustadas como blocos candidatos.
[192] Como outro exemplo, quando um bloco candidato não pertence a uma unidade de árvore de conversão em código igual à do bloco atual, um candidato de mescla pode ser derivado com uso de um bloco pertencente à mesma unidade de árvore de conversão em código as o bloco atual ou um bloco que inclui uma amostra de referência adjacente à delimitação da unidade de árvore de conversão em código, em vez do bloco candidato.
[193] A Figura 15 é uma vista que mostra um exemplo no qual a posição de uma amostra de referência é mudada.
[194] Quando uma amostra de referência é incluída em uma unidade de árvore de conversão em código diferente do bloco atual, e a amostra de referência não é adjacente à delimitação da unidade de árvore de conversão em código, um bloco candidato pode ser determinado com uso de uma amostra de referência adjacente à delimitação da unidade de árvore de conversão em código, em vez da amostra de referência.
[195] Por exemplo, nos exemplos mostrados nas Figuras 15 (a) e 15 (b), quando a delimitação superior do bloco atual e a delimitação superior da unidade de árvore de conversão em código estão em contato entre si, as amostras de referência no topo do bloco atual pertencentes a uma unidade de árvore de conversão em código diferente do bloco atual. Dentre as amostras de referência pertencentes à unidade de árvore de conversão em código diferente do bloco atual, uma amostra de referência não adjacente à delimitação superior da unidade de árvore de conversão em código pode ser substituída por uma amostra adjacente à delimitação superior da unidade de árvore de conversão em código.
[196] Por exemplo, conforme mostrado no exemplo da Figura 15 (a), a amostra de referência na posição 6 é substituída pela amostra na posição 6" posicionada na delimitação superior da unidade de árvore de conversão em código, e conforme mostrado no exemplo da Figura 15 (b), a amostra de referência na posição 15 é substituída pela amostra na posição 15' posicionada na delimitação superior da unidade de árvore de conversão em código. Nesse ponto, a coordenada y da amostra de substituição é mudada para uma posição adjacente à unidade de árvore de conversão em código, e a coordenada x da amostra de substituição pode ser ajustada para ser igual à amostra de referência. Por exemplo, a amostra na posição 6" pode ter a mesma coordenada x que a amostra na posição 6, e a amostra na posição 15” pode ter a mesma coordenada x que a amostra na posição 15.
[197] Alternativamente, um valor obtido adicionando-se ou subtraindo-se um deslocamento à coordenada x ou a partir da mesma da amostra de referência pode ser ajustada como a coordenada x da amostra de substituição. Por exemplo, quando as coordenadas x da amostra de referência vizinha posicionadas no topo do bloco atual e a amostra de referência não vizinha são iguais, um valor obtido adicionando- se ou subtraindo-se um deslocamento à coordenada x ou a partir da mesma da amostra de referência pode ser ajustada como a coordenada x da amostra de substituição. Isso é para evitar que a amostra de substituição que substitui a amostra de referência não vizinha seja colocada na mesma posição que outra amostra de referência não vizinha ou amostra de referência vizinha.
[198] A Figura 16 é uma vista que mostra um exemplo no qual a posição de uma amostra de referência é mudada.
[199] Ao substituir uma amostra de referência que é incluída em uma unidade de árvore de conversão em código diferente do bloco atual e não é adjacente à delimitação da unidade de árvore de conversão em código com uma amostra posicionada na delimitação da unidade de árvore de conversão em código, um valor obtido adicionando-se ou subtraindo-se um deslocamento à coordenada x e a partir da mesma da amostra de referência pode ser ajustada como a coordenada x da amostra de substituição.
[200] Por exemplo, no exemplo mostrado na Figura 16, a amostra de referência na posição 6 e a amostra de referência na posição 15 pode ser substituída com a amostra na posição 6" e a amostra na posição 15' respectivamente, cujas coordenadas y são iguais às da fileira adjacente à delimitação superior da unidade de árvore de conversão em código. Nesse ponto, a coordenada x da amostra na posição 6' pode ser ajustada para um valor obtido subtraindo-se W/2 da coordenada x da amostra de referência na posição 6, e a coordenada x da amostra na posição 15' pode ser ajustada para um valor obtido subtraindo-se W-l1 da coordenada x da amostra de referência na posição 15.
[201] Diferente dos exemplos mostrados nas Figuras 15 e 16, a coordenada y da fileira posicionada no topo da fileira superior do bloco atual ou a coordenada y da delimitação superior da unidade de árvore de conversão em código pode ser ajustada como a coordenada y da amostra de substituição.
[202] Embora não seja mostrada, uma amostra que substitui a amostra de referência pode ser determinada com base na delimitação de lado esquerdo da unidade de árvore de conversão em código. Por exemplo, quando a amostra de referência não é incluída na mesma unidade de árvore de conversão em código as o bloco atual e não é adjacente à delimitação de lado esquerdo da unidade de árvore de conversão em código, a amostra de referência pode ser substituída por uma amostra adjacente à delimitação de lado esquerdo da unidade de árvore de conversão em código. Nesse ponto, a amostra de substituição pode ter uma coordenada y igual à da amostra de referência, ou pode ter uma coordenada y obtida adicionando- se ou subtraindo-se um deslocamento à coordenada y e a partir da mesma da amostra de referência.
[203] Em seguida, um bloco que inclui a amostra de substituição pode ser ajustado como um bloco candidato, e um candidato de mescla do bloco atual pode ser derivado com base no bloco candidato.
[204] Um candidato de mescla também pode ser derivado de um bloco temporariamente vizinho incluído em uma foto diferente do bloco atual. Por exemplo, um candidato de mescla pode ser derivado de um bloco colocado incluído em uma foto colocalizada.
[205] As informações de movimento do candidato de mescla podem ser ajustadas para serem iguais às informações de movimento do bloco candidato. Por exemplo, pelo menos um dentre um vetor de movimento, uma foto de referência o índice, uma direção de predição, e um índice de peso bidirecional do bloco candidato pode ser ajustado como informações de movimento do candidato de mescla.
[206] Uma lista de candidatos de mescla incluindo candidatos de mescla pode ser gerada (S1102). Os candidatos de mescla podem ser divididos em um candidato de mescla vizinho derivado de um bloco vizinho adjacente ao bloco atual e um candidato de mescla não adjacente derivado de um bloco não vizinho.
[207] Índices dos candidatos de mescla na lista de candidatos de mescla podem ser designados em uma ordem predeterminada. Por exemplo, um índice designado para um candidato de mescla adjacente pode ter um valor menor do que um índice designado para um candidato de mescla não adjacente. Alternativamente, um índice pode ser designado para cada um dos candidatos de mescla com base no índice de cada bloco mostrado na Figura 12 ou 14.
[208] Quando uma pluralidade de candidatos de mescla é incluída na lista de candidatos de mescla, pelo menos um dentre a pluralidade de candidatos de mescla pode ser selecionado (S1103). Nesse ponto, informações que indicam a possibilidade de informações de movimento do bloco atual serem derivadas de um candidato de mescla adjacente podem ser sinalizadas através de um fluxo de bits. As informações pode ser uma sinalização de 1 bit. Por exemplo, um elemento de sintaxe isAdjancentMergeFlag que a possibilidade de as informações de movimento do bloco atual serem derivadas de um candidato de mescla adjacente pode ser sinalizado através de um fluxo de bits. Quando o valor dos elementos de sintaxe isAdjancentMergeFlag é 1, informações de movimento do bloco atual podem ser derivadas com base no candidato de mescla adjacente. De modo contrário, quando o valor dos elementos de sintaxe isAdjancentMergeFlag é O, informações de movimento do bloco atual podem ser derivadas com base em um candidato de mescla não adjacente.
[209] A tabela 1 mostra uma tabela de sintaxe que inclui elementos de sintaxe isAdjancentMergeFlag.
[TABELA 1)
VA [EeEemrDT o Do dd [romena a im | | est tretam o DUAL TREE LUMA ) ( | intra ima mpmstagr xo 11401 | | [incitem nm at A |
EE E Do dd sta o DUAL TREE CHROMA ) paso [eee Do [EE mamemergecana rn [Er csnapeanemmereman [Des
VA Do dd
EF OE eme | 4£ merge ciagro o | | [E meme PD [Er tisaadcanemersetat Des a
PD EF OOo
FO EEE [cometa ma ENA | [secas e o o a treeType ) o
[210] Informações para especificar qualquer um dentre uma pluralidade de candidatos de mescla podem ser sinalizadas através de um fluxo de bits. Por exemplo, informações que indicam um índice de qualquer um dentre os candidatos de mescla incluídos na lista de candidatos de mescla podem ser sinalizadas através de um fluxo de bits.
[211] Quando isAdjacentMergeflag é 1, elementos de sintaxe merge idx que especificam qualquer um dentre os candidatos de mescla adjacentes podem ser sinalizados. O valor máximo de elementos de sintaxe merge idx pode ser ajustado para um valor obtido subtraindo-se 1 do número de candidatos de mescla adjacentes.
[212] Quando isAdjacentMergeflag é O, elementos de sintaxe NA merge idx que especificam qualquer um dentre os candidatos de mescla não adjacentes podem ser sinalizados. Os elementos de sintaxe NA merge idx representa um valor obtido subtraindo-se o número de candidatos de mescla adjacentes do índice do candidato de mescla não adjacente. O decodificador pode selecionar um candidato de mescla não adjacente adicionando-se o número de candidatos de mescla adjacentes a um índice especificado por NA merge idx.
[213] Quando o número de candidatos de mescla incluídos na lista de candidatos de mescla é menor do que um valor limítrofe, o candidato de mescla incluído na lista de informações de movimento de inter-região pode ser adicionado à lista de candidatos de mescla. Aqui, o valor limítrofe pode ser o número máximo de candidatos de mescla que pode ser incluído na lista de candidatos de mescla ou um valor obtido subtraindo-se um deslocamento do número máximo de candidatos de mescla. O deslocamento pode ser um número natural, tal como 1, 2 ou similares. A lista de informações de movimento de inter-região pode incluir um candidato de mescla derivado com base em um bloco codificado/decodificado antes do bloco atual.
[214] A lista de informações de movimento de inter-região inclui um candidato de mescla derivado de um bloco codificado/decodificado com base em interpredição na foto atual. Por exemplo, informações de movimento de um candidato de mescla incluído na lista de informações de movimento de inter-região podem ser ajustadas para serem iguais às informações de movimento de um bloco codificado/decodificado com base em interpredição. Aqui, as informações de movimento podem incluir pelo menos um dentre um vetor de movimento, uma foto de referência o índice, uma direção de predição e um índice de peso bidirecional.
[215] Para conveniência de explicação, um candidato de mescla incluído na lista de informações de movimento de inter-região será denominado como um candidato de mescla de inter-região.
[216] O número máximo de candidatos de mescla que pode ser incluído na lista de informações de movimento de inter-região pode ser pré-definido por um codificador e um decodificador. Por exemplo, o número máximo de candidatos de mescla que pode ser incluído na lista de informações de movimento de inter-região pode ser 1, 2, 3, 4, 5, 6, 7, 8 ou mais (por exemplo, 16).
[217] Alternativamente, informações que indicam o número máximo de candidatos de mescla na lista de informações de movimento de inter-região podem ser sinalizadas através de um fluxo de bits. As informações podem ser sinalizadas na sequência, foto, ou nível de fatia.
[218] Alternativamente, o número máximo de candidatos de mescla da lista de informações de movimento de inter-região pode ser determinado de acordo com o tamanho de uma foto, o tamanho de uma fatia ou o tamanho de uma unidade de árvore de conversão em código.
[219] A lista de informações de movimento de inter-região pode ser inicializada pela unidade de foto, fatia,
peça, tijolo, unidade de árvore de conversão em código, ou linha de unidade de árvore de conversão em código (fileira ou coluna). Por exemplo, quando uma fatia é inicializada, a lista de informações de movimento de inter-região é também inicializada, e a lista de informações de movimento de inter- região pode não incluir qualquer candidato de mescla.
[220] Alternativamente, informações que indicam a possibilidade ou não de inicializar a lista de informações de movimento de inter-região podem ser sinalizadas através de um fluxo de bits. As informações podem ser sinalizadas na fatia, peça, tijolo ou nível de bloco. Até que as informações indiquem a inicialização da lista de informações de movimento de inter-região, uma lista de informações de movimento de inter-região anteriormente configurada pode ser usada.
[221] Alternativamente, informações no candidato de mescla de inter-região inicial podem ser sinalizadas através de um conjunto de parâmetros de foto ou um cabeçalho de fatia. Embora a fatia seja inicializada, a lista de informações de movimento de inter-região pode incluir o candidato de mescla de inter-região inicial. Consequentemente, um candidato de mescla de inter-região pode ser usado para um bloco que é o primeiro alvo de codificação/decodificação na fatia.
[222] Blocos são codificados/decodificados de acordo com uma ordem de codificação/decodificação, e blocos codificados/decodificados com base em interpredição podem ser sequencialmente ajustados como um candidato de mescla de inter- região de acordo com uma ordem de codificação/decodificação.
[223] A Figura 17 é um fluxograma que ilustra um processo de atualização de uma lista de informações de movimento de inter-região.
[224] Quando interpredição é realizada no bloco atual (S1701), um candidato de mescla de inter-região pode ser derivado com base no bloco atual (S1702). Informações de movimento do candidato de mescla de inter-região podem ser ajustadas para serem iguais às informações de movimento do bloco atual.
[225] Quando a lista de informações de movimento de inter-região está vazia (S1703), o candidato de mescla de inter-região derivado com base no bloco atual pode ser adicionado à lista de informações de movimento de inter-região (S1704).
[226] Quando a lista de informações de movimento de inter-região já inclui o candidato de mescla de inter-região (S1703), uma verificação de redundância pode ser realizada nas informações de movimento do bloco atual (ou o candidato de mescla de inter-região derivado com base no bloco atual) (S1705). A verificação de redundância é para determinar a possibilidade de informações de movimento de um candidato de mescla de inter-região anteriormente armazenado na lista de informações de movimento de inter-região e informações de movimento do bloco atual são iguais. A verificação de redundância pode ser realizada em todos os candidatos de mescla de inter-região anteriormente armazenados na lista de informações de movimento de inter-região. Alternativamente, a verificação de redundância pode ser realizada em candidatos de mescla de inter-região que têm um índice maior ou igual a um valor limítrofe dentre candidatos de mescla de inter-região anteriormente armazenado na lista de informações de movimento de inter-região.
[227] Quando um candidato de mescla de inter-
região que tem as mesmas informações de movimento que as informações de movimento do bloco atual não é incluído, o candidato de mescla de inter-região derivado com base no bloco atual pode ser adicionado à lista de informações de movimento de inter-região (S1708). A possibilidade de os candidatos de mescla de inter-região serem iguais pode ser determinada com base na possibilidade de informações de movimento (por exemplo, um vetor de movimento e/ou uma foto de referência o índice) dos candidatos de mescla de inter-região é igual.
[228] Nesse ponto, quando o número máximo de candidatos de mescla de inter-região já estão armazenados na lista de informações de movimento de inter-região (S1706), o candidato de mescla de inter-região mais velho é deletado (S1707), e o candidato de mescla de inter-região derivado com base no bloco atual pode ser adicionado à lista de informações de movimento de inter-região (S1708).
[229] Cada dos candidatos de mescla de inter- região pode ser identificado por um índice. Quando um candidato de mescla de inter-região derivado do bloco atual é adicionado à lista de informações de movimento de inter-região, o índice mais baixo (por exemplo, 0) é designado para o candidato de mescla de inter-região, e índices de candidatos de mescla de inter-região anteriormente armazenados podem ser aumentados em
1. Nesse ponto, quando o número máximo de candidatos de mescla de inter-região já estão armazenados na lista de informações de movimento de inter-região, um candidato de mescla de inter- região que tem o maior índice é removido.
[230] Alternativamente, quando o candidato de mescla de inter-região derivado do bloco atual é adicionado à lista de informações de movimento de inter-região, o maior índice pode ser designado para o candidato de mescla de inter- região. Por exemplo, quando o número de candidatos de mescla de inter-região anteriormente armazenado na lista de informações de movimento de inter-região é menor do que um valor máximo, um índice que tem o mesmo valor que o número de candidatos de mescla de inter-região anteriormente armazenados pode ser designado para o candidato de mescla de inter-região. Alternativamente, quando o número de candidatos de mescla de inter-região anteriormente armazenados na lista de informações de movimento de inter-região é igual ao valor máximo, um índice que subtrai 1 do valor máximo pode ser designado para o candidato de mescla de inter-região. Adicionalmente, um candidato de mescla de inter-região que tem o menor índice é removido, e índices de candidatos de mescla de inter-região restantes anteriormente armazenados podem ser diminuídos em 1.
[231] A Figura 18 é uma vista que mostra uma modalidade de atualização de uma lista de candidatos de mescla de inter-região.
[232] Presume-se que, visto que o candidato de mescla de inter-região derivado do bloco atual é adicionado à lista de candidatos de mescla de inter-região, o maior índice seja designado para o candidato de mescla de inter-região. Adicionalmente, presume-se que o número máximo de candidatos de mescla de inter-região já esteja armazenado na lista de candidatos de mescla de inter-região.
[233] Quando o candidato de mescla de inter- região HmvpCand[n + 1] derivado do bloco atual é adicionado à lista de candidatos de mescla de inter-região HmvpCandList, o candidato de mescla de inter-região HmvpCand[0]) que tem o menor índice dentre os candidatos de mescla de inter-região anteriormente armazenados é deletado, e os índices dos candidatos de mescla de inter-região restantes podem ser diminuídos em 1. Adicionalmente, o índice do candidato de mescla de inter-região HmvpCand[n + 1] derivado do bloco atual pode ser ajustado para um valor máximo (n no exemplo mostrado na Figura 18).
[234] Quando um candidato de mescla de inter- região igual ao candidato de mescla de inter-região derivado com base no bloco atual é anteriormente armazenado (S1705), o candidato de mescla de inter-região derivado com base no bloco atual pode não ser adicionado à lista de informações de movimento de inter-região (81709).
[235] Alternativamente, visto que o candidato de mescla de inter-região derivado com base no bloco atual é adicionado à lista de informações de movimento de inter-região, um candidato de mescla de inter-região anteriormente armazenado que é igual ao candidato de mescla de inter-região pode ser removido. Nesse caso, um efeito igual à recém atualização do índice do candidato de mescla de inter-região anteriormente armazenado é obtido.
[236] A Figura 19 é uma vista que mostra um exemplo no qual um índice de um candidato de mescla de inter- região anteriormente armazenado é atualizado.
[237] Quando o índice de um candidato de mescla de inter-região anteriormente armazenado mvCand que é igual ao candidato de mescla de inter-região mvCand derivado com base no bloco atual é hIdx, o candidato de mescla de inter-região anteriormente armazenado é deletado, e índices de candidatos de mescla de inter-região que tem um índice maior do que hIdx pode ser diminuído em 1. Por exemplo, no exemplo mostrado na
Figura 19, é mostrado que HmvpCand[(2] igual a mvCand é deletado da lista de informações de movimento de inter-região HvmpCandList, e os índices de HmvpCand[3] a HmvpCand[n] são diminuídos em 1.
[238] Adicionalmente, o candidato de mescla de inter-região mvCand derivado com base no bloco atual pode ser adicionado ao final da lista de informações de movimento de inter-região.
[239] Alternativamente, o índice designado para o candidato de mescla de inter-região anteriormente armazenado que é igual ao candidato de mescla de inter-região derivado com base no bloco atual pode ser atualizado. Por exemplo, o índice do candidato de mescla de inter-região anteriormente armazenado pode ser mudado a um valor mínimo ou um valor máximo.
[240] O mesmo pode ser ajustado para não adicionar informações de movimento de blocos incluídos em uma área predeterminada à lista de informações de movimento de inter-região. Por exemplo, um candidato de mescla de inter- região derivado com base em informações de movimento de um bloco incluído na área de processamento de mescla pode não ser adicionado à lista de informações de movimento de inter-região. Visto que uma ordem de codificação/decodificação não é definida para os blocos incluídos na área de processamento de mescla, é inapropriado usar informações de movimento de qualquer um dentre os blocos para interpredição de outro bloco. Consequentemente, candidatos de mescla de inter-região derivados com base nos blocos incluídos na área de processamento de mescla podem não ser adicionados à lista de informações de movimento de inter-região.
[241] Quando predição de compensação de movimento é realizada pela unidade de sub-bloco, um candidato de mescla de inter-região pode ser derivado com base em informações de movimento de um sub-bloco representativo dentre uma pluralidade de sub-blocos incluídos no bloco atual. Por exemplo, quando um sub-bloco candidato de mescla é usado para o bloco atual, um candidato de mescla de inter-região pode ser derivado com base em informações de movimento de um sub-bloco representativo dentre os sub-blocos.
[242] Vetores de movimento dos sub-blocos podem ser derivados na ordem a seguir. Primeiro, qualquer um dentre os candidatos de mescla incluídos na lista de candidatos de mescla do bloco atual é selecionado, e um vetor de transferência inicial (shVector) pode ser derivado com base no vetor de movimento do candidato de mescla selecionado. Então, um sub-bloco transferido, no qual a posição da amostra de referência é (xColSb, yColSb), pode ser derivada visto que o vetor de transferência inicial é adicionado na posição (xSb, ySb) da amostra de referência (por exemplo, a amostra esquerda superior ou a amostra no centro) de cada sub-bloco no bloco de conversão em código. A Equação 4 mostra uma equação para derivar o sub-bloco transferido.
[EQUAÇÃO 4) (xColSb, yColSb) = (xSb + shVector[0] >> 4, ySb + shVector[1] > 4)
[243] Então, o vetor de movimento de um bloco colocado correspondente à posição central do sub-bloco incluindo (xColSb, yColSb) pode ser ajustado como o vetor de movimento do sub-bloco incluindo (xSb, ySb).
[244] O sub-bloco representativo pode significar um sub-bloco incluindo a amostra esquerda superior ou a amostra no centro do bloco atual.
[245] A Figura 20 é uma vista que mostra a posição de um sub-bloco representativo.
[246] A Figura 20 (a) mostra um exemplo no qual o sub-bloco posicionado à esquerda superior do bloco atual é ajustado como o sub-bloco representativo, e a Figura 20 (b) mostra um exemplo no qual o sub-bloco posicionado no centro do bloco atual é ajustado como o sub-bloco representativo. Quando a predição de compensação de movimento é realizada pela unidade de sub-bloco, um candidato de mescla de inter-região do bloco atual pode ser derivado com base no vetor de movimento do sub- bloco incluindo a amostra esquerda superior do bloco atual ou o sub-bloco que inclui a amostra no centro do bloco atual.
[247] Pode ser determinada a possibilidade ou não de usar o bloco atual como um candidato de mescla de inter- região, com base no modo de interpredição do bloco atual. Por exemplo, um bloco codificado/decodificado com base em um modelo de movimento afim pode ser ajustado para ser indisponível como um candidato de mescla de inter-região. Consequentemente, embora o bloco atual seja codificado/decodificado por interpredição, quando o modo de interpredição do bloco atual é o modo de predição afim, a lista de informações de movimento de inter-região pode não ser atualizada com base no bloco atual.
[248] Alternativamente, o candidato de mescla de inter-região pode ser derivado com base em pelo menos um vetor de sub-bloco dentre os sub-blocos incluídos no bloco codificado/decodificado com base no modelo de movimento afim. Por exemplo, o candidato de mescla de inter-região pode ser derivado com uso de um sub-bloco posicionado à esquerda superior, um sub-bloco posicionado no centro, ou um sub-bloco posicionado no lado direito superior do bloco atual. Alternativamente, um valor médio de vetores de sub-bloco de uma pluralidade de sub-blocos pode ser ajustado como o vetor de movimento do candidato de mescla de inter-região.
[249] Alternativamente, o candidato de mescla de inter-região pode ser derivado com base em um valor médio de vetores de semente afim do bloco codificado/decodificado com base no modelo de movimento afim. Por exemplo, uma média de pelo menos um dentre o primeiro vetor de semente afim, o segundo vetor de semente afim, e o terceiro vetor de semente afim do bloco atual pode ser ajustada como o vetor de movimento do candidato de mescla de inter-região.
[250] Alternativamente, uma lista de informações de movimento de inter-região pode ser configurada para cada modo de interpredição. Por exemplo, pelo menos um dentre uma lista de informações de movimento de inter-região para um bloco codificado/decodificado por intrabloco de cópia, uma lista de informações de movimento de inter-região para um bloco codificado/decodificado com base em um modelo de movimento translacional, e uma lista de informações de movimento de inter-região para um bloco codificado/decodificado com base em um modelo de movimento afim pode ser definida. De acordo com o modo de interpredição do bloco atual, qualquer um dentre uma pluralidade de listas de informações de movimento de inter- região pode ser selecionado.
[251] A Figura 21 é uma vista que mostra um exemplo no qual uma lista de informações de movimento de inter- região é gerada para cada modo de interpredição.
[252] Quando um bloco é codificado/decodificado com base em um modelo de movimento não afim, um candidato de mescla de inter-região mvCand derivado com base no bloco pode ser adicionado a uma lista de informações de movimento não afim de inter-região HmvpCandList. De modo contrário, quando um bloco é codificado/decodificado com base em um modelo de movimento afim, um candidato de mescla de inter-região mvAfCand derivado com base no bloco pode ser adicionado a uma lista de informações de movimento afim de inter-região HmvpAfCandList.
[253] Vetores de semente afins de um bloco codificado/decodificado com base no modelo de movimento afim podem ser armazenados em um candidato de mescla de inter-região derivado do bloco. Consequentemente, o candidato de mescla de inter-região pode ser usado como um candidato de mescla para derivar o vetor de semente afim do bloco atual.
[254] Adicionalmente à lista de informações de movimento de inter-região descrita acima, uma lista de informações de movimento de inter-região adicional pode ser definida. Adicionalmente à lista de informações de movimento de inter-região descrita acima (doravante, denominada como primeira lista de informações de movimento de inter-região), uma lista de informações de movimento a longo prazo (doravante, denominada como segunda lista de informações de movimento de inter-região) pode ser definida. Aqui, a lista de informações de movimento a longo prazo inclui candidatos de mescla a longo prazo.
[255] Quando tanto a primeira lista de informações de movimento de inter-região quanto a segunda lista de informações de movimento de inter-região estão vazias, primeiro, um candidato de mescla de inter-região pode ser adicionado à segunda lista de informações de movimento de inter-região. Somente depois que o número de candidatos de mescla de inter-região disponíveis alcança o número máximo na segunda lista de informações de movimento de inter-região, um candidato de mescla de inter-região pode ser adicionado à primeira lista de informações de movimento de inter-região.
[256] Alternativamente, um candidato de mescla de inter-região pode ser adicionado tanto à segunda lista de informações de movimento de inter-região quanto à primeira lista de informações de movimento de inter-região.
[257] Nesse ponto, a segunda lista de informações de movimento de inter-região, cuja configuração foi concluída, pode não ser mais atualizada. Alternativamente, quando a região decodificada é maior ou igual a uma razão predeterminada da fatia, a segunda lista de informações de movimento de inter-região pode ser atualizada. Alternativamente, a segunda lista de informações de movimento de inter-região pode ser atualizada para cada N linhas de unidade de árvore de conversão em código.
[258] De modo contrário, a primeira lista de informações de movimento de inter-região pode ser atualizada sempre que um bloco codificado/decodificado por interpredição é gerado. No entanto, o mesmo pode ser ajustado para não usar o candidato de mescla de inter-região adicionado à segunda lista de informações de movimento de inter-região, para atualizar a primeira lista de informações de movimento de inter-região.
[259] Informações para selecionar qualquer uma dentre a primeira lista de informações de movimento de inter- região e a segunda lista de informações de movimento de inter- região podem ser sinalizadas através de um fluxo de bits.
Quando o número de candidatos de mescla incluídos na lista de candidatos de mescla é menor do que um valor limítrofe, candidatos de mescla incluídos na lista de informações de movimento de inter-região indicada pelas informações pode ser adicionado à lista de candidatos de mescla.
[260] Alternativamente, uma lista de informações de movimento de inter-região pode ser selecionada com base no tamanho e formato do bloco atual, modo de interpredição, a possibilidade de predição bidirecional ser permitida, a possibilidade de refinamento de vetor de movimento ser permitido, ou a possibilidade de particionamento triangular ser permitido.
[261] Alternativamente, embora um candidato de mescla de inter-região incluído na primeira lista de informações de movimento de inter-região seja adicionado, quando o número de candidatos de mescla incluídos na lista de candidatos de mescla é menor do que o número máximo de mesclas, os candidatos de mescla de inter-região incluídos na segunda lista de informações de movimento de inter-região podem ser adicionados à lista de candidatos de mescla.
[262] A Figura 22 é uma vista que mostra um exemplo no qual um candidato de mescla de inter-região incluído em uma lista de informações de movimento a longo prazo é adicionado a uma lista de candidatos de mescla.
[263] Quando o número de candidatos de mescla incluídos na lista de candidatos de mescla é menor do que o número máximo, os candidatos de mescla de inter-região incluídos na primeira lista de informações de movimento de inter-região HmvpCandList podem ser adicionados à lista de candidatos de mescla. Quando o número de candidatos de mescla incluídos na lista de candidatos de mescla é menor do que o número máximo embora os candidatos de mescla de inter-região incluídos na primeira lista de informações de movimento de inter-região sejam adicionados à lista de candidatos de mescla, candidatos de mescla de inter-região incluídos na lista de informações de movimento a longo prazo HmvpLTCandList podem ser adicionados à lista de candidatos de mescla.
[264] A tabela 2 mostra um processo de adição de candidatos de mescla de inter-região incluídos na lista de informações de movimento a longo prazo à lista de candidatos de mescla.
[TABELA 2] Para cada candidato em HMVPCandList com o índice HMVPLTIdx = l.. numHMVPLTCand, as seguintes etapas ordenadas são repetidas até que combStop seja igual a verdadeiro - sameMotion é ajustado para FALSO - Se hmvpStop for igual a FALSO e numCurrMergecand é menor do que (MaxNumMergeCand-1), hmvpLT é ajustado para VERDADEIRO - Se HMVPLTCandList [NumLTHmMvp-HMVPLTIdx] tiverem os mesmos vetores de movimento e os mesmos índices de referência com qualquer mergeCandList[i] com I sendo 0.. numOrigMergeCand-1 e HasBeenPruned[i] igual a falso, sameMotion é ajustado para verdadeiro - Se sameMotion for igual a falso, mergeCandList [numCurrMergeCand++] é ajustado para HMVPLTCandList [NumLTHmvp-HMVPLTIAX] - Se numCurrMergeCand for igual a (MaxNumMergeCand-1), hmvpLTStop é ajustado para VERDADEIRO
[265] O candidato de mescla de inter-região pode ser ajustado para incluir informações adicionais, adicionalmente às informações de movimento. Por exemplo, para o candidato de mescla de inter-região, um tamanho, um formato ou informações de partição de um bloco podem ser adicionalmente armazenadas. Quando a lista de candidatos de mescla do bloco atual é construída, somente candidatos de mescla de inter- região que têm um tamanho, um formato, ou informações de partição iguais ou similares as do bloco atual são usados dentre os candidatos de mescla de inter-região, ou candidatos de mescla de inter-região que têm um tamanho, um formato, ou informações de partição iguais ou similares as do bloco atual podem ser adicionados à lista de candidatos de mescla no primeiro lugar.
[266] Alternativamente, uma lista de informações de movimento de inter-região pode ser gerada para cada do tamanho, formato ou informações de partição de um bloco. Dentre a pluralidade de listas de informações de movimento de inter- região, uma lista de candidatos de mescla do bloco atual pode ser gerada com uso de uma lista de informações de movimento de inter-região correspondente ao formato, tamanho, ou informações de partição do bloco atual.
[267] Quando o número de candidatos de mescla incluídos na lista de candidatos de mescla do bloco atual é menor do que o valor limítrofe, os candidatos de mescla de inter-região incluídos na lista de informações de movimento de inter-região podem ser adicionados à lista de candidatos de mescla. O processo de adição é realizado em ordem ascendente ou descendente com base no índice. Por exemplo, um candidato de mescla de inter-região que tem o maior índice pode ser adicionado primeiro à lista de candidatos de mescla.
[268] Quando for desejado adicionar um candidato de mescla de inter-região incluído na lista de informações de movimento de inter-região à lista de candidatos de mescla, uma verificação de redundância pode ser realizada entre o candidato de mescla de inter-região e os candidatos de mescla anteriormente armazenados na lista de candidatos de mescla.
[269] Por exemplo, A tabela 3 mostra um processo no qual um candidato de mescla de inter-região é adicionado à lista de candidatos de mescla.
[TABELA 3] Para cada candidato em HMVPCandList com o índice HMVPIdx =
1.. numCheckedHMVPCand, as seguintes etapas ordenadas são repetidas até que combStop seja igual a verdadeiro - sameMotion é ajustado para falso - Se HMVPCandList [NumHdmvp-HMVPIdx] tiverem os mesmos vetores de movimento e os mesmos índices de referência com qualquer mergeCandList[i] com I sendo O.. numOrigMergeCand-l e HasBeenPruned[i] igual a falso, sameMotion é ajustado para verdadeiro - Se sameMotion for igual a falso, mergeCandList [numCurrMergeCand++] é ajustado para HMVPCandList [NumHmvp-HMVPIdx] - Se numCurrMergeCand for igual a (MaxNumMergeCand-1), hmvpStop é ajustado para VERDADEIRO
[270] A verificação de redundância pode ser realizada somente em alguns dos candidatos de mescla de inter- região incluídos na lista de informações de movimento de inter- região. Por exemplo, a verificação de redundância pode ser realizada somente em candidatos de mescla de inter-região que têm um índice maior do que um valor limítrofe ou menor do que um valor limítrofe. Alternativamente, a verificação de redundância pode ser realizada somente em N candidatos de mescla que têm o maior índice ou N candidatos de mescla que têm o menor índice.
[271] Alternativamente, a verificação de redundância pode ser realizada somente em alguns dos candidatos de mescla anteriormente armazenados na lista de candidatos de mescla. Por exemplo, a verificação de redundância pode ser realizada somente em um candidato de mescla que tem um índice maior do que um valor limítrofe ou menor do que um valor limítrofe, ou em um candidato de mescla derivado de um bloco em uma posição específica. Aqui, a posição específica pode incluir pelo menos um dentre um bloco vizinho esquerdo, um bloco vizinho superior, um bloco vizinho direito superior, e um bloco vizinho esquerdo de fundo do bloco atual.
[272] A Figura 23 é uma vista que mostra um exemplo no qual uma verificação de redundância é realizada somente em alguns dos candidatos de mescla.
[273] Quando é desejado adicionar o candidato de mescla de inter-região HmvpCand[j3] à lista de candidatos de mescla, uma verificação de redundância pode ser realizada no candidato de mescla de inter-região com dois candidatos de mescla mergeCandList [NumMerge-2] e mergeCandList [NumMerge-1] que tem os maiores índices. Aqui, NumMerge pode representar o número de candidatos de mescla espacial e candidatos de mescla temporal que estão disponíveis.
[274] Diferente do exemplo mostrado no desenho, quando é desejado adicionar um candidato de mescla de inter- região HmvpCand[3] à lista de candidatos de mescla, uma verificação de redundância pode ser realizada no candidato de mescla de inter-região com até dois candidatos de mescla que têm o menor índice. Por exemplo, é possível verificar a possibilidade de mergeCandList[0] e mergeCandList[1] serem iguais a HmvpCand[3]. Alternativamente, uma verificação de redundância pode ser realizada somente em candidatos de mescla derivados em uma posição específica. Por exemplo, a verificação de redundância pode ser realizada em pelo menos um dentre um candidato de mescla derivado de um bloco vizinho posicionado no lado esquerdo do bloco atual e um candidato de mescla derivado de um bloco vizinho posicionado no topo o bloco atual. Quando um candidato de mescla derivado em uma posição específica não existe na lista de candidatos de mescla, um candidato de mescla de inter-região pode ser adicionado à lista de candidatos de mescla sem ter uma verificação de redundância.
[275] Quando um candidato de mescla igual ao primeiro candidato de mescla de inter-região é encontrado e uma verificação de redundância é realizada no segundo candidato de mescla de inter-região, a verificação de redundância com o candidato de mescla igual ao primeiro candidato de mescla de inter-região pode ser omitida.
[276] A Figura 24 é uma vista que mostra um exemplo no qual uma verificação de redundância é omitida para um candidato de mescla específico.
[277] Quando é desejado adicionar um candidato de mescla de inter-região HmvpCand[i] que tem o índice i à lista de candidatos de mescla, uma verificação de redundância é realizada entre o candidato de mescla de inter-região e candidatos de mescla anteriormente armazenados na lista de candidatos de mescla. Nesse ponto, quando um candidato de mescla mergeCandList[j3] igual ao candidato de mescla de inter- região HmvpCand[i] é encontrado, a verificação de redundância pode ser realizada entre o candidato de mescla de inter-região HmvpCand[(i-1] que tem o índice i-l e os candidatos de mescla sem adicionar o candidato de mescla de inter-região HmvpCand[i] à lista de candidatos de mescla. Nesse ponto, a verificação de redundância entre o candidato de mescla de inter-região HmvpCand[(i-1] e o candidato de mescla mergeCandList[j3] pode ser omitida.
[278] Por exemplo, no exemplo mostrado na Figura 24, é determinado que HmvpCand[i] e mergeCandList[2] são iguais. Consequentemente, HmvpCand[i] não é adicionado à lista de candidatos de mescla, e uma verificação de redundância pode ser realizada em HmvpCand[i-1]. Nesse ponto, a verificação de redundância entre HvmpCand[i-1] e mergeCandList[2] pode ser omitida.
[279] Quando o número de candidatos de mescla incluídos na lista de candidatos de mescla do bloco atual é menor do que o valor limítrofe, pelo menos um dentre um candidato de mescla pareado e um candidato sem mescla pode ser adicionalmente incluído, adicionalmente ao candidato de mescla de inter-região. O candidato de mescla pareado significa um candidato de mescla que tem um valor médio de vetores de movimento de dois ou mais candidatos de mescla como um vetor de movimento, e o candidato sem mescla significa um candidato de mescla que tem um vetor de movimento de O.
[280] Um candidato de mescla pode ser adicionado à lista de candidatos de mescla do bloco atual na ordem a seguir.
[281] Candidato de mescla espacial - Candidato de mescla temporal - Candidato de mescla de inter-região - (Candidato afim de mescla de inter-região) - Candidato de mescla pareado - Candidato sem mescla
[282] O Candidato de mescla espacial significa um candidato de mescla derivada de pelo menos um dentre um bloco vizinho e um bloco não vizinho, e o candidato de mescla temporal significa um candidato de mescla derivado de uma foto anterior de referência. O candidato de mescla afim de inter- região representa um candidato de mescla de inter-região derivado de um bloco codificado/decodificado com um modelo de movimento afim.
[283] A lista de informações de movimento de inter-região também pode ser usada no vetor de movimento modo de predição. Por exemplo, quando o número de candidatos de predição de vetor de movimento incluídos em uma lista de candidato de predição de vetor de movimento do bloco atual é menor do que um valor limítrofe, um candidato de mescla de inter-região incluído na lista de informações de movimento de inter-região pode ser ajustado como um candidato de predição de vetor de movimento para o bloco atual. Especificamente, o vetor de movimento do candidato de mescla de inter-região pode ser ajustado como um candidato de predição de vetor de movimento.
[284] Quando qualquer um dentre os candidatos de predição de vetor de movimento incluídos na lista de candidato de predição de vetor de movimento do bloco atual é selecionado, o candidato selecionado pode ser ajustado como o preditor de vetor de movimento do bloco atual. Em seguida, depois que um vetor de movimento coeficiente residual do bloco atual é decodificado, um vetor de movimento do bloco atual pode ser obtido adicionando-se o preditor de vetor de movimento e o vetor de movimento coeficiente residual.
[285] A lista de candidato de predição de vetor de movimento do bloco atual pode ser configurada na ordem a seguir.
[286] Candidato de predição de vetor de movimento espacial - Candidato de predição de vetor de movimento temporal - Candidato de mescla de inter-região - (Candidato afim de mescla de inter-região) - Candidato de predição de vetor sem movimento
[287] O candidato de predição de vetor de movimento espacial significa um candidato de predição de vetor de movimento derivado de pelo menos um dentre um bloco vizinho e um bloco não vizinho, e o candidato de predição de vetor de movimento temporal significa um candidato de predição de vetor de movimento derivado de uma foto anterior de referência. O candidato de mescla afim de inter-região representa um candidato de predição de vetor de movimento de inter-região derivado de um bloco codificado/decodificado com o modelo de movimento afim. O candidato de predição de vetor sem movimento representa um candidato que tem um valor de vetor de movimento de O.
[288] Uma área de processamento de mescla que tem um tamanho maior do que a de um bloco de conversão em código pode ser definida. Blocos de codificação incluídos na área de processamento de mescla não são sequencialmente codificados/decodificados, e podem ser processados em paralelo. Aqui, o fato de que blocos de conversão em código não são sequencialmente codificados/decodificados significa que uma ordem de codificação/decodificação não é definida. Consequentemente, um processo de codificação/decodificação dos blocos incluídos na área de processamento de mescla pode ser independentemente processado. Alternativamente, os blocos incluídos na área de processamento de mescla pode compartilhar candidatos de mescla. Aqui, os candidatos de mescla podem ser derivados com base na área de processamento de mescla.
[289] De acordo com as características descritas acima, a área de processamento de mescla também pode ser denominada como área de processamento paralela, uma área de mescla compartilhada (SMR), ou uma área de estimativa de mescla (MER) .
[290] O candidato de mescla do bloco atual pode ser derivado com base no bloco de conversão em código. No entanto, quando o bloco atual é incluído em uma área de processamento de mescla de um tamanho maior do que o bloco atual, um bloco candidato incluído na área de processamento de mescla igual ao bloco atual pode ser ajustado para ser indisponível como um candidato de mescla.
[291] A Figura 25 é uma vista que mostra um exemplo no qual blocos candidatos incluídos na mesma área de processamento de mescla que o bloco atual são ajustados para serem indisponíveis como um candidato de mescla.
[292] No exemplo mostrado na Figura 25 (a), quando CU5 é codificada/decodificada, blocos que incluem amostras de referência adjacentes a CUS podem ser ajustados como blocos candidatos. Nesse ponto, blocos candidatos X3 e X4 incluídos na área de processamento de mescla igual a CUS podem ser ajustados para ser indisponível como um candidato de mescla de CUS. De modo contrário, blocos candidatos X0, Xl e X2 que não são incluídos na área de processamento de mescla igual a CUS podem ser ajustados para serem disponíveis como um candidato de mescla.
[293] No exemplo mostrado na Figura 25 (b), quando CU8 é codificada/decodificada, blocos que incluem amostras de referência adjacentes a CU8 podem ser ajustados como blocos candidatos. Nesse ponto, blocos candidatos X6, X7 e X8 incluídos na área de processamento de mescla igual a CU8 podem ser ajustados para ser indisponível como um candidato de mescla. De modo contrário, blocos candidatos, X5 e X9 que não são incluídos na área de processamento de mescla igual a CU8 podem ser ajustados para serem disponíveis como um candidato de mescla.
[294] A área de processamento de mescla pode ser um quadrado ou formato não quadrado. Informações para determinar a área de processamento de mescla podem ser sinalizadas através de um fluxo de bits. As informações podem incluir pelo menos um dentre informações que indicam o formato da área de processamento de mescla e informações que indicam o tamanho da área de processamento de mescla. Quando a área de processamento de mescla é um formato não quadrado, pelo menos um dentre informações que indicam o tamanho da área de processamento de mescla, informações que indicam a largura e/ou altura da área de processamento de mescla, e informações que indicam uma razão de largura para altura da área de processamento de mescla podem ser sinalizadas através de um fluxo de bits.
[295] O tamanho da área de processamento de mescla pode ser determinado com base em pelo menos um dentre informações sinalizadas através de um fluxo de bits, uma resolução de foto, um tamanho de fatia e um tamanho de peça.
[296] Quando predição de compensação de movimento é realizada em um bloco incluído na área de processamento de mescla, um candidato de mescla de inter-região derivado com base em informações de movimento do bloco nas quais a predição de compensação de movimento foi realizada pode ser adicionado à lista de informações de movimento de inter-região.
[297] No entanto, no caso em que um candidato de mescla de inter-região derivado de um bloco incluído na área de processamento de mescla é adicionado à lista de informações de movimento de inter-região, quando outro bloco na área de processamento de mescla, que é de fato codificado/decodificado depois que bloco é codificado/decodificado, é codificado/decodificado, pode haver um caso de uso de um candidato de mescla de inter-região derivado do bloco. Ou seja, embora a dependência dentre blocos deva ser excluída quando os blocos incluídos na área de processamento de mescla são codificados/decodificados, pode haver um caso um caso de uso de compensação de predição de movimento com uso de informações de movimento de outro bloco incluído na área de processamento de mescla. De modo a solucionar o problema, embora a codificação/decodificação de um bloco incluído na área de processamento de mescla seja concluída, informações de movimento do bloco codificado/decodificado podem não ser adicionadas à lista de informações de movimento de inter- região.
[298] Alternativamente, quando predição de compensação de movimento é realizada nos blocos incluídos na área de processamento de mescla, candidatos de mescla de inter- região derivados dos blocos podem ser adicionados à lista de informações de movimento de inter-região em ordem pré- definida. Aqui, a ordem pré-definida pode ser determinada de acordo com a ordem de leitura dos blocos de conversão em código na área de processamento de mescla ou a unidade de árvore de conversão em código. A ordem de leitura pode ser pelo menos um dentre leitura de varredura, leitura horizontal, leitura vertical e leitura em ziguezague. Alternativamente, a ordem pré-definida pode ser determinada com base em informações de movimento de cada bloco ou o número de blocos que têm as mesmas informações de movimento.
[299] Alternativamente, um candidato de mescla de inter-região que inclui informações de movimento unidirecional pode ser adicionado à lista de mescla de inter- região antes de um candidato de mescla de inter-região que inclui informações de movimento bidirecional. De modo contrário, um candidato de mescla de inter-região que inclui informações de movimento bidirecional pode ser adicionado à lista de candidatos de mescla de inter-região antes de um candidato de mescla de inter-região que inclui informações de movimento unidirecional.
[300] Alternativamente, um candidato de mescla de inter-região pode ser adicionado à lista de informações de movimento de inter-região de acordo com uma ordem de uma alta frequência de uso ou uma baixa frequência de uso dentro da área de processamento de mescla ou a unidade de árvore de conversão em código.
[301] Quando o bloco atual é incluído na área de processamento de mescla e o número de candidatos de mescla incluídos na lista de candidatos de mescla do bloco atual é menor do que o número máximo, candidatos de mescla de inter- região incluídos na lista de informações de movimento de inter- região podem ser adicionados à lista de candidatos de mescla. Nesse ponto, o mesmo pode ser ajustado para não adicionar um candidato de mescla de inter-região derivado de um bloco incluído em uma área de processamento de mescla igual ao bloco atual à lista de candidatos de mescla do bloco atual.
[302] Alternativamente, quando o bloco atual é incluído na área de processamento de mescla, o mesmo pode ser ajustado para não usar os candidatos de mescla de inter-região incluídos na lista de informações de movimento de inter-região. Ou seja, embora o número de candidatos de mescla incluídos na lista de candidatos de mescla do bloco atual seja menor do que o número máximo, os candidatos de mescla de inter-região incluídos na lista de informações de movimento de inter-região podem não ser adicionados à lista de candidatos de mescla.
[303] Uma lista de informações de movimento de inter-região para uma área de processamento de mescla ou uma unidade de árvore de conversão em código pode ser configurada. Essa lista de informações de movimento de inter-região realiza uma função de armazenar temporariamente informações de movimento de blocos incluídos na área de processamento de mescla. De modo a distinguir uma lista geral de informações de movimento de inter-região da lista de informações de movimento de inter-região para uma área de processamento de mescla ou uma unidade de árvore de conversão em código, a lista de informações de movimento de inter-região para uma área de processamento de mescla ou uma unidade de árvore de conversão em código é denominada como lista de informações de movimento temporária. Adicionalmente, um candidato de mescla de inter- região armazenado na lista de informações de movimento temporária será denominado como candidato de mescla temporário.
[304] A Figura 26 é uma vista que mostra uma lista de informações de movimento temporária.
[305] Uma lista de informações de movimento temporária para uma unidade de árvore de conversão em código ou uma área de processamento de mescla pode ser configurada. Quando a predição de compensação de movimento foi realizada no bloco atual incluído na unidade de árvore de conversão em código ou na área de processamento de mescla, informações de movimento do bloco podem não ser adicionadas à lista de informações de movimento de inter-região HmvpCandList. Em vez disso, um candidato de mescla temporário derivado do bloco pode ser adicionado à lista de informações de movimento temporária HmvpMERCandList. Ou seja, o candidato de mescla temporário adicionado à lista de informações de movimento temporária pode não ser adicionado à lista de informações de movimento de inter-região. Consequentemente, a lista de informações de movimento de inter-região pode não incluir candidatos de mescla de inter-região derivados com base em informações de movimento dos blocos incluídos na unidade de árvore de conversão em código ou na área de processamento de mescla.
[306] O número máximo de candidatos de mescla que a lista de informações de movimento temporária pode incluir pode ser ajustado para ser igual ao da lista de informações de movimento de inter-região. Alternativamente, o número máximo de candidatos de mescla que a lista de informações de movimento temporária pode incluir pode ser determinado de acordo com o tamanho da unidade de árvore de conversão em código ou a área de processamento de mescla.
[307] O bloco atual incluído na unidade de árvore de conversão em código ou na área de processamento de mescla pode ser ajustado para não usar a lista de informações de movimento temporária para uma unidade de árvore de conversão em código correspondente ou uma área de processamento de mescla correspondente. Ou seja, quando o número de candidatos de mescla incluídos na lista de candidatos de mescla do bloco atual é menor do que um valor limítrofe, os candidatos de mescla de inter-região incluídos na lista de informações de movimento de inter-região são adicionados à lista de candidatos de mescla, e os candidatos de mescla temporários incluídos na lista de informações de movimento temporária podem não ser adicionados à lista de candidatos de mescla. Consequentemente, informações de movimento de outros blocos incluídos na unidade de árvore de conversão em código ou na área de processamento de mescla igual ao bloco atual podem não ser usados para predição de compensação de movimento do bloco atual.
[308] Quando a codificação/decodificação de todos os blocos incluídos na unidade de árvore de conversão em código ou na área de processamento de mescla é concluída, a lista de informações de movimento de inter-região e a lista de informações de movimento temporária pode ser mesclada.
[309] A Figura 27 é uma vista que mostra um exemplo de mesclagem de uma lista de informações de movimento de inter-região e uma lista de informações de movimento temporária.
[310] Quando a conversão em código/decodificação de todos os blocos incluídos na unidade de árvore de conversão em código ou na área de processamento de mescla é concluída, conforme mostrado no exemplo da Figura 27, a lista de informações de movimento de inter-região pode ser atualizada com os candidatos de mescla temporários incluídos na lista de informações de movimento temporária.
[311] Nesse ponto, os candidatos de mescla temporários incluídos na lista de informações de movimento temporária podem ser adicionados à lista de informações de movimento de inter-região na ordem dos candidatos de mescla temporários inseridos na lista de informações de movimento temporária (isto é, em ordem ascendente ou descendente do índice valores).
[312] Como outro exemplo, os candidatos de mescla temporários incluídos na lista de informações de movimento temporária podem ser adicionados à lista de informações de movimento de inter-região em ordem pré- definida.
[313] Aqui, a ordem pré-definida pode ser determinada de acordo com a ordem de leitura dos blocos de conversão em código na área de processamento de mescla ou a unidade de árvore de conversão em código. A ordem de leitura pode ser pelo menos um dentre leitura de varredura, leitura horizontal, leitura vertical e leitura em ziguezague. Alternativamente, a ordem pré-definida pode ser determinada com base em informações de movimento de cada bloco ou o número de blocos que têm as mesmas informações de movimento.
[314] Alternativamente, um candidato de mescla temporário que inclui informações de movimento unidirecional pode ser adicionado à lista de mescla de inter-região antes de um candidato de mescla temporário que inclui informações de movimento bidirecional. De modo contrário, um candidato de mescla temporário que inclui informações de movimento bidirecional pode ser adicionado à lista de candidatos de mescla de inter-região antes de um candidato de mescla temporário que inclui informações de movimento unidirecional.
[315] Alternativamente, um candidato de mescla temporário pode ser adicionado à lista de informações de movimento de inter-região de acordo com uma ordem de uma alta frequência de uso ou uma baixa frequência de uso dentro da área de processamento de mescla ou a unidade de árvore de conversão em código.
[316] Quando um candidato de mescla temporário incluído na lista de informações de movimento temporária é adicionado à lista de informações de movimento de inter-região, uma verificação de redundância pode ser realizada no candidato de mescla temporário. Por exemplo, quando um candidato de mescla de inter-região igual ao candidato de mescla temporário incluído na lista de informações de movimento temporária é anteriormente armazenado na lista de informações de movimento de inter-região, o candidato de mescla temporário pode não ser adicionado à lista de informações de movimento de inter-região. Nesse ponto, uma verificação de redundância pode ser realizada em alguns dos candidatos de mescla de inter-região incluídos na lista de informações de movimento de inter-região. Por exemplo, a verificação de redundância pode ser realizada em candidatos de mescla de inter-região que têm um índice maior do que um valor limítrofe ou menor do que um valor limítrofe. Por exemplo, quando o candidato de mescla temporário é igual a um candidato de mescla de inter-região que tem um índice maior ou igual a um valor pré-definido, o candidato de mescla temporário pode não ser adicionado à lista de informações de movimento de inter-região.
[317] A intrapredição é para prever um bloco atual com uso de amostras reconstruídas que foram codificados/decodificados na vizinhança do bloco atual. Nesse ponto, amostras reconstruídas antes de um filtro em circuito é aplicado pode ser usado para intrapredição do bloco atual.
[318] A técnica de intrapredição inclui intrapredição baseada em matriz, e intrapredição geral considerando a direcionalidade em relação às amostras reconstruídas vizinhas. Informações que indicam a técnica de intrapredição do bloco atual podem ser sinalizadas através de um fluxo de bits. As informações pode ser uma sinalização de 1 bit. Alternativamente, a técnica de intrapredição do bloco atual pode ser determinada com base em pelo menos um dentre a localização, o tamanho, e o formato do bloco atual, ou com base em uma técnica de intrapredição de um bloco vizinho. Por exemplo, quando o bloco atual existe através de uma delimitação de foto, o mesmo pode ser ajustado para não aplicar a intrapredição baseada em matriz ao bloco atual.
[319] A intrapredição baseada em matriz intrapredição é um método de aquisição de um bloco de predição do bloco atual por um codificador e um decodificador com base em um produto de matriz entre uma matriz anteriormente armazenada e amostras reconstruídas na vizinhança do bloco atual. Informações para especificar qualquer um dentre uma pluralidade de matrizes anteriormente armazenadas podem ser sinalizadas através de um fluxo de bits. O decodificador pode determinar uma matriz para intrapredição do bloco atual com base nas informações e no tamanho do bloco atual.
[320] A intrapredição geral é um método de aquisição de um bloco de predição para o bloco atual com base em um modo de intrapredição não angular ou um modo de intrapredição angular. Doravante, um processo de realização de intrapredição com base em intrapredição geral será descrita em mais detalhes em referência aos desenhos.
[321] A Figura 28 é um fluxograma que ilustra um método de intrapredição de acordo com uma modalidade da presente revelação.
[322] Uma linha de amostra de referência do bloco atual pode ser determinada (S2801). A linha de amostra de referência significa um conjunto de amostras de referência incluído em uma k-ésima linha distante do topo e/ou o lado esquerdo do bloco atual. As amostras de referência podem ser derivadas de amostras reconstruídas que foram codificadas/decodificadas na vizinhança do bloco atual.
[323] Informações de índice para identificar a linha de amostra de referência do bloco atual dentre uma pluralidade de linhas de amostra de referência podem ser sinalizadas através de um fluxo de bits. A pluralidade de linhas de amostra de referência pode incluir pelo menos uma dentre uma primeira linha, uma segunda linha, uma terceira linha, e uma quarta linha no topo e/ou lado esquerdo do bloco atual. A tabela 4 mostra índices designados às linhas de amostra de referência, respectivamente. Na Tabela 4, presume- se que a primeira linha, a segunda linha, e a quarta linha são usadas como candidatos de linha de amostra de referência.
[TABELA 4] o | ES mea | referência referência referência
[324] A linha de amostra de referência do bloco atual pode ser determinada com base em pelo menos um dentre a localização, o tamanho, e o formato do bloco atual, ou com base em um modo de codificação de predição de um bloco vizinho. Por exemplo, quando o bloco atual está em contato com a delimitação de uma foto, uma peça, uma fatia, ou uma unidade de árvore de conversão em código, a primeira linha de amostra de referência pode ser determinada como a linha de amostra de referência do bloco atual.
[325] A linha de amostra de referência pode incluir amostras de referência superiores posicionadas no topo do bloco atual e amostras de referência esquerdas posicionadas no lado esquerdo do bloco atual. As amostras de referência superiores e as amostras de referência esquerdas podem ser derivadas de amostras reconstruídas na vizinhança do bloco atual. As amostras reconstruídas podem estar em um estado antes de o filtro em circuito ser aplicado.
[326] A Figura 29 é uma vista que mostra amostras de referência incluídas em cada linha de amostra de referência.
[327] De acordo com o modo de intrapredição do bloco atual, uma amostra de predição pode ser adquirida com uso de pelo menos uma dentre amostras de referência pertencentes a uma linha de amostra de referência.
[328] Em seguida, o modo de intrapredição do bloco atual pode ser determinado (S2802). Assim como para o modo de intrapredição do bloco atual, pelo menos um dentre um modo de intrapredição não angular e um modo de intrapredição angular pode ser determinado como o modo de intrapredição do bloco atual. O modo de intrapredição não angular inclui um modo plano e um modo de DC, e o modo de intrapredição angular inclui 33 ou 65 modos entre a direção diagonal esquerda de fundo e a direção diagonal direita superior.
[329] A Figura 30 é uma vista que mostra modos de intrapredição.
[330] A Figura 30 (a) mostra 35 modos de intrapredição, e a Figura 30 (b) mostra 67 modos de intrapredição.
[331] Um número maior ou menor de modos de intrapredição do que aqueles mostrados na Figura 30 pode ser definido.
[332] Um Modo mais provável (MPM) pode ser ajustado com base no modo de intrapredição de um bloco vizinho adjacente ao bloco atual. Aqui, o bloco vizinho pode incluir um bloco vizinho esquerdo adjacente ao lado esquerdo do bloco atual e um bloco vizinho superior adjacente ao topo do bloco atual. Quando as coordenadas da amostra esquerda superior do bloco atual são (0, 0), o bloco vizinho esquerdo pode incluir uma amostra na posição de (-1, 0), (-1, H-1) ou (-1, (H-1)/2). Aqui, H denota a altura do bloco atual. O bloco vizinho superior pode incluir uma amostra na posição de (0, -1), (W- 1, -1) ou ((W-1)/2, -1). Aqui, W denota a largura do bloco atual.
[333] Quando o bloco vizinho é codificado por intrapredição normal, o MPM pode ser derivado com base no modo de intrapredição do bloco vizinho. Especificamente, o modo de intrapredição do bloco vizinho esquerdo pode ser ajustado para a variável candIntraPredModeA, e o modo de intrapredição do bloco vizinho superior pode ser ajustado para a variável candIntraPredModeB.
[334] Nesse ponto, quando o bloco vizinho está indisponível (por exemplo, quando o bloco vizinho ainda não é codificado/decodificado ou quando a posição do bloco vizinho está fora da delimitação de foto), quando o bloco vizinho é codificado por intrapredição baseada em matriz, quando o bloco vizinho é codificado por interpredição, ou quando o bloco vizinho é incluído em uma unidade de árvore de conversão em código diferente do bloco atual, a variável candIntraPredModeX (aqui, X é A ou B) derivado com base no modo de intrapredição do bloco vizinho pode ser ajustada como um modo padrão. Aqui, o modo padrão pode incluir pelo menos um dentre um modo plano, um modo de DC, um modo de direção vertical e um modo de direção horizontal.
[335] Alternativamente, quando o bloco vizinho é codificado por intrapredição baseada em matriz, um modo de intrapredição correspondente a um valor de índice para especificar qualquer um dentre as matrizes pode ser ajustado para candIntraPredModeX. Para essa finalidade, uma tabela de consulta que mostra a relação de mapeamento entre o índice valores para especificar uma matriz e modos de intrapredição pode ser anteriormente armazenado no codificador e no decodificador.
[336] MPMs podem ser derivados com base na variável candIntraPredModeA e na variável candIntraPredModeB. O número de MPMs incluído em uma lista de MPM pode ser anteriormente ajustado no codificador e no decodificador. O número de MPMs incluído na lista de MPM pode ser pré-definido no codificador e no decodificador. Por exemplo, o número de MPMs pode ser 3, 4, 5 ou 6. Alternativamente, informações que indicam o número de MPMs podem ser sinalizadas através de um fluxo de bits. Alternativamente, o número de MPMs pode ser determinado com base em pelo menos um dentre o modo de codificação de predição do bloco vizinho e o tamanho e o formato do bloco atual.
[337] Nas modalidades descritas abaixo, presume- se que o número de MPMs seja 3, e os 3 MPMs serão denominados como MPM[0], MPM[1] e MPM[2]. Quando o número de MPMs é mais do que 3, os MPMs podem ser configurados para incluir 3 MPMs descritos nas modalidades descritas abaixo.
[338] Quando candIntraPredA e candIntraPredB são iguais, e candIntraPredA é um modo plano ou um modo de DC, MPM[0] e MPM[1] pode ser ajustado a um modo plano e um modo de DC, respectivamente. MPM[2] pode ser ajustado a um modo de intrapredição de direção vertical, um modo de intrapredição de direção horizontal ou um modo de intrapredição de direção diagonal. O modo de intrapredição de direção diagonal pode ser uma direção diagonal esquerda de fundo modo de intrapredição, um modo de intrapredição de direção esquerda superior, ou um modo de intrapredição de direção direita superior.
[339] Quando candIntraPredA e candIntraPredB são iguais, e candIntraPredA é um modo de intrapredição angular, MPM[0] pode ser ajustado como igual a candIntraPredA. MPM[1] e MPM[2] pode ser ajustado a um modo de intrapredição similar a candIntraPredA, respectivamente. O modo de intrapredição similar a candIntraPredA pode ser um modo de intrapredição no qual a diferença entre candIntraPredA e um índice é t+ 1 ou t
2. Uma operação de módulo (%) e um deslocamento podem ser usados para derivar o modo de intrapredição similar a candIntraPredA.
[340] Quando candIntraPredA e candIntraPredB são diferentes, MPM[0O] pode ser ajustado como igual a candIntraPredA, e MPM[1] pode ser ajustado como igual a candIntraPredB. Nesse ponto, quando tanto candIntraPredA quanto candIntraPredB são o modo de intrapredição não angular, MPM[2] pode ser ajustado para um modo de intrapredição de direção vertical, um modo de intrapredição de direção horizontal, ou um modo de intrapredição de direção diagonal. Alternativamente, quando pelo menos um dentre candIntraPredA e candIntraPredB é um modo de intrapredição angular, MPM[2] pode ser ajustado para um modo de intrapredição derivado adicionando-se ou subtraindo-se um deslocamento a ou de um modo plano, um modo de DC, ou um dentre candIntraPredA e candIntraPredB que tem um valor maior. Aqui, o deslocamento pode ser 1 ou 2.
[341] Uma lista de MPM que inclui uma pluralidade de MPMs é gerada, e informações que indicam a possibilidade de um MPM que é igual ao modo de intrapredição do bloco atual ser incluído na lista de MPM podem ser sinalizadas através de um fluxo de bits. As informações são uma sinalização de 1 bit e podem ser denominadas como sinalização de MPM. Quando a sinalização de MPM indica que um MPM igual ao do bloco atual é incluído na lista de MPM, as informações de índice que identificam um dentre os MPMs podem ser sinalizadas através de um fluxo de bits. O MPM especificado pelas informações de índice pode ser ajustado como o modo de intrapredição do bloco atual. Quando a sinalização de MPM indica que um MPM igual ao do bloco atual não é incluída na lista de MPM, informações de modo residuais que indicam qualquer um dentre modos de intrapredição residuais diferentes de MPMs podem ser sinalizados através de um fluxo de bits. As informações de modo residuais indicam um valor de índice correspondente ao modo de intrapredição do bloco atual quando índices são reatribuídos aos modos de intrapredição residuais excluindo os MPMs. O decodificador pode arranjar os MPMs em ordem ascendente e determinar o modo de intrapredição do bloco atual comparando- se as informações de modo residuais com os MPMs. Por exemplo,
quando as informações de modo residuais são iguais ou menores que o MPM, o modo de intrapredição do bloco atual pode ser derivado adicionando-se 1 às informações de modo residuais.
[342] Em vez de ajustar o modo padrão para MPM, informações que indicam a possibilidade ou não de o modo de intrapredição do bloco atual ser o modo padrão pode ser sinalizado através de um fluxo de bits. As informações são uma sinalização de 1 bit, e a sinalização pode ser denominada como sinalização de modo padrão. A sinalização de modo padrão pode ser sinalizada somente quando a sinalização de MPM indica que um MPM igual ao do bloco atual é incluído na lista de MPM. Conforme descrito acima, o modo padrão pode incluir pelo menos um dentre um modo plano, um modo de DC, um modo de direção vertical e um modo de direção horizontal. Por exemplo, quando o modo plano é ajustado como o modo padrão, a sinalização de modo padrão pode indicar a possibilidade ou não de o modo de intrapredição do bloco atual ser um modo plano. Quando a sinalização de modo padrão indica que o modo de intrapredição do bloco atual não é o modo padrão, um dentre os MPMs indicados pelas informações de índice pode ser ajustado como o modo de intrapredição do bloco atual.
[343] Quando uma pluralidade de modos de intrapredição é ajustada como modos padrão, as informações de índice que indicam qualquer um dentre os modos padrão podem ser adicionalmente sinalizados. O modo de intrapredição do bloco atual pode ser ajustado como o modo padrão indicado pelas informações de índice.
[344] Quando o índice da linha de amostra de referência do bloco atual não é 0, o mesmo pode ser ajustado para não usar o modo padrão. Consequentemente, quando o índice da linha de amostra de referência não é O, a sinalização de modo padrão não é sinalizada, e o valor da sinalização de modo padrão pode ser ajustado para um valor pré-definido (isto é, falso).
[345] Quando o modo de intrapredição do bloco atual é determinado, amostras de predição podem ser adquiridas para o bloco atual com base no modo de intrapredição determinado (82803).
[346] Quando o modo de DC é selecionado, amostras de predição são geradas para o bloco atual com base em um valor médio de amostras de referência. Especificamente, valores de todas as amostras em um bloco de predição podem ser geradas com base em um valor médio das amostras de referência. O valor médio pode ser derivado com uso de pelo menos um dentre amostras de referência superiores posicionadas no topo do bloco atual e amostras de referência esquerdas posicionadas no lado esquerdo do bloco atual.
[347] Dependendo do formato de o bloco atual, o número ou faixa das amostras de referência usadas para derivar o valor médio pode variar. Por exemplo, quando o bloco atual é um bloco não em formato de quadrado cuja largura é maior do que a altura, o valor médio pode ser calculado com uso somente das amostras de referência superiores. De modo contrário, quando o bloco atual é um bloco não em formato de quadrado cuja largura é menor do que a altura, o valor médio pode ser calculado com uso somente das amostras de referência esquerdas. Ou seja, quando a largura e a altura do bloco atual são diferentes, o valor médio pode ser calculado com uso de somente amostras de referência adjacentes à mais longa. Alternativamente, com base na razão de largura para altura do bloco atual, a possibilidade ou não de calcular o valor médio com uso somente das amostras de referência superiores ou a possibilidade ou não de calcular o valor médio com uso somente das amostras de referência esquerdas pode ser determinada.
[348] Quando o modo plano é selecionado, uma amostra de predição pode ser adquirida com uso de uma amostra de predição de direção horizontal e uma amostra de predição de direção vertical. Aqui, a amostra de predição de direção horizontal é adquirida com base em uma amostra de referência esquerda e uma amostra de referência direita posicionada em uma linha horizontal igual à da amostra de predição, e a amostra de predição de direção vertical é adquirida com base em uma amostra de referência superior e uma amostra de referência de fundo posicionada em uma linha vertical igual à da amostra de predição. Aqui, a amostra de referência direita pode ser gerada copiando-se uma amostra de referência adjacente ao canto direito superior do bloco atual, e a amostra de referência de fundo pode ser gerada copiando-se uma amostra de referência adjacente ao canto esquerdo de fundo do bloco atual. A amostra de predição de direção horizontal pode ser adquirida com base em uma operação de soma ponderada da amostra de referência esquerda e a amostra de referência direita, e a amostra de predição de direção vertical pode ser adquirida com base em uma operação de soma ponderada da amostra de referência superior e da amostra de referência de fundo. Nesse ponto, um valor de ponderação designado para cada amostra de referência pode ser determinado de acordo com a posição da amostra de predição. A amostra de predição pode ser adquirida com base em uma operação média ou uma operação de soma ponderada da amostra de predição de direção horizontal e da amostra de predição de direção vertical. Quando a operação de soma ponderada é realizada, valores de ponderação aplicados à amostra de predição de direção horizontal e a amostra de predição de direção vertical pode ser determinada com base na posição da amostra de predição.
[349] Quando um modo de predição angular é selecionado, um parâmetro que indica a direção de predição (ou ângulo de predição) do modo de predição angular selecionado pode ser determinado. A Tabela 5 mostra parâmetro de intradireção intraPredAng de cada modo de intrapredição.
[TABELA 5] IntraPredAng - 32 26 21 17 13 9 ntraPredAng 5 2 o -2 -5 -9 -13 ntraPredAng —-17 |-21 -26 -32 -26 -21 -17 ntraPredàng -13 |-9 -5 -2 o 2 5 nesses o 5 5 ops E | | ntraPredAng 9 13 17 21 26 32
[350] Quando 35 modos de intrapredição são definidos, a Tabela 5 mostra o parâmetro de intradireção de cada modo de intrapredição que tem um índice de qualquer um dentre 2 a 34. Quando mais do que 33 modos de intrapredição angulares são definidos, a Tabela 5 é adicionalmente subdividido para ajustar o parâmetro de intradireção de cada modo de intrapredição angular.
[351] Depois de arranjar amostras de referência superiores e amostras de referência esquerdas do bloco atual em uma linha, uma amostra de predição pode ser adquirida com base no valor do parâmetro de intradireção. Nesse ponto, quando o valor do parâmetro de intradireção é um valor negativo, as amostras de referência esquerdas e as amostras de referência superiores podem ser arranjadas em uma linha.
[352] As Figuras 31 e 32 são vistas que mostram um exemplo de um arranjo unidimensional que arranja amostras de referência em uma linha.
[353] A Figura 31 é uma vista que mostra um exemplo de uma direção vertical arranjo unidimensional que arranja amostras de referência na direção vertical e a Figura 32 é uma vista que mostra um exemplo de um arranjo unidimensional de direção horizontal que arranja amostras de referência na direção horizontal. As modalidades das Figuras 31 e 32 serão descritas no pressuposto de que 35 modos de intrapredição são definidos.
[354] Quando o índice de modo de intrapredição é qualquer um dentre 11 a 18, um arranjo unidimensional de direção horizontal no qual amostras de referência superiores são rotacionados em sentido anti-horário podem ser aplicadas, e quando o índice de modo de intrapredição é qualquer um dentre 19 a 25, uma direção vertical arranjo unidimensional na qual amostras de referência esquerdas são rotacionadas em sentido horário podem ser aplicadas. Ao arranjar as amostras de referência em uma linha, um ângulo de modo de intrapredição pode ser considerado.
[355] Um parâmetro de determinação de amostra de referência pode ser determinado com base em um parâmetro de intradireção. A parâmetro de determinação de amostra de referência pode incluir um índice de amostra de referência para especificar uma amostra de referência e um parâmetro de valor de ponderação para determinar um valor de ponderação aplicado à amostra de referência.
[356] O índice de amostra de referência ildx e parâmetro de valor de ponderação ifact podem ser adquiridos através das Equações 5 e 6 mostradas abaixo, respectivamente.
[EQUAÇÃO 5) ildx = (7 + 1) * Pang/32 [EquAÇÃO 6] ifact = [& +1)* Pang] &31
[357] Nas Equações 5 e 6, Pang denota um parâmetro de intradireção. A amostra de referência especificada pelo índice de amostra de referência ilIdx corresponde a um número inteiro pel.
[358] Pelo menos uma ou mais amostras de referência pode ser especificada para derivar uma amostra de predição. Especificamente, a posição de uma amostra de referência usada para derivar uma amostra de predição pode ser especificada considerando a queda do modo de predição. Por exemplo, uma amostra de referência usada para derivar uma amostra de predição pode ser especificada com uso do índice de amostra de referência ildx.
[359] Nesse ponto, quando a queda do modo de intrapredição não é expressa por uma amostra de referência, uma amostra de predição pode ser gerada interpolando-se uma pluralidade de amostras de referência. Por exemplo, quando a queda do modo de intrapredição é um valor entre uma queda entre uma amostra de predição e uma primeira amostra de referência e uma queda entre uma amostra de predição e uma segunda amostra de referência, a amostra de predição pode ser adquirida interpolando-se a primeira amostra de referência e a segunda amostra de referência. Ou seja, quando uma linha angular que segue um ângulo de intrapredição não atravessa uma amostra de referência posicionada em um número inteiro pel, a amostra de predição pode ser adquirida interpolando-se amostras de referência adjacentes aos lados esquerdo e direito ou cima e baixo de uma posição em que a linha angular atravessa.
[360] A Equação 7 mostra um exemplo de aquisição de uma amostra de predição com base em amostras de referência.
[EQUAÇÃO 71 P(x,y) = ((32 — iface)/32) * Ref 1D(x + ildx + 1) + (irace/32) * Ref 1D(x + ildx + 2)
[361] Na Equação 7, P denota uma amostra de predição, e Ref 1D denota qualquer um dentre amostras de referência arranjadas de modo unidirecional. Nesse ponto, a posição de uma amostra de referência pode ser determinada pela posição (x, y) da amostra de predição e o índice ildx da amostra de referência.
[362] Quando a queda do modo de intrapredição pode ser expressa como uma amostra de referência, o parâmetro de valor de ponderação 1rfact é ajustado para o. Consequentemente, a Equação 7 pode ser simplificada conforme mostrado na Equação 8.
[EQUAÇÃO 8] P(x,y) = Ref 1D(x + ildx + 1)
[363] A intrapredição para o bloco atual pode ser realizada com base em uma pluralidade de modos de intrapredição. Por exemplo, um modo de intrapredição pode ser derivado para cada amostra de predição, e a amostra de predição pode ser derivada com base em um modo de intrapredição designado para cada amostra de predição.
[364] Alternativamente, um modo de intrapredição pode ser derivado para cada região, e intrapredição para cada região pode ser realizada com base no modo de intrapredição designado para cada região. Aqui, a região pode incluir pelo menos uma amostra. Pelo menos um dentre o tamanho e o formato da região podem ser determinados de modo adaptativo com base em pelo menos um dentre o tamanho, o formato e o modo de intrapredição do bloco atual. Alternativamente, pelo menos um dentre o tamanho e o formato da região pode ser pré-definido no codificador e no decodificador para ser independente do tamanho ou do formato de o bloco atual.
[365] Alternativamente, intrapredição pode ser realizada com base em cada de uma pluralidade de intrapredições, e uma amostra de predição final pode ser derivada com base em uma operação média ou uma operação de soma ponderada de uma pluralidade de amostras de predição adquiridas através da pluralidade de intrapredições. Por exemplo, uma primeira amostra de predição pode ser adquirida realizando-se intrapredição com base em um primeiro modo de intrapredição, e uma segunda amostra de predição pode ser adquirido realizando-se intrapredição com base em um segundo modo de intrapredição. Em seguida, uma amostra de predição final pode ser adquirida com base em uma operação média ou uma operação de soma ponderada da primeira amostra de predição e da segunda amostra de predição. Nesse ponto, um valor de ponderação designado para cada uma dentre a primeira amostra de predição e a segunda amostra de predição pode ser determinada considerando pelo menos um dentre a possibilidade ou não de o primeiro modo de intrapredição ser um modo de predição não angular/angular, a possibilidade ou não de o segundo modo de intrapredição ser um modo de predição não angular/angular, e um modo de intrapredição de um bloco vizinho.
[366] A pluralidade de modos de intrapredição pode ser uma combinação de um modo de intrapredição não angular e um modo de predição angular, uma combinação de modos de predição angular, ou uma combinação de modos de predição não angular.
[367] A Figura 33 é uma vista que mostra um exemplo de ângulos formados entre modos de intrapredição angulares e uma linha reta paralela ao eixo geométrico x.
[368] Conforme mostrado no exemplo da Figura 33, os modos de predição angular podem existir entre a direção diagonal esquerda de fundo e a direção diagonal direita superior. Descrevendo em termos de um ângulo formado pelo eixo geométrico x e o modo de predição angular, os modos de predição angular podem existir entre 45 graus (direção diagonal esquerda de fundo) e -135 graus (direção diagonal direita superior).
[369] Quando o bloco atual é um formato não quadrado, de acordo com o modo de intrapredição do bloco atual, pode haver um caso de derivação de uma amostra de predição com uso de uma amostra de referência mais distante da amostra de predição, em vez de uma amostra de referência mais próxima da amostra de predição, dentre as amostras de referência posicionadas na linha angular seguindo o ângulo de intrapredição.
[370] A Figura 34 é uma vista que mostra uma modalidade de aquisição de amostras de predição quando o bloco atual é um formato não quadrado.
[371] Por exemplo, conforme mostrado no exemplo da Figura 34 (a), presume-se que o bloco atual seja um formato não quadrado cuja largura é maior do que a altura, e o modo de intrapredição do bloco atual é um modo de intrapredição angular que tem um ângulo entre O e 45 graus. No caso acima, quando a amostra de predição A próxima à coluna direita do bloco atual é derivada, pode haver um caso de uso de amostra de referência esquerda L distante da amostra de predição, em vez da amostra de referência superior T próxima à amostra de predição, dentre as amostras de referência posicionadas em um modo angular seguindo o ângulo.
[372] Como outro exemplo, conforme mostrado no exemplo da Figura 34 (b), presume-se que o bloco atual seja um formato não quadrado cuja altura é maior do que a largura, e o modo de intrapredição do bloco atual é um modo de intrapredição angular que tem um ângulo entre -90 e -135 graus. No caso acima, quando a amostra de predição A próximo à fileira de fundo do bloco atual é derivada, pode haver um caso de uso de amostra de referência superior T distante da amostra de predição, em vez da amostra de referência esquerda L próxima à amostra de predição, dentre as amostras de referência posicionadas em um modo angular seguindo o ângulo.
[373] Para solucionar o problema descrito acima, quando o bloco atual é um formato não quadrado, o modo de intrapredição do bloco atual pode ser substituído por um modo de intrapredição da direção oposta. Consequentemente, modos de predição angular que tem um ângulo maior ou menor do que o dos modos de predição angular mostrados na Figura 34 podem ser usados para um bloco não em formato de quadrado. O modo de intrapredição angular como esse pode ser definido como um modo de intrapredição de ângulo amplo. O modo de intrapredição de ângulo amplo representa um modo de intrapredição angular que não pertence à faixa de 45 a -135 graus.
[374] A Figura 35 é uma vista que mostra modos de intrapredição de ângulo amplo.
[375] No exemplo mostrado na Figura 35, modos de intrapredição com um índice de -l a -l14 e modos de intrapredição com um índice de 67 a 80 representam modos de intrapredição de ângulo amplo.
[376] Embora 14 modos de intrapredição de ângulo amplo (-1 a -14) que têm um ângulo maior do que 45 graus e 14 modos de intrapredição de ângulo amplo (67 a 80) que tenham um ângulo menor do que -135 graus são mostrados na Figura 35, um número maior ou menor de modos de intrapredição de ângulo amplo pode ser definido.
[377] Quando um modo de intrapredição de ângulo amplo é usado, o comprimento de amostras de referência superiores pode ser ajustado para 2W+1, e o comprimento de amostras de referência esquerdas pode ser ajustado para 2H +
1.
[378] Visto que um modo de intrapredição de ângulo amplo é usado, a amostra A mostrada na Figura 34 (a) pode ser prevista com uso de amostra de referência T, e amostra A mostrada na Figura 34 (b) pode ser prevista com uso da amostra de referência L.
[379] Adicionando-se modos de intrapredição e N modos de intrapredição de ângulo amplo existentes, um total de 67 + N modos de intrapredição pode ser usado. Por exemplo, a Tabela 6 mostra parâmetros de intradireção de modos de intrapredição quando 20 modos de intrapredição de ângulo amplo são definidos. [TABELA 6] reasame pop e pp pe EEE) Sad a a AAA e race e e TJ ET ee e
O e a a AAA AAA e e ses pe tre tr E e ses EPE OP PR Rr e [premoaerera [55 156 f57 Ts so Too Ja fe es | mese E poe e E ore E E e [prsamsaemmems [ea [os fee Jor fe Je Te Tre] mate Pê E e E e je je o e prsanssemes [5 [1 5 Te TATO eee e e E e
[380] Quando o bloco atual é um formato não quadrado e o modo de intrapredição do bloco atual adquiridos na etapa S2802 pertence a uma faixa de transformada, o modo de intrapredição do bloco atual pode ser transformado em um modo de intrapredição de ângulo amplo. A faixa de transformada pode ser determinada com base em pelo menos um dentre o tamanho, o formato e a razão do bloco atual. Aqui, a razão pode representar uma razão de largura para altura do bloco atual.
[381] Quando o bloco atual é um formato não quadrado cuja largura é maior do que a altura, a faixa de transformada pode ser ajustada a partir de um índice de modo de intrapredição (por exemplo, 66) da direção diagonal direita superior (um índice do modo de intrapredição na direção diagonal direita superior - N). Aqui, N pode ser determinado com base na razão do bloco atual. Quando o modo de intrapredição do bloco atual pertence à faixa de transformada, o modo de intrapredição pode ser transformado em um modo de intrapredição de ângulo amplo. A transformada pode ser a subtração de um valor pré-definido do modo de intrapredição, e o valor pré-definido pode ser o número total (por exemplo, 67) de modos de intrapredição que excluem os modos de intrapredição de ângulo amplo.
[382] De acordo com a modalidade descrita acima, o 66º a 53º modos de intrapredição podem ser transformados em -1º a -14º modos de intrapredição de ângulo amplo, respectivamente.
[383] Quando o bloco atual é um formato não quadrado cuja altura é maior do que a largura, a faixa de transformada pode ser ajustada a partir de um índice de modo de intrapredição (por exemplo, 2) da direção diagonal esquerda de fundo (um índice do modo de intrapredição na direção diagonal esquerda de fundo + M). Aqui, M pode ser determinado com base na razão do bloco atual. Quando o modo de intrapredição do bloco atual pertence à faixa de transformada, o modo de intrapredição pode ser transformado em um modo de intrapredição de ângulo amplo. A transformada pode ser a adição de um valor pré-definido ao modo de intrapredição, e o valor pré-definido pode ser o número total (por exemplo, 65) de modos de intrapredição angulares que excluem os modos de intrapredição de ângulo amplo.
[384] De acordo com a modalidade descrita acima, 2º a 15º modos de intrapredição podem ser transformados em 67º a 80º modos de intrapredição de ângulo amplo, respectivamente.
[385] Doravante, modos de intrapredição pertencentes à faixa de transformada serão denominados como modos de predição de intrassubstituição de ângulo amplo.
[386] A faixa de transformada pode ser determinada com base na razão do bloco atual. Por exemplo, as Tabelas 7 e 8 mostram uma faixa de transformada quando 35 modos de intrapredição e 67 modos de intrapredição são definidos excluindo os modos de intrapredição de ângulo amplo, respectivamente.
[TABELA 7] [TABELA 8]
[387] Conforme mostrado nos exemplos das Tabelas 7 e 8, o número de modos de predição de intrassubstituição de ângulo amplo pertencentes à faixa de transformada pode variar de acordo com a razão do bloco atual.
[388] Visto que os modos de intrapredição de ângulo amplo são usados adicionalmente aos modos de intrapredição existentes, recursos necessários para codificar os modos de intrapredição de ângulo amplo aumentam, e desse modo, a eficiência de codificação pode ser diminuída. Consequentemente, a eficiência de codificação pode ser aprimorada codificando-se modos de intrapredição de substituição para os modos de intrapredição de ângulo amplo, em vez de codificar os modos de intrapredição de ângulo amplo como os mesmos são.
[389] Por exemplo, quando o bloco atual é codificado com uso do 67º modo de intrapredição de ângulo amplo, o 2º modo de intrapredição, que é o modo de intrapredição de substituição do 67º modo de intrapredição de ângulo amplo, pode ser codificado com uso do modo de intrapredição do bloco atual. Adicionalmente, quando o bloco atual é codificado com uso do -1º modo de intrapredição de ângulo amplo, o 66º modo de intrapredição, que é o modo de intrapredição de substituição do -1º modo de intrapredição de ângulo amplo, pode ser codificado com uso do modo de intrapredição do bloco atual.
[390] O decodificador pode decodificar o modo de intrapredição do bloco atual e determinar a possibilidade do modo de intrapredição decodificado pertence à faixa de transformada. Quando o modo de intrapredição decodificado é um modo de intrapredição de substituição de ângulo amplo, o modo de intrapredição pode ser transformado no modo de intrapredição de ângulo amplo.
[391] Alternativamente, quando o bloco atual é codificado com uso de o modo de intrapredição de ângulo amplo, o modo de intrapredição de ângulo amplo pode ser codificado como o mesmo é.
[392] A codificação do modo de intrapredição pode ser realizada com base na lista de MPM descrita acima. Especificamente, quando um bloco vizinho é codificado com uso de um modo de intrapredição de ângulo amplo, o MPM pode ser ajustado com base em um modo de intrapredição de substituição de ângulo amplo correspondente ao modo de intrapredição de ângulo amplo. Por exemplo, quando um bloco vizinho é codificado com uso de um modo de intrapredição de ângulo amplo, a variável candIntraPredX (X é Um ou B) pode ser ajustada para o modo de intrapredição de substituição de ângulo amplo.
[393] Quando um bloco de predição é gerado como um resultado de realização da intrapredição, amostras de predição podem ser atualizadas com base na posição de cada uma das amostras de predição incluídas no bloco de predição. O método de atualização como esse pode ser denominado como método de predição intraponderado com base em uma posição de amostra ou Combinação de IntraPredição Dependente de Posição (PDPC).
[394] A possibilidade ou não de usar a PDPC pode ser determinada considerando o modo de intrapredição do bloco atual, a linha de amostra de referência do bloco atual, o tamanho do bloco atual ou um componente de cor. Por exemplo, quando o modo de intrapredição do bloco atual é pelo menos um dentre de um modo plano, um modo de DC, um modo de direção vertical, um modo de direção horizontal, um modo que tem um valor de índice menor do que isso ou o modo de direção vertical, e um modo que tem um valor de índice maior do que o do modo de direção horizontal, a PDPC pode ser usada. Alternativamente, somente quando pelo menos uma dentre a largura e a altura do bloco atual é maior do que 4, a PDPC pode ser usada. Alternativamente, somente quando o índice da linha de foto de referência do bloco atual é O, a PDPC pode ser usada. Alternativamente, somente quando o índice da linha de foto de referência do bloco atual é igual ou maior do que um valor pré-definido, a PDPC pode ser usada. Alternativamente, PDPC pode ser usada somente para um componente de luminância. Alternativamente, dependendo da possibilidade ou não de duas ou mais das condições listadas acima são atendidas, a possibilidade ou não de usar a PDPC pode ser determinada.
[395] Como outro exemplo, informações que indicam a possibilidade ou não de a PDPC ser aplicada pode ser sinalizada através de um fluxo de bits.
[396] Quando uma amostra de predição é adquirida através da mostra de intrapredição, uma amostra de referência usada para corrigir a amostra de predição pode ser determinada com base na posição da amostra de predição adquirida. Para conveniência de explicação, na modalidade descrita abaixo, uma amostra de referência usada para corrigir uma amostra de predição é denominada como amostra de referência de PDPC. Adicionalmente, uma amostra de predição adquirida através de intrapredição é denominada como primeira amostra de predição, e uma amostra de predição adquirida corrigindo-se a primeira amostra de predição é denominada como segunda amostra de predição.
[397] A Figura 36 é uma vista que mostra uma modalidade de aplicação de PDPC.
[398] A primeira amostra de predição pode ser corrigida com uso de pelo menos uma amostra de referência de PDPC. A amostra de referência de PDPC pode incluir pelo menos um dentre uma amostra de referência adjacente ao canto esquerdo superior do bloco atual, uma amostra de referência superior posicionada no topo do bloco atual, e uma amostra de referência esquerda posicionada no lado esquerdo do bloco atual.
[399] Pelo menos uma dentre as amostras de referência pertencentes à linha de amostra de referência do bloco atual pode ser ajustada como a amostra de referência de PDPC. Alternativamente, independentemente da linha de amostra de referência do bloco atual, pelo menos uma dentre as amostras de referência pertencentes à linha de amostra de referência que tem o índice O pode ser ajustada como a amostra de referência de PDPC. Por exemplo, embora a primeira amostra de predição seja adquirida com uso de uma amostra de referência incluída em uma linha de amostra de referência do índice 1 ou o índice 2, a segunda amostra de predição pode ser adquirida com uso de uma amostra de referência incluída na linha de amostra de referência do índice O.
[400] O número ou posições das amostras de referência de PDPC usadas para corrigir a primeira amostra de predição podem ser determinados considerando pelo menos um dentre o modo de intrapredição do bloco atual, o tamanho do bloco atual, o formato do bloco atual e a posição da primeira amostra de predição.
[401] Por exemplo, quando o modo de intrapredição do bloco atual é um modo plano ou um modo de DC, a segunda amostra de predição pode ser adquirida com uso de uma amostra de referência superior e uma amostra de referência esquerda. Nesse ponto, a amostra de referência superior pode ser uma amostra de referência vertical para a primeira amostra de predição (por exemplo, uma amostra de referência da mesma coordenada x), e a amostra de referência esquerda pode ser uma amostra de referência horizontal à primeira amostra de predição (por exemplo, uma amostra de referência da mesma coordenada y).
[402] Quando o modo de intrapredição do bloco atual é um modo de intrapredição de direção horizontal, a segunda amostra de predição pode ser adquirida com uso de uma amostra de referência superior. Nesse ponto, a amostra de referência superior pode ser uma amostra de referência vertical para a primeira amostra de predição.
[403] Quando o modo de intrapredição do bloco atual é um modo de intrapredição de direção vertical, a segunda amostra de predição pode ser adquirida com uso de uma amostra de referência esquerda. Nesse ponto, a amostra de referência esquerda pode ser uma amostra de referência horizontal para a primeira amostra de predição.
[404] Quando o modo de intrapredição do bloco atual é uma direção diagonal esquerda de fundo modo de intrapredição ou uma direção diagonal direita superior modo de intrapredição, a segunda amostra de predição pode ser adquirida com base em uma amostra de referência esquerda superior, uma amostra de referência superior e uma amostra de referência esquerda. A amostra de referência esquerda superior pode ser uma amostra de referência adjacente ao canto esquerdo superior do bloco atual (por exemplo, uma amostra de referência na posição de (-l1, -1)). A amostra de referência superior pode ser uma amostra de referência posicionada na direção diagonal direita superior da primeira amostra de predição, e a amostra de referência esquerda pode ser uma amostra de referência posicionada na direção diagonal esquerda de fundo da primeira amostra de predição.
[405] Em resumo, quando a posição da primeira amostra de predição é (x, y), R (-1, -1) pode ser ajustada como a amostra de referência esquerda superior, e R (x + y + 1, -1) ou R (x, -l1) pode ser ajustado como a amostra de referência superior. Adicionalmente, R (-1, x + y + 1) ou R (- 1, y) pode ser ajustada como a amostra de referência esquerda.
[406] Como outro exemplo, a posição da amostra de referência esquerda ou a amostra de referência superior pode ser determinada considerando pelo menos um dentre o formato do bloco atual e a possibilidade ou não de o intramodo de ângulo amplo ser aplicado.
[407] Especificamente, quando o modo de intrapredição do bloco atual é um modo de intrapredição de ângulo amplo, uma amostra de referência separada de uma amostra de referência posicionada na direção diagonal da primeira amostra de predição tanto quanto um deslocamento pode ser ajustada como a amostra de referência de PDPC. Por exemplo,
amostra de referência superior R (x + y + k + 1, -1) e amostra de referência esquerda R (-l1, x + y - k + 1) pode ser ajustada como amostras de referência de PDPC.
[408] Nesse ponto, o deslocamento k pode ser determinado com base em um modo de intrapredição de ângulo amplo. Equações 9 e 10 mostram um exemplo de derivação de um deslocamento com base em um modo de intrapredição de ângulo amplo.
[EQUAÇÃO 9] k = CurrintraMode — 66if (CurrintraMode > 66) [EoquAÇÃO 10) k = —CurriIntraMode if (CurrIntraMode < O)
[409] A segunda amostra de predição pode ser determinada com base em uma operação de soma ponderada da primeira amostra de predição e das amostras de referência de PDPC. Por exemplo, a segunda amostra de predição pode ser adquirida com base na Equação 11 mostrada abaixo.
[EQUAÇÃO 11] pred(x,y) = (xL* R, + wT * Rf7 — WTL * Rr, + (64 — wL — wWT + wTL) * pred(x,y) +32) »6
[410] Na Equação 11, Rr denota uma amostra de referência esquerda, Rr; denota uma amostra de referência superior, e Rm denota uma amostra de referência esquerda superior. pred (x, y) denota uma amostra de predição na posição de (x, y). wL denota um valor de ponderação designado para a amostra de referência esquerda, wTr denota um valor de ponderação designado para a amostra de referência superior, e wTL denota um valor de ponderação designado para a amostra de referência esquerda superior. Os valores de ponderação designados para a primeira amostra de predição podem ser derivados subtraindo-se valores de ponderação designados para as amostras de referência do valor máximo. Para conveniência de explicação, um valor de ponderação designado para uma amostra de referência de PDPC é denominado como valor de ponderação de PDPC.
[411] Um valor de ponderação designado para cada amostra de referência pode ser determinado com base em pelo menos um dentre o modo de intrapredição do bloco atual e a posição da primeira amostra de predição.
[412] Por exemplo, pelo menos um dentre wL, wT e wTL pode ter uma relação proporcional ou inversamente proporcional com pelo menos um dentre o valor de coordenada de eixo geométrico x e o valor de coordenada de eixo geométrico y da amostra de predição. Alternativamente, pelo menos um dentre wL, wT e wIL pode ter uma relação proporcional ou inversamente proporcional com pelo menos uma dentre a largura e a altura do bloco atual.
[413] Quando o modo de intrapredição do bloco atual é um modo de DC, valores de ponderação de PDPC podem ser determinados conforme mostrado na Equação 12.
[EouAÇÃO 12] wT = 32>((y<«1)> transferência) wL = 32> (& «<«1)> transferência) wTL = (wWL >4) + (WT > 4)
[414] Na Equação 12, x e y denotam a posição da primeira amostra de predição.
[415] A transferência variável usada na operação de transferência de bits na Equação 12 pode ser derivada com base na largura ou na altura do bloco atual. Por exemplo, a transferência variável pode ser derivada com base na Equação 13 ou 14 mostradas abaixo. [EQUAÇÃO 13] transferência = (log](largura) — 2 + log2)(altura) — 2 + 2) »2 [EQUAÇÃO 14] transferência = ((Log2(nTbW) + Log2(nNTbH) — 2) > 2)
[416] Alternativamente, a transferência variável pode ser derivada considerando o parâmetro de intradireção do bloco atual.
[417] O número de parâmetros ou tipos de parâmetro usados para derivar transferência variável pode ser determinado de modo diferente de acordo com o modo de intrapredição do bloco atual. Por exemplo, quando o modo de intrapredição do bloco atual é um modo plano, um modo de DC, um modo de direção vertical ou um modo de direção horizontal, transferência variável pode ser derivada com uso da largura e na altura do bloco atual conforme mostrado no exemplo de Equação 13 ou Equação 14. Quando o modo de intrapredição do bloco atual é um modo de intrapredição que tem um índice maior do que o do modo de intrapredição de direção vertical, a transferência variável pode ser derivada com uso da altura e do parâmetro de intradireção do bloco atual. Quando o modo de intrapredição do bloco atual é um modo de intrapredição que tem um índice menor do que o do modo de intrapredição horizontal, a transferência variável pode ser derivada com uso da largura e do parâmetro de intradireção do bloco atual.
[418] Quando o modo de intrapredição do bloco atual é um modo plano, o valor de wIL pode ser ajustado para
0. wL e wI podem ser derivados com base na Equação 15 mostrada abaixo.
[EQUAÇÃO 15) wT[y] = 32 >((y < 1) > nEscala) wL[x] = 32 > ((x < 1) > nEscala)
[419] Quando o modo de intrapredição do bloco atual é um modo de intrapredição de direção horizontal, wT pode ser ajustado para 0, e wWIL e wL podem ser ajustados igualmente. De modo contrário, quando o modo de intrapredição do bloco atual é um modo de intrapredição de direção vertical, wL pode ser ajustado para 0, e wIL e w" podem ser ajustados igualmente.
[420] Quando o modo de intrapredição do bloco atual é um modo de intrapredição que se direciona para a direita superior que tem um valor de índice maior do que o do modo de intrapredição da direção vertical, valores de ponderação de PDPC podem ser derivados conforme mostrado na Equação 16.
[EQUAÇÃO 16] wT = 16((y <« 1) » transferência) wL = 16((x < 1) » transferência) wTL = 0
[421] De modo contrário, quando o modo de intrapredição do bloco atual é um modo de intrapredição que se direciona para a esquerda de fundo que tem um valor de índice menor do que o do modo de intrapredição da direção horizontal, os valores de ponderação de PDPC podem ser derivados conforme mostrado na Equação 17.
[EQUAÇÃO 17] wT16 >» ((y < 1) » transferência) wL = 16> ((x <1) > transferência) wTL = O
[422] Conforme mostrado na modalidade descrita acima, valores de ponderação de PDPC podem ser determinados com base na posição x e y da amostra de predição.
[423] Como outro exemplo, um valor de ponderação designado para cada uma das amostras de referência de PDPC pode ser determinado pela unidade de sub-bloco. As amostras de predição incluídas em um sub-bloco podem compartilhar os mesmos valores de ponderação de PDPC.
[424] O tamanho de um sub-bloco, que é uma unidade básica para determinar um valor de ponderação, pode ser pré-definido no codificador e no decodificador. Por exemplo, um valor de ponderação pode ser determinado para cada sub-bloco de um tamanho de 2x2 ou 4x4.
[425] Alternativamente, o tamanho, o formato ou o número de sub-blocos podem ser determinados de acordo com o tamanho ou o formato do bloco atual. Por exemplo, independentemente do tamanho de um bloco de conversão em código, o bloco de conversão em código pode ser dividido em quatro sub-blocos. Alternativamente, o bloco de conversão em código pode ser dividido em 4 ou 16 sub-blocos de acordo com o tamanho do bloco de conversão em código.
[426] Alternativamente, o tamanho, o formato, ou o número de sub-blocos podem ser determinados com base no modo de intrapredição do bloco atual. Por exemplo, quando o modo de intrapredição do bloco atual está na direção horizontal, N colunas (ou N fileiras) são ajustadas como um sub-bloco, enquanto, quando o modo de intrapredição do bloco atual está na direção vertical, N fileiras (ou N colunas) podem ser ajustadas como um sub-bloco.
[427] As Equações 18 a 20 mostram exemplos de determinação de um valor de ponderação de PDPC para um sub-
bloco de um tamanho de 2x2. A Equação 18 mostra um caso no qual o modo de intrapredição do bloco atual é um modo de DC.
[EQUAÇÃO 18] wT = 32>» ((o& «log2K)) >» log2K) « 1) > transferência) wl = 32> ((a <«log2K)) > log2K) « 1) > transferência) wTL = (wL > 4) + (WT > 4)
[428] Na Equação 18, K pode ser determinado com base no tamanho de um sub-bloco.
[429] A Equação 19 mostra um exemplo no qual o modo de intrapredição do bloco atual é um modo de intrapredição que se direciona para a direita superior que tem um valor de índice maior do que o do modo de intrapredição da direção vertical.
[EouAÇÃO 19] wWT = 16» ((o& <«log2K)) > log2K)) « 1) > transferência) wL = 16> ((a <«log2K)) > log2K)) « 1) > transferência) wTL = 0
[430] A Equação 20 mostra um exemplo no qual o modo de intrapredição do bloco atual é um modo de intrapredição que se direciona para a esquerda de fundo que tem um valor de índice menor do que o do modo de intrapredição da direção horizontal.
[EoquAÇÃO 20] wT = 16» ((o& <«log2K)) > log2K)) « 1) > transferência) wLl = 16> ((a <«log2K)) >» log2K)) « 1) > transferência) wTL = O
[431] Nas Equações 18 a 20, x e y denota a posição de uma amostra de referência dentro de um sub-bloco. A amostra de referência pode ser qualquer um dentre uma amostra posicionada na esquerda superior do sub-bloco, uma amostra posicionada no centro do sub-bloco e uma amostra posicionada na direita de fundo do sub-bloco.
[432] As Equações 21 a 23 mostram exemplos de determinação de um valor de ponderação de PDPC para um sub- bloco de um tamanho de 4x4. A Equação 21 mostra um exemplo no qual o modo de intrapredição do bloco atual é um modo de DC.
[EQUAÇÃO 21] wT = 32> ((& «2))>»2)« 1) > transferência) wL = 32> ((a «2))»2)« 1) > transferência) wTL = (wWL>4) + (WT >4)
[433] A Equação 22 mostra um exemplo no qual o modo de intrapredição do bloco atual é um modo de intrapredição que se direciona para a direita superior que tem um valor de índice maior do que o do modo de intrapredição da direção vertical.
[Equação 22] wT = 16> ((o& «2))»>»2)« 1) > transferência) wl = 16> ((a «2))>»2)« 1) > transferência) wTL = 0
[434] A Equação 23 mostra um exemplo no qual o modo de intrapredição do bloco atual é um modo de intrapredição que se direciona para a esquerda de fundo que tem um valor de índice menor do que o do modo de intrapredição da direção horizontal.
[Equação 23] wT = 16> ((& «<«2))»>»2)« 1) > transferência) wL = 16> ((a «2))»2)« 1) > transferência) wTL = 0
[435] Nas modalidades descritas acima, foi descrito que valores de ponderação de PDPC são determinados considerando as posições das amostras de predição incluídas em uma primeira amostra de predição ou um sub-bloco. Os valores de ponderação de PDPC podem ser determinados considerando-se adicionalmente o formato do bloco atual.
[436] Por exemplo, no caso de um modo de DC, o método de derivação de um valor de ponderação de PDPC pode variar dependendo da possibilidade de o bloco atual ser um formato não quadrado cuja largura é maior do que a altura ou um formato não quadrado cuja altura é maior do que a largura.
[437] A Equação 24 mostra um exemplo de derivação de um valor de ponderação de PDPC quando o bloco atual é um formato não quadrado cuja largura é maior do que a altura, e Equação 25 mostra um exemplo de derivação de um valor de ponderação de PDPC quando o bloco atual é um formato não quadrado cuja altura é maior do que a largura.
[EQUAÇÃO 24] wT = 32>((y<«1)> transferência) wL = 32 > (x > transferência) wTL = (wWL>4) + (WT >4) [EQUAÇÃO 25) wT > (y > transferência) wLl = 32>((x<«1)> transferência) wTL = (wWwL>4) + (WT >4)
[438] Quando o bloco atual é um formato não quadrado, o bloco atual pode ser previsto com uso de um modo de intrapredição de ângulo amplo. Desse modo, mesmo quando o modo de intrapredição de ângulo amplo é aplicado, a primeira amostra de predição pode ser atualizada aplicando-se a PDPC.
[439] Quando a intrapredição de ângulo amplo é aplicada ao bloco atual, o valor de ponderação de PDPC pode ser determinado considerando o formato do bloco de conversão em código.
[440] Por exemplo, quando o bloco atual é um formato não quadrado cuja largura é maior do que a altura, de acordo com a posição da primeira amostra de predição, pode haver um caso no qual a amostra de referência superior posicionada na direita superior da primeira amostra de predição é mais próxima da primeira amostra de predição do que a amostra de referência esquerda posicionada na esquerda de fundo da primeira amostra de predição. Consequentemente, ao corrigir a primeira amostra de predição, o valor de ponderação aplicado à amostra de referência superior pode ser ajustado para ter um valor maior do que o valor de ponderação aplicado à amostra de referência esquerda.
[441] De modo contrário, quando o bloco atual é um formato não quadrado cuja altura é maior do que a largura, de acordo com a posição da primeira amostra de predição, pode haver um caso no qual a amostra de referência esquerda posicionada na esquerda de fundo da primeira amostra de predição é mais próxima da primeira amostra de predição do que a amostra de referência superior posicionada na direita superior da primeira amostra de predição. Consequentemente, ao corrigir a primeira amostra de predição, o valor de ponderação aplicada à amostra de referência esquerda pode ser ajustado para ter um valor maior do que o valor de ponderação aplicado à amostra de referência superior.
[442] Equação 26 mostra um exemplo de derivação de um valor de ponderação de PDPC quando o modo de intrapredição do bloco atual é um modo de intrapredição de ângulo amplo que tem um índice maior do que 66. [EQUAÇÃO 26] wT = 16>(y> transferência) wL = 16> ((x<«1)> transferência) wTL = O
[443] A Equação 27 mostra um exemplo de derivação de um valor de ponderação de PDPC quando o modo de intrapredição do bloco atual é um modo de intrapredição de ângulo amplo que tem um índice menor do que O.
[EQUAÇÃO 27] wT = 16>((y <«1)> transferência) wL = 16 > (x > transferência) wTL = 0
[444] O valor de ponderação de PDPC pode ser determinado com base na razão do bloco atual. A razão do bloco atual representa uma razão de largura para altura do bloco atual, e pode ser definida conforme mostrado na Equação 28.
[EQUAÇÃO 28] whRazão = CUlargura/CUaltura
[445] De acordo com o modo de intrapredição do bloco atual, o método de derivação do valor de ponderação de PDPC pode ser determinado de várias maneiras.
[446] Por exemplo, as Equações 29 e 30 mostram um exemplo de derivação de um valor de ponderação de PDPC quando o modo de intrapredição do bloco atual é um modo de DC. Especificamente, Equação 29 é um exemplo de um caso em que o bloco atual é um formato não quadrado cuja largura é maior do que a altura, e a Equação 30 é um exemplo de um caso em que o bloco atual é um formato não quadrado cuja altura é maior do que a largura.
[EQUAÇÃO 29]
wT = 32>((y<«1)> transferência) wL = 32 > (((x < 1) > whRazão) > transferência) wTL = (wL > 4) + (WT > 4) [EQUAÇÃO 30] wT = 32>(((<«1)>1/whRazão) > transferência) wL = 32>((x <«1) > transferência) wTL = (wWL > 4) + (WT > 4)
[447] Equação 31 mostra um exemplo de derivação de um valor de ponderação de PDPC quando o modo de intrapredição do bloco atual é um modo de intrapredição de ângulo amplo que tem um índice maior do que 66.
[Equação 31] wT = 16>(((y<«1)>1/whRazão) > transferência) wL = 16> ((x <1) > transferência) wTL = O
[448] A Equação 32 mostra um exemplo de derivação de um valor de ponderação de PDPC quando o modo de intrapredição do bloco atual é um modo de intrapredição de ângulo amplo que tem um índice menor do que 0.
[EQUAÇÃO 32] wT = 16>((y <«1)> transferência) wl = 16> (((x < 1) > whRazão) > transferência) wTL = O
[449] Um modo de predição pode ser aplicado ao bloco atual uma pluralidade de vezes, ou uma pluralidade de modos de predição pode ser redundantemente aplicado ao bloco atual. Assim sendo, um método de predição com uso de um modo de predição homogêneo ou heterogêneo pode ser denominado como modo de predição combinado (ou Modo de Predição de Múltiplas Hipóteses).
[450] Informações que indicam a possibilidade de o modo de predição combinada ser aplicado ao bloco atual podem ser sinalizadas através de um fluxo de bits. Por exemplo, as informações podem ser uma sinalização de 1 bit.
[451] No modo de predição combinado, um primeiro bloco de predição pode ser gerado com base no primeiro modo de predição, e um segundo bloco de predição pode ser gerado com base no segundo modo de predição. Então, um terceiro bloco de predição pode ser gerado com base em uma operação de soma ponderada do primeiro bloco de predição e do segundo bloco de predição. O terceiro bloco de predição pode ser ajustado como o bloco de predição final do bloco atual.
[452] O modo de predição combinado inclui pelo menos um dentre um modo que combina um modo de mescla e um modo de mescla, um modo que combina interpredição e intrapredição, um modo que combina um modo de mescla e um vetor de movimento modo de predição, e um modo que combina um modo de mescla e intrapredição.
[453] No modo que combina um modo de mescla e um modo de mescla, predição de compensação de movimento pode ser realizada com uso de uma pluralidade de candidatos de mescla. Especificamente, um primeiro bloco de predição pode ser gerado com uso de um primeiro candidato de mescla, e um segundo bloco de predição pode ser gerado com uso de um segundo candidato de mescla. Um terceiro bloco de predição pode ser gerado com base em uma operação de soma ponderada do primeiro bloco de predição e do segundo bloco de predição.
[454] Informações para especificar o primeiro candidato de mescla e o segundo candidato de mescla podem ser sinalizadas através de um fluxo de bits, respectivamente. Por exemplo, as informações de índice merge idx para especificar o primeiro candidato de mescla e as informações de índice merge 2nd idx para especificar o segundo candidato de mescla podem ser sinalizadas através de um fluxo de bits. O segundo candidato de mescla pode ser determinado com base nas informações de índice merge 2nd idx e nas informações de índice merge idx.
[455] Informações de índice merge idx especificam qualquer um dentre os candidatos de mescla incluídos na lista de candidatos de mescla.
[456] Informações de índice merge 2nd idx podem especificar qualquer um dentre os candidatos de mescla remanescentes excluindo o candidato de mescla especificado por merge idx. Consequentemente, quando o valor de merge 2nd idx é menor do que o de merge idx, um candidato de mescla cujo índice é o valor de merge 2nd idx pode ser ajustado como o segundo candidato de mescla. Quando o valor de merge 2nd idx é igual ou maior do que o valor de merge idx, um candidato de mescla que tem um valor obtido adicionando-se 1 ao valor de merge 2nd idx como um índice pode ser ajustado como o segundo candidato de mescla.
[457] Alternativamente, o segundo candidato de mescla pode ser especificado considerando a ordem de busca de blocos candidatos.
[458] A Figura 37 é uma vista que mostra um exemplo no qual um segundo candidato de mescla é especificado considerando a ordem de busca de blocos candidatos.
[459] No exemplo mostrado na Figura 37, índices marcados em amostras vizinhas e amostras não vizinhas indicam a ordem de busca de blocos candidatos. Por exemplo, blocos candidatos podem ser sequencialmente buscados da posição AO à posição AlA4.
[460] Quando o bloco AM4 é selecionado como o primeiro candidato de mescla, um candidato de mescla derivado de um bloco candidato que tem uma ordem de busca próximo a A4 pode ser especificado como o segundo candidato de mescla. Por exemplo, um candidato de mescla derivado de AS pode ser selecionado como o segundo candidato de mescla. Quando o bloco candidato na posição AS não pode ser usado como um candidato de mescla, um candidato de mescla derivado de um próximo bloco candidato pode ser selecionado como o segundo candidato de mescla.
[461] O primeiro candidato de mescla e o segundo candidato de mescla pode ser selecionado dentre candidatos de mescla derivados de blocos não vizinhos.
[462] A Figura 38 é uma vista que mostra um exemplo no qual um primeiro candidato de mescla e um segundo candidato de mescla são selecionados dentre candidatos de mescla derivados de blocos não vizinhos.
[463] Conforme mostrado no exemplo da Figura 38 candidatos de mescla derivados de um primeiro bloco candidato e um segundo bloco candidato que não são adjacentes ao bloco atual pode ser selecionado como o primeiro candidato de mescla e o segundo candidato de mescla, respectivamente. Nesse ponto, a linha de bloco a qual o primeiro bloco candidato pertence e a linha de bloco a qual o segundo bloco candidato pertence pode ser diferente. Por exemplo, o primeiro candidato de mescla pode ser derivado de qualquer um dentre blocos candidatos A5 a AlO0, e o segundo candidato de mescla pode ser derivado de qualquer um dentre os blocos candidatos All a AlS5.
[464] Alternativamente, o mesmo pode ser ajustado de modo que o primeiro bloco candidato e o segundo bloco candidato não sejam incluídos na mesma linha (por exemplo, fileira ou coluna).
[465] Como outro exemplo, o segundo candidato de mescla pode ser especificado com base no primeiro candidato de mescla. Nesse ponto, o primeiro candidato de mescla pode ser especificado pelas informações de índice merge idx sinalizado a partir de um fluxo de bits. Por exemplo, um candidato de mescla adjacente ao primeiro candidato de mescla pode ser especificado como o segundo candidato de mescla. Aqui, o candidato de mescla adjacente ao primeiro candidato de mescla pode significar um candidato de mescla que tem uma diferença de índice de 1 em relação ao primeiro candidato de mescla. Por exemplo, um candidato de mescla que tem um valor de índice de merge idx+l pode ser ajustado como o segundo candidato de mescla. Nesse ponto, quando o valor de merge idx+l é maior do que o valor de índice máximo (ou quando o valor de índice do primeiro candidato de mescla é o índice máximo), um candidato de mescla que tem um valor de índice de merge idx-l1 ou um candidato de mescla que tem um valor de índice de um valor pré-definido (por exemplo, 0) pode ser ajustado como o segundo candidato de mescla.
[466] Alternativamente, o candidato de mescla adjacente ao primeiro candidato de mescla pode significar um candidato de mescla derivado de um bloco candidato espacialmente adjacente a um bloco candidato usado para derivar o primeiro candidato de mescla. Aqui, o bloco candidato vizinho do bloco candidato pode significar um bloco adjacente ao bloco candidato na esquerda, direita, topo, fundo ou direção diagonal.
[467] Como outro exemplo, o segundo candidato de mescla pode ser especificado com base em informações de movimento do primeiro candidato de mescla. Por exemplo, um candidato de mescla que compartilha a mesma foto de referência com o primeiro candidato de mescla pode ser selecionado como o segundo candidato de mescla. Quando há uma pluralidade de candidatos de mescla que compartilha a mesma foto de referência com o primeiro candidato de mescla, um candidato de mescla que tem o menor índice dentre a pluralidade de candidatos de mescla ou um candidato de mescla que tem a menor diferença de índice em relação ao primeiro candidato de mescla pode ser selecionado como o segundo candidato de mescla. Alternativamente, o segundo candidato de mescla pode ser selecionado com base nas informações de índice que especificam qualquer um dentre a pluralidade de candidatos de mescla.
[468] Alternativamente, quando o primeiro candidato de mescla é predição unidirecional de uma primeira direção, um candidato de mescla incluindo informações de movimento em uma segunda direção pode ser ajustado como o segundo candidato de mescla. Por exemplo, quando o primeiro candidato de mescla tem informações de movimento de direção LO, um candidato de mescla que tem informações de movimento de direção L1 pode ser selecionado como o segundo candidato de mescla. Quando há uma pluralidade de candidatos de mescla que têm informações de movimento de direção Ll1, um candidato de mescla que tem o menor índice ou um candidato de mescla que tem a menor diferença de índice em relação ao primeiro candidato de mescla dentre a pluralidade de candidatos de mescla pode ser ajustado como o segundo candidato de mescla. Alternativamente, o segundo candidato de mescla pode ser selecionado com base nas informações de índice que especificam qualquer um dentre a pluralidade de candidatos de mescla.
[469] Como outro exemplo, um dentre os candidatos de mescla derivado de blocos vizinhos adjacente ao bloco atual pode ser ajustado como o primeiro candidato de mescla, e um dentre os candidatos de mescla derivado de blocos não vizinhos não adjacentes ao bloco atual pode ser ajustado como o segundo candidato de mescla.
[470] Como outro exemplo, um dentre os candidatos de mescla derivado de blocos candidatos posicionados no topo do bloco atual pode ser ajustado como o primeiro candidato de mescla, e um dentre os candidatos de mescla derivados de blocos candidatos posicionados no lado esquerdo pode ser ajustado como o segundo candidato de mescla.
[471] Um bloco de predição combinado pode ser adquirido através de uma operação de soma ponderada do primeiro bloco de predição derivado do primeiro candidato de mescla e o segundo bloco de predição derivado com base no segundo candidato de mescla. Nesse ponto, o valor de ponderação aplicado ao primeiro bloco de predição pode ser ajustado para um valor maior do que o valor de ponderação aplicado ao segundo bloco de predição.
[472] Alternativamente, valores de ponderação podem ser determinados com base em informações de movimento do primeiro candidato de mescla e informações de movimento do segundo candidato de mescla. Por exemplo, valores de ponderação aplicados ao primeiro bloco de predição e ao segundo bloco de predição podem ser determinados com base na diferença na ordem de saída da foto de referência e a foto atual. Especificamente, à medida que a diferença na ordem de saída da foto de referência e a foto atual aumenta, o valor de ponderação aplicado ao bloco de predição pode ser ajustado para um valor menor.
[473] Alternativamente, valores de ponderação aplicados ao primeiro bloco de predição e ao segundo bloco de predição podem ser determinados considerando os tamanhos ou os formatos do bloco candidato usado para derivar o primeiro candidato de mescla (doravante, denominado como o primeiro bloco candidato) e o bloco candidato usado para derivar o segundo candidato de mescla (doravante, denominado como o segundo bloco candidato). Por exemplo, um valor de ponderação aplicado a um bloco de predição derivado do primeiro bloco candidato ou do segundo bloco candidato que têm um formato similar ao do bloco atual pode ser ajustado a um grande valor. De modo contrário, um valor de ponderação aplicado a um bloco de predição derivado do primeiro bloco candidato ou do segundo bloco candidato que tem um formato dissimilar ao do bloco atual pode ser ajustado para um pequeno valor.
[474] A Figura 39 é uma vista que mostra um exemplo no qual valores de ponderação aplicados a blocos de predição são determinados com base no formato de blocos candidatos.
[475] Presume-se que o bloco atual é um formato não quadrado cuja largura é maior do que a altura.
[476] Um primeiro bloco de predição e um segundo bloco de predição podem ser derivados com base no primeiro candidato de mescla e o segundo candidato de mescla, e um bloco de predição combinado pode ser gerado com base em uma operação de soma ponderada do primeiro bloco de predição e do segundo bloco de predição. Nesse ponto, valores de ponderação aplicados ao primeiro bloco de predição e ao segundo bloco de predição podem ser determinados com base nos formatos do primeiro bloco candidato e do segundo bloco candidato.
[477] Por exemplo, no exemplo mostrado na Figura 39, o primeiro bloco candidato é um formato quadrado, e o segundo bloco candidato é um formato não quadrado cuja largura é maior do que a altura. Visto que o formato de o segundo bloco candidato é igual ao do bloco atual, o valor de ponderação aplicado ao segundo bloco de predição pode ser ajustado para ser maior do que o valor de ponderação aplicado ao primeiro bloco de predição. Por exemplo, um valor de ponderação de 5/8 pode ser aplicado ao segundo bloco de predição, e um valor de ponderação de 3/8 pode ser aplicado ao primeiro bloco de predição. Equação 33 mostra um exemplo de derivação de um bloco de predição combinado com base em uma operação de soma ponderada do primeiro bloco de predição e do segundo bloco de predição.
[EQUAÇÃO 33] P(x,y) = (3* (x,y) + 5%*Pa(%,7)) > 3
[478] P (x, y) denota um bloco de predição combinado, Pl (x, y) denota um primeiro bloco de predição, e P2 (x, y) denota um segundo bloco de predição.
[479] Como outro exemplo, valores de ponderação aplicados ao primeiro bloco de predição e ao segundo bloco de predição podem ser determinados com base no formato do bloco atual. Por exemplo, quando o bloco atual é um formato não quadrado cuja largura é maior do que a altura, um valor de ponderação maior pode ser aplicado a um bloco de predição gerado com base em um candidato de mescla derivado com base em um bloco candidato posicionado no topo do bloco atual dentre o primeiro candidato de mescla e o segundo candidato de mescla. Quando tanto o primeiro candidato de mescla quanto o segundo candidato de mescla são derivados dos blocos candidatos posicionados no topo do bloco atual, valores de ponderação aplicados ao primeiro bloco de predição e ao segundo bloco de predição podem ser ajustados igualmente. De modo contrário, quando o bloco atual é um formato não quadrado cuja altura é maior do que a largura, um valor de ponderação maior pode ser aplicado a um bloco de predição gerado com base em um candidato de mescla derivado com base em um bloco candidato posicionado no lado esquerdo do bloco atual dentre o primeiro candidato de mescla e o segundo candidato de mescla. Quando tanto o primeiro candidato de mescla quanto o segundo candidato de mescla são derivados dos blocos candidatos posicionados no lado esquerdo do bloco atual, valores de ponderação aplicados ao primeiro bloco de predição e ao segundo bloco de predição podem ser ajustados igualmente. Quando o bloco atual é um formato quadrado, valores de ponderação aplicados ao primeiro bloco de predição e ao segundo bloco de predição podem ser ajustados igualmente.
[480] Como outro exemplo, um valor de ponderação aplicado a cada bloco de predição pode ser determinado com base na distância entre o bloco atual e um bloco candidato. Aqui, a distância pode ser derivada com base em uma diferença de coordenada de eixo geométrico x, uma diferença de coordenada de eixo geométrico y do bloco atual ou um valor mínimo dentre os mesmos. Um valor de ponderação aplicado a um bloco de predição derivado de um candidato de mescla que tem uma pequena distância do bloco atual pode ser ajustado para ter um valor maior do que um valor de ponderação aplicado a um bloco de predição derivado de um candidato de mescla que tem uma grande distância do bloco atual. Por exemplo, no exemplo mostrado na
Figura 37, o primeiro candidato de mescla é derivado de um bloco vizinho adjacente ao bloco atual, e o segundo candidato de mescla é derivado de um bloco não vizinho que não é adjacente ao bloco atual. Nesse caso, visto que a distância de eixo geométrico x entre o primeiro bloco candidato e o bloco atual é menor do que a distância de eixo geométrico x entre o segundo bloco candidato e o bloco atual, o valor de ponderação aplicado ao primeiro bloco de predição pode ser ajustado para ter um valor maior do que o valor de ponderação aplicado ao segundo bloco de predição.
[481] Alternativamente, quando tanto o primeiro candidato de mescla quanto o segundo candidato de mescla são derivados de blocos não vizinhos, um valor de ponderação maior pode ser designado a um bloco de predição derivado de um bloco não vizinho em uma distância mais próxima do bloco atual dentre os blocos não vizinhos. Por exemplo, no exemplo mostrado na Figura 38, visto que a distância de eixo geométrico y entre o primeiro bloco candidato e o bloco atual é menor do que a distância de eixo geométrico y entre o segundo bloco candidato e o bloco atual, o valor de ponderação aplicado ao primeiro bloco de predição pode ser ajustado para ter um valor maior do que o valor de ponderação aplicado ao segundo bloco de predição.
[482] No modo de predição combinado que combina um modo de mescla e um modo de mescla conforme descrito acima, o modo de mescla pode significar um modo de mescla com base em um modelo de movimento translacional (doravante, denominado como modo de mescla translacional) ou um modo de mescla com base em um modelo de movimento afim (doravante, denominado como modo de mescla afim). Ou seja, a predição de compensação de movimento pode ser realizada combinando-se um modo de mescla translacional e um modo de mescla translacional ou combinando- se um modo de mescla afim e um modo de mescla afim.
[483] Por exemplo, quando o primeiro candidato de mescla é um candidato de mescla afim, o segundo candidato de mescla também pode ser ajustado como um candidato de mescla afim. Aqui, o candidato de mescla afim indica um caso em que o vetor de movimento de um bloco que inclui um candidato de referência é um vetor de movimento afim. O segundo candidato de mescla pode ser especificado pelas várias modalidades descritas acima. Por exemplo, o segundo candidato de mescla pode ser ajustado como um candidato de mescla vizinho do primeiro candidato de mescla. Nesse ponto, quando o candidato de mescla adjacente ao primeiro candidato de mescla não é codificado com uso de um modelo de movimento afim, um candidato de mescla codificado com uso de um modelo de movimento afim pode ser ajustado como o segundo candidato de mescla em vez do candidato de mescla.
[484] De modo contrário, quando o primeiro candidato de mescla é um candidato de mescla não afim, o segundo candidato de mescla também pode ser ajustado como um candidato de mescla não afim. Nesse ponto, quando um candidato de mescla adjacente ao primeiro candidato de mescla é codificado com uso de um modelo de movimento afim, um candidato de mescla codificado com uso de um modelo de movimento translacional pode ser ajustado como o segundo candidato de mescla em vez do candidato de mescla.
[485] A Figura 40 é uma vista que mostra um exemplo de ajuste de um candidato de mescla não afim, em vez de um candidato de mescla afim, como um segundo candidato de mescla.
[486] Quando o candidato de mescla na posição Al é especificado como o primeiro candidato de mescla por merge idx, candidato de mescla A2 que tem um valor de índice maior do que o do primeiro candidato de mescla por 1 pode ser selecionado como o segundo candidato de mescla. Nesse ponto, quando o primeiro candidato de mescla é um candidato de mescla não afim e o segundo candidato de mescla é um candidato de mescla afim, o segundo candidato de mescla pode ser reajustado. Por exemplo, dentre candidatos de mescla que têm um índice maior do que merge idx+l, um candidato de mescla não afim que tem um menor valor de diferença em relação a merge idx+1 pode ser reajustado como o segundo candidato de mescla. Por exemplo, no exemplo mostrado na Figura 40, é mostrado que candidato de mescla A3 que tem merge idx+2 como um índice é ajustado como o segundo candidato de mescla.
[487] Como outro exemplo, predição de compensação de movimento pode ser realizada combinando-se um modo de mescla translacional e um modo de mescla afim. Ou seja, qualquer um dentre o primeiro candidato de mescla e o segundo candidato de mescla pode ser um candidato de mescla afim, e o outro pode ser um candidato de mescla não afim.
[488] Informações de movimento mescladas podem ser derivadas com base no primeiro candidato de mescla e o segundo candidato de mescla, e predição de compensação de movimento para o bloco atual pode ser realizada com base nas informações de movimento integradas. Por exemplo, um vetor de movimento do bloco atual pode ser derivado com base em uma operação média ou uma operação de soma ponderada do vetor de movimento do primeiro candidato de mescla e no vetor de movimento do segundo candidato de mescla. Nesse ponto, o valor de ponderação aplicado ao vetor de movimento do primeiro candidato de mescla e o valor de ponderação aplicado ao vetor de movimento do segundo candidato de mescla pode ser determinado pelas modalidades descritas acima.
[489] Quando o primeiro candidato de mescla é um candidato de mescla não afim e o segundo candidato de mescla afim é um candidato de mescla afim, um vetor de movimento do bloco atual pode ser derivado escalonando-se o vetor de movimento do segundo candidato de mescla. A Equação 34 mostra um exemplo de derivação de um vetor de movimento do bloco atual.
[EQUAÇÃO 34] (mvX, mvY) = (mcOx,mvO0y) + ((mvlx,mv1y) > M)
[490] Na Equação 34, (mvX, mvY) denota o vetor de movimento do bloco atual, (mvOx, mvOy) denota o vetor de movimento do primeiro candidato de mescla, e (mvlx, mvly) denota o vetor de movimento do segundo candidato de mescla. M denota um parâmetro de escalonamento. M pode ser pré-definido no codificador e no decodificador. Alternativamente, o valor do parâmetro de escalonamento M pode ser determinado de acordo com o tamanho do bloco atual ou um bloco candidato. Por exemplo, quando a largura ou a altura do segundo bloco candidato é maior do que 32, M pode ser ajustado para 3 e, em outros casos, M pode ser ajustado para 2.
[491] No modo de predição no qual um modo de mescla e um vetor de movimento modo de predição são combinados, um primeiro bloco de predição é gerado com uso de informações de movimento derivadas de um candidato de mescla, e um segundo bloco de predição é gerado com uso de um vetor de movimento derivado de um candidato de predição de vetor de movimento.
[492] No vetor de movimento modo de predição, um candidato de predição de vetor de movimento pode ser derivado de um bloco vizinho adjacente ao bloco atual ou um bloco colocado em uma foto colocalizada. Em seguida, qualquer um dentre uma pluralidade de candidatos de predição de vetor de movimento pode ser especificado, e o candidato de predição de vetor de movimento especificado pode ser ajustado como o preditor de vetor de movimento do bloco atual. Em seguida, um vetor de movimento do bloco atual pode ser derivado adicionando-se o preditor de vetor de movimento do bloco atual e um vetor de movimento valor de diferença.
[493] No modo de predição no qual um modo de mescla e um vetor de movimento modo de predição são combinados, o candidato de mescla e o candidato de predição de vetor de movimento podem ser derivados do mesmo bloco candidato. Por exemplo, quando o candidato de mescla é especificado por merge idx, um vetor de movimento de um bloco candidato usado para derivar o candidato de mescla especificado pode ser ajustado como o preditor de vetor de movimento. Alternativamente, quando o candidato de predição de vetor de movimento é especificado por mvp flag, um candidato de mescla derivado de um bloco candidato usado para derivar o candidato de mescla especificado pode ser selecionado
[494] Alternativamente, o bloco candidato usado para derivar o candidato de mescla e o bloco candidato usado para derivar o candidato de predição de vetor de movimento podem ser diferentes. Por exemplo, quando um candidato de mescla derivado de um bloco candidato posicionado no topo do bloco atual é selecionado, o mesmo pode ser ajustado para selecionar um candidato de predição de vetor de movimento derivado de um bloco candidato posicionado no lado esquerdo do bloco atual.
[495] Alternativamente, quando o candidato de mescla selecionado pelas informações de índice e o candidato de predição de vetor de movimento selecionado pelas informações de índice são derivados do mesmo bloco candidato, o candidato de predição de vetor de movimento pode ser substituído por um candidato de predição de vetor de movimento derivado de um bloco candidato vizinho adjacente ao bloco candidato, ou o candidato de mescla pode ser substituído por um candidato de mescla derivado de um bloco candidato adjacente ao bloco candidato.
[496] A Figura 41 é uma vista que mostra um exemplo no qual um candidato de mescla é substituído.
[497] No exemplo mostrado na Figura 41 (a), é mostrado que um candidato de mescla e um candidato de predição de vetor de movimento derivado do bloco candidato na posição A2 são selecionados. Conforme mostrado na Figura, quando um candidato de mescla e um candidato de predição de vetor de movimento são derivados do mesmo bloco candidato, um candidato de mescla ou um candidato de predição de vetor de movimento derivados de um bloco candidato adjacente ao bloco candidato pode ser usado em vez do candidato de mescla ou do candidato de predição de vetor de movimento. Por exemplo, conforme mostrado no exemplo da Figura 41 (b), um candidato de mescla na posição Al pode ser usado em vez do candidato de mescla na posição A2.
[498] Um primeiro bloco de predição pode ser derivado com base no candidato de mescla do bloco atual, e um segundo bloco de predição pode ser derivado com base no candidato de predição de vetor de movimento. Em seguida, um bloco de predição combinado pode ser derivado através de uma operação de soma ponderada do primeiro bloco de predição e do segundo bloco de predição. Nesse ponto, o valor de ponderação aplicado ao segundo bloco de predição gerado com uso do vetor de movimento modo de predição pode ser ajustado para um valor maior do que o valor de ponderação aplicado ao primeiro bloco de predição gerado com uso do modo de mescla.
[499] Uma foto residual derivada pode ser derivada subtraindo-se um vídeo de predição de um vídeo original. Nesse ponto, quando o vídeo residual é mudado para o domínio de frequência, a qualidade de vídeo subjetiva do vídeo não é significativamente diminuída embora os componentes de alta frequência dentre os componentes de frequência sejam removidos. Consequentemente, quando valores dos componentes de alta frequência são convertidos para serem pequenos ou os valores dos componentes de alta frequência são ajustados para O, há um efeito de aumentar a eficiência de compressão sem gerar distorção visual significativa. Refletindo essa característica, o bloco atual pode ser transformado para decompor um vídeo residual em componentes de frequência bidimensionais. A transformada pode ser realizada com uso de uma técnica de transformada tal como Transformada de Cosseno Discreta (DCT) ou Transformada de Seno Discreta (DST).
[500] O DCT decompõe (ou transforma) um vídeo residual em componentes de frequência bidimensionais com uso de uma transformada de cosseno, e a DST decompõe (ou transforma) um vídeo residual em componentes de frequência bidimensionais com uso de uma transformada de seno. Como resultado de transformar o vídeo residual, os componentes de frequência podem ser expressos como um vídeo de base. Por exemplo, quando transformada de DCT é realizada em um bloco de um tamanho de NxN, visto que muitos componentes padrão básicos como Nº podem ser adquiridos. O tamanho de cada um dos componentes padrão básicos incluído em um bloco de um tamanho de NxN pode ser adquirido através da transformada. De acordo com uma técnica de transformada usada para isso, o valor do componente padrão básico pode ser denominado como coeficiente de DCT ou um coeficiente de DST.
[501] A técnica de transformada de DCT é principalmente usada para transformar um vídeo no qual muitos componentes de baixa frequência diferentes de zero são distribuídos. A técnica de transformada DST é principalmente usada para vídeos nos quais muitos componentes de alta frequência são distribuídos.
[502] O vídeo residual pode ser transformado com uso de uma técnica de transformada diferente da DCT ou da DST.
[503] Doravante, a transformada de um vídeo residual em componentes de frequência bidimensionais será denominada como transformada de vídeo bidimensional. Adicionalmente, o tamanho dos componentes padrão básicos adquiridos como um resultado da transformada é denominado como coeficiente de transformada. Por exemplo, o coeficiente de transformada pode significar um coeficiente de DCT ou um coeficiente de DST. Quando tanto a primeira transformada quanto a segunda transformada descritas abaixo são aplicadas, o coeficiente de transformada pode significar o tamanho de um componente padrão básico gerado como um resultado da segunda transformada.
[504] A técnica de transformada pode ser determinada para cada bloco. A técnica de transformada pode ser determinada com base em pelo menos um dentre o modo de codificação de predição do bloco atual, o formato do bloco atual e o tamanho do bloco atual. Por exemplo, quando o bloco atual é codificado no modo de intrapredição e o tamanho do bloco atual é menor do que NxN, transformada pode ser realizada com uso da técnica de transformada DST. De modo contrário, quando as condições acima não são atendidas, a transformada pode ser realizada com uso da técnica de transformada DCT.
[505] A transformada de vídeo bidimensional pode não ser realizada para alguns blocos do vídeo residual. A não realização da transformada de vídeo bidimensional pode ser denominada como salto de transformada. Quando o salto de transformada é aplicado, quantização pode ser aplicado aos coeficientes residuais que não foram transformados.
[506] Depois que o bloco atual é transformado com uso de DCT ou DST, o bloco atual transformado pode ser transformado novamente. Nesse ponto, a transformada com base em DCT ou DST pode ser definida como uma primeira transformada, e transformar novamente um bloco ao qual a primeira transformada é aplicada pode ser definida como uma segunda transformada.
[507] A primeira transformada pode ser realizada com uso de qualquer um dentre uma pluralidade de candidatos de núcleo de transformada. Por exemplo, a primeira transformada pode ser realizada com uso de qualquer um dentre DCT2, DCT8 ou DCT7.
[508] Diferentes núcleos de transformada podem ser usados para a direção horizontal e a direção vertical.
Informações que indicam combinação de um núcleo de transformada da direção horizontal e um núcleo de transformada da direção vertical podem ser sinalizados através de um fluxo de bits.
[509] Unidades para realizar a primeira transformada e a segunda transformada podem ser diferentes. Por exemplo, a primeira transformada pode ser realizada em um bloco de 8x8, e a segunda transformada pode ser realizada em um sub-bloco de um tamanho de 4x4 dentre o bloco de 8x8 transformado. Nesse ponto, os coeficientes de transformada das regiões residuais que não foram realizados, a segunda transformada pode ser ajustada para 0.
[510] Alternativamente, a primeira transformada pode ser realizada em um bloco de 4 x 4, e a segunda transformada pode ser realizada em uma região de um tamanho de 8x8 incluindo o bloco de 4x4 transformado.
[511] Informações que indicam a possibilidade ou não de a segunda transformada ter sido realizada pode ser sinalizada através de um fluxo de bits.
[512] o decodificador pode realizar uma transformada inversa da segunda transformada (uma segunda transformada inversa), e pode realizar uma transformada inversa da primeira transformada (uma primeira transformada inversa) em um resultado da transformada inversa. Como resultado de realizar a segunda transformada inversa e a primeira transformada inversa, sinais residuais para o bloco atual podem ser adquiridos.
[513] A quantização é para reduzir a energia de um bloco, e o processo de quantização inclui um processo de divisão de um coeficiente de transformada por um valor constante específico. O valor constante pode ser derivado por um parâmetro de quantização, e o parâmetro de quantização pode ser definido como um valor entre 1 e 63.
[514] Quando o codificador realiza transforma e quantização, o decodificador pode adquirir um bloco residual através de quantização inversa e transformada inversa. O decodificador pode adquirir um bloco reconstruído para o bloco atual adicionando-se um bloco de predição e o bloco residual.
[515] Quando um bloco reconstruído do bloco atual é adquirido, a perda de informações que ocorre no processo de quantização e codificação pode ser reduzida através de filtração em circuito. Um filtro em circuito pode incluir pelo menos um dentre um filtro de desbloqueio, um filtro de deslocamento adaptativo de amostra (SAO) e um filtro de circuito adaptativo (ALF). Doravante, um bloco reconstruído antes do filtro em circuito é aplicado é denominado como primeiro bloco reconstruído, e um bloco reconstruído após o filtro em circuito é aplicado é denominado como segundo bloco reconstruído.
[516] O segundo bloco reconstruído pode ser adquirido aplicando-se pelo menos um dentre o filtro de desbloqueio, o SAO, e o ALF ao primeiro bloco reconstruído. Nesse ponto, o SAO ou o ALF pode ser aplicado depois que o filtro de desbloqueio é aplicado.
[517] O filtro de desbloqueio é para mitigar a degradação de qualidade de vídeo (artefato de bloqueio) na delimitação de um bloco, que ocorre visto que a quantização é realizada em blocos individuais. De modo a aplicar o filtro de desbloqueio, uma intensidade de bloco (BS) entre o primeiro bloco reconstruído e um bloco vizinho reconstruído pode ser determinado.
[518] A Figura 42 é um fluxograma que ilustra um processo de determinação de intensidade de bloco.
[519] No exemplo mostrado na Figura 42, P denota um primeiro bloco reconstruído, e Q denota um bloco vizinho reconstruído. Aqui, o bloco vizinho reconstruído pode ser um bloco adjacente ao lado esquerdo ou o lado superior do bloco atual.
[520] No exemplo mostrado na Figura 42, é mostrado que a intensidade de bloco é determinada considerando os modos de codificação de predição de P e Q, a possibilidade de um coeficiente de transformada diferente de zero é incluída, a possibilidade de interpredição é realizada com uso de a mesma foto de referência, e a possibilidade de o valor de diferença de vetores de movimento é maior ou igual a um valor limítrofe.
[521] A possibilidade ou não de aplicar o filtro de desbloqueio pode ser determinada com base na intensidade de bloco. Por exemplo, quando a intensidade de bloco é 0, a filtração pode não ser realizada.
[522] O SAO é para mitigar um fenômeno de toque (artefato de toque) que ocorre à medida que a quantização é realizada no domínio de frequência. O SAO pode ser realizado adicionando-se ou subtraindo-se um deslocamento determinado considerando o padrão do primeiro vídeo reconstruído. O método de determinação do deslocamento inclui um deslocamento de borda (EO) ou um deslocamento de banda (BO). EO denota um método de determinação de um deslocamento de uma amostra atual de acordo com o padrão de pixels circundantes. BO denota um método de aplicação de um deslocamento comum a um conjunto de pixels que tem valores de brilho similares em uma região. Especificamente, brilho de pixel pode ser dividido em 32 sessões iguais, e pixels que têm valores de brilho similares podem ser ajustados como um conjunto. Por exemplo, quatro bandas adjacentes dentre 32 bandas podem ser ajustadas como um grupo, e o mesmo valor de deslocamento pode ser aplicado às amostras pertencentes às quatro bandas.
[523] A ALF é um método de geração de um segundo vídeo “reconstruído aplicando-se um filtro que tem um tamanho/formato pré-definido ao primeiro vídeo reconstruído ou um vídeo reconstruído ao qual um filtro de desbloqueio foi aplicado. Equação 35 mostra um exemplo de aplicação da ALF.
[EQUAÇÃO 35] NOx 2 2 RU) = > > fUDRG+kj+D k=-2 122
[524] Qualquer um dentre candidatos de filtro pré-ajustados podem ser selecionados pela unidade de uma foto, uma unidade de árvore de conversão em código, um bloco de conversão em código, um bloco de predição ou um bloco de transformada. Cada do filtro candidates pode ser diferente tanto no tamanho como no formato.
[525] A Figura 43 é uma vista que mostra candidatos de filtro pré-definidos.
[526] Conforme mostrado no exemplo da Figura 42, pelo menos um dentre formatos de diamante de 5x5, 7x7 e 9x9 pode ser selecionado.
[527] Somente um formato de diamante de um tamanho de 5x5 pode ser usado para um componente de croma.
[528] A aplicação das modalidades descritas acima com foco em um processo de decodificação ou um processo de codificação a um processo de codificação ou um processo de decodificação é incluída no escopo da presente revelação. Mudar as modalidades descritas em uma ordem predeterminada em uma ordem diferente da ordem descrita é também incluída no escopo da presente revelação.
[529] Embora as modalidades acima foram descritas com base em uma série de etapas ou fluxogramas, isso não limita a ordem de série de tempo da presente revelação, e pode ser realizada simultaneamente ou em uma ordem diferente conforme necessário. Adicionalmente, cada um dos componentes (por exemplo, unidades, módulos, etc.) que constituem o diagrama de blocos nas modalidades descritas acima pode ser implementado como um dispositivo de hardware ou software, ou uma pluralidade de componentes podem ser combinados para serem implementados como um único dispositivo de hardware ou software. As modalidades descritas acima podem ser implementadas na forma de comandos de programa que podem ser executados através de vários componentes de computador e registrados em uma mídia de registro legível por computador. A mídia de registro legível por computador pode incluir comandos de programa, arquivos de dados, estruturas de dados e similares independentemente ou em combinação. A mídia de registro legível por computador inclui, para exemplo, mídias magnéticas tais como um disco rígido, um disquete e uma fita magnética, mídias de registro óptico, tais como um CD-ROM e um DVD, mídias magneto-ópticas, tal como um disco floptical, e dispositivos de hardware especificamente configurados para armazenar e executar comandos de programa, tais como um ROM, um RAM, uma memória flash e similares. Os dispositivos de hardware descritos acima podem ser configurados para operar com uso de um ou mais módulos de software para realizar o processo da presente revelação e vice-versa.
APLICABILIDADE INDUSTRIAL
[530] A presente revelação pode ser aplicada a um dispositivo eletrônico que codifica e decodifica um vídeo.

Claims (30)

REIVINDICAÇÕES
1. MÉTODO DE DECODIFICAÇÃO DE VÍDEO, caracterizado por compreender as etapas de: gerar uma lista de candidatos de mescla para um primeiro bloco; selecionar um dentre candidatos de mescla incluídos na lista de candidatos de mescla; e realizar compensação de movimento para o primeiro bloco com base em informações de movimento do candidato de mescla selecionado, em que um candidato de mescla de inter-região incluído em uma lista de informações de movimento de inter-região é adicionado à lista de candidatos de mescla com base no número de candidatos de mescla espacial e candidatos de mescla temporal incluídos na lista de candidatos de mescla.
2. MÉTODO, de acordo com a reivindicação 1, caracterizado pela lista de informações de movimento de inter- região incluir um candidato de mescla de inter-região derivado com base em informações de movimento de um bloco decodificado antes do primeiro bloco.
3. MÉTODO, de acordo com a reivindicação 1, caracterizado por, quando o primeiro bloco é incluído em uma área de processamento de mescla, um candidato de mescla temporário derivado com base em informações de movimento do primeiro bloco ser adicionado a uma lista de informações de movimento temporária, e quando a decodificação de todos os blocos incluídos na área de processamento de mescla é concluída, pelo candidato de mescla temporário ser atualizado na lista de informações de movimento de inter-região.
4, MÉTODO, de acordo com a reivindicação 1,
caracterizado por, com base em um resultado de determinar a possibilidade de um candidato de mescla de inter-região incluído na lista de informações de movimento de inter-região ser igual a pelo menos um candidato de mescla incluído na lista de candidatos de mescla, a possibilidade ou não de adicionar único candidato de mescla de inter-região à lista de candidatos de mescla ser determinada.
5. MÉTODO, de acordo com a reivindicação 4, caracterizado pela determinação ser realizada comparando-se pelo menos um candidato de mescla cujo valor de índice é menor ou igual a um valor limítrofe com o único candidato de mescla de inter-região.
6. MÉTODO, de acordo com a reivindicação 4, caracterizado, quando for determinado que há um candidato de mescla igual ao único candidato de mescla de inter-região, pelo único candidato de mescla de inter-região não ser adicionado à lista de candidatos de mescla e, com base em um resultado de determinar a possibilidade de outro candidato de mescla de inter-região incluído na lista de informações de movimento de inter-região ser igual a pelo menos um candidato de mescla incluído na lista de candidatos de mescla, pela possibilidade ou não de adicionar o outro candidato de mescla de inter-região à lista de candidatos de mescla ser determinada, e nenhuma determinação quanto a possibilidade de o outro candidato de mescla de inter-região ser igual ao candidato de mescla que é igual ao único candidato de mescla de inter-região ser realizada.
7. MÉTODO, de acordo com a reivindicação 1, caracterizado por, quando um candidato de mescla de inter- região igual às informações de movimento do primeiro bloco existir na lista de candidatos de mescla, um índice designado para o candidato de mescla de inter-região na lista de informações de movimento de inter-região ser atualizado para um valor maior.
8. MÉTODO, de acordo com a reivindicação 4, caracterizado pela determinação ser realizada comparando-se pelo menos um candidato de mescla cujo valor de índice é maior do que um valor limite com o candidato de mescla de inter- região.
9. MÉTODO, de acordo com a reivindicação 4, caracterizado pela determinação ser realizada comparando-se um candidato de mescla derivada a partir de um bloco em uma posição específica com um candidato de mescla de inter-região, sendo que a posição específica inclui pelo menos um bloco vizinho direito superior ou um bloco vizinho esquerdo inferior do primeiro bloco.
10. MÉTODO, de acordo com a reivindicação 1, caracterizado pela realização de compensação de movimento para o primeiro bloco compreender: realizar predição de compensação de movimento para o primeiro bloco com uso de uma pluralidade de candidatos de mescla.
11. MÉTODO, de acordo com a reivindicação 10, caracterizado por, pela pluralidade de candidatos de mescla incluírem um primeiro candidato de mescla e um segundo candidato de mescla, e o primeiro candidato de mescla e o segundo candidato de mescla serem incluídos na lista de candidatos de mescla para o primeiro bloco; por um primeiro bloco de predição ser gerado com uso de um primeiro candidato de mescla, um segundo bloco de predição ser gerado com uso de um segundo candidato de mescla e um terceiro bloco de predição ser gerado com base no primeiro bloco de predição e no segundo bloco de predição.
12. MÉTODO, de acordo com a reivindicação 11, caracterizado pelo terceiro bloco de predição ser gerado com base em uma operação de soma ponderada do primeiro bloco de predição e do segundo bloco de predição.
13. MÉTODO, de acordo com a reivindicação 11, caracterizado pelas informações de índice merge idx do primeiro candidato de mescla e pelas informações de índice merge 2nd idx do segundo candidato de mescla serem obtidas analisando-se um fluxo de bits.
14. MÉTODO, de acordo com a reivindicação 13, caracterizado por, quando um valor de informações de índice merge 2nd idx for igual ou maior que um valor de informações de índice merge idx, um valor de um índice do segundo candidato a mesclagem ser obtido adicionando-se 1 ao valor de informações de índice merge 2nd idx.
15. MÉTODO DE CODIFICAÇÃO DE VÍDEO, caracterizado por compreender as etapas de: gerar uma lista de candidatos de mescla para um primeiro bloco; selecionar um dentre candidatos de mescla incluídos na lista de candidatos de mescla; e realizar compensação de movimento para o primeiro bloco com base em informações de movimento do candidato de mescla selecionado, em que um candidato de mescla de inter-região incluído em uma lista de informações de movimento de inter-região é adicionado à lista de candidatos de mescla com base no número de candidatos de mescla espacial e candidatos de mescla temporal incluídos na lista de candidatos de mescla.
16. MÉTODO, de acordo com a reivindicação 15, caracterizado pela lista de informações de movimento de inter- região incluir um candidato de mescla de inter-região derivado com base em informações de movimento de um bloco codificado antes do primeiro bloco.
17. MÉTODO, de acordo com a reivindicação 15, caracterizado por, quando o primeiro bloco for incluído em uma área de processamento de mescla, um candidato de mescla temporário derivado com base em informações de movimento do primeiro bloco ser adicionado a uma lista de informações de movimento temporária, e quando a codificação de todos os blocos incluídos na área de processamento de mescla for concluída, o candidato de mescla temporário ser atualizado na lista de informações de movimento de inter-região.
18. MÉTODO, de acordo com a reivindicação 15, caracterizado, com base em um resultado de determinar a possibilidade de único candidato de mescla de inter-região incluído na lista de informações de movimento de inter-região ser igual a pelo menos um candidato de mescla incluído na lista de candidatos de mescla, pela possibilidade ou não de adicionar o único candidato de mescla de inter-região à lista de candidatos de mescla ser determinada.
19. MÉTODO, de acordo com a reivindicação 18, caracterizado pela determinação ser realizada comparando-se pelo menos um candidato de mescla cujo valor de índice é menor ou igual a um valor limítrofe com o único candidato de mescla de inter-região.
20. MÉTODO, de acordo com a reivindicação 18, caracterizado, quando for determinado que há um candidato de mescla igual ao único candidato de mescla de inter-região, pelo único candidato de mescla de inter-região não ser adicionado à lista de candidatos de mescla e, com base em um resultado de determinar a possibilidade de outro candidato de mescla de inter-região incluído na lista de informações de movimento de inter-região ser igual a pelo menos um candidato de mescla incluído na lista de candidatos de mescla, pela possibilidade ou não de adicionar o outro candidato de mescla de inter-região à lista de candidatos de mescla ser determinada, e nenhuma determinação quanto a possibilidade de o outro candidato de mescla de inter-região ser igual ao candidato de mescla que é igual ao único candidato de mescla de inter-região ser realizada.
21. MÉTODO, de acordo com a reivindicação 15, caracterizado por, quando um candidato de mescla de inter- região igual às informações de movimento do primeiro bloco existir na lista de candidatos de mescla, um índice designado para o candidato de mescla de inter-região na lista de informações de movimento de inter-região ser atualizado para um valor maior.
22. MÉTODO, de acordo com a reivindicação 18, caracterizado pela determinação ser realizada comparando-se pelo menos um candidato de mescla cujo valor de índice é maior que um valor limite com o único candidato de inter-região.
23. MÉTODO, de acordo com a reivindicação 18, caracterizado pela determinação ser realizada comparando-se um candidato de mescla derivado de um bloco em uma posição específica com o único candidato de mescla de inter-região, sendo que a posição específica inclui pelo menos um dentre um bloco vizinho direito superior e um bloco vizinho esquerdo inferior do primeiro bloco.
24. MÉTODO, de acordo com a reivindicação 15, caracterizado pela realização de compensação de movimento para o primeiro bloco compreender: realizar predição de compensação de movimento para o primeiro bloco com uso de uma pluralidade de candidatos de mescla.
25. MÉTODO, de acordo com a reivindicação 24, caracterizado por, pela pluralidade de candidatos de mescla incluírem um primeiro candidato de mescla e um segundo candidato de mescla e pelo primeiro candidato de mescla e o segundo candidato de mescla serem incluídos na lista de candidatos de mescla para o primeiro bloco; por um primeiro bloco de predição ser gerado com uso de um primeiro candidato de mescla, um segundo bloco de predição ser gerado com uso de um segundo candidato de mescla e um terceiro bloco de predição ser gerado com base no primeiro bloco de predição e no segundo bloco de predição.
26. MÉTODO, de acordo com a reivindicação 25, caracterizado pelo terceiro bloco de predição ser gerado com base em uma operação de soma ponderada do primeiro bloco de predição e do segundo bloco de predição.
27. MÉTODO, de acordo com a reivindicação 25, caracterizado pelas informações para especificar informações de índice merge idx do primeiro candidato de mescla e informações de índice merge 2nd idx do segundo candidato de mescla serem sinalizadas através de fluxo de bits, respectivamente.
28. MÉTODO, de acordo com a reivindicação 27, caracterizado por, quando um valor de informações de índice merge 2nd idx for igual ou maior que um valor de informações de índice merge idx, um valor de um índice do segundo candidato a mesclagem ser obtido adicionando-se 1 ao valor de informações de índice merge 2nd idx.
29. APARELHO DE DECODIFICAÇÃO DE ví DEO, caracterizado por compreender uma memória e um processador sendo que a memória é configurada para armazenar um programa de computador com capacidade para rodar no processador e o processador é configurado para rodar o programa de computador para executar o método de decodificação de vídeo, conforme definido em qualquer uma das reivindicações 1 a 14.
30. APARELHO DE CODIFICAÇÃO DE VÍDEO, caracterizado por compreender uma memória e um processador, sendo que a memória é configurada para armazenar um programa de computador com capacidade para rodar no processador e o processador é configurado para rodar o programa de computador para executar o método de codificação de vídeo, conforme definido em qualquer uma das reivindicações 15 a 28.
BR112021005175-9A 2018-09-21 2019-09-20 método de decodificação de vídeo, método de codificação de vídeo, aparelho de decodificação de vídeo e aparelho de codificação de vídeo BR112021005175A2 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
KR10-2018-0114348 2018-09-21
KR20180114348 2018-09-21
KR20180114349 2018-09-21
KR10-2018-0114349 2018-09-21
KR10-2018-0148858 2018-11-27
KR20180148858 2018-11-27
PCT/KR2019/012292 WO2020060329A1 (ko) 2018-09-21 2019-09-20 영상 신호 부호화/복호화 방법 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
BR112021005175A2 true BR112021005175A2 (pt) 2021-06-08

Family

ID=69887729

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021005175-9A BR112021005175A2 (pt) 2018-09-21 2019-09-20 método de decodificação de vídeo, método de codificação de vídeo, aparelho de decodificação de vídeo e aparelho de codificação de vídeo

Country Status (15)

Country Link
US (5) US11218720B2 (pt)
EP (2) EP4383713A2 (pt)
JP (2) JP7459069B2 (pt)
KR (1) KR20200034646A (pt)
CN (4) CN113395517B (pt)
AU (1) AU2019344274B2 (pt)
BR (1) BR112021005175A2 (pt)
CA (1) CA3113585A1 (pt)
CL (1) CL2021000686A1 (pt)
IL (2) IL307586A (pt)
MX (1) MX2021003327A (pt)
PH (1) PH12021550629A1 (pt)
SG (1) SG11202102857QA (pt)
WO (1) WO2020060329A1 (pt)
ZA (1) ZA202102141B (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118200533A (zh) * 2018-05-10 2024-06-14 三星电子株式会社 视频解码方法、视频编码设备以及存储比特流的方法
CN113395517B (zh) 2018-09-21 2022-08-05 Oppo广东移动通信有限公司 视频信号编码/解码方法及其设备
CA3222255A1 (en) 2018-12-25 2020-07-02 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Decoding prediction method and apparatus, and computer storage medium
CN113852815B (zh) * 2018-12-25 2022-12-27 北京达佳互联信息技术有限公司 利用三角形形状预测单元的视频编码方法、设备及介质
JP7343097B2 (ja) * 2018-12-29 2023-09-12 エスゼット ディージェイアイ テクノロジー カンパニー リミテッド 動画処理方法、装置、およびコンピュータプログラム
CN117499626A (zh) * 2020-03-26 2024-02-02 阿里巴巴(中国)有限公司 用于对视频进行编码或解码的方法和装置
US20230093129A1 (en) * 2021-09-17 2023-03-23 Tencent America LLC Method and apparatus for intra block copy mode coding with search range switching

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112013023478B8 (pt) 2011-04-12 2022-09-13 Panassonic Corp Método de codificação de imagem em movimento, aparelho de codificação de imagem em movimento, método de decodificação de imagem em movimento, aparelho de decodificação de imagem em movimento e aparelho de codificação e decodificação de imagem em movimento
AU2012305071B2 (en) * 2011-09-09 2014-12-11 Kt Corporation Method for deriving a temporal predictive motion vector, and apparatus using the method
DK2763414T3 (da) 2011-09-29 2020-11-30 Sharp Kk Billedafkodningsindretning og fremgangsmåde til billedafkodning til udførelse af konvertering af bi-forudsigelse til uni-forudsigelse
BR112014007494B1 (pt) 2011-09-29 2022-05-31 Sharp Kabushiki Kaisha Dispositivo de decodificação de imagem, método de decodificação de imagem, e dispositivo de codificação de imagem
JP6308495B2 (ja) * 2011-10-19 2018-04-11 サン パテント トラスト 画像復号方法、および、画像復号装置
US20130114717A1 (en) 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
US9729873B2 (en) * 2012-01-24 2017-08-08 Qualcomm Incorporated Video coding using parallel motion estimation
EP3107290B1 (en) 2014-03-14 2021-07-28 Samsung Electronics Co., Ltd. Method and device for configuring merge candidate list for decoding and encoding of interlayer video
EP3180917B1 (en) * 2014-09-01 2022-04-20 HFI Innovation Inc. Method of intra picture block copy for screen content and video coding
WO2017069505A1 (ko) 2015-10-19 2017-04-27 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
CN116614641A (zh) 2016-07-12 2023-08-18 韩国电子通信研究院 图像编码/解码方法和用于所述方法的记录介质
CN116506596A (zh) * 2016-08-03 2023-07-28 株式会社Kt 视频解码方法、视频编码方法和视频数据的传送方法
KR102013664B1 (ko) 2017-04-10 2019-08-23 한국과학기술원 격자 기반 무인비행장치 경로 리스크 산정방법
KR20180114349A (ko) 2017-04-10 2018-10-18 국보미 학생 카드 인식을 활용한 친환경 전기 자전거 운행 시스템
US11082702B2 (en) * 2017-07-03 2021-08-03 Lg Electronics Inc. Inter prediction mode-based image processing method and device therefor
CN117544785A (zh) * 2017-08-29 2024-02-09 株式会社Kt 视频解码和编码方法及用于存储压缩视频数据的装置
EP3806472A4 (en) 2018-06-30 2021-04-14 Guangdong Oppo Mobile Telecommunications Corp., Ltd. METHOD AND DEVICE FOR INTERPRDICTION BASED ON MERGING MODE
KR20200028856A (ko) 2018-09-07 2020-03-17 김기백 인트라 예측을 이용한 영상 부호화/복호화 방법 및 장치
KR20200034430A (ko) 2018-09-21 2020-03-31 삼성전자주식회사 전자 장치, 시스템 및 음성 인식 서비스 이용 방법
EP4224849B1 (en) 2018-09-21 2024-06-12 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Video signal encoding and decoding method, and apparatus therefor
CN113395517B (zh) * 2018-09-21 2022-08-05 Oppo广东移动通信有限公司 视频信号编码/解码方法及其设备

Also Published As

Publication number Publication date
US20220078467A1 (en) 2022-03-10
JP7459069B2 (ja) 2024-04-01
US11838532B2 (en) 2023-12-05
PH12021550629A1 (en) 2022-02-14
EP3843389A1 (en) 2021-06-30
CN113395517B (zh) 2022-08-05
CN112956193A (zh) 2021-06-11
US20220078469A1 (en) 2022-03-10
US20220078468A1 (en) 2022-03-10
ZA202102141B (en) 2022-07-27
EP3843389A4 (en) 2022-03-16
AU2019344274B2 (en) 2023-02-23
US11750833B2 (en) 2023-09-05
MX2021003327A (es) 2021-05-14
CA3113585A1 (en) 2020-03-26
IL307586A (en) 2023-12-01
US11218720B2 (en) 2022-01-04
KR20200034646A (ko) 2020-03-31
CL2021000686A1 (es) 2021-08-20
CN113395517A (zh) 2021-09-14
IL281625A (en) 2021-05-31
JP2024069588A (ja) 2024-05-21
AU2019344274A1 (en) 2021-04-29
WO2020060329A1 (ko) 2020-03-26
IL281625B1 (en) 2023-11-01
IL281625B2 (en) 2024-03-01
US20210211708A1 (en) 2021-07-08
CN116320418A (zh) 2023-06-23
CN116055720A (zh) 2023-05-02
EP4383713A2 (en) 2024-06-12
US11838533B2 (en) 2023-12-05
SG11202102857QA (en) 2021-04-29
JP2022501897A (ja) 2022-01-06
US20230336768A1 (en) 2023-10-19

Similar Documents

Publication Publication Date Title
ES2948265T3 (es) Método de codificación/descodificación de señales de imagen y aparato para el mismo
ES2967198T3 (es) Predicción intra utilizando píxeles de referencia de líneas adicionales
ES2908214T3 (es) Filtración adaptativa de muestras de referencia para intra predicción usando líneas de píxeles distantes
BR112021005175A2 (pt) método de decodificação de vídeo, método de codificação de vídeo, aparelho de decodificação de vídeo e aparelho de codificação de vídeo
US11570436B2 (en) Video signal encoding/decoding method and device therefor
ES2739668B1 (es) Metodo y aparato para procesar senales de video
ES2786077B2 (es) Metodo y aparato para procesar una senal de video
ES2830053B2 (es) Metodo y aparato para procesar senal de video
BR112021008091A2 (pt) método de codificação e decodificação de sinal de vídeo e aparelho de decodificação de vídeo
ES2703607A2 (es) Método y aparato para procesar señales de vídeo
BR112021008654A2 (pt) método de decodificação vídeo, método de codificação de vídeo, e aparelho de decodificação de vídeo
BR112019021446A2 (pt) método e dispositivo para realizar decodificação de imagem com base na intrapredição em sistema de codificação de imagem
BR112021008625A2 (pt) método de decodificação e codificação de vídeo e aparelho de decodificação e codificação de vídeo
ES2955040T3 (es) Método de codificación/descodificación de señales de imagen y dispositivo para el mismo
BR112013022641B1 (pt) Método para derivar um vetor de predição de movimento candidato
BR112021008720A2 (pt) método de codificação de vídeo e método de decodificação vídeo
BR112021005161A2 (pt) método de decodificação de vídeo, e método de codificação de vídeo
CN113841399A (zh) 图像编码/解码方法和设备
RU2808720C2 (ru) Способ и устройство для кодирования/декодирования сигналов изображений
RU2819080C2 (ru) Способ и устройство кодирования/декодирования сигналов изображений
KR20230159255A (ko) 크로마 성분별 인트라 예측모드의 부호화를 위한 방법 및 장치