BR112021000698A2 - Candidatos de mesclagem com múltiplas hipóteses - Google Patents

Candidatos de mesclagem com múltiplas hipóteses Download PDF

Info

Publication number
BR112021000698A2
BR112021000698A2 BR112021000698-2A BR112021000698A BR112021000698A2 BR 112021000698 A2 BR112021000698 A2 BR 112021000698A2 BR 112021000698 A BR112021000698 A BR 112021000698A BR 112021000698 A2 BR112021000698 A2 BR 112021000698A2
Authority
BR
Brazil
Prior art keywords
prediction
candidates
list
current block
mode
Prior art date
Application number
BR112021000698-2A
Other languages
English (en)
Other versions
BR112021000698A8 (pt
Inventor
Man-Shu Chiang
Chih-Wei Hsu
Original Assignee
Mediatek Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mediatek Inc. filed Critical Mediatek Inc.
Publication of BR112021000698A2 publication Critical patent/BR112021000698A2/pt
Publication of BR112021000698A8 publication Critical patent/BR112021000698A8/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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

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

Abstract

candidatos de mesclagem com múltiplas hipóteses. um decodificador de vídeo recebe dados a-serem-decodificados a partir de um fluxo de bits para um bloco de pixels a ser decodificado como um bloco atual de uma imagem atual do vídeo. o decodificador de vídeo gera uma primeira predição do bloco atual com base em um primeiro modo de predição que é selecionado a partir de uma primeira lista de candidatos. o decodificador de vídeo gera uma segunda predição do bloco atual com base em um segundo modo de predição que é selecionado a partir de uma segunda lista de candidatos. o decodificador de vídeo gera uma predição combinada para o bloco atual com base na primeira predição e na segunda predição. o decodificador de vídeo reconstrói o bloco atual usando a predição combinada.

Description

CANDIDATOS DE MESCLAGEM COM MÚLTIPLAS HIPÓTESES REFERÊNCIA CRUZADA A PEDIDOS DE PATENTE RELACIONADO(S)
[001] A presente divulgação é parte de um pedido não provisório que reivindica o benefício de prioridade do Pedido de Patente Provisório dos EUA No. 62/699.760, depositado em 18 de julho de 2018. O conteúdo dos pedidos listados acima é aqui incorporado por referência.
CAMPO TÉCNICO
[002] A presente divulgação se refere geralmente ao processamento de vídeo. Em particular, a presente divulgação se refere a métodos de codificação de um bloco de pixel usando múltiplas hipóteses para realizar interpredição.
FUNDAMENTOS
[003] A menos que indicado de outra forma neste documento, as abordagens descritas nesta seção não são técnicas anteriores às reivindicações listadas abaixo e não são admitidas como técnica anterior pela inclusão nesta seção.
[004] Codificação de vídeo de alta eficiência (HEVC) é um padrão de codificação de vídeo internacional desenvolvido pela Equipe Colaborativa Conjunta sobre Codificação de Vídeo (JCT-VC). O HEVC é baseado na arquitetura de codificação de transformada tipo DCT com compensação de movimento baseado em bloco híbrido. A unidade básica para compressão, denominada unidade de codificação (CU), é um bloco quadrado de 2Nx2N de pixels, e cada CU pode ser dividida recursivamente em quatro CUs menores até que o tamanho mínimo predefinido seja alcançado. Cada CU contém uma ou várias unidades de predição (PUs). Cada PU corresponde a um bloco de pixels na CU.
[005] Para alcançar a melhor eficiência de codificação da arquitetura de codificação híbrida, HEVC emprega modos de intrapredição e/ou interpredição para cada PU. Para modos de intrapredição, os pixels reconstruídos vizinhos espaciais podem ser usados para gerar as predições direcionais em 35 direções. Para modos de interpredição, as informações de movimento são usadas para reconstruir quadros de referência temporais, que são usados para gerar predições compensadas de movimento. As informações de movimento podem incluir vetores de movimento, preditores de vetor de movimento, diferenças de vetor de movimento, índices de referência para selecionar quadros de referência, etc.
[006] Existem três tipos de modos de interpredição: modo de salto, modo de mesclagem e modo de predição de vetor de movimento avançada (AMVP). No modo de AMVP, os vetores de movimento (MVs) usados para predição com compensação de movimento de PUs são derivados de preditores de vetor de movimento (MVPs) e diferenças de vetor de movimento (MVDs ou dados de movimento residuais) de acordo com MV = MVP + MVD. Para uma PU prevista por AMVP, o MVP é selecionado entre um conjunto de candidatos de MVP que inclui dois candidatos espaciais e um candidato temporal. Um índice que identifica a seleção do MVP é codificado e transmitido junto com a MVD correspondente como informação de movimento. Índice de referência para selecionar um quadro de referência (ou índices de referência para selecionar quadros de referência) a partir da lista de quadros de referência L0 e/ou L1 para predição bidirecional ou unidirecional também é codificado e transmitido como informação de movimento.
[007] Quando uma PU é codificada ou no modo de salto ou modo de mesclagem, nenhuma informação de movimento é transmitida, exceto o índice de mesclagem do candidato selecionado. Isso ocorre porque o modo de salto e o modo de mesclagem utilizam métodos de inferência de movimento (MV = MVP + MVD onde MVD é zero) para obter as informações de movimento de blocos espacialmente vizinhos (candidatos espaciais) ou blocos colocalizados em imagens temporalmente vizinhas (candidatos temporais) que são selecionados a partir da lista de quadros de referência L0 ou L1 (indicada no cabeçalho de fatia). No caso de uma PU de salto, o sinal residual para o bloco sendo codificado também é omitido. Para retransmitir informações de movimento para um bloco de pixel em HEVC usando AMVP, modo de mesclagem ou modo de salto, um índice é usado para selecionar um MVP (ou preditor de movimento) a partir de uma lista de preditores de movimento candidatos. No modo de mesclagem/salto, um índice de mesclagem é usado para selecionar um MVP a partir de uma lista de preditores de movimento candidatos que inclui quatro candidatos espaciais e um candidato temporal. O índice de mesclagem é transmitido, mas os preditores de movimento não são transmitidos.
SUMÁRIO
[008] O seguinte sumário é apenas ilustrativo e não se destina a ser limitativo de qualquer forma. Ou seja, o seguinte sumário é fornecido para introduzir conceitos, destaques, benefícios e vantagens das novas e não óbvias técnicas aqui descritas. Selecionadas e nem todas as implementações são descritas abaixo na descrição detalhada. Assim, o seguinte sumário não se destina a identificar recursos essenciais do objeto reivindicado, nem se destina a ser usado na determinação do escopo do objeto reivindicado.
[009] Algumas modalidades da divulgação fornecem um decodificador de vídeo que recebe dados a-serem- decodificados a partir de um fluxo de bits para um bloco de pixels a ser decodificado como um bloco atual de uma imagem atual do vídeo. O decodificador de vídeo gera uma primeira predição do bloco atual com base em um primeiro modo de predição que é selecionado a partir de uma primeira lista de candidatos compreendendo um ou mais modos de interpredição candidatos. O decodificador de vídeo gera uma segunda predição do bloco atual com base em um segundo modo de predição que é selecionado a partir de uma segunda lista de candidatos compreendendo um ou mais modos de intrapredição candidatos que são identificados com base em uma propriedade do bloco atual. O decodificador de vídeo gera uma predição combinada para o bloco atual com base na primeira predição e na segunda predição. O decodificador de vídeo reconstrói o bloco atual usando a predição combinada. Em algumas modalidades, o decodificador de vídeo determina se deve gerar a segunda predição com base em uma bandeira explícita no fluxo de bits.
[0010] O decodificador de vídeo pode determinar se deve gerar a segunda predição com base em uma largura, uma altura ou um tamanho do bloco atual. O decodificador de vídeo pode determinar uma ordenação da segunda lista de candidatos com base em uma largura, uma altura ou um tamanho do bloco atual, ou com base em uma direção do primeiro modo de predição selecionado. O decodificador de vídeo também pode determinar uma série de candidatos da segunda lista de candidatos do bloco atual com base em uma largura, uma altura ou um tamanho do bloco atual. O decodificador de vídeo pode sinalizar um candidato em uma posição particular do segundo candidato usando uma palavra de código mais curta.
[0011] Em algumas modalidades, a segunda lista de candidatos compreende não mais do que um modo de intrapredição candidato quando um tamanho do bloco atual é menor do que um limiar, e o um modo de intrapredição candidato é identificado com base em uma razão entre uma largura do bloco atual e uma altura do bloco atual. Em algumas modalidades, a predição combinada é aplicável apenas a uma sub-região do bloco atual, o tamanho da sub-região é determinado com base em um tamanho do bloco atual.
BREVE DESCRIÇÃO DOS DESENHOS
[0012] Os desenhos anexos são incluídos para fornecer um melhor entendimento da presente divulgação e são incorporados e constituem uma parte da presente divulgação. Os desenhos ilustram implementações da presente divulgação e, juntamente com a descrição, servem para explicar os princípios da presente divulgação. É apreciável que os desenhos não estão necessariamente em escala, pois alguns componentes podem ser mostrados como sendo desproporcionais do que o tamanho na implementação real, a fim de ilustrar claramente o conceito da presente divulgação.
[0013] A Figura 1 mostra o conjunto de candidatos de MVP para modos de interpredição em HEVC.
[0014] A Figura 2 ilustra uma lista de candidatos de mesclagem que inclui candidatos de mesclagem bipreditivos combinados.
[0015] A Figura 3 ilustra uma lista de candidatos de mesclagem que inclui candidatos de mesclagem escalonados.
[0016] A Figura 4 ilustra um exemplo em que candidatos de vetor zero são adicionados a uma lista de candidatos de mesclagem ou a uma lista de candidatos de AMVP.
[0017] A Figura 5 mostra os modos de intrapredição em diferentes direções.
[0018] As Figuras 6a-b cada uma ilustra conceitualmente a codificação ou decodificação de um bloco de pixels usando o modo de múltiplas hipóteses.
[0019] As Figuras 7a-b cada uma ilustra conceitualmente a codificação de um bloco quando apenas uma sub-região do bloco usa predições combinadas do modo de MH para Intra.
[0020] As Figuras 8a-b cada uma ilustra conceitualmente a aplicação do modo de MH para Intra para blocos de tamanhos diferentes, consistente com uma modalidade exemplar.
[0021] As Figuras 9a-b cada uma ilustra conceitualmente a codificação de um bloco quando apenas uma sub-região do bloco usa predições combinadas do modo de MH para Inter.
[0022] As Figuras 10a-b cada uma ilustra conceitualmente a aplicação do modo de MH para Inter para blocos de tamanhos diferentes, consistente com uma modalidade exemplar.
[0023] A Figura 11 ilustra um exemplo de codificador de vídeo que pode implementar o modo de MH.
[0024] As Figuras 12a-b cada uma ilustra porções do codificador de vídeo que podem implementar o modo de MH ao codificar um bloco de pixels.
[0025] As Figuras 13a-b cada uma ilustra conceitualmente um processo que codifica um bloco de pixels usando o modo de MH.
[0026] A Figura 14 ilustra um decodificador de vídeo de exemplo que pode implementar o modo de MH.
[0027] As Figuras 15a-b cada ilustra porções do decodificador de vídeo que pode implementar o modo de MH ao decodificar um bloco de pixels.
[0028] As Figuras 16a-b cada uma ilustra conceitualmente um processo que decodifica um bloco de pixels usando o modo de MH.
[0029] A Figura 17 ilustra conceitualmente um sistema eletrônico com o qual algumas modalidades da presente divulgação são implementadas.
DESCRIÇÃO DETALHADA
[0030] Na seguinte descrição detalhada, inúmeros detalhes específicos são apresentados por meio de exemplos, a fim de fornecer uma compreensão completa dos ensinamentos relevantes. Quaisquer variações, derivados e/ou extensões com base nos ensinamentos descritos neste documento estão dentro do escopo de proteção da presente divulgação. Em alguns casos, métodos, procedimentos, componentes e/ou circuitos bem conhecidos pertencentes a uma ou mais implementações de exemplo divulgadas neste documento podem ser descritos em um nível relativamente alto sem detalhes, a fim de evitar aspectos desnecessariamente obscuros dos ensinamentos da presente divulgação. Modos de interpredição
[0031] A Figura 1 mostra o conjunto de candidatos de MVP para modos de interpredição em HEVC (ou seja, salto, mesclagem e AMVP). A figura mostra um bloco atual 100 de uma imagem ou quadro de vídeo sendo codificado ou decodificado. O bloco atual 100 (que pode ser uma PU ou uma CU) refere-se a blocos vizinhos para derivar os MVPs espaciais e temporais para o modo de AMVP, modo de mesclagem ou modo de salto.
[0032] Para o modo de salto e modo de mesclagem, até quatro índices de mesclagem espacial são derivados de A0, A1, B0 e B1, e um índice de mesclagem temporal é derivado de TBR ou TCTR (TBR é usado primeiro, se TBR não estiver disponível, TCTR é usado em seu lugar). Se qualquer um dos quatro índices de mesclagem espacial não estiver disponível, a posição B2 será usada para derivar o índice de mesclagem como uma substituição. Após derivar quatro índices de mesclagem espacial e um índice de mesclagem temporal, os índices de mesclagem redundantes são removidos. Se o número de índices de mesclagem não redundantes for inferior a cinco, candidatos adicionais podem ser derivados a partir dos candidatos originais e adicionados à lista de candidatos. Existem três tipos de candidatos derivados:
1. Candidato de mesclagem bipreditivo combinado (candidato derivado tipo 1)
2. Candidato de mesclagem bipreditivo escalonado (candidato derivado tipo 2)
3. Mesclagem de vetor zero/candidato de AMVP (candidato derivado tipo 3)
[0033] Para o candidato derivado tipo 1, candidatos de mesclagem bipreditivos combinados são criados combinando candidatos de mesclagem originais. Especificamente, se a fatia atual for uma fatia B, um outro candidato de mesclagem pode ser gerado combinando candidatos da Lista 0 e Lista 1. A Figura 2 ilustra uma lista de candidatos de mesclagem que inclui candidatos de mesclagem bipreditivos combinados. Conforme ilustrado, dois candidatos originais tendo mvL0 (o vetor de movimento na lista 0) e refIdxL0 (o índice de imagem de referência na lista 0) ou mvL1 (o vetor de movimento na lista 1) e refIdxL1 (o índice de imagem de referência na lista 1), são usados para criar candidatos de mesclagem bipreditivos.
[0034] Para o candidato derivado tipo 2, os candidatos de mesclagem escalonados são criados por escalonar os candidatos de mesclagem originais. A Figura 3 ilustra uma lista de candidatos de mesclagem que inclui candidatos de mesclagem escalonados. Conforme ilustrado, um candidato de mesclagem original tem mvLX (o vetor de movimento na lista X, X pode ser 0 ou 1) e refIdxLX (o índice de imagem de referência na lista X, X pode ser 0 ou 1). Por exemplo, um candidato original A é uma MV unipredito de lista 0 com mvL0_A e índice de imagem de referência ref0. O candidato A é inicialmente copiado para a lista L1 como tendo o índice de imagem de referência ref0’. O MV escalonado mvL0'_A é calculado por escalonar mvL0_A com base em ref0 e ref0’. Um candidato de mesclagem bipreditivo escalonado tendo mvL0_A e ref0 na lista L0 e mvL0'_A e ref0’na lista L1 é criado e adicionado à lista de candidatos de mesclagem. Da mesma forma, um candidato de mesclagem bipreditivo escalonado que tem mvL1'_A e ref1’ na Lista 0 e mvL1_A, ref1 na Lista 1 é criado e adicionado à lista de candidatos de mesclagem.
[0035] Para o candidato derivado tipo 3, os candidatos de vetor zero são criados por combinar vetores zero e índices de referência. Se um candidato de vetor zero criado não for uma duplicata, ele será adicionado à lista de candidatos de mesclagem/AMVP. A Figura 4 ilustra um exemplo em que candidatos de vetor zero são adicionados a uma lista de candidatos de mesclagem ou a uma lista de candidatos de AMVP. Modo de intrapredição
[0036] O método de intrapredição explora uma camada de referência adjacente à unidade de predição atual (PU) e um dos modos de intrapredição para gerar os preditores para a PU atual. A direção de intrapredição pode ser escolhida entre um conjunto de modos contendo múltiplas direções de predição. Para cada PU codificada por Intrapredição, um índice será usado e codificado para selecionar um dos modos de intrapredição. A predição correspondente será gerada e, em seguida, os resíduos podem ser derivados e transformados.
[0037] A Figura 5 mostra os modos de intrapredição em diferentes direções. Esses modos de intrapredição são chamados de modos direcionais e não incluem o modo de DC ou o modo Planar. Conforme ilustrado, existem 33 modos direcionais (V: direção vertical; H: direção horizontal), então H, H + 1 ~ H + 8, H-1 ~ H-7, V, V + 1 ~ V + 8, V -1 ~ V-8 são usados. Geralmente, os modos direcionais podem ser representados como modos H + k ou V + k, onde k = ± 1, ± 2, ..., ± 8. (Em algumas modalidades, o modo de intrapredição tem 65 modos direcionais de modo que o intervalo de k é de ± 1 a ± 16).
[0038] Dos 35 modos de intrapredição em HEVC, 3 modos são considerados como os modos mais prováveis (MPM) para prever o modo de intrapredição no bloco de predição atual. Esses três modos são selecionados como um conjunto de MPM.
Por exemplo, o modo de intrapredição usado no bloco de predição esquerdo e o modo de intrapredição usado no bloco de predição acima são usados como MPMs. Quando os modos de intrapredição em dois blocos vizinhos usam o mesmo modo de intrapredição, o modo de intrapredição pode ser usado como um MPM. Quando apenas um dos dois blocos vizinhos está disponível e codificado no modo direcional, as duas direções vizinhas imediatamente próximas a este modo direcional podem ser usadas como MPMs. O modo de DC e o modo Planar também são considerados MPMs para preencher os pontos disponíveis no conjunto de MPM, especialmente se os blocos vizinhos acima ou superiores não estiverem disponíveis ou não codificados em intrapredição, ou se os modos de intrapredição em blocos vizinhos não são modos direcionais. Se o modo de intrapredição para o bloco de predição atual for um dos modos no conjunto de MPM, 1 ou 2 bits são usados para sinalizar qual é. Caso contrário, o modo de intrapredição do bloco atual não é o mesmo que qualquer entrada no conjunto de MPM, e o bloco atual será codificado como um modo não-MPM. Existem 32 modos não-MPM no total e um método de codificação de comprimento fixo (5 bits) é aplicado para sinalizar este modo. Modo de Múltiplas Hipóteses
[0039] Algumas modalidades da divulgação fornecem um modo de múltiplas hipóteses para melhorar a Interpredição, que é um método melhorado para os modos de Salto e/ou Mesclagem. No modo Salto e Mesclagem original, um índice de mesclagem é usado para selecionar um candidato de movimento, que pode ser unipredição ou bipredição derivada pelo próprio candidato, a partir da lista de candidatos de mesclagem. O preditor de compensação de movimento gerado é referido como a primeira hipótese (ou primeira predição) em algumas modalidades. No modo de múltiplas hipóteses, uma segunda hipótese é produzida além da primeira hipótese. A segunda hipótese de preditores pode ser gerada pela compensação de movimento de um candidato de movimento ou um modo de interpredição (por exemplo, modos de Salto ou Mesclagem). A segunda hipótese de preditores também pode ser gerada por um modo de Intrapredição a partir dos modos Intra. Quando o modo de múltiplas hipóteses é suportado, um ou mais de um candidato(s) de múltiplas hipóteses podem estar disponíveis para o modo de Salto e/ou Mesclagem. Quando a segunda hipótese (ou segunda predição) é gerada por um modo de Intrapredição, o modo de múltiplas hipóteses é referido como modo de MH para Intra ou MH Intra. Quando a segunda hipótese é gerada pela compensação de movimento por um candidato de movimento ou um modo de interpredição (por exemplo, modo de Salto ou Mesclagem), o modo de múltiplas hipóteses é referido como modo de MH para Inter ou modo de MH Inter (ou também chamado como modo de MH para Mesclagem ou MH de Mesclagem).
[0040] Para o modo de MH para Intra, cada candidato de múltiplas hipóteses (ou chamado de cada candidato com múltiplas hipóteses) contém um candidato de movimento e um modo de Intrapredição, onde o candidato de movimento é selecionado a partir da Lista de Candidatos I e o modo de Intrapredição é selecionado da Lista de Candidatos II. Ou seja, um candidato de movimento pode corresponder a um ou mais modos de intrapredição.
[0041] Para o modo de MH para Inter, cada candidato de múltiplas hipóteses (ou chamado de cada candidato com múltiplas hipóteses) contém dois candidatos de movimento. Em algumas modalidades, a Lista de Candidatos I é idêntica à lista de Candidatos de Mesclagem do bloco atual e que ambos os candidatos de movimento de um candidato de múltiplas hipóteses do modo de MH Inter são selecionados a partir da Lista de Candidatos I. Em algumas modalidades, a Lista de Candidatos I é um subconjunto da lista de candidatos de Mesclagem e que um primeiro candidato de movimento de um candidato de múltiplas hipóteses é selecionado a partir da lista de Candidatos de Mesclagem e um segundo candidato de movimento do mesmo candidato de múltiplas hipóteses é selecionado a partir da Lista de Candidatos I.
[0042] As Figuras 6a-b cada uma ilustra conceitualmente a codificação ou decodificação de um bloco de pixels usando modos de múltiplas hipóteses. A figura ilustra uma imagem de vídeo 600 que está sendo codificada ou decodificada por um codificador de vídeo. A imagem de vídeo 600 inclui um bloco de pixels 610 que está sendo codificado ou decodificado como um bloco atual. O bloco atual 610 é codificado pelo modo de MH, especificamente, uma predição combinada 620 é gerada com base em uma primeira predição 622 (primeira hipótese) do bloco atual 610 e uma segunda predição 624 (segunda hipótese) do bloco atual 610. A predição combinada 620 é então usada para reconstruir o bloco atual
610.
[0043] A Figura 6a ilustra o bloco atual 610 sendo codificado usando o modo de MH para Intra. Especificamente, a primeira predição é obtida por interpredição com base em pelo menos um dos quadros de referência 602 e 604. A segunda predição é obtida por intrapredição com base em pixels vizinhos 606 do bloco atual 610. Conforme ilustrado, a primeira predição 622 é gerada com base em um modo de interpredição ou um candidato de movimento 642 (primeiro modo de predição) que é selecionado a partir de uma primeira lista de candidatos 632 (Lista de candidatos I) que compreende um ou mais modos de interpredição candidatos. A segunda predição 624 é gerada com base em um modo de intrapredição 644 (segundo modo de predição) que é selecionado a partir de uma segunda lista de candidatos 634 (Lista de candidatos II) compreendendo um ou mais modos de intrapredição candidatos.
[0044] A Figura 6b ilustra o bloco atual 610 sendo codificado usando o modo de MH para Inter. Especificamente, a primeira predição 622 é obtida por interpredição com base em pelo menos um dos quadros de referência 602 e 604. A segunda predição 624 é obtida por interpredição com base em pelo menos um dos quadros de referência 606 e 608. Conforme ilustrado, a primeira predição 622 é gerada com base em um modo de interpredição ou um candidato de movimento 642 (primeiro modo de predição) que é selecionado a partir da primeira lista de candidatos 632 (Lista de Candidatos I). A segunda predição 624 é gerada com base em um modo de interpredição ou um candidato de movimento 646 (segundo modo de predição) que também é selecionado a partir da primeira lista de candidatos 632 (Lista de Candidatos I).
[0045] Em algumas modalidades, quando o modo de MH para Intra é suportado, uma bandeira é sinalizada para representar se o modo de MH para Intra é aplicado. Tal bandeira pode ser representada ou indicada por um elemento de sintaxe em um fluxo de bits. Se a bandeira estiver ativada, um índice de modo Intra adicional é sinalizado para indicar o modo de Intrapredição a partir da Lista de candidatos II.
[0046] Em algumas modalidades, para MH Intra ou MH Inter, os índices que são usados para selecionar o primeiro modo de predição e o segundo modo de predição são sinalizados separada e distintamente, por exemplo, como dois elementos de sintaxe em um fluxo de bits que codifica a imagem de vídeo
600. Por exemplo, um primeiro elemento de sintaxe pode ser usado para indicar a seleção do primeiro candidato 642 a partir da primeira lista de candidatos 632 e um segundo elemento de sintaxe pode ser usado para indicar a seleção do segundo candidato 644 a partir da segunda lista de candidatos 634 (ou a primeira lista de candidatos 632).
[0047] Em algumas modalidades, quando o modo de MH para Intra é aplicado, a Lista de candidatos I pode ser a mesma que para o modo de Mesclagem normal ou ser um subconjunto daquela para o modo de Mesclagem normal. Por exemplo, a Lista de candidatos I pode conter apenas candidatos espaciais (por exemplo, A0, A1, B0, B1 e B2) e/ou candidatos temporais (TBR e TCTR). Para outro exemplo, a Lista de candidatos I pode excluir modos estendidos que não são usados em HEVC. Em algumas modalidades, quando o modo de MH para Intra é aplicado, a Lista de candidatos II pode ser a mesma que para os modos Intra normais (33 ou 65 modos direcionais além dos modos planar e DC) ou ser um subconjunto daquela para os modos Intra normais.
[0048] Em algumas modalidades, o modo de MH para Intra é suportado sem sintaxe adicional. Por exemplo, a primeira lista de candidatos 632 e a segunda lista de candidatos 634 são incorporadas na lista de candidatos de mesclagem, de modo que cada candidato para o modo de MH para Intra possa ser inserido ou incluído na lista de candidatos de mesclagem e ser indicado ou selecionado pelo índice de mesclagem para o modo Salto e Mesclagem original. O comprimento (L) da lista de candidatos de mesclagem pode ser mantido o mesmo ou ser estendido para L + N, onde N é um número positivo (dos candidatos adicionais inseridos para o modo de MH) e pode variar com uma regra predeterminada, como largura de bloco e/ou altura do bloco.
[0049] Em algumas modalidades, o modo de MH para Intra é suportado sem sintaxe adicional. Cada candidato ao modo de MH para Intra pode ser inserido na lista de candidatos de mesclagem de acordo com uma regra ou ordem predefinida e ser indicado ou selecionado pelo índice de mesclagem para o modo de Salto e Mesclagem original, ou seja, um único índice de mesclagem pode ser usado para selecionar um modo de interpredição único para hipótese única (por exemplo, B1) ou para selecionar uma interpredição e uma intrapredição como um par (por exemplo, B1, Planar) para MH Intra. Em algumas modalidades, de acordo com uma regra predefinida, cada candidato para o modo de MH para Intra pode ser inserido adjacente ao candidato de movimento correspondente na lista de candidatos de mesclagem de modo que a lista de candidatos de mesclagem seja formada da seguinte forma: A0, (A0, Planar), (A0, DC),..., A1, (A1, Planar), (A1, DC),..., B0, (B0, Planar), (B0, DC),..., B1, (B1, Planar), (B0, DC),..., onde Lista de candidatos I = {A0, A1, B0, B1,...}, Lista de candidatos II = {Planar, DC,...}, e cada um de (A0, Planar), (A0, DC), (A1, Planar),
(A1, DC), (B0, Planar), (B0, DC), (B1, Planar), (B0, DC) representa um candidato de múltiplas hipóteses (ou chamado de candidato com múltiplas hipóteses) Em algumas modalidades, de acordo com a regra predefinida, os candidatos para o modo de MH para Intra podem ser inseridos em uma posição específica da lista de candidatos de mesclagem. Por exemplo, os candidatos para o modo de MH para Intra podem seguir os candidatos espaciais, os candidatos temporais, o candidato tipo 1, o candidato tipo 2 ou o candidato tipo 3, etc. Em algumas modalidades, os candidatos para o modo de MH para Intra podem ser inseridos na lista de candidatos de mesclagem em qualquer posição ou com uma ordem predefinida.
[0050] Em algumas modalidades, quando o modo de MH para Intra é aplicado, um modo de Intrapredição é selecionado a partir da Lista de candidatos II com base em uma ordem predeterminada. Por exemplo, um modo de Intrapredição em uma posição particular da segunda lista de candidatos 634 (por exemplo, na frente ou no início da Lista de candidatos II) pode ser implicitamente decidido como o modo de Intrapredição escolhido ou ser sinalizado usando uma palavra de código mais curta. No exemplo da Figura 6a, o candidato 644 na segunda lista de candidatos 634 pode ser implicitamente selecionado como o modo de intrapredição para o modo de MH para Intra ou ser atribuído a uma palavra de código mais curta, porque o candidato 644 está no início ou na frente da segunda lista de candidatos 634.
[0051] A ordem dos candidatos na Lista de Candidatos II pode depender de ou ser estabelecida com base em critérios como a direção do candidato de movimento correspondente (selecionado a partir da Lista de Candidatos I) ou a largura,
altura ou tamanho do bloco atual 610. Por exemplo, quando a largura do bloco é muito maior do que a altura do bloco, o candidato ao modo de MH para Intra, cujo modo Intra direcional está se aproximando da direção vertical, pode ser inserido na Lista de candidatos II antes daqueles cujo modo Intra direcional está se aproximando da direção horizontal; de outro modo, o contrário é aplicado. Em outras palavras, quando a razão entre a largura do bloco e a altura do bloco é maior do que um certo limiar, os candidatos na lista de candidatos II são posicionados de modo que os modos intra se aproximam da direção vertical (por exemplo, modos direcionais “V”, “V- 1 ”, etc.) são colocados na frente dos modos intra próximos da direção horizontal (por exemplo, modos direcionais “H”, “H-1”, etc.); quando a razão entre a largura do bloco e a altura do bloco é menor do que um certo limiar, os candidatos na lista de candidatos II são posicionados de modo que os modos intra próximos da direção horizontal sejam colocados na frente dos modos intra próximos da direção vertical. Por outro exemplo, para aqueles modos de Intrapredição com os mesmos candidatos de movimento, quando o MVP do candidato de movimento é a partir do bloco vizinho esquerdo, o candidato cujo modo Intra direcional está se aproximando da direção horizontal pode ser inserido antes daqueles cujo modo Intra direcional está aproximando- se da direção vertical.
[0052] O tamanho da Lista de Candidatos II ou o número de modos intra/direcionais dentro da Lista de Candidatos II pode variar com a largura ou altura do bloco ou o número de modos disponíveis para o modo Intra normal. Por exemplo, quando o tamanho do bloco é maior do que um limiar predeterminado, um índice de modo Intra é sinalizado para indicar ou selecionar um modo de Intrapredição a partir de múltiplos modos de intrapredição na Lista de Candidatos II; caso contrário, apenas um modo de Intrapredição pode estar na Lista de candidatos II para MH Intra. Em algumas modalidades, quando a Lista de Candidatos II contém apenas um modo Intra candidato, o modo de Intrapredição alvo selecionado a partir da Lista de Candidatos II para o modo de MH para Intra pode ser atribuído implicitamente em vez de explicitamente sinalizado. Para aqueles pequenos blocos, o modo de intrapredição candidato é identificado com base em uma razão entre a largura do bloco e a altura do bloco. Por exemplo, se a largura do bloco é muito maior do que a altura do bloco (por exemplo, a relação largura/altura é maior do que um limiar), esse modo de Intrapredição é atribuído ao modo vertical (por exemplo, modo intra direcional “V”); e se a altura do bloco for muito maior do que a largura do bloco (por exemplo, a relação largura/altura é menor que um limiar), esse modo de Intrapredição é atribuído ao modo horizontal (por exemplo, modo intra direcional “H”). Para outros blocos pequenos, esse modo de Intrapredição é atribuído ao modo planar.
[0053] Em algumas modalidades, quando as configurações de porção de bloco são aplicadas ao modo de MH (como o modo de MH para Intra ou modo de MH para Mesclagem), apenas a sub-região de todo o bloco pode ser adicionada para a hipótese. A sub-região pode ser formada por vários sub- blocos contínuos ou vários sub-blocos separados. Por exemplo, a sub-região inclui a área de bloco exclusiva do limiar. Para outro exemplo, a sub-região inclui os sub-blocos próximos ao centro do bloco. Ainda para outro exemplo, a sub-região inclui os sub-blocos nos cantos. Para outro exemplo, a sub-região inclui os sub-blocos ao longo de uma direção, como direção diagonal, direção diagonal inversa, direção horizontal, direção vertical ou qualquer direção a partir de 33 ou 65 modos intradirecionais.
[0054] As Figuras 7a-b cada uma ilustra conceitualmente a codificação de um bloco 700 quando apenas uma sub-região do bloco usa predições combinadas do modo de MH (como o modo de MH para Intra ou modo de MH para Mesclagem). A Figura 7a ilustra duas unidades de predição 710 e 720 no bloco 700. A primeira unidade de predição 710 é ilustrada como um triângulo na parte superior direita do bloco 700 e a segunda unidade de predição 720 é ilustrada como um triângulo na parte inferior esquerda do bloco 700. A unidade de predição 710 é codificada por interpredição, enquanto a unidade de predição 720 pode ser codificada por interpredição ou intrapredição.
[0055] A Figura 7b ilustra o bloco 700 sendo codificado quando o modo de MH (tal como MH Intra ou modo de MH para Mesclagem) está ligado. Conforme ilustrado, o bloco 700 é dividido em três sub-regiões 730, 740 e 750. A sub- região 730 corresponde à unidade de predição 710 e é codificada por interpredição (por exemplo, modo de mesclagem) apenas sem usar intrapredição. A sub-região 750 corresponde à unidade de predição 720 e é codificada por intrapredição ou interpredição. A sub-região 740 é uma região de sobreposição da unidade de predição 710 e a predição 720. Se a unidade de predição 720 for codificada por intrapredição, a região de sobreposição 740 é codificada pelo modo de MH para Intra, isto é, por predição combinada de interpredição da primeira unidade de predição 710 e intrapredição da segunda unidade de predição 720. Se a unidade de predição 720 for codificada por interpredição, a região de sobreposição 740 é codificada pelo modo de MH para Inter (também chamado de modo de MH para Mesclagem ou MH Mesclagem), isto é, por predição combinada da interpredição da primeira unidade de predição 710 e a interpredição da segunda unidade de predição 720.
[0056] Em algumas modalidades, o tamanho da sub- região de sobreposição (por exemplo, sub-região 740 do bloco 700) para a qual a predição combinada do modo de MH (como MH Intra ou modo de MH para Mesclagem) é aplicada varia com base em tamanho do bloco ou pode ser determinado com base no tamanho do bloco atual. O tamanho da sub-região de sobreposição pode ser referido como configuração de porção de bloco. Especificamente, a porção do bloco (ou seja, a sub-região de sobreposição 740) pode ser expandida ou reduzida dependendo de certos critérios, como largura ou altura do bloco ou tamanho do bloco. Em algumas modalidades, para um bloco menor, tal sub-região para o modo de MH é menor do que uma sub-região para o modo de MH de um bloco maior.
[0057] As Figuras 8a-b cada uma ilustra conceitualmente a aplicação do modo de MH para Intra para blocos de tamanhos diferentes, consistente com uma modalidade exemplar. As figuras ilustram blocos de tamanhos diferentes com sub-regiões de tamanhos diferentes para os quais o MH Intra é aplicado. As figuras também ilustram blocos de tamanhos diferentes com listas de candidatos com diferentes números de candidatos para aplicar MH Intra.
Especificamente, o tamanho da Lista de candidatos I e/ou Lista de candidatos II varia com o tamanho, altura ou largura do bloco.
[0058] A Figura 8a ilustra um bloco 4x4 810 codificado pelo modo de MH para Intra. Conforme ilustrado, três sub-blocos ou pixels do canto superior direito do bloco 810 (ilustrado como não sombreado) são codificados por interpredição, enquanto os três sub-blocos ou pixels do canto inferior esquerdo do bloco 810 (ilustrados como escurecidos) são codificados por intrapredição. Os dez pixels ou sub- blocos intermediários do bloco 810 (ilustrados como hachurados) são codificados por predição combinada do modo de MH. Uma vez que o modo de MH para Intra é usado, um modo de interpredição e um modo de intrapredição são respectivamente selecionados de uma lista de candidatos 811 (Lista de candidatos I) e uma lista de candidatos 812 (Lista de candidatos II). Uma vez que a lista de candidatos 812 tem apenas um candidato, a seleção desse candidato é inferida sem bandeira explícita no fluxo de bits quando MH Intra é usado.
[0059] A Figura 8b ilustra um bloco 8x8 maior 820 codificado pelo modo de MH para Intra. Conforme ilustrado, 15 sub-blocos ou pixels do canto superior direito do bloco 820 (ilustrado como não sombreado) são codificados por interpredição, enquanto 15 sub-blocos ou pixels do canto inferior esquerdo do bloco 820 (ilustrado como escurecido) são codificados por intrapredição. Os 34 pixels ou sub-blocos intermediários do bloco 820 (ilustrados como hachurados) são codificados por predição combinada. Uma vez que o modo de MH para Intra é usado, um modo de interpredição e um modo de intrapredição são selecionados respectivamente a partir de uma lista de candidatos 821 (Lista de candidatos I) e uma lista de candidatos 822 (Lista de candidatos II). Para o bloco 8x8 820, a Lista de Candidatos I tem 7 candidatos, enquanto a Lista de Candidatos II tem 5 candidatos.
[0060] O bloco maior 820 tem uma região de sobreposição maior (na qual sub-blocos ou pixels são codificados por predição combinada) do que o bloco menor
810. Além disso, pelo menos uma das listas de candidatos (Lista de Candidatos I e/ou Candidatos Lista II) do bloco maior 820 tem mais candidatos do que pelo menos uma das listas de candidatos do bloco menor 810.
[0061] As Figuras 9a-b cada uma ilustra conceitualmente a codificação de um bloco 900 quando apenas uma sub-região do bloco usa predições combinadas de MH Inter (também chamado de modo de MH para Mesclagem ou MH de Mesclagem). A Figura 9a ilustra duas unidades de predição 910 e 920 no bloco 900. A unidade de predição 910 é ilustrada como um triângulo na parte superior direita do bloco 900 e a unidade de predição 920 é ilustrada como um triângulo na parte inferior esquerda do bloco 900. A unidade de predição 910 é codificada por um primeiro modo de interpredição enquanto a unidade de predição 920 é codificada por um segundo modo de intrapredição.
[0062] A Figura 9b ilustra o bloco 900 sendo codificado quando MH Inter está ligado. Conforme ilustrado, o bloco 910 é dividido em três sub-regiões 930, 940 e 950. A sub-região 930 corresponde à unidade de predição 910 e é codificada pelo primeiro modo de interpredição. A sub-região 950 corresponde à unidade de predição 920 e é codificada pelo segundo modo de interpredição. A sub-região 940 é uma região de sobreposição da unidade de predição 910 e a predição 920 e é codificada pela predição combinada do primeiro e segundo modos de interpredição.
[0063] Em algumas modalidades, o tamanho da sub- região de sobreposição (por exemplo, sub-região 940 do bloco 900) para a qual a predição combinada é aplicada varia com base no tamanho do bloco ou pode ser determinado com base em um tamanho do bloco atual. O tamanho da sub-região de sobreposição pode ser referido como configuração de porção de bloco. Especificamente, a porção do bloco (ou seja, a sub-região de sobreposição 940) pode ser expandida ou reduzida dependendo de certos critérios, como largura ou altura do bloco ou tamanho do bloco. Em algumas modalidades, para um bloco menor, tal sub-região é menor do que uma sub- região de um bloco maior.
[0064] As Figuras 10a-b cada uma ilustra conceitualmente a aplicação de MH Inter (também chamado de modo de MH para Mesclagem ou MH de Mesclagem) para blocos de tamanhos diferentes, de acordo com uma modalidade exemplar. As figuras ilustram blocos de tamanhos diferentes com sub- regiões de tamanhos diferentes para os quais o MH Inter é aplicado. A figura também ilustra blocos de tamanhos diferentes com listas de candidatos com diferentes números de candidatos para aplicar MH Inter.
[0065] A Figura 10a ilustra um bloco 4x4 1010 codificado pelo modo de MH para Inter. Conforme ilustrado, três sub-blocos ou pixels do canto superior direito do bloco 1010 (ilustrados como não sombreados) são codificados por um primeiro modo de interpredição, enquanto os três sub-blocos ou pixels do canto superior esquerdo do bloco 1010 (ilustrados como escurecidos) são codificados por um segundo modo de interpredição. Os dez pixels ou sub-blocos intermediários do bloco 1010 (ilustrados como hachurados) são codificados por predição combinada. O primeiro modo de interpredição e o segundo modo de interpredição para MH Inter do bloco 1010 são selecionados a partir de uma lista de candidatos 1011 (Lista de Candidatos I).
[0066] A Figura 10b ilustra um bloco 8x8 maior 1020 codificado pelo modo de MH para Inter. Conforme ilustrado, os 15 sub-blocos ou pixels do canto superior direito do bloco 1020 (ilustrados como não sombreados) são codificados por um primeiro modo de interpredição, enquanto os 15 sub-blocos ou pixels do canto inferior esquerdo do bloco 1020 (ilustrados como escurecidos) são codificados por um segundo modo de interpredição. Os 34 pixels ou sub-blocos intermediários do bloco 1020 (ilustrados como hachurados) são codificados por predição combinada (ou modo de MH para Inter). O primeiro e o segundo modos de interpredição para o MH Inter do bloco 1020 são selecionados a partir de uma lista de candidatos 1021 (Lista de candidatos I).
[0067] O bloco maior 1020 tem uma região de sobreposição maior (na qual sub-blocos ou pixels são codificados por predição combinada ou MH Inter) do que o bloco menor 1010. Em algumas modalidades, a lista de candidatos 1011 do bloco menor 1010 (Lista de Candidatos I com três candidatos) é menor do que a lista de candidatos 1021 do bloco maior 1020 (Lista de Candidatos I com sete candidatos).
[0068] Em algumas modalidades, o bloco tem uma configuração proibida que especifica a condição para desativar o modo de MH para Intra ou o modo de MH para Mesclagem. Essas condições podem depender da largura do bloco, altura do bloco ou tamanho do bloco.
[0069] Em algumas modalidades, ao adicionar ou calcular a média de interpredição, uma intrapredição ou combinação das mesmas para produzir a predição combinada sob MH Intra ou MH de Mesclagem (por exemplo, para a região de sobreposição 940), os valores de interpredição e/ou os valores de intrapredição em diferentes posições de pixel ou sub-bloco podem ser ponderados de forma diferente dependendo da posição dos pixels ou sub-blocos. Em algumas modalidades, as regiões do bloco que são codificadas por interpredição apenas ou intrapredição apenas podem ser implementadas como regiões cujos pesos para intrapredição ou interpredição são zero ao realizar o modo de MH para Intra.
[0070] Em algumas modalidades, ao adicionar ou calcular a média de uma primeira interpredição com uma segunda interpredição para produzir a predição combinada sob MH de Mesclagem (por exemplo, para a região de sobreposição 940), os valores de interpredição do primeiro candidato de movimento e os valores de interpredição do segundo candidato de movimento em diferentes posições de pixel ou sub-bloco podem ser ponderados de forma diferente dependendo da posição dos pixels ou sub-blocos. Em algumas modalidades, as regiões do bloco que são codificadas por interpredição do primeiro candidato de movimento apenas ou interpredição do segundo candidato de movimento apenas podem ser implementadas como regiões cujos pesos para interpredição do segundo candidato de movimento ou interpredição do primeiro candidato de movimento são zero ao realizar o modo de MH para Inter.
[0071] Em algumas modalidades, quando as configurações de movimento são aplicadas ao modo de MH para Mesclagem, a hipótese, que é gerada pelo candidato de movimento que satisfaz as condições de movimento predefinidas, pode ser usada para o modo de MH para Mesclagem. A condição de movimento pode ser que a imagem de referência seja a mesma da outra hipótese ou os vetores de movimento estejam dentro de uma região predefinida ou qualquer combinação dos anteriores.
[0072] Quando o modo de MH para Intra ou o modo de MH para Mesclagem é suportado, algumas configurações, como configurações de direção de predição, configurações de torneira diferentes, configurações de porção de bloco, configurações de movimento, configurações proibidas ou qualquer combinação dos anteriores podem ser aplicadas a qualquer uma das hipóteses ou ambas as hipóteses do modo de MH para Intra ou modo de MH para Mesclagem. Essas configurações podem ser usadas para satisfazer diferentes larguras de banda de compensação de movimento ou complexidade computacional do modo de MH para Intra ou o modo de MH para Mesclagem. Essas configurações podem ser habilitadas dependendo da sinalização implícita ou explícita. Em uma modalidade, a atribuição implícita pode depender da largura ou altura do bloco ou tamanho do bloco. Por exemplo, as configurações são aplicadas a blocos pequenos em vez de blocos grandes. Em algumas modalidades, a bandeira explícita pode depender de uma bandeira ou elemento de sintaxe no nível de CU, nível de fatia, nível de imagem, nível de conjunto de parâmetros de sequência (SPS) ou nível de conjunto de parâmetros de imagem (PPS) do fluxo de bits que codifica a imagem de vídeo.
[0073] Em algumas modalidades, quando as configurações de direção de predição são aplicadas ao modo de MH para Intra ou o modo de MH para Mesclagem, apenas a unipredição com uma lista de referência predefinida é usada para a hipótese de modo de MH para Intra ou o modo de MH para Mesclagem. Em algumas modalidades, quando diferentes configurações de torneira são aplicadas ao modo de MH para Intra ou o modo de MH para Mesclagem, o comprimento mais curto do filtro de interpolação de sub-pel para compensação de movimento (MC) pode ser usado para substituir o filtro de interpolação original para MC. Por exemplo, MC de pel inteiro pode ser usado em vez do MC sub-pel.
[0074] Em algumas modalidades, quando configurações proibidas são aplicadas ao modo de MH (como o modo de MH para Intra ou modo de MH para Mesclagem), as hipóteses não são adicionadas (por exemplo, a primeira predição e a segunda predição não são adicionadas). Ou seja, a configuração proibida pode ser vista como desabilitando o modo de MH para intra ou o modo de MH para Mesclagem em algumas condições. As condições podem depender da largura ou altura do bloco ou tamanho do bloco. Por exemplo, quando o bloco é menor do que NxM, o modo de MH para Intra ou o modo de MH para Mesclagem é desabilitado, onde N pode ser 4 ou 8 e M pode ser 4 ou 8. Por exemplo, quando o bloco é maior que NxM, modo de MH para Intra ou modo de MH para Mesclagem está desativado, onde N pode ser 4, 8, 16, 32, 64 ou 128 e M pode ser 4, 8, 16, 32, 64 ou 128. Em algumas modalidades, NxM pode ser representado como um limiar de tamanho de bloco gerado pelo resultado de
NxM. Por exemplo, se a área de bloco for maior que 16, 32, 64, 128, 256, 512 ou 1024, o modo de MH para Intra ou modo de MH para Mesclagem está desabilitado. Por exemplo, se a área de bloco for menor que 16, 32, 64, 128, 256, 512 ou 1024, o modo de MH para Intra ou modo de MH para Mesclagem está desabilitado.
[0075] Em algumas modalidades, as configurações combinadas para o modo de MH para Intra ou o modo de MH para Mesclagem podem ter muitas combinações possíveis. Um exemplo de combinação são diferentes configurações de torneira e configurações de porção de bloco. Ou seja, diferentes comprimentos de filtros de interpolação de sub-pel podem ser aplicados a diferentes porções do bloco. Por exemplo, para a sub-região no limiar do bloco, MC de pel inteiro é usado, para a sub-região próxima ao centro do bloco, comprimento mais longo de filtro de interpolação de sub-pel é usado, e para a sub-região restante, menor comprimento do filtro de interpolação de sub-pel é usado.
[0076] Qualquer um dos métodos propostos acima pode ser implementado em codificadores e/ou decodificadores. Por exemplo, qualquer um dos métodos propostos pode ser implementado em um módulo de intercodificação ou módulo de intracodificação de um codificador, um módulo de compensação de movimento, um módulo de derivação de candidato de mesclagem de um decodificador. Alternativamente, qualquer um dos métodos propostos pode ser implementado como um circuito acoplado ao módulo de intercodificação ou módulo de intracodificação de um codificador e/ou módulo de compensação de movimento, um módulo de derivação de candidato de mesclagem do decodificador.
Exemplo de codificador de vídeo
[0077] A Figura 11 ilustra um exemplo de codificador de vídeo 1100 que pode implementar o modo de MH (MH Intra e/ou MH Inter). Como ilustrado, o codificador de vídeo 1100 recebe o sinal de vídeo de entrada a partir de uma fonte de vídeo 1105 e codifica o sinal em fluxo de bits 1195. O codificador de vídeo 1100 tem vários componentes ou módulos para codificar o sinal a partir da fonte de vídeo 1105, incluindo pelo menos parte de um módulo de transformada 1110, um módulo de quantização 1111, um módulo de quantização inversa 1114, um módulo de transformada inversa 1115, um módulo de estimativa de intra-imagem 1120, um módulo de intrapredição 1125, um módulo de compensação de movimento 1130, um módulo de estimativa de movimento 1135, um filtro em loop 1145, um buffer de imagens reconstruídas 1150, um buffer de MV 1165 e um módulo de predição de MV 1175 e um codificador por entropia 1190. O módulo de compensação de movimento 1130 e o módulo de estimativa de movimento 1135 fazem parte de um módulo de interpredição 1140.
[0078] Em algumas modalidades, os módulos 1110 - 1190 são módulos de instruções de software sendo executados por uma ou mais unidades de processamento (por exemplo, um processador) de um dispositivo de computação ou aparelho eletrônico. Em algumas modalidades, os módulos 1110 - 1190 são módulos de circuitos de hardware implementados por um ou mais circuitos integrados (ICs) de um aparelho eletrônico. Embora os módulos 1110-1190 sejam ilustrados como módulos separados, alguns dos módulos podem ser combinados em um único módulo.
[0079] A fonte de vídeo 1105 fornece um sinal de vídeo bruto que apresenta dados de pixel de cada quadro de vídeo sem compressão. Um subtrator 1108 calcula a diferença entre os dados de pixel de vídeo brutos da fonte de vídeo 1105 e os dados de pixel previstos 1113 a partir do módulo de compensação de movimento 1130 ou módulo de intrapredição
1125. O módulo de transformada 1110 converte a diferença (ou os dados de pixel residuais ou sinal residual 1109) em coeficientes de transformada (por exemplo, por realizar Transformada de Cosseno Discreta (DCT), Transformada de Seno Discreta (DST) ou qualquer outra função de transformada). O módulo de quantização 1111 quantifica os coeficientes de transformada em dados quantizados (ou coeficientes quantizados) 1112, que são codificados para o fluxo de bits 1195 pelo codificador por entropia 1190.
[0080] O módulo de quantização inversa 1114 desquantiza os dados quantizados (ou coeficientes quantizados) 1112 para obter coeficientes de transformada, e o módulo de transformada inversa 1115 realiza a transformada inversa nos coeficientes de transformada para produzir resíduo reconstruído 1119. O resíduo reconstruído 1119 é adicionado aos dados de pixel previstos 1113 para produzir dados de pixel reconstruídos 1117. Em algumas modalidades, os dados de pixel reconstruídos 1117 são armazenados temporariamente em um buffer de linha (não ilustrado) para predição de intra-imagem e predição de MV espacial. Os pixels reconstruídos são filtrados pelo filtro em loop 1145 e armazenados no buffer de imagens reconstruídas
1150. Em algumas modalidades, o buffer de imagens reconstruídas 1150 é um armazenamento externo ao codificador de vídeo 1100. Em algumas modalidades, o buffer de imagens reconstruídas 1150 é um armazenamento interno para o codificador de vídeo 1100.
[0081] O módulo de estimativa intra-imagem 1120 realiza intrapredição com base nos dados de pixel reconstruídos 1117 para produzir dados de intrapredição. Os dados de intrapredição são fornecidos ao codificador por entropia 1190 para serem codificados no fluxo de bits 1195. Os dados de intrapredição também são usados pelo módulo de intrapredição 1125 para produzir os dados de pixel previstos
1113.
[0082] O módulo de estimativa de movimento 1135 realiza interpredição ao produzir MVs para fazer referência a dados de pixel de quadros previamente decodificados armazenados no buffer de imagens reconstruídas 1150. Esses MVs são fornecidos ao módulo de compensação de movimento 1130 para produzir dados de pixel previstos.
[0083] Em vez de codificar os MVs reais completos no fluxo de bits, o codificador de vídeo 1100 usa a predição de MVs para gerar MVs previstos, e a diferença entre os MVs usados para compensação de movimento e os MVs previstos é codificada como dados de movimento residuais e armazenados no fluxo de bits 1195.
[0084] O módulo de predição de MV 1175 gera os MVs previstos com base em MVs de referência que foram gerados para codificar quadros de vídeo anteriormente, ou seja, os MVs de compensação de movimento que foram usados para realizar a compensação de movimento. O módulo de predição de MV 1175 recupera MVs de referência a partir de quadros de vídeo anteriores a partir do buffer de MV 1165. O codificador de vídeo 1100 armazena os MVs gerados para o quadro de vídeo atual no buffer de MV 1165 como MVs de referência para gerar MVs previstos.
[0085] O módulo de predição de MV 1175 usa os MVs de referência para criar os MVs previstos. Os MVs previstos podem ser calculados por predição de MV espacial ou predição de MV temporal. A diferença entre os MVs previstos e os MVs de compensação de movimento (MC MVs) do quadro atual (dados de movimento residuais) são codificados no fluxo de bits 1195 pelo codificador por entropia 1190.
[0086] O codificador por entropia 1190 codifica vários parâmetros e dados para o fluxo de bits 1195 usando técnicas de codificação por entropia, como codificação aritmética binária de contexto adaptativo (CABAC) ou codificação de Huffman. O codificador por entropia 1190 codifica vários elementos de cabeçalho, bandeiras, juntamente com os coeficientes de transformada quantizados 1112 e os dados de movimento residuais como elementos de sintaxe para o fluxo de bits 1195. O fluxo de bits 1195 é, por sua vez, armazenado em um dispositivo de armazenamento ou transmitido para um decodificador através de um meio de comunicação, como uma rede.
[0087] O filtro em loop 1145 realiza operações de filtragem ou suavização nos dados de pixel reconstruídos 1117 para reduzir os artefatos de codificação, particularmente nas fronteiras dos blocos de pixel. Em algumas modalidades, a operação de filtragem realizada inclui desbloqueio ou deslocamento adaptativo de amostra (SAO). Em algumas modalidades, as operações de filtragem incluem filtro de circuito adaptativo (ALF).
[0088] A Figura 12a ilustra porções do codificador de vídeo 1100 que podem implementar o modo de MH para Intra ao codificar um bloco de pixels. Conforme ilustrado, o codificador de vídeo 1100 implementa um módulo de predição combinada 1210, que produz os dados de pixel previstos 1113. O módulo de predição combinada 1210 recebe valores de intrapredição gerados pelo módulo de predição de intra- imagem 1125. O módulo de predição combinada 1210 também recebe valores de interpredição a partir do módulo de compensação de movimento 1130. As informações de movimento e direções de modo usadas para codificar um bloco de pixel pelo módulo de compensação de movimento 1130 e o módulo de predição de intra-imagem 1125 são salvos em um armazenamento para uso pelos mesmos módulos para blocos subsequentes como candidatos para modo de mesclagem ou MH Intra.
[0089] Um controlador de modo de MH 1220 controla as operações do módulo de predição de intra-imagem 1125 e o módulo de compensação de movimento 1130 quando o modo de MH para Intra está ativado (para o bloco ou uma porção do bloco). O controlador de modo de MH 1220 cria uma lista de modos de interpredição (Lista de Candidatos I) e uma lista de modos de intrapredição (Lista de Candidatos II). Os candidatos de cada lista são determinados ou identificados com base em vários fatores, incluindo o tamanho, largura ou altura do bloco atual e/ou uma direção de um candidato de movimento correspondente.
[0090] O controlador de modo de MH 1220 seleciona um candidato de interpredição a partir da Lista de Candidatos I e um candidato de intrapredição a partir da Lista de Candidatos II. O módulo de compensação de movimento 1130 realiza interpredição com base no candidato selecionado a partir da Lista de Candidatos I. O módulo de predição de intra-imagem 1125 realiza a intrapredição com base no candidato selecionado a partir da Lista de Candidatos II. Os resultados da interpredição e intrapredição são combinados (por exemplo, em média) no módulo de predição combinada 1210 para gerar os dados de pixel previstos 1113.
[0091] O controlador de modo de MH também fornece informações para o codificador por entropia 1190 para inserir no fluxo de bits como elementos de sintaxe. Esses elementos de sintaxe podem sinalizar se o modo de MH para Intra está ativado. Tais elementos de sintaxe também podem sinalizar explicitamente a seleção dos candidatos de interpredição e intrapredição a partir das listas de candidatos I e II para MH Intra. A sintaxe para sinalizar a seleção dos candidatos de interpredição e intrapredição pode incluir um único índice que seleciona os candidatos de interpredição e intrapredição a partir de uma lista combinada que inclui ambas a lista de candidatos I e a Lista de candidatos II. A sintaxe para sinalizar a seleção dos candidatos de intrapredição e/ou o candidato de interpredição pode ser omitida (sinalização implícita) se a Lista de Candidatos I ou a Lista de Candidatos II tiver apenas um candidato.
[0092] A Figura 12b ilustra porções do codificador de vídeo 1100 que podem implementar o modo de MH para Inter ao codificar um bloco de pixels. Conforme ilustrado, o codificador de vídeo 1100 implementa o módulo de predição combinada 1210, que produz os dados de pixel previstos 1113. O módulo de predição combinada 1210 recebe um primeiro conjunto de valores de interpredição a partir do módulo de compensação de movimento 1130. O módulo de predição combinada
1210 também recebe um segundo conjunto de valores de interpredição a partir do mesmo módulo de compensação de movimento 1130, ou um módulo de compensação de movimento secundário 1230. Os dois conjuntos de informações de movimento usados para codificar um bloco de pixel pelo módulo de compensação de movimento 1130 (e o módulo de compensação de movimento secundário 1230) são salvos em um armazenamento para uso pelos mesmos módulos para blocos subsequentes como candidatos para modo de mesclagem ou MH Inter.
[0093] O controlador de modo de MH 1220 controla as operações do módulo de compensação de movimento 1130 (e o módulo de compensação de movimento secundário 1230) quando o modo de MH para Inter está ativado (para o bloco ou uma porção do bloco). O controlador de modo de MH 1220 cria uma lista de modos de interpredição (Lista de candidatos I). Os candidatos na lista são determinados ou identificados com base em vários fatores, incluindo o tamanho, largura ou altura do bloco atual e/ou uma direção de um candidato de movimento correspondente.
[0094] O controlador de modo de MH 1220 seleciona um primeiro candidato de interpredição e um segundo candidato de interpredição a partir da Lista de Candidatos I. O módulo de compensação de movimento 1130 realiza uma primeira interpredição com base no primeiro candidato de interpredição selecionado a partir da Lista de Candidatos I. O módulo de compensação de movimento 1130 (ou o módulo de compensação de movimento secundário 1230) realiza uma segunda interpredição com base no segundo candidato de interpredição selecionado a partir da Lista de candidatos I. Os resultados da primeira interpredição e da segunda interpredição são combinados (por exemplo, em média) no módulo de predição combinada 1210 para gerar os dados de pixel previstos 1113.
[0095] O controlador de modo de MH também fornece informações para o codificador por entropia 1190 para inserir no fluxo de bits como elementos de sintaxe. Esses elementos de sintaxe podem sinalizar se o modo de MH para Inter está ligado. Tais elementos de sintaxe também podem sinalizar explicitamente a seleção da primeira interpredição e os segundos candidatos de interpredição a partir da lista de candidatos I para MH Inter. A sintaxe para sinalizar a seleção do primeiro e do segundo candidatos de interpredição pode incluir um único índice que seleciona os primeiros candidatos de interpredição a partir da Lista de Candidatos I e um único índice que seleciona os segundos candidatos de interpredição a partir da Lista de Candidatos I. A sintaxe para sinalizar a seleção do primeiro e do segundo candidatos de interpredição pode incluir um único índice que seleciona os dois candidatos de interpredição a partir da Lista de Candidatos I. A sintaxe para sinalizar a seleção dos candidatos de interpredição pode ser omitida (sinalização implícita) se a Lista de candidatos I tiver apenas um candidato.
[0096] As Figuras 13a-b cada uma ilustra conceitualmente um processo 1300 que codifica um bloco de pixels usando o modo de MH. Em algumas modalidades, uma ou mais unidades de processamento (por exemplo, um processador) de um dispositivo de computação que implementa o codificador 1100 realizam o processo 1300 executando instruções armazenadas em um meio legível por computador. Em algumas modalidades, um aparelho eletrônico que implementa o codificador 1100 realiza o processo 1300.
[0097] O codificador recebe (no passo 1310) dados de pixel ou vídeo brutos para um bloco de pixels a serem codificados como um bloco atual de uma imagem atual. O codificador gera (no passo 1320) uma primeira predição do bloco atual com base em um primeiro modo de predição que é selecionado a partir de uma primeira lista de candidatos. A primeira lista de candidatos (por exemplo, Lista de candidatos I) inclui um ou mais modos de interpredição candidatos. A primeira lista de candidatos pode ser igual à lista de candidatos de mesclagem ou um subconjunto da lista de candidatos de mesclagem. Se MH Inter for usado, a primeira predição é a primeira interpredição e o primeiro modo de predição é o primeiro modo de interpredição.
[0098] O codificador determina (no passo 1325) se deve aplicar o modo de MH para Intra para o bloco atual. Se o modo de MH para Intra deve ser aplicado para o bloco atual, o processo prossegue para 1330. Caso contrário, o codificador determina (no passo 1328) se deve ativar o modo para Inter para o bloco atual. Se o modo de MH para Inter deve ser aplicado ao bloco atual, o processo prossegue para 1370. O codificador pode determinar se deve ativar o modo de MH Inter ou Intra com base nas propriedades do bloco, como se altura, largura ou tamanho do bloco é maior ou menor que um certo limiar. Se o modo de MH (Intra ou Inter) não for aplicado, o codificador reconstrói (no passo 1390) o bloco atual sem usar o modo de MH, usando a predição de hipótese única (intra ou inter) ou por intracodificação sem predição.
[0099] Em 1330, o codificador identifica uma segunda lista de candidatos que inclui um ou mais modos de intrapredição. O codificador pode identificar candidatos para a segunda lista de candidatos (por exemplo, Lista de Candidatos II) com base em uma propriedade do bloco ou uma direção do primeiro modo de predição. Por exemplo, a ordem dos candidatos na segunda lista de candidatos pode ser determinada com base na direção do primeiro modo de predição (por exemplo, quando o candidato de movimento para o primeiro modo de predição é a partir do bloco vizinho esquerdo, ou a direção do primeiro modo de intra-predição na segunda lista de candidatos é horizontal.). Para outro exemplo, o número de candidatos na segunda lista de candidatos pode ser determinado com base na largura, altura ou tamanho do bloco atual.
[00100] O codificador determina (no passo 1335) se há apenas um candidato na segunda lista de candidatos. Nesse caso, o processo prossegue para 1340. Se houver mais de um candidato na segunda lista de candidatos, o processo prossegue para 1345. Em algumas outras modalidades, há sempre apenas um candidato na segunda lista de candidatos e não há necessidade de realizar o passo 1335.
[00101] No passo 1340, o codificador seleciona o único candidato na segunda lista de candidatos como o segundo modo de predição sem sinalizá-lo explicitamente no fluxo de bits. O processo então prossegue para 1350.
[00102] No passo 1345, o codificador seleciona um segundo modo de predição a partir da segunda lista de candidatos. A seleção é sinalizada por uma palavra de código que deve ser incluída no fluxo de bits como um elemento de sintaxe. Palavras de código diferentes são atribuídas a candidatos diferentes na segunda lista de candidatos com base na ordem dos candidatos na lista. O candidato que é primeiro na lista é atribuído com uma palavra de código mais curta. O processo então prossegue para 1350.
[00103] No passo 1350, o codificador gera uma segunda predição do bloco atual com base no segundo modo de predição selecionado (por realizar intrapredição). O codificador, então, codifica (no passo 1360) o bloco atual usando uma predição combinada que é gerada com base na primeira predição e na segunda predição do bloco atual. Em algumas modalidades, a predição combinada do modo de MH para Intra é aplicável a apenas uma porção do bloco atual, como uma região de sobreposição entre duas unidades de predição, conforme descrito por referência às Figuras 7a-b e Figuras 8a-b acima. Em algumas modalidades, os valores de interpredição e os valores de intrapredição podem ser ponderados de forma diferente ao gerar a predição combinada. Em algumas modalidades, tal ponderação pode variar com base nas posições dos pixels ou sub-blocos no bloco atual.
[00104] No passo 1370 nas Figuras 13b, o codificador gera uma segunda interpredição do bloco atual com base em um segundo modo de interpredição que é selecionado a partir de uma segunda lista de candidatos compreendendo um ou mais modos de interpredição candidatos. A segunda lista de candidatos pode ser um subconjunto da primeira lista de candidatos. A segunda lista de candidatos também pode ser a mesma lista de modos de interpredição que a primeira lista de candidatos. O processo então segue para o passo 1380.
[00105] O codificador codifica (no passo 1380) o bloco atual usando uma predição combinada que é gerada com base na primeira interpredição e na segunda interpredição do bloco atual. Em algumas modalidades, a predição combinada do modo de MH para Inter é aplicável a apenas uma porção do bloco atual, tal como uma região de sobreposição entre duas unidades de predição, conforme descrito por referência às Figuras 9a-b e Figuras 10a-b acima. Em algumas modalidades, os valores de interpredição das duas interpredições podem ser ponderados de forma diferente ao gerar a predição de combinação. Em algumas modalidades, tal ponderação pode variar com base nas posições dos pixels ou sub-blocos no bloco atual. Exemplo de Decodificador de Vídeo
[00106] A Figura 14 ilustra um decodificador de vídeo de exemplo 1400 que pode implementar o modo de MH (MH Intra e/ou MH Inter). Conforme ilustrado, o decodificador de vídeo 1400 é um circuito de decodificação de imagem ou decodificação de vídeo que recebe um fluxo de bits 1495 e decodifica o conteúdo do fluxo de bits em dados de pixel de quadros de vídeo para exibição. O decodificador de vídeo 1400 tem vários componentes ou módulos para decodificar o fluxo de bits 1495, incluindo pelo menos parte de um módulo de quantização inversa 1405, um módulo de transformada inversa 1410, um módulo de intrapredição 1425, um módulo de compensação de movimento 1430, um filtro em loop 1445, um buffer de imagens decodificadas 1450, um buffer de MV 1465, um módulo de predição de MV 1475 e um analisador 1490. O módulo de compensação de movimento 1430 é parte de um módulo de interpredição 1440.
[00107] Em algumas modalidades, os módulos 1410-1490 são módulos de instruções de software sendo executados por uma ou mais unidades de processamento (por exemplo, um processador) de um dispositivo de computação. Em algumas modalidades, os módulos 1410 - 1490 são módulos de circuitos de hardware implementados por um ou mais ICs de um aparelho eletrônico. Embora os módulos 1410 - 1490 sejam ilustrados como sendo módulos separados, alguns dos módulos podem ser combinados em um único módulo.
[00108] O analisador 1490 (ou decodificador por entropia) recebe o fluxo de bits 1495 e realiza análise inicial de acordo com a sintaxe definida por um padrão de codificação de vídeo ou codificação de imagem. O elemento de sintaxe analisado inclui vários elementos de cabeçalho, bandeiras, bem como dados quantizados (ou coeficientes quantizados) 1412. O analisador 1490 analisa os vários elementos de sintaxe usando técnicas de codificação por entropia, como codificação aritmética binária de contexto adaptativo (CABAC) ou codificação de Huffman.
[00109] O módulo de quantização inversa 1405 desquantiza os dados quantizados (ou coeficientes quantizados) 1412 para obter coeficientes de transformada, e o módulo de transformada inversa 1410 realiza a transformada inversa nos coeficientes de transformada 1416 para produzir o sinal residual reconstruído 1419. O sinal residual reconstruído 1419 é adicionado com dados de pixel previstos 1413 a partir do módulo de intrapredição 1425 ou o módulo de compensação de movimento 1430 para produzir dados de pixel decodificados 1417. Os dados de pixels decodificados são filtrados pelo filtro em loop 1445 e armazenados no buffer de imagens decodificadas 1450. Em algumas modalidades, o buffer de imagens decodificadas 1450 é um armazenamento externo para o decodificador de vídeo 1400. Em algumas modalidades, o buffer de imagens decodificadas 1450 é um armazenamento interno para o decodificador de vídeo
1400.
[00110] O módulo de intrapredição 1425 recebe dados de intrapredição a partir do fluxo de bits 1495 e de acordo com os quais, produz os dados de pixel previstos 1413 a partir dos dados de pixel decodificados 1417 armazenados no buffer de imagens decodificadas 1450. Em algumas modalidades, os dados de pixel decodificados 1417 também são armazenados em um buffer de linha (não ilustrado) para predição de intra-imagem e predição de MV espacial.
[00111] Em algumas modalidades, o conteúdo do buffer de imagens decodificadas 1450 é usado para exibição. Um dispositivo de exibição 1455 ou recupera o conteúdo do buffer de imagens decodificadas 1450 para exibição diretamente ou recupera o conteúdo do buffer de imagens decodificadas para um buffer de exibição. Em algumas modalidades, o dispositivo de exibição recebe valores de pixel a partir do buffer de imagens decodificadas 1450 por meio de um transporte de pixel.
[00112] O módulo de compensação de movimento 1430 produz dados de pixel previstos 1413 a partir dos dados de pixel decodificados 1417 armazenados no buffer de imagens decodificadas 1450 de acordo com MVs de compensação de movimento (MC MVs). Esses MVs de compensação de movimento são decodificados adicionando os dados de movimento residuais recebidos a partir do fluxo de bits 1495 com MVs previstos recebidos a partir do módulo de predição de MV
1475.
[00113] O módulo de predição de MV 1475 gera os MVs previstos com base em MVs de referência que foram gerados para decodificar quadros de vídeo anteriores, por exemplo, os MVs de compensação de movimento que foram usados para realizar a compensação de movimento. O módulo de predição de MV 1475 recupera os MVs de referência de quadros de vídeo anteriores a partir do buffer de MV 1465. O decodificador de vídeo 1400 armazena os MVs de compensação de movimento gerados para decodificar o quadro de vídeo atual no buffer de MV 1465 como MVs de referência para produzir MVs previstos.
[00114] O filtro em loop 1445 realiza operações de filtragem ou suavização nos dados de pixel decodificados 1417 para reduzir os artefatos de codificação, particularmente nas fronteiras dos blocos de pixel. Em algumas modalidades, a operação de filtragem realizada inclui desbloqueio e/ou deslocamento adaptativo de amostra (SAO). Em algumas modalidades, as operações de filtragem incluem filtro de circuito adaptativo (ALF).
[00115] A Figura 15a ilustra porções do decodificador de vídeo 1400 que podem implementar o modo de MH para Intra ao decodificar um bloco de pixels. Conforme ilustrado, o decodificador de vídeo 1400 implementa um módulo de predição combinada 1510, que produz os dados de pixel previstos 1413. O módulo de predição combinada 1510 recebe valores de intrapredição gerados pelo módulo de predição de intra- imagem 1425. O módulo de predição combinada 1510 também recebe valores de interpredição a partir do módulo de compensação de movimento 1430. As informações de movimento e as direções de modo usadas para decodificar um bloco de pixel pelo módulo de compensação de movimento 1430 e o módulo de predição de intra-imagem 1425 são salvos em um armazenamento para uso pelos mesmos módulos para blocos subsequentes como candidatos para o modo de mesclagem ou modo de MH.
[00116] Um controlador de modo de MH 1520 controla as operações do módulo de predição de intra-imagem 1425 e o módulo de compensação de movimento 1430 quando o modo de MH para Intra está ativado (para o bloco ou uma porção do bloco). O controlador de modo de MH 1520 cria uma lista de modos de interpredição (Lista de Candidatos I) e uma lista de modos de intrapredição (Lista de Candidatos II). Os candidatos de cada lista são determinados ou identificados com base em vários fatores, incluindo o tamanho, largura ou altura do bloco atual e/ou uma direção de um candidato de movimento correspondente.
[00117] O controlador de modo de MH 1520 seleciona um candidato de interpredição a partir da Lista de Candidatos I e um candidato de intrapredição a partir da Lista de Candidatos II. O módulo de compensação de movimento 1430 realiza a interpredição com base no candidato selecionado a partir da Lista de Candidatos I. O módulo de predição de intra-imagem 1425 realiza intrapredição com base no candidato selecionado a partir da Lista de Candidatos II. Os resultados da interpredição e intrapredição são combinados (por exemplo, em média) no módulo de predição combinada 1510 para gerar os dados de pixel previstos 1413.
[00118] O controlador de modo de MH 1520 recebe informações a partir do analisador 1490 com base em elementos de sintaxe no fluxo de bits. Esses elementos de sintaxe podem sinalizar se o modo de MH para Intra está ativado. Tais elementos de sintaxe também podem sinalizar explicitamente a seleção dos candidatos de interpredição e intrapredição a partir das listas de candidatos I e II para MH Intra. A sintaxe para sinalizar a seleção dos candidatos de interpredição e intrapredição pode incluir um único índice que seleciona os candidatos de interpredição a partir da Lista de Candidatos I e um único índice que seleciona os candidatos de intrapredição a partir da Lista de Candidatos II. A sintaxe para sinalizar a seleção dos candidatos de interpredição e intrapredição pode incluir um único índice que seleciona os candidatos de interpredição e intrapredição a partir de uma lista combinada que inclui ambas a lista de candidatos I e a Lista de Candidatos II. A sintaxe para sinalizar a seleção dos candidatos de intrapredição e/ou do candidato de interpredição pode ser omitida (sinalização implícita) se a Lista de Candidatos I ou a Lista de Candidatos II tiver apenas um candidato.
[00119] A Figura 15b ilustra porções do decodificador de vídeo 1400 que podem implementar o modo de MH para Inter ao decodificar um bloco de pixels. Conforme ilustrado, o decodificador de vídeo 1400 implementa um módulo de predição combinada 1510, que produz os dados de pixel previstos 1413. O módulo de predição combinada 1510 recebe um primeiro conjunto de valores de interpredição a partir do módulo de compensação de movimento 1430. O módulo de predição combinada 1510 também recebe um segundo conjunto de valores de interpredição a partir do mesmo módulo de compensação de movimento 1430, ou um módulo de compensação de movimento secundário 1530. Os dois conjuntos de informações de movimento usados para codificar um bloco de pixel pelo módulo de compensação de movimento 1430 (e o módulo de compensação de movimento secundário 1530) são salvos em um armazenamento para uso pelos mesmos módulos para blocos subsequentes como candidatos para modo de mesclagem ou MH Inter.
[00120] O controlador de modo de MH 1520 controla as operações do módulo de compensação de movimento 1430 (e o módulo de compensação de movimento secundário 1530) quando o modo de MH para Inter está ativado (para o bloco ou uma porção do bloco). O controlador de modo de MH 1520 cria uma lista de modos de interpredição (Lista de candidatos I). Os candidatos na lista são determinados ou identificados com base em vários fatores, incluindo o tamanho, largura ou altura do bloco atual e/ou uma direção de um candidato de movimento correspondente (se o candidato de movimento for a partir do bloco vizinho esquerdo, a direção é horizontal).
[00121] O controlador de modo de MH 1520 seleciona um primeiro candidato de interpredição e um segundo candidato de interpredição a partir da Lista de Candidatos I. O módulo de compensação de movimento 1430 realiza uma primeira interpredição com base no primeiro candidato de interpredição selecionado a partir da Lista de Candidatos I. O mesmo módulo de compensação de movimento 1430 (ou o módulo de compensação de movimento secundário 1530) realiza uma segunda interpredição com base no segundo candidato de interpredição selecionado a partir da Lista de candidatos I. Os resultados da primeira interpredição e da segunda interpredição são combinados (por exemplo, em média) no módulo de predição combinada 1510 para gerar os dados de pixel previstos 1413.
[00122] O controlador de modo de MH recebe informações analisadas pelo decodificador por entropia 1490 a partir de elementos de sintaxe no fluxo de bits. Esses elementos de sintaxe podem sinalizar se o modo de MH para Inter está ligado. Tais elementos de sintaxe também podem sinalizar explicitamente a seleção dos primeiros candidatos de interpredição e os segundos candidatos de interpredição a partir da lista de candidatos I para MH Inter. A sintaxe para sinalizar a seleção do primeiro e segundo candidatos de interpredição pode incluir um único índice que seleciona os dois candidatos de interpredição a partir da Lista de Candidatos I. A sintaxe para sinalizar a seleção dos candidatos de interpredição pode ser omitida (sinalização implícita) se a Lista de Candidatos I tiver apenas um candidato.
[00123] As Figuras 16a-b cada uma ilustra conceitualmente um processo 1600 que decodifica um bloco de pixels usando o modo de MH. Em algumas modalidades, uma ou mais unidades de processamento (por exemplo, um processador) de um dispositivo de computação que implementa o decodificador 1400 realiza o processo 1600 executando instruções armazenadas em um meio legível por computador. Em algumas modalidades, um aparelho eletrônico que implementa o decodificador 1400 realiza o processo 1600.
[00124] O decodificador recebe (no passo 1610) dados a-serem-decodificados para um bloco de pixels a ser decodificado como um bloco atual de uma imagem atual. O decodificador gera (no passo 1620) uma primeira predição do bloco atual com base em um primeiro modo de predição que é selecionado a partir de uma primeira lista de candidatos. A primeira lista de candidatos (por exemplo, Lista de candidatos I) inclui um ou mais modos de interpredição candidatos. A primeira lista de candidatos pode ser igual à lista de candidatos de mesclagem ou um subconjunto da lista de candidatos de mesclagem. Se MH Inter for usado, a primeira predição é a primeira interpredição e o primeiro modo de predição é o primeiro modo de interpredição.
[00125] O decodificador determina (no passo 1625) se deve aplicar o modo de MH para Intra para o bloco atual. Se o modo de MH para Intra for aplicado para o bloco atual, o processo prossegue para 1630. Caso contrário, o decodificador determina (no passo 1628) se ativa o modo para Inter para o bloco atual. Se o modo de MH para Inter deve ser aplicado ao bloco atual, o processo prossegue para 1670. O decodificador pode determinar se deve ativar o modo de MH Inter ou Intra com base nas propriedades do bloco, como altura, largura ou tamanho do bloco é maior ou menor que um certo limiar. Se o modo de MH (Intra ou Inter) não for aplicado, o decodificador reconstrói (no passo 1690) o bloco atual sem usar o modo de MH para Intra, tal como usando a predição de hipótese única (intra ou inter) ou por intracodificação sem predição.
[00126] Em 1630, o decodificador identifica uma segunda lista de candidatos que inclui um ou mais modos de intrapredição. O decodificador pode identificar candidatos para a segunda lista de candidatos (por exemplo, Lista de Candidatos II) com base em uma propriedade do bloco ou uma direção do primeiro modo de predição. Por exemplo, a ordem dos candidatos na segunda lista de candidatos pode ser determinada com base em suas distâncias angulares a partir da direção do primeiro modo de predição (isto é, a direção do movimento). Para outro exemplo, o número de candidatos na segunda lista de candidatos pode ser determinado com base na largura, altura ou tamanho do bloco atual.
[00127] O decodificador determina (no passo 1635) se há apenas um candidato na segunda lista de candidatos. Nesse caso, o processo prossegue para 1640. Se houver mais de um candidato na segunda lista de candidatos, o processo prossegue para 1645.
[00128] No passo 1640, o decodificador seleciona implicitamente o único candidato na segunda lista de candidatos como o segundo modo de predição. Em outras palavras, o decodificador seleciona/usa o único candidato sem usar um elemento de sintaxe no fluxo de bits. O processo então prossegue para 1650.
[00129] No passo 1645, o decodificador seleciona um segundo modo de predição a partir da segunda lista de candidatos. A seleção pode ser baseada em uma palavra de código que é sinalizada no fluxo de bits como um elemento de sintaxe. Palavras de código diferentes são atribuídas a candidatos diferentes na segunda lista de candidatos com base na ordem dos candidatos na lista. O candidato que é primeiro na lista recebe uma palavra de código mais curta. O processo então prossegue para 1650.
[00130] No passo 1650, o decodificador gera uma segunda predição do bloco atual com base no segundo modo de predição selecionado (por realizar intrapredição). O decodificador, então, reconstrói (no passo 1660) o bloco atual usando uma predição combinada que é gerada com base na primeira predição e na segunda predição do bloco atual. Em algumas modalidades, a predição combinada do modo de MH para Intra é aplicável a apenas uma porção do bloco atual, como uma região de sobreposição entre duas unidades de predição, conforme descrito por referência às Figuras 7a-b e Figuras 8a-b acima. Em algumas modalidades, os valores de interpredição e os valores de intrapredição podem ser ponderados de forma diferente ao gerar a predição combinada. Em algumas modalidades, tal ponderação pode variar com base nas posições dos pixels ou sub-blocos no bloco atual.
[00131] No passo 1670, o decodificador gera uma segunda interpredição do bloco atual com base em um segundo modo de interpredição que é selecionado a partir de uma segunda lista de candidatos compreendendo um ou mais modos de interpredição candidatos. A segunda lista de candidatos pode ser um subconjunto da primeira lista de candidatos. A segunda lista de candidatos também pode ser a mesma lista de modos de interpredição que a primeira lista de candidatos.
[00132] O decodificador então reconstrói (no passo 1680) o bloco atual usando uma predição combinada que é gerada com base na primeira interpredição e na segunda interpredição do bloco atual. Em algumas modalidades, a predição combinada do modo de MH para Inter é aplicável a apenas uma porção do bloco atual, tal como uma região de sobreposição entre duas unidades de predição, conforme descrito por referência às Figuras 9a-b e Figuras 10a-b acima. Em algumas modalidades, os valores de interpredição das duas interpredições podem ser ponderados de forma diferente ao gerar a predição de combinação. Em algumas modalidades, tal ponderação pode variar com base nas posições dos pixels ou sub-blocos no bloco atual.
Exemplo de sistema eletrônico
[00133] Muitos dos recursos e aplicações descritos acima são implementados como processos de software que são especificados como um conjunto de instruções gravadas em um meio de armazenamento legível por computador (também referido como meio legível por computador). Quando essas instruções são executadas por uma ou mais unidades computacionais ou de processamento (por exemplo, um ou mais processadores, núcleos de processadores ou outras unidades de processamento), elas fazem com que a(s) unidade(s) de processamento execute as ações indicadas nas instruções. Exemplos de meio legível por computador incluem, mas não estão limitados a, CD-ROMs, unidades flash, chips de memória de acesso aleatório (RAM), discos rígidos, memórias somente de leitura programáveis apagáveis (EPROMs), memórias somente de leitura programáveis apagáveis eletricamente (EEPROMs), etc. O meio legível por computador não inclui ondas portadoras e sinais eletrônicos que passam por conexões sem fio ou com fio.
[00134] Neste relatório descritivo, o termo "software" se destina a incluir firmware residente em memória somente de leitura ou aplicações armazenadas em armazenamento magnético que podem ser lidas na memória para processamento por um processador. Além disso, em algumas modalidades, várias invenções de software podem ser implementadas como subpartes de um programa maior, enquanto permanecem invenções de software distintas. Em algumas modalidades, várias invenções de software também podem ser implementadas como programas separados. Finalmente, qualquer combinação de programas separados que juntos implementam uma invenção de software descrita aqui está dentro do escopo da presente divulgação. Em algumas modalidades, os programas de software, quando instalados para operar em um ou mais sistemas eletrônicos, definem uma ou mais implementações de máquina específicas que executam e realizam as operações dos programas de software.
[00135] A Figura 17 ilustra conceitualmente um sistema eletrônico 1700 com o qual algumas modalidades da presente divulgação são implementadas. O sistema eletrônico 1700 pode ser um computador (por exemplo, um computador desktop, computador pessoal, computador tablet, etc.), telefone, PDA ou qualquer outro tipo de dispositivo eletrônico. Tal sistema eletrônico inclui vários tipos de meio legível por computador e interfaces para vários outros tipos de meio legível por computador. O sistema eletrônico 1700 inclui um barramento 1705, unidade(s) de processamento 1710, uma unidade de processamento gráfico (GPU) 1715, uma memória de sistema 1720, uma rede 1725, uma memória somente de leitura 1730, um dispositivo de armazenamento permanente 1735, dispositivos de entrada 1740 e dispositivos de saída
1745.
[00136] O barramento 1705 representa coletivamente todos os barramentos de sistema, periféricos e de conjunto de chips que conectam comunicativamente os vários dispositivos internos do sistema eletrônico 1700. Por exemplo, o barramento 1705 conecta comunicativamente a (s) unidade (s) de processamento 1710 com a GPU 1715, a memória somente de leitura 1730, a memória de sistema 1720 e o dispositivo de armazenamento permanente 1735.
[00137] A partir dessas várias unidades de memória,
a(s) unidade(s) de processamento 1710 recupera instruções para executar e dados para processar a fim de executar os processos da presente divulgação. A(s) unidade(s) de processamento pode ser um único processador ou um processador de múltiplos núcleos em diferentes modalidades. Algumas instruções são passadas e executadas pela GPU 1715. A GPU 1715 pode descarregar vários cálculos ou complementar o processamento de imagem fornecido pela(s) unidade(s) de processamento 1710.
[00138] A memória somente de leitura (ROM) 1730 armazena dados estáticos e instruções que são usados pela(s) unidade(s) de processamento 1710 e outros módulos do sistema eletrônico. O dispositivo de armazenamento permanente 1735, por outro lado, é um dispositivo de memória de leitura e escrita. Este dispositivo é uma unidade de memória não volátil que armazena instruções e dados mesmo quando o sistema eletrônico 1700 está desligado. Algumas modalidades da presente divulgação usam um dispositivo de armazenamento em massa (como um disco magnético ou ótico e sua unidade de disco correspondente) como o dispositivo de armazenamento permanente 1735.
[00139] Outras modalidades usam um dispositivo de armazenamento removível (como um disquete, dispositivo de memória flash, etc., e sua unidade de disco correspondente) como o dispositivo de armazenamento permanente. Como o dispositivo de armazenamento permanente 1735, a memória de sistema 1720 é um dispositivo de memória de leitura e escrita. No entanto, ao contrário do dispositivo de armazenamento 1735, a memória de sistema 1720 é uma memória de leitura e escrita volátil, como uma memória de acesso aleatório. A memória de sistema 1720 armazena algumas das instruções e dados que o processador usa no tempo de execução. Em algumas modalidades, os processos de acordo com a presente divulgação são armazenados na memória de sistema 1720, no dispositivo de armazenamento permanente 1735 e/ou na memória somente de leitura 1730. Por exemplo, as várias unidades de memória incluem instruções para processar clipes de multimídia de acordo com algumas modalidades. A partir dessas várias unidades de memória, a(s) unidade(s) de processamento 1710 recupera instruções para executar e dados para processar a fim de executar os processos de algumas modalidades.
[00140] O barramento 1705 também se conecta aos dispositivos de entrada e saída 1740 e 1745. Os dispositivos de entrada 1740 permitem ao usuário comunicar informações e selecionar comandos para o sistema eletrônico. Os dispositivos de entrada 1740 incluem teclados alfanuméricos e dispositivos apontadores (também chamados de "dispositivos de controle de cursor"), câmeras (por exemplo, câmeras web), microfones ou dispositivos semelhantes para receber comandos de voz, etc. Os dispositivos de saída 1745 exibem imagens geradas pelo sistema eletrônico ou de outro modo, dados de saída. Os dispositivos de saída 1745 incluem impressoras e dispositivos de exibição, como tubos de raios catódicos (CRT) ou telas de cristal líquido (LCD), bem como alto-falantes ou dispositivos de saída de áudio semelhantes. Algumas modalidades incluem dispositivos como uma tela sensível ao toque que funcionam como dispositivos de entrada e saída.
[00141] Finalmente, como mostrado na Figura 17, o barramento 1705 também acopla o sistema eletrônico 1700 a uma rede 1725 por meio de um adaptador de rede (não mostrado). Desta forma, o computador pode fazer parte de uma rede de computadores (como uma rede de área local ("LAN"), uma rede de área ampla ("WAN"), ou uma Intranet, ou uma rede de redes, como a Internet. Qualquer ou todos os componentes do sistema eletrônico 1700 podem ser usados em conjunto com a presente divulgação.
[00142] Algumas modalidades incluem componentes eletrônicos, tais como microprocessadores, armazenamento e memória que armazenam instruções de programa de computador em um meio legível por máquina ou meio legível por computador (alternativamente referido como meio de armazenamento legível por computador, meio legível por máquina ou meio de armazenamento legível por máquina). Alguns exemplos de meio legível por computador incluem RAM, ROM, discos compactos somente de leitura (CD-ROM), discos compactos graváveis (CD- R), discos compactos regraváveis (CD-RW), discos versáteis digitais somente de leitura (por exemplo, DVD-ROM, DVD-ROM de camada dupla), uma variedade de DVDs graváveis/regraváveis (por exemplo, DVD-RAM, DVD-RW, DVD + RW, etc.), memória flash (por exemplo, cartões SD, cartões mini-SD, cartões micro-SD, etc.), discos rígidos magnéticos e/ou de estado sólido, discos Blu-Ray® somente de leitura e graváveis, discos óticos de ultradensidade, qualquer outro meio ótico ou magnético, e disquetes. O meio legível por computador pode armazenar um programa de computador que é executável por pelo menos uma unidade de processamento e inclui conjuntos de instruções para realizar várias operações. Exemplos de programas de computador ou código de computador incluem código de máquina, como é produzido por um compilador, e arquivos incluindo código de nível superior que são executados por um computador, um componente eletrônico, ou um microprocessador usando um interpretador.
[00143] Embora a discussão acima se refira principalmente a microprocessadores ou processadores de múltiplos núcleos que executam software, muitos dos recursos e aplicações descritos acima são realizados por um ou mais circuitos integrados, tais como circuitos integrados de aplicação específica (ASICs) ou arranjos de portas programáveis em campo (FPGAs). Em algumas modalidades, esses circuitos integrados executam instruções que são armazenadas no próprio circuito. Além disso, algumas modalidades executam software armazenado em dispositivos lógicos programáveis (PLDs), ROM ou dispositivos RAM.
[00144] Conforme usado neste relatório descritivo e em quaisquer reivindicações deste pedido, os termos "computador", "servidor", "processador" e "memória" se referem a dispositivos eletrônicos ou outros dispositivos tecnológicos. Esses termos excluem pessoas ou grupos de pessoas. Para os fins do relatório descritivo, os termos exibição ou exibir significam exibir em um dispositivo eletrônico. Conforme usado neste relatório descritivo e em quaisquer reivindicações deste pedido, os termos "meio legível por computador", "mídia legível por computador" e "meio legível por máquina" são inteiramente restritos a objetos físicos tangíveis que armazenam informações em uma forma que é legível por um computador. Esses termos excluem quaisquer sinais sem fio, sinais de descarregamento com fio e quaisquer outros sinais efêmeros.
[00145] Embora a presente divulgação tenha sido descrita com referência a vários detalhes específicos, um versado na técnica reconhecerá que a presente divulgação pode ser incorporada em outras formas específicas sem se afastar do espírito da presente divulgação. Além disso, uma série de figuras (incluindo as Figuras 13a-b e 16a-b) ilustram conceitualmente processos. As operações específicas desses processos podem não ser realizadas na ordem exata mostrada e descrita. As operações específicas podem não ser realizadas em uma série contínua de operações, e diferentes operações específicas podem ser realizadas em diferentes modalidades. Além disso, o processo pode ser implementado usando vários subprocessos, ou como parte de um macroprocesso maior. Assim, um versado na técnica entenderia que a presente divulgação não deve ser limitada pelos detalhes ilustrativos anteriores, mas sim deve ser definida pelas reivindicações anexas. Notas Adicionais
[00146] O assunto aqui descrito às vezes ilustra diferentes componentes contidos dentro, ou conectados com, diferentes outros componentes. Deve ser entendido que tais arquiteturas representadas são meramente exemplos, e que de fato muitas outras arquiteturas podem ser implementadas que alcançam a mesma funcionalidade. Em um sentido conceitual, qualquer arranjo de componentes para atingir a mesma funcionalidade é efetivamente "associado" de modo que a funcionalidade desejada seja alcançada. Portanto, quaisquer dois componentes aqui combinados para atingir uma funcionalidade particular podem ser vistos como "associados" um ao outro, de modo que a funcionalidade desejada seja alcançada, independentemente das arquiteturas ou componentes intermediários. Da mesma forma, quaisquer dois componentes assim associados também podem ser vistos como estando "operacionalmente conectados" ou "operacionalmente acoplados" um ao outro para atingir a funcionalidade desejada, e quaisquer dois componentes capazes de serem associados também podem ser vistos como sendo "operacionalmente acopláveis" entre si para atingir a funcionalidade desejada. Exemplos específicos de acoplável operativamente incluem, mas não estão limitados a componentes fisicamente acasalável e/ou interagindo fisicamente e/ou componentes que podem interagir de maneira sem fio e/ou interativos sem fio e/ou componentes interativos logicamente e/ou que podem interagir logicamente.
[00147] Além disso, no que diz respeito ao uso de substancialmente quaisquer termos plurais e/ou singulares neste documento, aqueles versados na técnica podem traduzir do plural para o singular e/ou do singular para o plural conforme apropriado para o contexto e/ou aplicação. As várias permutações de singular/plural podem ser expressamente estabelecidas neste documento por uma questão de clareza.
[00148] Além disso, será entendido por aqueles versados na técnica que, em geral, os termos usados neste documento, e especialmente nas reivindicações anexas, por exemplo, corpos das reivindicações anexas, são geralmente entendidos como termos "abertos", por exemplo, o termo "incluindo" deve ser interpretado como "incluindo, mas não se limitando a", o termo "tendo" deve ser interpretado como "tendo pelo menos", o termo "inclui" deve ser interpretado como "inclui, mas não está limitado a," etc. Será ainda compreendido por aqueles dentro da técnica que se um número específico de uma recitação de reivindicação introduzida for pretendido, tal intenção será explicitamente citada na reivindicação e na ausência de tal recitação, tal intenção não está presente.
Por exemplo, como um auxílio para a compreensão, as seguintes reivindicações anexas podem conter o uso das frases introdutórias "pelo menos um" e "um ou mais" para introduzir recitações de reivindicação.
No entanto, o uso de tais frases não deve ser interpretado de forma a implicar que a introdução de uma recitação de reivindicação pelos artigos indefinidos "um" ou "uma" limita qualquer reivindicação particular contendo tal recitação de reivindicação introduzida a implementações contendo apenas uma dessas recitações, mesmo quando a mesma reivindicação inclui as frases introdutórias "um ou mais" ou "pelo menos um" e artigos indefinidos, como "um" ou "uma", por exemplo, "um" e/ou "uma" devem ser interpretados como significando "pelo menos um” ou “um ou mais”; o mesmo se aplica ao uso de artigos definidos usados para apresentar recitações de reivindicações.
Além disso, mesmo se um número específico de uma recitação de reivindicação introduzida for explicitamente recitado, aqueles versados na técnica reconhecerão que tal recitação deve ser interpretada como significando pelo menos o número recitado, por exemplo, a recitação simples de "duas recitações", sem outros modificadores, significa pelo menos duas recitações, ou duas ou mais recitações.
Além disso, nos casos em que uma convenção análoga a "pelo menos um de A, B e C, etc." é usado, em geral, tal construção é destinada no sentido de que um versado na técnica entenderia a convenção, por exemplo, "um sistema tendo pelo menos um de A, B e C"
incluiria, mas não se limitaria a sistemas que têm A sozinho, B sozinho, C sozinho, A e B juntos, A e C juntos, B e C juntos e/ou A, B e C juntos, etc. Nos casos em que uma convenção análoga a "pelo menos um de A, B ou C, etc.” é usada, em geral, tal construção é destinada no sentido de que um versado na técnica entenderia a convenção, por exemplo, "um sistema tendo pelo menos um de A, B ou C" incluiria, mas não se limitaria a sistemas que têm A sozinho, B sozinho, C sozinho, A e B juntos, A e C juntos, B e C juntos e/ou A, B e C juntos, etc. Será ainda mais entendido por aqueles dentro da técnica que virtualmente qualquer palavra e/ou frase disjuntiva apresentando dois ou mais termos alternativos, seja na descrição, reivindicações ou desenhos, deve ser entendida para contemplar as possibilidades de incluir um dos termos, qualquer um dos termos, ou ambos os termos. Por exemplo, a frase "A ou B" será entendida como incluindo as possibilidades de "A" ou "B" ou "A e B."
[00149] A partir do exposto, será apreciado que várias implementações da presente divulgação foram descritas aqui para fins de ilustração e que várias modificações podem ser feitas sem se afastar do escopo e do espírito da presente divulgação. Por conseguinte, as várias implementações divulgadas neste documento não se destinam a ser limitantes, com o verdadeiro escopo e espírito sendo indicados pelas seguintes reivindicações.

Claims (21)

REIVINDICAÇÕES
1. Método de decodificação de vídeo, caracterizado pelo fato de que compreende: receber dados a-serem-decodificados a partir de um fluxo de bits para um bloco de pixels a ser decodificado como um bloco atual de uma imagem atual de um vídeo; gerar uma primeira predição do bloco atual com base em um primeiro modo de predição que é selecionado a partir de uma primeira lista de candidatos; gerar uma segunda predição do bloco atual com base em um segundo modo de predição que é selecionado a partir de uma segunda lista de candidatos; gerar uma predição combinada para o bloco atual com base na primeira predição e na segunda predição; e reconstruir o bloco atual usando a predição combinada.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira lista de candidatos compreende um ou mais modos de interpredição candidatos.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a primeira lista de candidatos é idêntica a uma lista de candidatos de mesclagem do bloco atual.
4. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a primeira lista de candidatos é um subconjunto de uma lista de candidatos de mesclagem do bloco atual.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira lista de candidatos e a segunda lista de candidatos são uma mesma lista de candidatos.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a predição combinada para o bloco atual é gerada com base em pelo menos uma da primeira e segunda listas de candidatos.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a segunda lista de candidatos compreende um ou mais modos de intrapredição candidatos.
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda determinar se deve gerar a segunda predição com base em uma bandeira explícita no fluxo de bits.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que compreende ainda determinar se deve analisar a bandeira explícita a partir do fluxo de bits com base em uma largura, uma altura ou um tamanho do bloco atual.
10. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda determinar se deve gerar a segunda predição com base em uma largura, uma altura ou um tamanho do bloco atual.
11. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o segundo modo de predição é selecionado com base em uma ordenação da segunda lista de candidatos que é determinada com base em uma largura, uma altura ou um tamanho do bloco atual.
12. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o segundo modo de predição é selecionado com base no primeiro modo de predição selecionado.
13. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que um candidato em uma posição particular da primeira lista de candidatos ou da segunda lista de candidatos é sinalizado usando uma palavra de código mais curta.
14. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que um número de candidatos da segunda lista de candidatos do bloco atual é determinado com base em uma largura, uma altura ou um tamanho do bloco atual.
15. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a segunda lista de candidatos compreende não mais do que um modo de intrapredição candidato.
16. Método, de acordo com a reivindicação 15, caracterizado pelo fato de que o modo de intrapredição candidato é identificado com base em uma razão entre uma largura do bloco atual e uma altura do bloco atual.
17. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira lista de candidatos é um subconjunto de uma lista de candidatos de mesclagem do bloco atual que compreende candidatos espaciais, mas não candidatos temporais.
18. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a predição combinada é aplicável a uma sub-região do bloco atual e não fora da sub- região do bloco atual, e em que um tamanho da sub-região é determinado com base em uma largura, altura ou tamanho do bloco atual.
19. Método de codificação de vídeo, caracterizado pelo fato de que compreende: receber dados de pixel brutos para um bloco de pixels a serem codificados como um bloco atual de uma imagem atual de um vídeo em um fluxo de bits; gerar uma primeira predição do bloco atual com base em um primeiro modo de predição; gerar uma segunda predição do bloco atual com base em um segundo modo de predição que é selecionado a partir de uma segunda lista de candidatos; gerar uma predição combinada para o bloco atual com base na primeira predição e na segunda predição; e codificar o bloco atual no fluxo de bits usando a predição combinada.
20. Aparelho eletrônico, caracterizado pelo fato de que compreende: um circuito de decodificador de vídeo capaz de: receber dados a-serem-decodificados a partir de um fluxo de bits para um bloco de pixels a ser decodificado como um bloco atual de uma imagem atual de um vídeo; gerar uma primeira predição do bloco atual com base em um primeiro modo de predição que é selecionado a partir de uma primeira lista de candidatos; gerar uma segunda predição do bloco atual com base em um segundo modo de predição que é selecionado a partir de uma segunda lista de candidatos; gerar uma predição combinada para o bloco atual com base na primeira predição e na segunda predição; e reconstruir o bloco atual usando a predição combinada.
21. Método de codificação de vídeo, caracterizado pelo fato de que compreende: receber dados a serem codificados ou decodificados como um bloco atual de uma imagem atual de um vídeo; gerar uma primeira predição do bloco atual com base em um primeiro modo de predição que é selecionado a partir de uma primeira lista de candidatos;
gerar uma segunda predição do bloco atual com base em um segundo modo de predição que é selecionado a partir de uma segunda lista de candidatos; gerar uma predição combinada para o bloco atual com base na primeira predição e na segunda predição; e usar a predição combinada para reconstruir o bloco atual ou para codificar o bloco atual em um fluxo de bits.
BR112021000698A 2018-07-18 2019-07-18 Candidatos de mesclagem com múltiplas hipóteses BR112021000698A8 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862699760P 2018-07-18 2018-07-18
US62/699,760 2018-07-18
US16/513,835 US11051010B2 (en) 2018-07-18 2019-07-17 Merge candidates with multiple hypothesis
US16/513,835 2019-07-17
PCT/CN2019/096520 WO2020015699A1 (en) 2018-07-18 2019-07-18 Merge candidates with multiple hypothesis

Publications (2)

Publication Number Publication Date
BR112021000698A2 true BR112021000698A2 (pt) 2021-04-13
BR112021000698A8 BR112021000698A8 (pt) 2023-02-07

Family

ID=69163327

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021000698A BR112021000698A8 (pt) 2018-07-18 2019-07-18 Candidatos de mesclagem com múltiplas hipóteses

Country Status (7)

Country Link
US (2) US11051010B2 (pt)
EP (1) EP3821599A4 (pt)
CN (1) CN112400319B (pt)
BR (1) BR112021000698A8 (pt)
MX (1) MX2021000504A (pt)
TW (1) TWI719542B (pt)
WO (1) WO2020015699A1 (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8867854B2 (en) * 2008-10-01 2014-10-21 Electronics And Telecommunications Research Institute Image encoder and decoder using undirectional prediction
US11503315B2 (en) * 2016-08-19 2022-11-15 Lg Electronics Inc. Method and apparatus for encoding and decoding video signal using intra prediction filtering
EP3793193A4 (en) * 2018-05-10 2022-05-25 Samsung Electronics Co., Ltd. CODING METHOD AND DEVICE ASSOCIATED, AND DECODED METHOD AND DEVICE ASSOCIATED
GB2577056B (en) * 2018-09-11 2022-12-14 British Broadcasting Corp Bitstream decoder
CN112689998B (zh) * 2018-09-17 2023-12-01 寰发股份有限公司 在视频编解码系统中处理视频数据的方法和装置
CN110944183B (zh) * 2018-09-23 2023-09-05 北京字节跳动网络技术有限公司 在帧间模式下利用非子块空时运动矢量预测
CN112840645B (zh) * 2018-10-10 2023-12-12 寰发股份有限公司 视频编码系统中组合多个预测子用于块预测的方法及装置
WO2020094051A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Signaling of side information for inter prediction with geometric partitioning
US11122272B2 (en) * 2018-12-26 2021-09-14 Mediatek Inc. Triangle prediction with applied-block settings and motion storage settings
WO2020139061A1 (ko) * 2018-12-28 2020-07-02 인텔렉추얼디스커버리 주식회사 화면 간 예측 부호화 및 복호화 방법 및 장치
CN113170166B (zh) 2018-12-30 2023-06-09 北京字节跳动网络技术有限公司 具有几何分割的帧间预测在视频处理中有条件的应用
KR20220016075A (ko) 2019-06-04 2022-02-08 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 모션 후보 리스트 구성 프로세스의 조건부 구현
CN114128295B (zh) 2019-07-14 2024-04-12 北京字节跳动网络技术有限公司 视频编解码中几何分割模式候选列表的构建
CN114450959A (zh) * 2019-09-28 2022-05-06 北京字节跳动网络技术有限公司 视频编解码中的几何分割模式
CN117501691A (zh) * 2021-05-17 2024-02-02 抖音视界有限公司 用于视频处理的方法、设备和介质
WO2023200561A1 (en) * 2022-04-13 2023-10-19 Qualcomm Incorporated Methods for adaptive signaling of maximum number of merge candidates in multiple hypothesis prediction

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0413988A (pt) * 2003-08-26 2006-11-07 Thomson Licensing método e aparelho para decodificar blocos intra-inter codificador hìbridos
CN101491107B (zh) 2006-07-07 2012-07-18 艾利森电话股份有限公司 一种对图像元素组进行解码的方法及其相关的编码器、解码器
US8422555B2 (en) 2006-07-11 2013-04-16 Nokia Corporation Scalable video coding
WO2011149291A2 (ko) 2010-05-26 2011-12-01 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
CN101854554A (zh) * 2010-06-13 2010-10-06 上海交通大学 基于图像修复预测的视频编解码系统
CN102186070B (zh) 2011-04-20 2013-06-05 北京工业大学 分层结构预判的快速视频编码方法
US9282338B2 (en) * 2011-06-20 2016-03-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
GB2492337B (en) * 2011-06-27 2018-05-09 British Broadcasting Corp Video encoding and decoding using reference pictures
US9736489B2 (en) * 2011-09-17 2017-08-15 Qualcomm Incorporated Motion vector determination for video coding
US9635356B2 (en) 2012-08-07 2017-04-25 Qualcomm Incorporated Multi-hypothesis motion compensation for scalable video coding and 3D video coding
US9491459B2 (en) * 2012-09-27 2016-11-08 Qualcomm Incorporated Base layer merge and AMVP modes for video coding
KR101835360B1 (ko) * 2012-10-01 2018-03-08 지이 비디오 컴프레션, 엘엘씨 향상 레이어에서 변환 계수 블록들의 서브블록-기반 코딩을 이용한 스케일러블 비디오 코딩
US9374578B1 (en) 2013-05-23 2016-06-21 Google Inc. Video coding using combined inter and intra predictors
US9609343B1 (en) * 2013-12-20 2017-03-28 Google Inc. Video coding using compound prediction
KR102449511B1 (ko) * 2014-03-16 2022-09-30 브이아이디 스케일, 인크. 무손실 비디오 코딩의 시그널링을 위한 방법 및 장치
US10666940B2 (en) 2014-11-06 2020-05-26 Samsung Electronics Co., Ltd. Video encoding method and apparatus, and video decoding method and apparatus

Also Published As

Publication number Publication date
TW202007147A (zh) 2020-02-01
US20210274166A1 (en) 2021-09-02
MX2021000504A (es) 2021-04-12
US11051010B2 (en) 2021-06-29
EP3821599A4 (en) 2022-07-06
WO2020015699A1 (en) 2020-01-23
US20200029073A1 (en) 2020-01-23
CN112400319B (zh) 2024-04-26
TWI719542B (zh) 2021-02-21
US11553173B2 (en) 2023-01-10
BR112021000698A8 (pt) 2023-02-07
EP3821599A1 (en) 2021-05-19
CN112400319A (zh) 2021-02-23

Similar Documents

Publication Publication Date Title
BR112021000698A2 (pt) Candidatos de mesclagem com múltiplas hipóteses
US11310526B2 (en) Hardware friendly constrained motion vector refinement
US10715827B2 (en) Multi-hypotheses merge mode
TWI711300B (zh) 照度補償方法及相應之視訊處理裝置
US11172203B2 (en) Intra merge prediction
US11297348B2 (en) Implicit transform settings for coding a block of pixels
WO2019206190A1 (en) Storage of motion vectors for affine prediction
US20230209048A1 (en) Intra Prediction For Multi-Hypothesis
US20240080490A1 (en) Signaling for multi-reference line prediction and multi-hypothesis prediction
TWI802271B (zh) 具有應用的塊設定以及運動儲存設定的三角形預測
US20200059659A1 (en) Shared Candidate List
WO2020233702A1 (en) Signaling of motion vector difference derivation
WO2024027700A1 (en) Joint indexing of geometric partitioning mode in video coding

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: HFI INNOVATION INC. (TW)