BR112021003679A2 - método, codificador e decodificador para predição intra - Google Patents

método, codificador e decodificador para predição intra Download PDF

Info

Publication number
BR112021003679A2
BR112021003679A2 BR112021003679-2A BR112021003679A BR112021003679A2 BR 112021003679 A2 BR112021003679 A2 BR 112021003679A2 BR 112021003679 A BR112021003679 A BR 112021003679A BR 112021003679 A2 BR112021003679 A2 BR 112021003679A2
Authority
BR
Brazil
Prior art keywords
block
mode
prediction mode
intra
modes
Prior art date
Application number
BR112021003679-2A
Other languages
English (en)
Inventor
Anand Meher KOTRA
Biao Wang
Semih ESENLIK
Jianle Chen
Zhijie ZHAO
Han Gao
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112021003679A2 publication Critical patent/BR112021003679A2/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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/127Prioritisation of hardware or computational resources
    • 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/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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

MÉTODO, CODIFICADOR E DECODIFICADOR PARA PREDIÇÃO INTRA O presente documento fornece um método para construir uma lista de Modo Mais Provável, MPM para o processo de predição correspondente ao bloco de vídeo. O método inclui determinar se um bloco esquerdo de um bloco de codificação atual está disponível ou não, se o bloco esquerdo do bloco de codificação atual está disponível, adicionando um modo de predição intra do bloco esquerdo em uma lista de MPM; determinar se um bloco acima do bloco de codificação atual está disponível ou não, se o bloco acima do bloco de codificação atual estiver disponível, adicionando um modo de predição intra do bloco acima na lista de MPM; adicionar um deslocamento ao modo de predição do bloco esquerdo para obter um novo modo de predição, se o bloco esquerdo do bloco de codificação atual estiver disponível e o modo de predição intra do bloco esquerdo for um modo angular; e adicionar o novo modo de predição na lista de MPM, se o novo modo de predição não estiver na lista de MPM; ou adicionar um deslocamento ao modo de predição do bloco acima para obter um modo de predição de deslocamento acima, se o bloco acima do bloco de codificação atual estiver disponível e o modo de predição intra do bloco acima for um modo angular; e adicionar o modo de predição de deslocamento acima na lista de MPM, se o modo de predição de deslocamento acima não estiver na lista de MPM. A lista de MPM é usada para obter um valor de índice correspondente a um modo de predição de um bloco de imagem, de modo a melhorar a eficiência da codificação.

Description

MÉTODO, CODIFICADOR E DECODIFICADOR PARA PREDIÇÃO INTRA CAMPO TÉCNICO
[0001] A presente divulgação se refere ao campo técnico de imagem e/ou codificação e decodificação de vídeo e, em particular, ao método e aparelho para predição intra.
ANTECEDENTES
[0002] O vídeo digital tem sido amplamente utilizado desde a introdução dos discos DVD. Antes da transmissão, o vídeo é codificado e transmitido usando um meio de transmissão. O visualizador recebe o vídeo e usa um dispositivo de visualização para decodificar e exibir o vídeo. Com o passar dos anos, a qualidade do vídeo melhorou, por exemplo, em razão de resoluções, profundidades de cores e taxas de quadros mais altas. Isso levou a maiores fluxos de dados que hoje em dia são comumente transportados pela Internet e por redes de comunicação móvel.
[0003] Vídeos de resolução mais alta, no entanto, geralmente requerem mais largura de banda, pois têm mais informações. De modo a reduzir os requisitos de largura de banda, foram introduzidos os padrões de codificação de vídeo que envolvem a compressão do vídeo. Quando o vídeo é codificado, os requisitos de largura de banda (ou requisitos de memória correspondentes no caso de armazenamento) são reduzidos. Frequentemente, essa redução vem com o custo da qualidade. Assim, os padrões de codificação de vídeo tentam encontrar um equilíbrio entre os requisitos de largura de banda e a qualidade.
[0004] A Codificação de Vídeo de Alta Eficiência (High Efficiency Video Coding) (HEVC) é um exemplo de um padrão de codificação de vídeo que é comumente conhecido por versados na técnica. Em HEVC, para dividir uma unidade de codificação (CU) em unidades de predição (PU) ou unidades de transformação (TUs). O padrão de próxima geração de Codificação de Vídeo Versátil (Versatile Video Coding) (VVC) é o mais recente projeto de vídeo conjunto das organizações de padronização ITU-T Grupo de Experts de Codificação de Vídeo (Video Coding Experts Group) (VCEG) e ISO/IEC Grupo de Experts de Movimento de Imagem (Moving Picture Experts Group) (MPEG), trabalhando juntos em uma parceria conhecida como Equipe Conjunta de Exploração de Vídeo (Joint Video Exploration Team) (JVET). O VVC também é conhecido como padrão ITU-T H.266/Codificação de Vídeo de Próxima Geração (Next Generation Video Coding) (NGVC). No VVC, ele remove os conceitos de vários tipos de partição, ou seja, remove a separação dos conceitos de CU, PU e TU, exceto conforme necessário para CUs que têm um tamanho muito grande para o comprimento máximo de transformação e oferece mais flexibilidade para formatos de partição de CU.
[0005] O processamento dessas unidades de codificação (CUs) (também chamadas de blocos) depende de seu tamanho, posição espacial e um modo de codificação especificado por um codificador. Os modos de codificação podem ser classificados em dois grupos, de acordo com o tipo de predição: modos predição intra e predição inter. Os modos de predição intra usam amostras da mesma imagem (também chamadas de quadro ou imagem) para gerar amostras de referência para calcular os valores de predição para as amostras do bloco sendo reconstruído. A predição intra também é conhecida como predição espacial. Os modos de predição inter são projetados para predição temporal e usam amostras de referência de imagens anteriores ou seguintes para prever amostras do bloco da imagem atual.
[0006] ITU-T VCEG (Q6/16) e ISO/IEC MPEG (JTC 1/SC 29/WG 11) estão estudando a necessidade potencial de padronização da futura tecnologia de codificação de vídeo com uma capacidade de compressão que excede significativamente a do padrão HEVC atual (incluindo suas extensões atuais e extensões de curto prazo para codificação de conteúdo de tela e codificação de alta faixa dinâmica). Os grupos estão trabalhando juntos nesta atividade de exploração em um esforço de colaboração conjunto conhecido como Equipe Conjunta de Exploração de Vídeo (Joint Video Exploration Team) (JVET) para avaliar os projetos de tecnologia de compressão propostos por seus versados na área.
[0007] O padrão VTM (Modelo de Teste Versátil, Versatile Test Model) usa 35 modos Intra, enquanto o BMS (Conjunto de Marcos, Benchmark Set) usa 67 modos Intra.
[0008] O esquema de codificação de modo intra atualmente descrito em BMS é considerado complexo e uma desvantagem do conjunto de modo não selecionado é que a lista de índice é sempre constante e não adaptativa com base nas propriedades de bloco atuais (por exemplo, seus modos INTRA de blocos vizinhos).
SUMÁRIO
[0009] O presente documento divulga parelho e método para predição intra. O aparelho e o método usam um processo aprimorado para determinar uma lista dos modos mais prováveis. O escopo da proteção é definido pelas reivindicações. Outras formas de implementação são evidentes a partir das reivindicações dependentes, da descrição e das figuras.
[0010] De acordo com um aspecto, a presente invenção se refere a um método para construir um modo mais provável, MPM, lista para processo de predição, o método compreendendo: determinar se um bloco esquerdo de um bloco atual está disponível ou não, se o bloco esquerdo do bloco atual está disponível, adicionar um modo de predição intra do bloco esquerdo em uma lista de MPM; determinar se um bloco acima do bloco de codificação atual está disponível ou não, se o bloco acima do bloco de codificação atual estiver disponível, adicionar um modo de predição intra do bloco acima na lista de MPM; adicionar um deslocamento ao modo de predição intra do bloco esquerdo para obter um novo modo de predição, se o bloco esquerdo do bloco de codificação atual estiver disponível e o modo de predição intra do bloco esquerdo for um modo angular; e adicionar o novo modo de predição na lista de MPM, se o novo modo de predição não estiver no modo lista de MPM; e/ou adicionar um deslocamento ao modo de predição intra do bloco acima para obter um modo de predição de deslocamento acima, se o bloco acima do bloco de codificação atual estiver disponível e o modo de predição intra do bloco acima for um modo angular; e adicionar o modo de predição de deslocamento acima na lista de MPM, se o modo de predição de deslocamento acima não estiver na lista de MPM.
[0011] Em uma modalidade, o deslocamento é -1 ou +1: em uma modalidade, o método compreende ainda: se um modo planar não estiver na lista de MPM, adicionar o modo planar na lista de MPM; e se um modo DC não estiver na lista de MPM, adicionar o modo DC na lista de MPM.
[0012] Em uma modalidade, quando um modo de predição do bloco esquerdo não é um modo de predição intra, o bloco esquerdo do bloco de codificação atual não está disponível.
[0013] Em uma modalidade, quando o bloco de codificação atual é um bloco de codificação localizado na extremidade esquerda de um quadro, o bloco esquerdo do bloco de codificação atual não está disponível.
[0014] Em uma modalidade, quando o processamento paralelo é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade esquerda de uma fatia ou uma parte, o bloco esquerdo do bloco de codificação atual não está disponível.
[0015] Em uma modalidade, quando o processamento paralelo não é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade esquerda de uma fatia ou uma parte, mas não na extremidade esquerda de um quadro, o bloco esquerdo do bloco de codificação atual está disponível.
[0016] Em uma modalidade, quando um modo de predição do bloco acima não é um modo de predição intra, o bloco acima do bloco de codificação atual não está disponível.
[0017] Em uma modalidade, quando o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de um quadro, o bloco acima do bloco de codificação atual não está disponível.
[0018] Em uma modalidade, quando o processamento paralelo é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de uma fatia ou uma parte, o bloco acima do bloco de codificação atual não está disponível.
[0019] Em uma modalidade, quando o processamento paralelo não é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de uma fatia ou uma parte, mas não na extremidade superior de um quadro, o bloco acima do bloco de codificação atual está disponível.
[0020] Em uma modalidade, quando o tamanho do buffer de linha é restringido e o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de uma unidade de árvore de codificação atual, CTU, o bloco acima do bloco de codificação atual não está disponível.
[0021] De acordo com um aspecto, a presente invenção se refere a um codificador que compreende circuitos de processamento para realizar qualquer um dos métodos acima.
[0022] De acordo com um aspecto, a presente invenção se refere a um decodificador que compreende circuitos de processamento para realizar qualquer um dos métodos acima.
[0023] De acordo com um aspecto, a presente invenção se refere a um produto de programa que compreende um código de programa para executar qualquer um dos métodos acima.
BREVE DESCRIÇÃO DOS DESENHOS
[0024] As modalidades que se seguem são descritas em mais detalhes com referência às figuras e desenhos anexos, nos quais: a Figura 1 é um diagrama de blocos que mostra um exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da invenção.
[0025] A Figura 2 é um diagrama de blocos que mostra um exemplo de um codificador de vídeo configurado para implementar modalidades da invenção.
[0026] A Figura 3 é um diagrama de blocos que mostra um exemplo de estrutura de um decodificador de vídeo configurado para implementar modalidades da invenção.
[0027] A Figura 4 mostra um diagrama esquemático que ilustra 67 modos de predição intra.
[0028] A Figura 5 mostra um diagrama esquemático que ilustra blocos vizinhos para derivação de MPM.
[0029] A Figura 6 mostra um diagrama esquemático que ilustra um exemplo dos três primeiros modos no processo de geração de lista de modos restantes.
[0030] A Figura 7 mostra um diagrama esquemático que ilustra os modos intra de blocos vizinhos da segunda camada usados para derivar os três primeiros modos na lista de modos restantes.
[0031] A Figura 8 mostra um diagrama esquemático que ilustra um exemplo de um método de decodificação de vídeo.
[0032] A Figura 9 mostra outro diagrama esquemático que ilustra um exemplo de um método de decodificação de vídeo.
[0033] A Figura 10 mostra um diagrama de blocos de um aparelho.
[0034] A seguir, os sinais de referência idênticos se referem às características idênticas ou pelo menos funcionalmente equivalentes, se não for explicitamente especificado de outra forma.
DESCRIÇÃO DETALHADA DAS MODALIDADES
[0035] Na descrição que se segue é feita referência aos desenhos anexos, que fazem parte da divulgação, e nos quais são mostrados, a título de ilustração, aspectos específicos nos quais a invenção pode ser colocada. Entende-se que modalidades da invenção podem ser usadas em outros aspectos e compreendem mudanças estruturais ou lógicas não representadas nas figuras. A descrição detalhada que se segue, portanto, não deve ser tomada em um sentido limitante, e o escopo da presente invenção é definido pelas reivindicações anexas.
[0036] Por exemplo, entende-se que uma divulgação em conexão com um método descrito também pode ser verdadeira para um dispositivo ou sistema correspondente configurado para executar o método e vice-versa. Por exemplo, se uma etapa de método específico é descrita, um dispositivo correspondente pode incluir uma unidade para realizar a etapa do método descrito, mesmo se tal unidade não for explicitamente descrita ou ilustrada nas figuras. Por outro lado, por exemplo, se um aparelho específico for descrito com base em uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, um método correspondente pode incluir uma etapa para executar a funcionalidade de uma ou uma pluralidade de unidades (por exemplo, uma etapa realizando a funcionalidade de uma ou da pluralidade de unidades, ou uma pluralidade de etapas, cada uma realizando a funcionalidade de uma ou mais da pluralidade de unidades), mesmo se tal uma ou pluralidade de etapas não for explicitamente descrita ou ilustrada nas figuras. Além disso, entende-se que as características dos vários aspectos exemplares descritos neste documento podem ser combinadas entre si, a menos que especificamente indicado de outra forma.
[0037] A codificação de vídeo normalmente se refere ao processamento de uma sequência de imagens, que formam o vídeo ou a sequência de vídeo. O termo imagem, imagem ou quadro pode ser usado/é usado como sinônimo no campo da codificação de vídeo, bem como nesta aplicação.
[0038] A codificação de vídeo (ou codificação em geral) compreende duas partes: codificação de vídeo e decodificação de vídeo. A codificação de vídeo é realizada no lado da fonte, tipicamente compreendendo o processamento (por exemplo, por compressão) das imagens de vídeo originais para reduzir a quantidade de dados necessária para representar as imagens de vídeo (para armazenamento e/ou transmissão mais eficiente). A decodificação de vídeo é realizada no lado de destino e normalmente compreende o processamento inverso em comparação com o codificador para reconstruir as imagens de vídeo. As modalidades que se referem à “codificação” de imagens de vídeo (ou imagens em geral) devem ser entendidas como relacionadas à “codificação” ou “decodificação” de imagens de vídeo ou respectivas sequências de vídeo. A combinação da parte de codificação e da parte de decodificação também é conhecida como CODEC (Codificação e Decodificação).
[0039] No caso de codificação de vídeo sem perdas, as imagens de vídeo originais podem ser reconstruídas, ou seja, as imagens de vídeo reconstruídas têm a mesma qualidade que as imagens de vídeo originais (assumindo nenhuma perda de transmissão ou outra perda de dados durante o armazenamento ou transmissão). Em caso de codificação de vídeo com perdas, compressão adicional, por ex. por quantização, é realizada, para reduzir a quantidade de dados que representam as imagens de vídeo, que não podem ser completamente reconstruídas no decodificador, ou seja, a qualidade das imagens de vídeo reconstruídas é inferior ou pior em comparação com a qualidade das imagens de vídeo originais.
[0040] Cada imagem é normalmente particionada em um conjunto de blocos não sobrepostos. A codificação/decodificação da imagem é tipicamente realizada a um nível de bloco onde, por exemplo, predição inter quadro ou predição intra quadro são usadas para gerar um bloco de predição, para subtrair o bloco de predição do bloco atual (bloco atualmente processado/a ser processado) para obter um bloco residual, que é posteriormente transformado e quantizado para reduzir a quantidade de dados a serem transmitidos (compressão), enquanto que no lado do decodificador o processamento inverso é aplicado ao bloco codificado/comprimido para reconstruir o bloco para representação.
[0041] A Figura 1 é um diagrama de blocos conceitual ou esquemático que ilustra um sistema de codificação de exemplo, por exemplo, um sistema de codificação de vídeo que pode utilizar técnicas do presente pedido (presente divulgação). O codificador 20 (por exemplo, codificador de vídeo 20) e o decodificador 30 (por exemplo, decodificador de vídeo 30) do sistema de codificação de vídeo representam exemplos de dispositivos que podem ser configurados para executar técnicas de acordo com vários exemplos descritos no presente pedido. Como mostrado na Figura 1, o sistema de codificação compreende um dispositivo de origem 12 configurado para fornecer dados codificados 13, por exemplo, uma imagem codificada 13, por exemplo, a um dispositivo de destino 14 para decodificar os dados codificados 13.
[0042] O dispositivo de origem 12 compreende um codificador 20 e pode, adicionalmente, isto é, opcionalmente, compreender uma fonte de imagem 16, uma unidade de pré-processamento 18, por exemplo, uma unidade de pré-processamento de imagem 18 e uma interface de comunicação ou unidade de comunicação 22.
[0043] A fonte de imagem 16 pode compreender ou ser qualquer tipo de dispositivo de captura de imagem, por exemplo, para capturar uma imagem do mundo real e/ou qualquer tipo de imagem ou comentário (para codificação de conteúdo de tela, alguns textos na tela também são considerados um parte de uma imagem ou imagem a ser codificada) dispositivo de geração, por exemplo, um processador gráfico de computador para gerar uma imagem animada por computador, ou qualquer tipo de dispositivo para obter e/ou fornecer uma imagem do mundo real, uma imagem animada por computador (por exemplo, um conteúdo de tela, uma imagem de realidade virtual (VR)) e/ou qualquer combinação dos mesmos (por exemplo, uma imagem de realidade aumentada (AR)).
[0044] Uma imagem (digital) é ou pode ser considerada como um arranjo ou matriz bidimensional de amostras com valores de intensidade. Uma amostra na matriz também pode ser referida como pixel (forma abreviada de elemento de imagem) ou pel. O número de amostras na direção horizontal e vertical (ou eixo) da matriz ou imagem define o tamanho e/ou resolução da imagem. Para representação de cor, tipicamente, três componentes de cor são empregados, isto é, a imagem pode ser representada ou incluir três matrizes de amostra. No formato RBG ou espaço de cor, uma imagem compreende uma matriz de amostra vermelha, verde e azul correspondente. No entanto, na codificação de vídeo, cada pixel é tipicamente representado em um formato de luminância/crominância ou espaço de cor, por exemplo, YCbCr, que compreende um componente de luminância indicado por Y (às vezes também L é usado no lugar) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (ou curto luma) Y representa o brilho ou intensidade do nível de cinza (por exemplo, como em uma imagem em escala de cinza), enquanto os dois componentes de crominância (ou croma curto) Cb e Cr representam a cromaticidade ou componentes de informação de cor. Consequentemente, uma imagem no formato YCbCr compreende uma matriz de amostra de luminância de valores de amostra de luminância (Y) e duas matrizes de amostra de crominância de valores de crominância (Cb e Cr). As imagens no formato RGB podem ser convertidas ou transformadas no formato YCbCr e vice-versa, o processo também é conhecido como transformação ou conversão de cores. Se uma imagem for monocromática, a imagem pode compreender apenas uma matriz de amostra de luminância.
[0045] A fonte de imagem 16 (por exemplo, fonte de vídeo 16) pode ser, por exemplo, uma câmera para capturar uma imagem, uma memória, por exemplo, uma memória de imagem, compreendendo ou armazenando uma imagem previamente capturada ou gerada e/ou qualquer tipo de interface (interna ou externa) para obter ou receber uma imagem. A câmera pode ser, por exemplo, uma câmera local ou integrada ao dispositivo de origem, a memória pode ser uma memória local ou integrada, por exemplo, integrado no dispositivo de origem. A interface pode ser, por exemplo, uma interface externa para receber uma imagem de uma fonte de vídeo externa, por exemplo, um dispositivo externo de captura de imagem como uma câmera, uma memória externa ou um dispositivo externo de geração de imagem, por exemplo, um computador gráfico externo processador, computador ou servidor. A interface pode ser qualquer tipo de interface, por exemplo, uma interface com fio ou sem fio, uma interface óptica, de acordo com qualquer protocolo de interface patenteado ou padronizado. A interface para obter os dados de imagem 17 pode ser a mesma interface ou uma parte da interface de comunicação 22.
[0046] Em distinção à unidade de pré-processamento 18 e ao processamento realizado pela unidade de pré- processamento 18, a imagem ou dados de imagem 17 (por exemplo, dados de vídeo 16) também pode ser referida como imagem bruta ou dados de imagem bruta 17.
[0047] A unidade de pré-processamento 18 é configurada para receber os dados de imagem (brutos) 17 e para realizar o pré-processamento nos dados de imagem 17 para obter uma imagem pré-processada 19 ou dados de imagem pré-processados
19. Pré-processamento realizado por unidade de pré- processamento 18 pode, por exemplo, compreender corte, conversão de formato de cor (por exemplo, de RGB para YCbCr), correção de cor ou eliminação de ruído. Pode ser entendido que a unidade de pré-processamento 18 pode ser um componente opcional.
[0048] O codificador 20 (por exemplo, codificador de vídeo 20) é configurado para receber os dados de imagem pré-processados 19 e fornecer dados de imagem codificados 21 (mais detalhes serão descritos abaixo, por exemplo, com base na Figura 2).
[0049] A interface de comunicação 22 do dispositivo de origem 12 pode ser configurada para receber os dados de imagem codificados 21 e para transmiti-los para outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta, ou para processar os dados de imagem codificados 21, respectivamente, antes de armazenar os dados codificados 13 e/ou transmitir os dados codificados 13 para outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo para decodificação ou armazenamento.
[0050] O dispositivo de destino 14 compreende um decodificador 30 (por exemplo, um decodificador de vídeo 30) e pode, adicionalmente, isto é, opcionalmente, compreender uma interface de comunicação ou unidade de comunicação 28, uma unidade de pós-processamento 32 e um dispositivo de exibição 34.
[0051] A interface de comunicação 28 do dispositivo de destino 14 está configurada para receber os dados de imagem codificados 21 ou os dados codificados 13, por exemplo, diretamente do dispositivo de fonte 12 ou de qualquer outra fonte, por exemplo, um dispositivo de armazenamento, por exemplo, um dispositivo de armazenamento de dados de imagem codificado.
[0052] A interface de comunicação 22 e a interface de comunicação 28 podem ser configuradas para transmitir ou receber os dados de imagem codificados 21 ou dados codificados 13 através de um enlace de comunicação direta entre o dispositivo de origem 12 e o dispositivo de destino 14, por exemplo, uma conexão direta com ou sem fio, ou através de qualquer tipo de rede, por exemplo, uma rede com fio ou sem fio ou qualquer combinação destas, ou qualquer tipo de rede privada e pública, ou qualquer tipo de combinação das mesmas.
[0053] A interface de comunicação 22 pode ser, por exemplo, configurada para empacotar os dados de imagem codificados 21 em um formato apropriado, por exemplo, pacotes, para transmissão por um enlace de comunicação ou rede de comunicação.
[0054] A interface de comunicação 28, formando a contraparte da interface de comunicação 22, pode ser, por exemplo, configurada para desempacotar os dados codificados 13 para obter os dados de imagem codificados 21.
[0055] Tanto a interface de comunicação 22 quanto a interface de comunicação 28 podem ser configuradas como interfaces de comunicação unidirecionais, conforme indicado pela seta para os dados de imagem codificados 13 na Figura 1, apontando do dispositivo de origem 12 para o dispositivo de destino 14, ou interfaces de comunicação bidirecionais, e pode ser configurado, por exemplo, para enviar e receber mensagens, por exemplo, para configurar uma conexão, para reconhecer e trocar quaisquer outras informações relacionadas ao enlace de comunicação e/ou transmissão de dados, por exemplo, transmissão de dados de imagem codificada.
[0056] O decodificador 30 é configurado para receber os dados de imagem codificados 21 e fornecer dados de imagem decodificados 31 ou uma imagem decodificada 31 (detalhes adicionais serão descritos abaixo, por exemplo, com base na Figura 3).
[0057] O pós-processador 32 do dispositivo de destino 14 é configurado para pós-processar os dados de imagem decodificados 31 (também chamados de dados de imagem reconstruída), por exemplo, a imagem decodificada 31, para obter dados de imagem 33 pós-processados, por exemplo, uma imagem pós-processada 33. O pós-processamento realizado pela unidade de pós-processamento 32 pode compreender, por exemplo, conversão de formato de cor (por exemplo, de YCbCr para RGB), correção de cor, corte ou reamostragem ou qualquer outro processamento, por exemplo, para preparar os dados 31 de imagem decodificados para apresentação, por exemplo, pelo dispositivo de exibição 34.
[0058] O dispositivo de exibição 34 do dispositivo de destino 14 está configurado para receber os dados de imagem pós-processados 33 para exibir a imagem, por exemplo, para um usuário ou visualizador. O dispositivo de exibição 34 pode ser ou compreender qualquer tipo de exibição para representar a imagem reconstruída, por exemplo, um monitor ou monitor integrado ou externo. Os monitores podem, por exemplo, compreendem telas de cristal líquido (LCD), telas de diodos emissores de luz orgânica (OLED), telas de plasma, projetores, telas micro LED, cristal líquido em silício (LCoS), processador de luz digital (DLP) ou qualquer tipo de outra tela.
[0059] Embora a Figura 1 represente o dispositivo de origem 12 e o dispositivo de destino 14 como dispositivos separados, modalidades de dispositivos também podem compreender ambas ou ambas as funcionalidades, o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente. Em tais modalidades, o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente podem ser implementados usando o mesmo hardware e/ou software ou por hardware e/ou software separado ou qualquer combinação dos mesmos.
[0060] Como será evidente ao versado na técnica com base na descrição, a existência e a divisão (exata) de funcionalidades das diferentes unidades ou funcionalidades dentro do dispositivo de origem 12 e/ou dispositivo de destino 14, como mostrado na Figura 1, pode variar dependendo do dispositivo real e aplicação.
[0061] O codificador 20 (por exemplo, um codificador de vídeo 20) e o decodificador 30 (por exemplo, um decodificador de vídeo 30), cada um pode ser implementado como qualquer um de uma variedade de circuitos adequados, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), matrizes de portas programáveis em campo (FPGAs), lógica discreta, hardware ou qualquer combinação dos mesmos. Se as técnicas forem implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio de armazenamento legível por computador não transitório adequado e pode executar as instruções em hardware usando um ou mais processadores para executar as técnicas desta divulgação.
Qualquer um dos anteriores (incluindo hardware, software, uma combinação de hardware e software, etc.) pode ser considerado como um ou mais processadores. Cada codificador de vídeo 20 e decodificador de vídeo 30 podem ser incluídos em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um respectivo dispositivo.
[0062] O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um de uma ampla gama de dispositivos, incluindo qualquer tipo de dispositivos portáteis ou estacionários, por exemplo, notebooks ou laptops, telefones celulares, smartphones, tablets ou tablets, câmeras, computadores desktop, decodificadores, televisores, dispositivos de exibição, players de mídia digital, consoles de videogame, dispositivos de streaming de vídeo (como servidores de serviços de conteúdo ou servidores de entrega de conteúdo), dispositivo de receptor de difusão, dispositivo de transmissão de difusão ou semelhantes e podem usar nenhum ou qualquer tipo de sistema operacional. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio. Assim, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser dispositivos de comunicação sem fio.
[0063] Em alguns casos, o sistema de codificação de vídeo ilustrado na Figura 1 é apenas um exemplo e as técnicas do presente pedido podem se aplicar às configurações de codificação de vídeo (por exemplo, codificação de vídeo ou decodificação de vídeo) que não incluem necessariamente qualquer comunicação de dados entre a codificação e dispositivos de decodificação. Em outros exemplos, os dados são recuperados de uma memória local, transmitidos por meio de uma rede ou semelhantes. Um dispositivo de codificação de vídeo pode codificar e armazenar dados na memória e/ou um dispositivo de decodificação de vídeo pode recuperar e decodificar dados da memória. Em alguns exemplos, a codificação e a decodificação são realizadas por dispositivos que não se comunicam entre si, mas simplesmente codificam dados para a memória e/ou recuperam e decodificam dados da memória.
[0064] A Figura 2 mostra um diagrama de blocos esquemático/conceitual de um codificador de vídeo de exemplo 20 que está configurado para implementar as técnicas do presente pedido. No exemplo da Figura 2, o codificador de vídeo 20 compreende uma unidade de cálculo residual 204, uma unidade de processamento de transformação 206, uma unidade de quantização 208, uma unidade de quantização inversa 210 e unidade de processamento de transformação inversa 212, uma unidade de reconstrução 214, um buffer 216, uma unidade de filtro de loop 220, um buffer de imagem decodificada (DPB) 230, uma unidade de processamento de predição 260 e uma unidade de codificação de entropia 270. A unidade de processamento de predição 260 pode incluir uma unidade de predição inter 244, uma unidade de predição intra 254 e um unidade de seleção de modo 262. A unidade de predição inter 244 pode incluir uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostrada). Um codificador de vídeo 20, como mostrado na Figura 2, também pode ser referido como codificador de vídeo híbrido ou um codificador de vídeo de acordo com um codec de vídeo híbrido.
[0065] Por exemplo, a unidade de cálculo residual 204, a unidade de processamento de transformação 206, a unidade de quantização 208, a unidade de processamento de predição 260 e a unidade de codificação de entropia 270 formam um caminho de sinal direto do codificador 20, enquanto, por exemplo, a unidade de quantização inversa 210, a unidade de processamento de transformação inversa 212, a unidade de reconstrução 214, o buffer 216, o filtro de loop 220, o buffer de imagem decodificada (DPB) 230, a unidade de processamento de predição 260 formam um caminho de sinal reverso do codificador, em que o caminho de sinal reverso do codificador corresponde ao caminho do sinal do decodificador (veja o decodificador 30 na Figura 3).
[0066] O codificador 20 está configurado para receber, por exemplo, pela entrada 202, uma imagem 201 ou um bloco 203 da imagem 201, por exemplo, imagem de uma sequência de imagens formando um vídeo ou sequência de vídeo. O bloco de imagem 203 também pode ser referido como bloco de imagem atual ou bloco de imagem a ser codificado, e a imagem 201 como imagem atual ou imagem a ser codificada (em particular na codificação de vídeo para distinguir a imagem atual de outras imagens, por exemplo, previamente codificadas e/ou imagens decodificadas da mesma sequência de vídeo, ou seja, a sequência de vídeo que também compreende a imagem atual).
[0067] A unidade de processamento de predição 260, também conhecida como unidade de processamento de predição de bloco 260, é configurada para receber ou obter o bloco 203 (bloco atual 203 da imagem atual 201) e dados de imagem reconstruídos, por exemplo, amostras de referência da mesma imagem (atual) do buffer 216 e/ou dados de imagem de referência 231 de uma ou uma pluralidade de imagens previamente decodificadas do buffer de imagem decodificada 230 e para processar tais dados para predição, ou seja, para fornecer um bloco de predição 265, que pode ser um bloco predito inter 245 ou um bloco predito intra 255.
[0068] A unidade de seleção de modo 262 pode ser configurada para selecionar um modo de predição (por exemplo, um modo de predição intra ou inter) e/ou um bloco de predição correspondente 245 ou 255 para ser usado como bloco de predição 265 para o cálculo do bloco residual 205 e para a reconstrução do bloco reconstruído 215.
[0069] As modalidades da unidade de seleção de modo 262 podem ser configuradas para selecionar o modo de predição (por exemplo, daqueles suportados pela unidade de processamento de predição 260), que fornece a melhor correspondência ou, em outras palavras, o residual mínimo (residual mínimo significa melhor compressão para transmissão ou armazenamento), ou um overhead mínimo de sinalização (overhead mínimo de sinalização significa melhor compressão para transmissão ou armazenamento), ou que considera ou equilibra ambos. A unidade de seleção de modo 262 pode ser configurada para determinar o modo de predição com base na otimização de distorção de taxa (RDO), isto é, selecionar o modo de predição que fornece uma otimização de distorção de taxa mínima ou cuja distorção de taxa associada, pelo menos, atende a um critério de seleção de modo de predição.
[0070] A unidade de predição intra 254 é ainda configurada para determinar com base no parâmetro de predição intra, por exemplo, o modo de predição intra selecionado, o bloco de predição intra 255. Em qualquer caso, após selecionar um modo de predição intra para um bloco, a unidade de predição intra 254 também é configurada para fornecer parâmetro de predição intra, isto é, informação indicativa do modo de predição intra selecionado para o bloco para a unidade de codificação de entropia 270. Em um exemplo, a unidade de predição intra 254 pode ser configurada para realizar qualquer combinação das técnicas de predição intra descritas posteriormente.
[0071] As modalidades do codificador de vídeo 20 podem compreender uma unidade de partição de imagem (não representada na Figura 2) configurada para particionar a imagem em uma pluralidade de blocos de imagem (tipicamente não sobrepostos). Esses blocos também podem ser referidos como blocos de raiz, macroblocos (H.264/AVC) ou blocos de árvore de codificação (CTB) ou unidades de árvore de codificação (CTU) (H.265/HEVC e VVC). A unidade de particionamento de imagens pode ser configurada para usar o mesmo tamanho de bloco para todas as imagens de uma sequência de vídeo e a grade correspondente definindo o tamanho do bloco, ou para alterar o tamanho do bloco entre imagens ou subconjuntos ou grupos de imagens e particionar cada imagem nos blocos correspondentes.
[0072] Como a imagem, o bloco de imagem novamente é ou pode ser considerado como um arranjo ou matriz bidimensional de amostras com valores de intensidade (valores de amostra), embora de dimensão menor do que a imagem. Em outras palavras, o bloco pode compreender, por exemplo, uma matriz de amostra (por exemplo, uma matriz luma no caso de uma imagem monocromática, ou uma matriz luma ou croma no caso de uma imagem colorida) ou três matrizes de amostra (por exemplo, uma luma e dois croma matrizes no caso de uma imagem colorida) ou qualquer outro número e/ou tipo de matrizes dependendo do formato de cor aplicado. O número de amostras na direção horizontal e vertical (ou eixo) do bloco define o tamanho do bloco. Por conseguinte, um bloco pode, por exemplo, uma matriz MxN (coluna M por linha N) de amostras, ou uma matriz MxN de coeficientes de transformação.
[0073] As modalidades do codificador de vídeo, como mostrado na Figura 2, podem ser configuradas para codificar a imagem bloco a bloco, por exemplo, a codificação e a predição são realizadas por bloco.
[0074] As modalidades do codificador de vídeo como mostrado na Figura 2 podem ser ainda configuradas para particionar e/ou codificar a imagem usando fatias (também chamadas de fatias de vídeo), em que uma imagem pode ser particionada ou codificada usando uma ou mais fatias (tipicamente sem sobreposição), e cada fatia pode compreender um ou mais blocos (por exemplo, CTUs).
[0075] As modalidades do codificador de vídeo como mostrado na Figura 2 podem ser ainda configuradas para particionar e/ou codificar a imagem usando grupos de blocos (também referidos como grupos de blocos de vídeo) e/ou blocos (também referidos como blocos de vídeo), em que uma imagem pode ser particionada ou codificada usando um ou mais grupos de blocos (normalmente não sobrepostos), e cada grupo de blocos pode compreender, por exemplo, um ou mais blocos (por exemplo, CTUs) ou um ou mais blocos, em que cada bloco, por exemplo, pode ser de forma retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários.
[0076] A figura 3 representa um decodificador de vídeo exemplar 30 que é configurado para implementar as técnicas do presente pedido. O decodificador de vídeo 30 configurado para receber dados de imagem codificados (por exemplo, fluxo de bits codificado) 21, por exemplo, codificado pelo codificador 100, para obter uma imagem decodificada 131. Durante o processo de decodificação, o decodificador 30 de vídeo recebe dados de vídeo, por exemplo, um fluxo de bits de vídeo codificado que representa blocos de imagem de uma fatia de vídeo codificada e elementos de sintaxe associados, do codificador de vídeo 100.
[0077] No exemplo da Figura 3, o decodificador 30 compreende uma unidade de decodificação de entropia 304, uma unidade de quantização inversa 310, uma unidade de processamento de transformação inversa 312, uma unidade de reconstrução 314 (por exemplo, um summer 314), um buffer 316, um filtro de loop 320, um buffer de imagem decodificada 330 e uma unidade de processamento de predição
360. A unidade de processamento de predição 360 pode incluir uma unidade de predição inter 344, uma unidade de predição intra 354 e uma unidade de seleção de modo 362. O decodificador de vídeo 30 pode, em alguns exemplos, executar uma passagem de decodificação geralmente recíproca para a passagem de codificação descrita em relação ao codificador de vídeo 20 da Figura 2.
[0078] A unidade de decodificação de entropia 304 é configurada para realizar a decodificação de entropia para os dados de imagem codificados 21, de modo a obter, por exemplo, coeficientes quantizados 309 e/ou parâmetros de codificação decodificados (não mostrados na Figura 3), por exemplo, (decodificado) qualquer ou todos os parâmetros de predição inter, parâmetro de predição intra, parâmetros de filtro de loop e/ou outros elementos de sintaxe. A unidade de decodificação de entropia 304 é ainda configurada para encaminhar parâmetros de predição inter, parâmetro de predição intra e/ou outros elementos de sintaxe para a unidade de processamento de predição 360. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou nível de bloco de vídeo.
[0079] A unidade de quantização inversa 310 pode ser idêntica em função à unidade de quantização inversa 110, a unidade de processamento de transformação inversa 312 pode ser idêntica em função à unidade de processamento de transformação inversa 112, a unidade de reconstrução 314 pode ser idêntica em função de unidade de reconstrução 114, o buffer 316 pode ser idêntico em função ao buffer 116, o filtro de loop 320 pode ser idêntico em função ao filtro de loop 120 e o buffer de imagem decodificada 330 pode ser idêntico em função ao buffer de imagem decodificada 130.
[0080] A unidade de processamento de predição 360 pode compreender uma unidade de predição interna 344 e uma unidade de predição intra 354, em que a unidade de predição interna 344 pode se assemelhar à unidade de predição interna 144 em função e a unidade de predição intra 354 pode se assemelhar à unidade de predição intra 154 em função. A unidade de processamento de predição 360 é tipicamente configurada para realizar a predição de bloco e/ou obter o bloco de predição 365 a partir dos dados codificados 21 e para receber ou obter (explicitamente ou implicitamente) os parâmetros relacionados à predição e/ou as informações sobre o modo de predição selecionado, por exemplo, da unidade de decodificação de entropia 304.
[0081] Quando a fatia de vídeo é codificada como uma fatia intracodificada (I), a unidade de predição intra 354 da unidade de processamento de predição 360 é configurada para gerar o bloco de predição 365 para um bloco de imagem da fatia de vídeo atual com base em um modo de predição intra sinalizado e dados de blocos previamente decodificados do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia intercodificada (ou seja, B ou P), a unidade de interpredição 344 (por exemplo, unidade de compensação de movimento) da unidade de processamento de predição 360 é configurada para produzir blocos de predição 365 para um bloco de vídeo da fatia de vídeo atual, com base nos vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação de entropia 304. Para predição inter, os blocos de predição podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas de quadros de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em imagens de referência armazenadas no DPB 330.
[0082] A unidade de processamento de predição 360 é configurada para determinar as informações de predição para um bloco de vídeo da fatia de vídeo atual, analisando os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de processamento de predição 360 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou predição inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, Fatia P, ou fatia GPB), informações de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo codificado inter da fatia, status de predição de inter para cada bloco de vídeo codificado da fatia e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0083] A unidade de quantização inversa 310 é configurada para quantizar inversamente, isto é, desquantizar, os coeficientes de transformada quantizados fornecidos no fluxo de bits e decodificados pela unidade de decodificação de entropia 304. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização calculado pelo codificador de vídeo 100 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa que deve ser aplicado.
[0084] A unidade de processamento de transformação inversa 312 é configurada para aplicar uma transformação inversa, por exemplo, um DCT inverso, uma transformação de inteiro inverso ou um processo de transformação inversa conceitualmente semelhante, aos coeficientes de transformação a fim de produzir blocos residuais no domínio do pixel.
[0085] A unidade de reconstrução 314 (por exemplo, summer 314) é configurada para adicionar o bloco de transformação inversa 313 (isto é, bloco residual reconstruído 313) ao bloco de predição 365 para obter um bloco reconstruído 315 no domínio de amostra, por exemplo, adicionando os valores de amostra do bloco residual reconstruído 313 e os valores de amostra do bloco de predição 365.
[0086] A unidade de filtro de loop 320 (ou no loop de codificação ou após o loop de codificação) é configurada para filtrar o bloco reconstruído 315 para obter um bloco filtrado 321, por exemplo, para suavizar as transições de pixel ou de outra forma melhorar a qualidade do vídeo. Em um exemplo, a unidade de filtro de loop 320 pode ser configurada para executar qualquer combinação das técnicas de filtragem descritas posteriormente. A unidade de filtro de loop 320 se destina a representar um ou mais filtros de loop, como um filtro de desbloqueio, um filtro de deslocamento adaptativo de amostra (SAO) ou outros filtros, por exemplo, um filtro bilateral ou um filtro de loop adaptativo (ALF) ou filtros de nitidez ou suavização ou filtros colaborativos. Embora a unidade de filtro de loop 320 seja mostrada na Figura 3 como sendo um filtro de loop, em outras configurações, a unidade de filtro de loop 320 pode ser implementada como um filtro pós-loop.
[0087] Os blocos de vídeo decodificados 321 em um dado quadro ou imagem são então armazenados no buffer de imagem decodificada 330, que armazena imagens de referência usadas para compensação de movimento subsequente.
[0088] O decodificador 30 é configurado para emitir a imagem decodificada 331, por exemplo, via saída 332, para apresentação ou visualização para um usuário.
[0089] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar o fluxo de bits comprimido. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo de saída sem a unidade de filtragem de loop
320. Por exemplo, um decodificador 30 não baseado em transformação pode quantizar inversamente o sinal residual diretamente sem a unidade de processamento de transformação inversa 312 para certos blocos ou quadros. Em outra implementação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 310 e a unidade de processamento de transformação inversa 312 combinadas em uma única unidade.
[0090] As modalidades do decodificador de vídeo como mostrado na Figura 3 podem ser configuradas para particionar e/ou decodificar a imagem usando fatias (também referidas como fatias de vídeo), em que uma imagem pode ser particionada ou decodificada usando uma ou mais fatias (normalmente sem sobreposição), e cada fatia pode compreender um ou mais blocos (por exemplo, CTUs).
[0091] As modalidades do decodificador de vídeo como mostrado na Figura 3 podem ser configuradas para particionar e/ou decodificar a imagem usando grupos de blocos (também referidos como grupos de blocos de vídeo) e/ou blocos (também referidos como blocos de vídeo), em que uma imagem pode ser particionada ou decodificada usando um ou mais grupos de blocos (normalmente não sobrepostos), e cada grupo de blocos pode compreender, por exemplo, um ou mais blocos (por exemplo, CTUs) ou um ou mais blocos, em que cada bloco, por exemplo, pode ser de forma retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários.
[0092] Deve ser entendido que, no codificador e no decodificador, um resultado de processamento de uma etapa atual pode ser posteriormente processado e, em seguida, enviado para a próxima etapa. Por exemplo, após a filtragem de interpolação, derivação de vetor de movimento ou filtragem de loop, uma operação adicional, como Clip ou deslocamento, pode ser realizada no resultado do processamento da filtragem de interpolação, derivação de vetor de movimento ou filtragem de loop.
[0093] De acordo com o padrão HEVC/H.265, 35 modos de predição intra estão disponíveis. Conforme mostrado na Figura 4, este conjunto contém os seguintes modos: modo planar (o índice do modo de predição intra é 0), modo DC (o índice do modo de predição intra é 1) e modos direcionais (angulares) que cobrem a faixa de 180° e têm modo de predição intra de intervalo de valor de índice de 2 a 34 mostrado por setas pretas na Figura 4. Para capturar as direções de borda arbitrárias presentes no vídeo natural, o número de modos intra direcionais é estendido de 33, como usado em HEVC, para 65. Os modos direcionais adicional são descritos como setas pontilhadas na Figura 4, e os modos planar e DC permanecem os mesmos. É importante notar que o intervalo que é coberto pelos modos de predição intra pode ser maior que 180°. Em particular, 62 modos direcionais com valores de índice de 3 a 64 cobrem a faixa de aproximadamente 230°, isto é, vários pares de modos têm capacidade de direção oposta. No caso do Modelo de Referência HEVC (HM) e das plataformas JEM, apenas um par de modos angulares (ou seja, modos 2 e 66) tem capacidade de direção oposta, conforme mostrado na Figura 4. Para construir um preditor, os modos angulares convencionais obtêm amostras de referência e (se necessário) filtra-as para obter um preditor de amostra. O número de amostras de referência necessárias para construir um preditor depende do comprimento do filtro usado para interpolação (por exemplo, filtros bilineares e cúbicos têm comprimentos de 2 e 4, respectivamente).
[0094] Os esquemas de codificação de vídeo, como H.264/AVC e HEVC, são projetados de acordo com o princípio de sucesso da codificação de vídeo híbrida baseada em bloco. Usando este princípio, uma imagem é primeiro particionada em blocos e, em seguida, cada bloco é previsto usando predição intra-imagens ou inter-imagens.
[0095] Vários padrões de codificação de vídeo desde H.261 pertencem ao grupo de “codecs de vídeo híbridos com perdas” (ou seja, combinam predição espacial e temporal no domínio de amostra e codificação de transformação 2D para aplicar quantização no domínio de transformação). Cada imagem de uma sequência de vídeo é normalmente particionada em um conjunto de blocos não sobrepostos e a codificação é normalmente executada em um nível de bloco. Em outras palavras, no codificador, o vídeo é normalmente processado, ou seja, codificado, em um nível de bloco (bloco de imagem) por exemplo, usando predição espacial (imagem intra) e predição temporal (imagem inter) para gerar um bloco de predição, subtraindo o bloco de predição do bloco atual (bloco atualmente processado/a ser processado) para obter um bloco residual, transformando o bloco residual e quantizando o bloco residual no domínio de transformação para reduzir a quantidade de dados a serem transmitidos (compressão), enquanto no decodificador o processamento inverso em comparação com o codificador é parcialmente aplicado ao bloco codificado ou comprimido para reconstruir o bloco atual para representação. Além disso, o codificador duplica o loop de processamento do decodificador, de modo que ambos gerem previsões idênticas (por exemplo, predição intra e inter) e/ou reconstruções para processamento, ou seja, codificando os blocos subsequentes.
[0096] Conforme usado neste documento, o termo “bloco” pode se referir a uma parte de uma imagem ou quadro. Para conveniência da descrição, as modalidades da divulgação são descritas neste documento em referência à Codificação de Vídeo de Alta Eficiência (HEVC) ou o software de referência de codificação de vídeo Versátil (VVC), desenvolvido pela Equipe de Colaboração Conjunta em Codificação de Vídeo (Joint Collaboration Team on Video Coding) (JCT-VC) da ITU- T Grupo de Experts de Codificação de Vídeo (Video Coding Experts Group) (VCEG) e ISO/IEC Grupo de Experts de Movimento de Imagem (Motion Picture Experts Group) (MPEG). Um versado na técnica compreenderá que as modalidades da divulgação não estão limitadas a HEVC ou VVC. Pode se referir a CU, PU e TU. No HEVC, uma CTU é dividida em CUs usando uma estrutura de árvore quádrupla indicada como árvore de codificação. A decisão de codificar uma área de imagem usando predição inter-imagem (temporal) ou intra-
imagem (espacial) é feita no nível CU. Cada CU pode ser dividido em um, dois ou quatro PUs de acordo com o tipo de divisão PU. Dentro de uma PU, o mesmo processo de predição é aplicado e as informações relevantes são transmitidas para o decodificador com base na PU. Depois de obter o bloco residual aplicando o processo de predição com base no tipo de divisão de PU, um CU pode ser particionado em unidades de transformação (TUs) de acordo com outra estrutura de quadtree semelhante à árvore de codificação para o CU. No desenvolvimento mais recente da técnica de compactação de vídeo, o quadro de particionamento Quad-tree e binary tree (QTBT) é usado para particionar um bloco de codificação. Na estrutura de bloco QTBT, uma CU pode ter uma forma quadrada ou retangular. Por exemplo, uma unidade de árvore de codificação (CTU) é primeiro particionada por uma estrutura quadtree. Os nós folha quadtree são ainda particionados por uma estrutura de árvore binária. Os nós de folha de árvore binários são chamados de unidades de codificação (CUs), e essa segmentação é usada para predição e processamento de transformação sem qualquer particionamento adicional. Isso significa que CU, PU e TU têm o mesmo tamanho de bloco na estrutura do bloco de codificação QTBT. Em paralelo, partição múltipla, por exemplo, partição de árvore tripla também foi proposta para ser usada em conjunto com a estrutura de blocos QTBT.
[0097] ITU-T VCEG (Q6/16) e ISO/IEC MPEG (JTC 1/SC 29/WG 11) estão estudando a necessidade potencial de padronização da futura tecnologia de codificação de vídeo com uma capacidade de compressão que excede significativamente a do padrão HEVC atual (incluindo suas extensões atuais e extensões de curto prazo para codificação de conteúdo de tela e codificação de alta faixa dinâmica). Os grupos estão trabalhando juntos nesta atividade de exploração em um esforço de colaboração conjunto conhecido como Equipe Conjunta de Exploração de Vídeo (Joint Video Exploration Team) (JVET) para avaliar os projetos de tecnologia de compressão propostos por seus especialistas nesta área.
[0098] O VTM (Modelo de Teste Versátil, Versatile Test Model) usa 35 modos Intra, enquanto o BMS (Conjunto de Marcos, Benchmark Set) usa 67 modos Intra. Para codificar os 67 modos intra, o esquema de codificação modo intra atual no BMS usa o seguinte método: para acomodar o maior número de modos direcionais Intra em BMS, um método de codificação de modo Intra com 6 modos mais prováveis (MPMs) é usado. Dois aspectos técnicos principais estão envolvidos: 1) a derivação de 6 MPMs, e 2) codificação de entropia de 6 MPMs e modos não MPM.
[0099] No BMS, os modos incluídos nas listas MPM são classificados em três grupos: modos intra vizinhos, modos intra derivados e modos intra padrão.
[00100] Cinco modos de predição intra vizinhos são usados para formar a lista de MPM. Essas localizações dos 5 blocos vizinhos são as mesmas usadas no modo de mesclagem, ou seja, esquerda (L), acima (A), abaixo à esquerda (BL), acima à direita (AR) e acima à esquerda (AL) como mostrado na Figura 5. Uma lista de MPM inicial é formada pela inserção de 5 modos intra vizinhos, modos planar e DC na lista de MPM. Um processo de poda é usado para remover os modos duplicados de forma que apenas modos exclusivos sejam incluídos na lista de MPM. A ordem em que os modos iniciais são incluídos é esquerda, acima, planar, DC, abaixo à esquerda, acima à direita e acima à esquerda.
[00101] Se a lista de MPM não estiver completa (ou seja, tiver menos de 6 candidatos MPMs na lista), os modos derivados são adicionados, esses modos intra são obtidos adicionando -1 ou +1 aos modos angulares que já estão incluídos na lista de MPM. A derivação não é aplicada a modos não angulares, ou seja, DC ou planar.
[00102] Finalmente, se a lista de MPM ainda não estiver completa, os modos padrão são adicionados na ordem de: vertical, horizontal, modo intra 2 e modo diagonal. Como resultado deste processo, uma lista única de 6 modos MPM é gerada.
[00103] Para codificação de entropia de 6 MPMs, uma binarização unária truncada dos MPMs é usada. Os três primeiros compartimentos são codificados com contextos, que dependem do modo MPM relacionado ao compartimento atualmente sendo sinalizado. O modo MPM é classificado em uma das três categorias: (a) se o modo pertence à horizontal (o modo MPM é menor ou igual a uma direção diagonal), (b) vertical (modo MPM maior que a direção diagonal), ou (c) classe não angular (DC e planar). Consequentemente, três contextos são usados para sinalizar o índice MPM.
[00104] A codificação dos 61 não MPMs restantes é feita da seguinte forma. Os 61 não MPMs são inicialmente divididos em dois conjuntos: conjuntos de modos selecionados e conjuntos de modos não selecionados. O conjunto de modos selecionados contém 16 modos e os demais (45 modos) são atribuídos aos conjuntos de modos não selecionados. O modo definido ao qual o modo atual pertence é indicado no fluxo de bits com um sinalizador. Em seguida, o modo do conjunto selecionado é sinalizado com um código de comprimento fixo de 4 bits e o modo do conjunto não selecionado é codificado com um código binário truncado. O conjunto de modos selecionados é gerado por subamostragem do total de 61 modos não MPM com os índices a seguir: conjunto de modos selecionados = {0, 4, 8, 12, 16, 20… 60} conjunto de modos não selecionados = {1, 2, 3, 5, 6, 7, 9, 10… 59}.
[00105] O resumo dos diferentes mecanismos de sinalização do modo INTRA é mostrado na Tabela 1. Tabela 1: sinalização de modo intra LUMA atual em BMS Modos de Sinalizador Sinalizador Série Predição MPM Selecionado Binária Intra Modos MPM 1 0 (6) 10 110 1110 11110 11111 Modos 0 1 Código de
Modos de Sinalizador Sinalizador Série Predição MPM Selecionado Binária Intra selecionados comprimento (16) de 4 bits fixos Modos não 0 0 Código selecionados binário (45) truncado
[00106] Em outro exemplo, um método de codificação de modo Intra com 3 modos mais prováveis (MPMs) é usado. Em um exemplo, os elementos de sintaxe intra_luma_mpm_flag [x0][y0], intra_luma_mpm_idx [x0][y0] e intra_luma_mpm_remainder [x0][y0] especificam o modo de predição intra para amostras de luma. Os índices de matriz x0, y0 especificam a localização (x0, y0) da amostra luma superior esquerda do bloco de predição considerado em relação à amostra luma superior esquerda da imagem. Quando intra_luma_mpm_flag [x0][y0] é igual a 1, o modo de predição intra é inferido a partir de uma unidade de predição intra vizinha.
[00107] A predição intra para o bloco atual (IntraPredModeY [xPb][yPb]) é derivada pelas seguintes etapas ordenadas: • as localizações vizinhas (xNbA, yNbA) e (xNbB, yNbB) são iguais a (xPb - 1, yPb) e (xPb, yPb - 1), respectivamente.
[00108] • Para X sendo substituído por A ou B, as variáveis candIntraPredModeX são derivadas da seguinte forma: • o processo de derivação de disponibilidade para um bloco é chamado com a localização (xCurr, yCurr) definida igual a (xPb, yPb) e a localização vizinha (xNbY, yNbY) definida igual a (xNbX, yNbX) como entradas, e a saída é atribuído a availableX.
[00109] • O modo de predição intra candidato candIntraPredModeX é derivado da seguinte forma: se uma ou mais das seguintes condições forem verdadeiras, candIntraPredModeX é definido igual a INTRA_DC: • a variável availableX é igual a FALSE.
[00110] • CuPredMode [xNbX][yNbX] não é igual a MODE_INTRA.
[00111] • X é igual a B e yPb - 1 é menor que ((yPb >> CtbLog2SizeY) << CtbLog2SizeY).
[00112] Caso contrário, candIntraPredModeX é definido igual a IntraPredModeY [xNbX][yNbX].
[00113] O candModeList [x] com x = 0..2 é derivado da seguinte forma: se candIntraPredModeB for igual a candIntraPredModeA, o seguinte se aplica: • se candIntraPredModeA for menor que 2 (ou seja, igual a INTRA_PLANAR ou INTRA_DC), candModeList [x] com x = 0..2 é derivado da seguinte forma: candModeList [0] = INTRA_PLANAR candModeList [1] = INTRA_DC candModeList [2] = INTRA_ANGULAR50.
[00114] • Caso contrário, candModeList [x] com x = 0..2 é derivado da seguinte forma: candModeList [0] = candIntraPredModeA candModeList [1] = 2 + ((candIntraPredModeA + 61)% 64) candModeList [2] = 2 + ((candIntraPredModeA - 1)% 64).
[00115] Caso contrário (candIntraPredModeB não é igual a candIntraPredModeA), aplica-se o seguinte: • candModeList [0] e candModeList [1] são derivados da seguinte forma: • candModeList [0] = candIntraPredModeA • candModeList [1] = candIntraPredModeB.
[00116] Se nenhum dos candModeList [0] e candModeList
[1] for igual a INTRA_PLANAR, candModeList [2] é definido igual a INTRA_PLANAR; caso contrário, se nenhum dos candModeList [0] e candModeList [1] for igual a INTRA_DC, candModeList [2] é definido igual a INTRA_DC, caso contrário, candModeList [2] é definido igual a INTRA_ANGULAR50.
[00117] IntraPredModeY [xPb][yPb] é derivado pela aplicação do seguinte procedimento: se intra_luma_mpm_flag [xPb][yPb] for igual a 1, o IntraPredModeY [xPb][yPb] é definido igual a candModeList [intra_luma_mpm_idx [xPb][yPb].
[00118] Caso contrário, IntraPredModeY [xPb][yPb] é derivado aplicando as seguintes etapas ordenadas: • a matriz candModeList [x], x = 0..2 é modificada pelas seguintes etapas ordenadas: • quando candModeList [0] é maior que candModeList [1], ambos os valores são trocados da seguinte forma: • (candModeList [0], candModeList [1]) = Troca
(candModeList [0], candModeList [1]).
[00119] • Quando candModeList [0] é maior que candModeList [2], ambos os valores são trocados da seguinte forma: • (candModeList [0], candModeList [2]) = Troca (candModeList [0], candModeList [2]).
[00120] Quando candModeList [1] é maior que candModeList [2], ambos os valores são trocados da seguinte forma: • (candModeList [1], candModeList [2]) = Troca (candModeList [1], candModeList [2]) (8-11).
[00121] • IntraPredModeY [xPb][yPb] é derivado pelas seguintes etapas ordenadas: IntraPredModeY [xPb][yPb] é definido igual a intra_luma_mpm_remainder [xPb][yPb].
[00122] Para i igual a 0 a 2, inclusive, quando IntraPredModeY [xPb][yPb] é maior ou igual a candModeList [i], o valor de IntraPredModeY [xPb][yPb] é incrementado em um.
[00123] Em um aspecto da presente divulgação é fornecido um método simplificado para construir a lista de MPM de 6 entradas.
[00124] De acordo com uma modalidade, em uma primeira etapa, é determinado se um bloco esquerdo de um bloco de codificação atual está disponível ou não. Se o bloco esquerdo do bloco de codificação atual estiver disponível, o modo de predição intra do bloco esquerdo é adicionado na lista de MPMs. A determinação se um determinado bloco está ou não disponível será descrita em detalhes mais adiante.
[00125] Em uma segunda etapa, é determinado se um bloco acima do bloco de desacoplamento atual está disponível. Se for determinado que o bloco acima está disponível, o modo de predição intra do bloco acima é adicionado na lista de MPMs.
[00126] Conforme ilustrado na Figura 5, o bloco esquerdo L do bloco de codificação atual (unidade de codificação atual) é um bloco vizinho do bloco atual. Por exemplo, ele está localizado adjacente ao bloco atual em um lado esquerdo inferior do bloco atual. Além disso, o bloco A acima do bloco de codificação atual (unidade de codificação atual) é um bloco vizinho do bloco atual. Por exemplo, ele está localizado adjacente ao bloco atual na extremidade superior direita do bloco atual.
[00127] Em uma terceira etapa, um deslocamento é adicionado ao modo de predição intra do bloco esquerdo e/ou ao modo de predição intra do bloco acima, desde que o bloco esquerdo e/ou o bloco acima esteja disponível e seu modo seja um modo de predição intra angular. O novo modo de predição determinado pela adição do deslocamento ao modo de predição do bloco esquerdo e/ou acima é adicionado na lista de MPMs.
[00128] Observe que um único novo modo de predição pode ser determinado adicionando um deslocamento ao modo de predição do bloco esquerdo, um único novo modo de predição pode ser determinado adicionando um deslocamento ao modo de predição do bloco acima, ou novos modos de predição podem ser determinados adicionando um deslocamento ao modo de predição do bloco esquerdo e adicionando um deslocamento aos modos de predição do bloco acima.
[00129] Além disso, observe que o deslocamento adicionado ao modo de predição do bloco esquerdo pode ser diferente ou igual ao deslocamento adicionado ao modo de predição do bloco acima.
[00130] Além disso, o deslocamento adicionado ao modo de predição do bloco esquerdo e/ou o deslocamento adicionado ao modo de predição do bloco acima pode ser um número inteiro positivo ou negativo. Em particular, o deslocamento pode ser -1 ou +1. No entanto, o deslocamento não está limitado a +1 ou -1 e pode ser qualquer número inteiro positivo ou negativo.
[00131] Em um caso em que os modos de predição angular são representados por um número limitado de inteiros, a adição do deslocamento ao modo de predição pode ser realizada de maneira cíclica, conforme descrito em detalhes mais abaixo na estrutura de outra modalidade.
[00132] De acordo com a presente divulgação, a primeira e a segunda etapas descritas acima não estão limitadas a serem realizadas na ordem descrita e a segunda etapa pode ser realizada antes da primeira etapa.
[00133] Além disso, em um caso em que o bloco esquerdo e o bloco acima estão disponíveis, a presente divulgação não se limita a adicionar um deslocamento ao modo de predição do bloco esquerdo e adicionar o novo modo de predição resultante ao conjunto de MPMs antes de adicionar um deslocamento ao modo de predição do bloco acima e adicionando o novo modo de predição resultante ao conjunto de MPMs. A adição do deslocamento ao modo de predição do bloco acima pode ser feito antes de adicionar um deslocamento ao modo de predição do bloco esquerdo.
[00134] Em uma variação, um primeiro deslocamento pode ser adicionado ao modo de predição do bloco esquerdo e o novo bloco de predição é adicionado na lista de MPMs. Além disso, um segundo deslocamento diferente do primeiro deslocamento pode ser adicionado ao modo de predição do bloco esquerdo e o (segundo) novo bloco de predição é adicionado na lista de MPMs.
[00135] Da mesma forma, um primeiro deslocamento pode ser adicionado ao modo de predição do bloco acima e o novo bloco de predição é adicionado na lista de MPMs. Além disso, um segundo deslocamento diferente do primeiro deslocamento pode ser adicionado ao modo de predição do bloco acima e o (segundo) novo bloco de predição é adicionado na lista de MPMs.
[00136] Observe que a lista de MPMs não se limita a incluir três ou quatro modos e outros modos podem ser adicionados.
[00137] Por exemplo, um terceiro deslocamento pode ser adicionado ao modo de predição do bloco acima e o novo modo de predição é adicionado na lista de MPMs. Além disso, um quarto deslocamento diferente do primeiro deslocamento pode ser adicionado ao modo de predição do bloco acima e o (segundo) novo modo de predição é adicionado na lista de MPMs.
[00138] Em outro exemplo, um ou mais deslocamentos podem ser adicionados ao modo de predição intra do bloco esquerdo e/ou modo de predição intra do bloco acima, desde que o bloco esquerdo e/ou o bloco acima estejam disponíveis e seu modo seja um modo de predição intra angular. Os novos um ou mais modos de predição determinados pela adição de um ou mais deslocamentos ao modo de predição do bloco esquerdo e/ou acima são adicionados na lista de MPMs.
[00139] Em outra modalidade, o método compreende: (a) verificar a disponibilidade do bloco esquerdo das unidades de codificação atuais. A posição do bloco esquerdo é ilustrada pela Figura 5, em que o bloco esquerdo é rotulado por “L”.
[00140] O bloco esquerdo não está disponível se nenhuma informação de predição intra (isto é, modo de predição intra) pode ser derivada do bloco esquerdo. Isso inclui os seguintes casos: • o bloco esquerdo não é um bloco de predição intra; por exemplo, o modo de predição do bloco esquerdo pode ser um modo de predição inter; • o bloco esquerdo não existe, por exemplo, o bloco atual é um bloco de codificação localizado na extremidade esquerda de um quadro.
[00141] Se o codificador ou decodificador suportar processamento paralelo, o bloco esquerdo pode ser considerado como não existente se estiver localizado em um bloco diferente do bloco atual, ou seja, o bloco de codificação atual está localizado no lado mais a esquerda de um bloco.
[00142] Em outro exemplo, se o processamento paralelo não for suportado no codificador ou decodificador, o bloco esquerdo pode ser considerado como disponível se estiver localizado em uma parte diferente do bloco atual, ou seja, o bloco de codificação atual está localizado no lado mais a esquerda de um bloco.
[00143] • Se o processamento paralelo for suportado no codificador ou decodificador, o bloco esquerdo pode ser considerado como não existente se estiver localizado em uma fatia diferente do bloco atual, ou seja, o bloco de codificação atual está localizado na extremidade esquerda de uma fatia.
[00144] Em outro exemplo, se o processamento paralelo não for suportado no codificador ou decodificador, o bloco esquerdo pode ser considerado como disponível se estiver localizado em uma fatia diferente do bloco atual, ou seja, o bloco de codificação atual está localizado na extremidade esquerda de uma fatia.
[00145] Caso contrário (isto é, o bloco esquerdo está disponível), (b) inclua o modo de predição intra do bloco esquerdo na lista de MPM de 6 entradas. Observe que, embora a lista de MPMs possa incluir seis entradas de acordo com a modalidade, a presente divulgação não está limitada às mesmas e a lista de MPMs pode ser uma lista de qualquer comprimento.
[00146] (c) Verifique a disponibilidade da unidade de codificação atual acima do bloco. A posição do bloco acima é ilustrada pela Figura 5, em que o bloco acima é rotulado por “A”.
[00147] O bloco acima não está disponível se nenhuma informação de predição intra (isto é, modo de predição intra) pode ser derivada do bloco acima. Isso inclui os seguintes casos: • o bloco acima não é um bloco de predição intra. Por exemplo, o modo de predição do bloco esquerdo pode ser um modo de predição inter; • o bloco acima não existe. Por exemplo, o bloco atual é um bloco de codificação localizado na extremidade superior de um quadro.
[00148] • Se o processamento paralelo for suportado no codificador ou decodificador, o bloco superior (ou seja, acima) pode ser considerado como não existente se estiver localizado em um bloco diferente do bloco atual, ou seja, o bloco de codificação atual está localizado na extremidade superior de um bloco.
[00149] Em outro exemplo, se o processamento paralelo não for suportado no codificador ou decodificador, o bloco superior (ou seja, acima) pode ser considerado como disponível se estiver localizado em um bloco diferente do bloco atual, ou seja, o bloco de codificação atual está localizado na extremidade superior de um bloco.
[00150] • Se o processamento paralelo for suportado no codificador ou decodificador, o bloco superior (ou seja, acima) pode ser considerado como não existente se estiver localizado em uma fatia diferente do bloco atual, ou seja, o bloco de codificação atual está localizado na extremidade superior de uma fatia.
[00151] Em outro exemplo, se o processamento paralelo não for suportado no codificador ou decodificador, o bloco superior (ou seja, acima) pode ser considerado como disponível se estiver localizado em uma fatia diferente do bloco atual, ou seja, o bloco de codificação atual está localizado na extremidade superior de uma fatia.
[00152] Se for necessário restringir o tamanho do buffer de linha no codificador ou decodificador, o bloco superior (ou seja, acima) pode ser considerado como não existente se estiver localizado em uma CTU diferente do bloco atual, isto é, o bloco de codificação atual está localizado na extremidade superior da CTU atual.
[00153] Em um exemplo, se o lado do decodificador ou o lado do codificador suportar a restrição do buffer de linha, então um bloco acima localizado em uma CTU diferente do bloco atual CTU é considerado como não existente. Se não for compatível com a restrição de buffer de linha, então considerara que existe.
[00154] Caso contrário (isto é, o bloco acima está disponível), (d) inclui o modo de predição intra do bloco superior (isto é, acima) na lista de MPM de 6 entradas.
[00155] (e) Verifique se o modo planar (PLANAR_IDX = 0) foi inserido na lista de MPM, (ou seja, verifique se o modo intra do bloco esquerdo ou superior (ou seja, acima) está no modo planar), apenas se o modo planar não tiver sido inserido na lista de MPM, então inserir o modo planar na lista de MPM. (f) Verifique se o modo DC (DC_IDX = 1) foi inserido na lista de MPM, (isto é, verifique se os modos intra do bloco esquerdo ou superior (isto é, acima) é o modo DC), apenas se o modo DC não tiver sido inserido na lista de MPM, então inserir o modo DC na lista de MPM.
[00156] (g) Se o bloco esquerdo estiver disponível e se seu modo de predição intra for um modo angular, ou seja, (modo> DC_IDX, e dizer que seu modo é angularLeft), obtenha seus dois modos angulares mais próximos executando angularLeft-1, angularLeft + 1. Observe que ao executar -1 ou +1, isso pode envolver uma operação finalizada acima e finalizada abaixo. Por exemplo, se angularLeft for 2, angularLeft-1 será 66 (caixa finalizada acima), ou se angularLeft for 66, angularLeft + 1 será 2 (caixa finalizada abaixo).
[00157] Em outro exemplo, se angularLeft for 2, então angularLeft-1 será 65 (caixa finalizada acima), ou se angularLeft for 66, então angulaLeft + 1 será 3. Esta finalização acima pode ser escolhida como os modos 2 e 66 indicam (anti) direções paralelas. Nesse caso, os dois modos angulares mais próximos de angularLeft podem ser calculados como angularLeft-1 = 2 + ((angularLeft + 61)% 64); e angularLeft + 1 = 2 + ((angularLeft -1)% 64).
[00158] Essas regras de cálculo correspondem a adicionar um deslocamento de -1 ou +1, respectivamente, com o agrupamento e os modos 0 e 1 não sendo modos de predição angular. A porcentagem do operador ilustra a operação do módulo.
[00159] (h) Se o modo de predição de angularLeft-1 não foi inserido na lista de MPM, insira o mesmo(angularLeft-1) na lista de MPM.
[00160] (i) Se o modo de predição de angularLeft + 1 não foi inserido na lista de MPM, insira o mesmo (angularLeft-1) na lista de MPM.
[00161] (j) Se a lista de MPM não estiver cheia, se o bloco acima estiver disponível e se seu modo de predição intra (do bloco acima) for um modo angular, ou seja, (modo> DC_IDX e, dito, o modo é angularAbove), obtenha seus dois modos angulares mais próximos executando angularAbove-1, angularAbove + 1. Observe que ao executar -1 ou +1, pode envolver uma operação de finalização acima e finalização abaixo.
[00162] Em um exemplo, se angularAbove for 2, então angularAbove-1 será 66 (caixa finalizada acima), ou se angularAbove for 66, angularAbove + 1 será 2 (caixa finalizada abaixo).
[00163] Em outro exemplo, se angularAbove for 2, então angularAbove-1 será 65 (caixa finalizada acima), ou se angularAbove for 66, então angulaAbove + 1 será 3. Esta finalização acima pode ser escolhida conforme os modos 2 e 66 indicam (anti) direções paralelas. Neste caso, os dois modos angulares mais próximos de angularAbove podem ser calculados como: angularAbove-1 = 2 + ((angularAbove + 61)% 64); e angularAbove + 1 = 2 + ((angularAbove -1)% 64).
[00164] Essas regras de cálculo correspondem a adição de um deslocamento de -1 ou +1, respectivamente, com o agrupamento e os modos 0 e 1 não sendo modos de predição angular. O operador % descreve a operação do módulo.
[00165] (k) Se o modo de predição de angularAbove-1 não foi inserido na lista de MPM, insira o mesmo (angularAbove- 1) na lista de MPM.
[00166] (l) Se a lista de MPM não estiver cheia (por exemplo, uma quantidade de modos de predição na lista de MPM é menor que 6) e se o modo de predição de angularAbove + 1 não foi inserido na lista de MPM, insira o mesmo (angularAbove + 1) na lista de MPM.
[00167] (m) Se a lista de MPM não estiver completa, insira os seguintes modos na lista de MPM até que esteja completa (por exemplo, uma quantidade de modos de predição na lista de MPM é igual a 6): • um modo vertical (VER_IDX), • um modo horizontal (HOR_IDX), • um modo intra 2 (2),
• um modo diagonal vertical (VDIA_IDX) ou um modo diagonal (DIA_IDX).
[00168] Observe que a determinação dos modos do vizinho mais próximo descritos em detalhes na estrutura desta modalidade também pode ser aplicada a outras modalidades.
[00169] Nas modalidades descritas, a lista de MPMs é uma lista de comprimento finito. Por exemplo, o comprimento da lista (ou seja, o número de entradas) pode ser predeterminado. Por exemplo, o número de entradas da lista de MPM pode ser seis. No entanto, a lista de MPM não está limitada a seis entradas e pode incluir outro número de entradas.
[00170] A seguir será descrito um resumo das variações do método fornecido: a disponibilidade do bloco esquerdo deve considerar tanto o suporte quanto o não suporte ao processamento paralelo.
[00171] A disponibilidade do bloco acima deve considerar tanto o suporte quanto o não suporte ao processamento paralelo.
[00172] A ordem para derivar os dois modos mais próximos do bloco esquerdo e acima também pode ser +1 primeiro e então -1. Ou seja, os modos mais próximos dos blocos esquerdo e acima podem ser determinados primeiro adicionando 1 ao respectivo índice de modo e, em seguida, subtraindo 1 do respectivo índice de modo.
[00173] O último candidato da lista de MPM pode ser VIDA_IDX ou DIA_IDX, conforme ilustrado na Figura 6, por exemplo.
[00174] A ordem de inserção também pode ser Esquerda,
acima, Planar, DC e modos padrão (VER_IDX, HOR_IDX, 2, VDIA_IDX ou DIA_IDX).
[00175] Para a sinalização de mpm_idx é empregada a binarização unária truncada. Os três primeiros binários do mpm_idx podem usar três contextos independentes diferentes ou todos os binários do mpm_idx são codificados por CABAC de passagem.
[00176] Em um aspecto da presente divulgação, um método para construir uma lista de Modo Mais Provável, MPM, compreende: determinar se um bloco esquerdo de um bloco de codificação atual está disponível ou não, se o bloco esquerdo do bloco de codificação atual está disponível, adicionar um modo de predição intra do bloco esquerdo em uma lista de MPM; determinar se um bloco acima do bloco de codificação atual está disponível ou não, se o bloco acima do bloco de codificação atual estiver disponível, adicionar um modo de predição intra do bloco acima na lista de MPM; se um modo planar não estiver na lista de MPM inicial, adicionar o modo planar na lista de MPM; se um modo DC não estiver na lista de MPM inicial, adicionar o modo DC na lista de MPM.
[00177] Em um aspecto da presente divulgação, um método para construir uma lista de Modo Mais Provável, MPM, compreende: determinar se um bloco esquerdo de um bloco de codificação atual está disponível ou não, se o bloco esquerdo do bloco de codificação atual está disponível, adicionar um modo de predição intra do bloco esquerdo em uma lista de MPM; determinar se um bloco acima do bloco de codificação atual está disponível ou não, se o bloco acima do bloco de codificação atual estiver disponível, adicionar um modo de predição intra do bloco acima na lista de MPM; adicionar um deslocamento para pelo menos um do modo de predição do bloco esquerdo e o modo de predição do bloco acima para obter pelo menos um novo modo de predição, se pelo menos um do bloco esquerdo do bloco atual e o bloco acima do bloco atual está disponível e o modo de predição intra de pelo menos um do bloco esquerdo e o bloco acima é um modo angular; e adicionar pelo menos um novo modo de predição na lista de MPM se pelo menos um novo modo de predição não estiver na lista de MPM.
[00178] Um método para construir uma lista do Modo Mais Provável, MPM, é fornecida, o método compreendendo: determinar se um bloco esquerdo de um bloco de codificação atual está disponível ou não, se o bloco esquerdo do bloco de codificação atual estiver disponível, adicionar um modo de predição intra do bloco esquerdo em uma lista de MPM; determinar se um bloco acima do bloco de codificação atual está disponível ou não, se o bloco acima do bloco de codificação atual estiver disponível, adicionar um modo de predição intra do bloco acima na lista de MPM; adicionar um deslocamento ao modo de predição do bloco esquerdo para obter um novo modo de predição, se o bloco esquerdo do bloco de codificação atual estiver disponível e o modo de predição intra do bloco esquerdo for um modo angular; e adicionar o novo modo de predição na lista de MPM, se o novo modo de predição não estiver na lista de MPM; e/ou adicionar um deslocamento ao modo de predição do bloco acima para obter um modo de predição de deslocamento acima, se o bloco acima do bloco de codificação atual estiver disponível e o modo de predição intra do bloco acima for um modo angular; e adicionar o modo de predição de deslocamento acima na lista de MPM, se o modo de predição de deslocamento acima não estiver na lista de MPM.
[00179] Em outras palavras, (i) um novo modo de predição derivado da adição de um deslocamento ao modo de predição do bloco esquerdo do bloco atual é adicionado na lista de MPMs, ou (ii) um novo modo de predição (o modo de predição de deslocamento acima) derivado pela adição de um deslocamento ao modo de predição do bloco acima do bloco atual é adicionado na lista de MPMs, ou (iii) o novo modo de predição do bloco esquerdo do bloco atual e um novo modo de predição adicional (a predição de deslocamento acima adicionada na lista de MPMs). Em todos os casos, o novo modo de predição e/ou o modo de predição de deslocamento acima é adicionado na lista de MPMs se ainda não estiver presente na lista de MPMs e se o bloco esquerdo ou acima, respectivamente, estiver disponível e seus modos de predição forem modos de predição intra angular.
[00180] Observe que a lista de MPMs não é necessariamente concluída pelo método descrito acima e outros modos de predição podem ser adicionados. Por exemplo, um ou mais deslocamentos podem ser adicionados ao modo de predição intra do bloco esquerdo e/ou ao modo de predição intra do bloco acima. Os novos um ou mais modos de predição determinados pela adição de um ou mais deslocamentos ao modo de predição do bloco esquerdo e/ou acima são adicionados na lista de MPMs.
[00181] Observe que a ordem de adição do novo modo de predição e do modo de predição de deslocamento acima não está limitada a primeiro adicionar o novo modo de predição e, em seguida, adicionar o modo de predição de deslocamento acima, mas pode ser comutado, ou seja, primeiro adicionar o modo de predição de deslocamento acima e, em seguida, adicionando o novo modo de predição.
[00182] Em um exemplo em que, quando o modo de predição do bloco esquerdo não é um modo de predição intra, o bloco esquerdo do bloco de codificação atual não está disponível. Por exemplo, em um caso em que o modo de predição do bloco esquerdo é um modo de predição inter, o bloco esquerdo do bloco de codificação atual não está disponível.
[00183] Em um exemplo em que, quando o bloco de codificação atual é um bloco de codificação localizado na extremidade esquerda de um quadro, o bloco esquerdo do bloco de codificação atual não está disponível. Ou seja, no caso em que o bloco esquerdo não existe, pois o bloco atual é o bloco mais à esquerda no quadro atual, o bloco esquerdo não está disponível.
[00184] Em um exemplo em que, o processamento paralelo é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade esquerda de um bloco, o bloco a esquerda do bloco de codificação atual não está disponível.
[00185] Em um exemplo em que o processamento paralelo não é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade esquerda de um bloco, o bloco esquerdo do bloco de codificação atual está disponível. Em outras palavras, mesmo quando o bloco esquerdo do bloco de codificação atual está localizado em um bloco diferente, ele pode ser considerado disponível se um codificador ou decodificador não suportar o processamento paralelo.
[00186] Em um exemplo em que, o processamento paralelo é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade esquerda de uma fatia, o bloco esquerdo do bloco de codificação atual não está disponível.
[00187] Em um exemplo em que, o processamento paralelo não é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade esquerda de uma fatia, o bloco esquerdo do bloco de codificação atual está disponível. Em outras palavras, mesmo quando o bloco esquerdo do bloco de codificação atual está localizado em uma parte diferente, ele pode ser considerado disponível se um codificador ou decodificador não suportar o processamento paralelo.
[00188] Em um exemplo em que quando o modo de predição do bloco acima não é um modo de predição intra, o bloco acima do bloco de codificação atual não está disponível. Por exemplo, em um caso em que o modo de predição do bloco acima é um modo de predição inter, o bloco acima do bloco de codificação atual não está disponível.
[00189] Em um exemplo, em que quando o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de um quadro, o bloco acima do bloco de codificação atual não está disponível. Ou seja, no caso em que o bloco acima não existir, pois o bloco atual é o bloco na extremidade superior do quadro atual, o bloco esquerdo não está disponível.
[00190] Em um exemplo em que o processamento paralelo é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de um bloco, o bloco acima do bloco de codificação atual não está disponível.
[00191] Em um exemplo em que o processamento paralelo não é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de um bloco, o bloco acima do bloco de codificação atual está disponível. Em outras palavras, mesmo quando o bloco acima do bloco de codificação atual está localizado em um bloco diferente, ele pode ser considerado disponível se um codificador ou decodificador não suportar processamento paralelo.
[00192] Em um exemplo em que o processamento paralelo é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de uma fatia, o bloco acima do bloco de codificação atual não está disponível.
[00193] Em um exemplo em que o processamento paralelo não é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de uma fatia, o bloco acima do bloco de codificação atual não está disponível. Em outras palavras, mesmo quando o bloco acima do bloco de codificação atual está localizado em uma fatia diferente, pode ser considerado disponível se um codificador ou decodificador não suportar o processamento paralelo.
[00194] Em um exemplo, quando o tamanho do buffer de linha precisa ser restringido e o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de uma CTU atual, o bloco acima do bloco de codificação atual não está disponível.
[00195] Em um exemplo, o método compreende ainda: se o bloco esquerdo do bloco de codificação atual estiver disponível e o modo de predição do bloco esquerdo for um modo angular, adicionar um deslocamento ao modo de predição do bloco esquerdo para obter um novo modo de predição, se o novo modo de predição não estiver na lista de MPM inicial, adicionar o novo modo de predição na lista de MPM.
[00196] Em um exemplo, em que o deslocamento é -1.
[00197] Em um exemplo, em que o deslocamento é +1.
[00198] Em um exemplo, o método compreende ainda: se o bloco acima do bloco de codificação atual estiver disponível e o modo de predição do bloco acima for um modo angular, adicionar um deslocamento ao modo de predição do bloco acima para obter um modo de predição de deslocamento acima, se o modo de predição de deslocamento acima não estiver na lista de MPM inicial, adicionar o modo de predição de deslocamento acima na lista de MPM.
[00199] Em um exemplo, em que o deslocamento é -1.
[00200] Em um exemplo, em que o deslocamento é +1.
[00201] Em um exemplo, o método compreende ainda: adicionar um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) ou um modo diagonal (DIA_IDX) na lista de MPM.
[00202] Em um aspecto da presente divulgação, é fornecido um codificador que compreende circuitos de processamento para realizar qualquer um dos métodos acima.
[00203] Em um aspecto da presente divulgação, é fornecido um decodificador que compreende circuitos de processamento para realizar qualquer um dos métodos acima.
[00204] Em um aspecto da presente divulgação, é fornecido um produto de programa de computador que compreende um código de programa para executar qualquer um dos métodos acima. Por exemplo, o produto de programa de computador compreende instrução, quando o programa é executado por um computador ou processador, faz com que o computador execute as etapas de qualquer um dos métodos acima.
[00205] Em um aspecto da presente divulgação, um decodificador para construir uma lista de Modo Mais Provável, MPM, é fornecido, em que o decodificador compreende: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado aos processadores e armazenamento de programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar qualquer um dos métodos acima.
[00206] Em um aspecto da presente divulgação, um codificador para construir uma lista de Modo Mais Provável, MPM, é fornecido, em que o codificador compreende: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado aos processadores e armazenamento de programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar qualquer um dos métodos acima.
[00207] A presente divulgação fornece melhorias no esquema de sinalização modo intra. Na presente divulgação, um método de decodificação de vídeo e um decodificador de vídeo são fornecidos.
[00208] O método de decodificação de vídeo compreendendo: decodificar dados codificados de um bloco de imagem para obter um modo de predição intra a partir de uma pluralidade de modos de predição intra para o bloco de imagem, a pluralidade de modos de predição intra para o bloco de imagem compreende um conjunto de Modos Mais Prováveis, MPMs e um conjunto de não MPM, em que o conjunto de não MPM compreende um primeiro conjunto de modos de predição intra e um segundo conjunto de modos de predição intra, em que um modo no primeiro conjunto de modos de predição intra é codificado usando N bits, um modo no segundo conjunto de modos de predição intra é codificado usando M bits, N e M são inteiros positivos, N é menor que M, em que a decodificação dos dados codificados para obter um modo de predição intra a partir de uma pluralidade de modos de predição intra para o bloco de imagem compreendendo: decodificação dos dados codificados para obter uma indicação se o modo de predição intra para o bloco de imagem está no conjunto de MPMs ou não; se a indicação sinalizando o modo de predição intra para o bloco de imagem não estiver no conjunto de MPMs, gerando uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e pelo menos um modo de predição intra no conjunto de não MPM; decodificar os dados codificados para obter uma palavra de código de modo de predição intra para o bloco de imagem; obter o modo de predição intra para o bloco de imagem de acordo com a relação de mapeamento e a palavra de código do modo de predição intra.
[00209] De acordo com o método de decodificação de vídeo do presente pedido, um esquema de binarização truncado é usado para codificar os modos de predição no conjunto de não MPM e uma relação de mapeamento é gerada, portanto, o modo de predição para o bloco atual tem uma maior possibilidade de ser codificado usam menos bits e a complexidade computacional no lado do decodificador é reduzida.
[00210] Em uma forma de implementação do presente pedido, o método compreende ainda receber os dados codificados do bloco de imagem. Em um exemplo, os dados codificados são recebidos pelo lado do decodificador antes de decodificar os dados codificados. Em um exemplo, os dados codificados são recebidos por um receptor.
[00211] Em uma forma de implementação do presente pedido, uma quantidade da pluralidade de modos de predição intra para o bloco de imagem é 67, a pluralidade de modos de predição intra de 67 modos de predição intra compreendendo: modo planar (valor 0), modo dc (valor 1), e modos angulares com valores 2 a 66. Uma quantidade da pluralidade de modos de predição intra para o bloco de imagem pode ser outros valores, tais como 35, 48, 71 e assim por diante.
[00212] Em um exemplo, uma quantidade do conjunto de MPMs é 6, uma quantidade do conjunto de não MPM é 61, uma quantidade do primeiro conjunto de modos de predição intra é 3 e uma quantidade do segundo conjunto de modos de predição intra é 58.
[00213] Em outro exemplo, uma quantidade do conjunto de MPMs é 3, uma quantidade do conjunto de não MPM é 64, uma quantidade do primeiro conjunto de modos de predicação intra é 3 ou 6 e uma quantidade do segundo conjunto de modos de predicação intra é de 61 ou 58.
[00214] Em um exemplo, N = 5, M = 6; em outro exemplo, N = 2, M = 6.
[00215] Em uma forma de implementação do presente pedido, cada modo no primeiro conjunto de modos de predição intra é codificado usando N bits, cada modo no segundo conjunto de modos de predição intra é codificado usando M bits.
[00216] Em um exemplo, os modos de predição intra no primeiro conjunto de modos de predição intra são codificados usando um esquema de binarização truncado, pelo menos um modo no primeiro conjunto de modos de predição intra é codificado usando N bits e pelo menos um modo no primeiro conjunto de modos de predição intra é codificado usando menos de N bits.
[00217] Em uma forma de implementação do presente pedido, a indicação que sinaliza o modo de predição intra para o bloco de imagem está no conjunto de MPMs ou não é um sinalizador, quando o valor do sinalizador é 1 pode indicar que o modo de predição intra para o bloco de imagem está no conjunto de MPMs, quando o valor do sinalizador é 0 pode indicar que o modo de predição intra para o bloco de imagem não está no conjunto de MPMs. Por exemplo, no lado do codificador, se uma lista de MPM for um conjunto de modos intra, digamos: [20,40, 60] e o valor do modo intra de blocos atual for 40, então o indicador de sinalizador MPM é definido como 1, como modo intra para o bloco atual é encontrado na segunda entrada da lista de MPM. Se por exemplo, o modo intra de blocos atuais for 41 em vez de 40,
então o indicador de sinalizador MPM é definido como 0, o sinalizador MPM é enviado para o lado da decodificação nos dados codificados.
[00218] Em um exemplo, se a indicação que sinaliza o modo de predição intra para o bloco de imagem estiver no conjunto de MPMs. O processo de derivação para o modo de predição intra para o bloco de imagem (IntraPredModeY [xPb][yPb]) é definido como segue: se intra_luma_mpm_flag [xPb][yPb] for igual a 1 (o que indica que o modo de predição intra para o bloco de imagem está no conjunto de MPMs), o IntraPredModeY [xPb][yPb] é definido igual a candModeList [intra_luma_mpm_idx [xPb][yPb], onde (xPb, yPb) especifica a amostra superior esquerda do bloco de predição luma atual em relação à amostra luma superior esquerda da imagem atual, e candModeList é a lista de MPM real, decodificando os dados codificados para obter um Índice MPM, obtendo o modo de predição intra do bloco de imagem de acordo com o índice MPM e a lista de MPM.
[00219] Em um exemplo específico, o conjunto de MPMs é (15, 0, 20), o valor do índice MPM é 2, então o modo de predição intra do bloco de imagem é o modo planar (valor 0). Em outro exemplo específico, o conjunto de MPMs é (15, 36, 0, 1, 21, 19), o valor do índice MPM é 5, portanto, o modo de predição intra do bloco de imagem está no modo angular 21.
[00220] Em uma forma de implementação do presente pedido, em que um dentre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra corresponde a um de pelo menos um modo de predição intra no conjunto de não MPM.
[00221] Em um exemplo, os modos de predição no primeiro conjunto de modos de predição intra são (17, 25, 6) e os modos de predição mapeados no conjunto de não MPM são (2, 3, 4), 17 <->2, 25 <->3, 6<->4.
[00222] Em outro exemplo, os modos de predição no primeiro conjunto de modos de predição intra são (2, 16, 28), e os modos de predição mapeados no conjunto de não MPM são (2, 3, 4), 2 <->2, 16 <->3, 28<->4.
[00223] Em outro exemplo, os modos de predição no primeiro conjunto de modos de predição intra são (28), e os modos de predição mapeados no conjunto de não MPM são (3), 28<->3.
[00224] Em uma forma de implementação do presente pedido, em que a relação de mapeamento é gerada de acordo com o conjunto de MPMs.
[00225] Em uma forma de implementação do presente pedido, a relação de mapeamento é gerada de acordo com a classificação dos modos de predição no conjunto de MPMs.
[00226] Em uma forma de implementação do presente pedido, em que a geração de uma relação de mapeamento entre, pelo menos um modo de predição intra, no primeiro conjunto de modos de predição intra e pelo menos um modo de predição intra no conjunto de não MPMs, compreende: classificar uma pluralidade de categorias de modo de predição intra de acordo com o número e/ou a direção dos modos de predição intra no conjunto de MPMs que se encontram dentro de cada categoria de modo de predição intra; gerar a relação de mapeamento de acordo com a categoria de modo de predição intra com classificação mais alta.
[00227] Em um exemplo, 5 categorias de modo de predição intra angular, ou seja, modo dc (DC_IDX), modo vertical (VER_IDX), modo horizontal (HOR_IDX), modo intra 2 (2), modo diagonal vertical (VDIA_IDX) e modo diagonal DIA_IDX, em que um modo de predição intra angular da lista de modos mais prováveis que se encontra dentro de cada categoria de modo de predição intra angular, por exemplo, corresponde à associação de cada um dos modos de predição intra angular da lista de modos mais prováveis à categoria de modo de predição intra angular sendo mais próxima do modo de predição intra angular correspondente da lista de modos mais prováveis. Em outro exemplo, repetir esta etapa com a segunda categoria de modo de predição intra angular com classificação mais alta.
[00228] Em uma forma de implementação do presente pedido, em que a geração de uma relação de mapeamento entre um modo de predição intra no primeiro conjunto de modos de predição intra e um modo de predição intra no segundo conjunto de modos de predição intra, compreende: gerar um conjunto inicial de modos de predição intra de acordo para adicionar um deslocamento a uma pluralidade de valores correspondentes ao conjunto de MPMs; classificar o conjunto de MPMs para obter uma categoria de modo de predição intra com classificação mais alta; gerar a relação de mapeamento de acordo com a categoria de modo de predição intra com classificação mais alta e o conjunto inicial de modos de predição intra.
[00229] Em uma forma de implementação do presente pedido, em que o conjunto inicial de modos de predição intra é gerado de acordo para adicionar um deslocamento de -1, + 1, +2, -2, +3, -3, +4 ou -4 a uma pluralidade de valores correspondentes ao conjunto de MPMs.
[00230] Em uma forma de implementação do presente pedido, em que a relação de mapeamento é gerada de acordo com uma lista de modos padrão predeterminada que compreende ou consiste em um modo planar (PLANAR_IDX), um modo dc (DC_IDX), um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) e um modo diagonal (DIA_IDX).
[00231] A Figura 6 mostra um exemplo de 67 modos de predição intra, por exemplo, como proposto para VVC, a pluralidade de modos de predição intra de 67 modos de predição intra compreendendo: modo planar (índice 0), modo dc (índice 1) e modos angulares com índices 2 a 66, em que o modo angular inferior esquerdo na Figura 6 se refere ao índice 2 e a numeração dos índices sendo incrementada até o índice 66 ser o modo angular de extremidade superior direita da Figura 6.
[00232] Em um exemplo, um esquema de sinalização modo intra com 6 MPMs e os 61 modos restantes é proposto, em que os 61 modos restantes são codificados usando um esquema de binarização truncado. Os restantes 61 modos intra também podem ser codificados usando um código de comprimento fixo de 6 bits, mas a desvantagem com o código de comprimento fixo de 6 bits é que das 64 palavras de código possíveis, apenas 61 palavras de código são usadas e 3 palavras de código restantes são não usadas. Em vez de um código de comprimento fixo, é proposta a binarização truncada, que usaria apenas 5 bits para sinalizar os 3 primeiros modos restantes e os 58 modos restantes são então codificados usando 6 bits.
[00233] A binarização truncada sempre permite que as palavras de código menores sejam sinalizadas usando menos bits quando comparadas às palavras de código maiores. Por exemplo, como mostrado na Figura 6, os modos horizontais começando com “modos intra 2, 3, 4 ...” serão mais frequentemente sinalizados usando 5 bits. Portanto, para uma sinalização eficiente dos modos restantes (modos não MPM), as primeiras palavras de código não MPM são mapeadas para os modos derivados que são mais prováveis. Por exemplo, o tamanho da lista de MPM é 6 e os modos intra que estão incluídos na lista de MPM são [18, 30, 0, 1, 66, 24], então os três primeiros modos nos modos não MPM que requerem apenas 5 bits para sinalização são modos [2,3,4]. Digamos que os modos [2, 3, 4] sejam nomeados como “modos intra de palavra de código”. Uma vez que os modos 2, 3, 4 podem não ser sempre os modos altamente prováveis, esses modos são mapeados para representar três outros modos intra que são mais prováveis. Por exemplo, digamos que após os 6 modos mais prováveis nos MPMs, três outros modos que são mais prováveis são os números de modo [19, 17, 21]. Digamos que os modos [19, 17, 21] sejam nomeados como “modos não MPM derivados”. Uma maneira simples de garantir que os modos 19, 17, 21 consumam apenas 5 bits é mapear os modos intra [2, 3, 4] com modos intra [19, 17, 21]. Basicamente, o codificador faz o mapeamento e sinaliza o modo intra 19 com modo intra 2 e, em seguida, o decodificador faz o mapeamento inverso e mapeia modo intra 2 com modo intra 19. Além disso, este mapeamento simples reduz o número de operações de poda para sinalizar os modos não MPM quando comparados à sinalização de modos não MPM usando uma lista e sinalizando o índice na lista. Em um caso especial, se os “modos não MPM derivados” e os “modos intra de palavra de código” com a palavra de código menor tiverem uma sobreposição, então é garantido que o modo intra comum entre ambas as listas sejam mapeados juntos. Por exemplo, se os “modos intra de palavra de código” forem [2, 3, 4] e a lista de “modos não MPM derivados” for [2, 4, 17], então o modo intra 2 é mapeado para modo intra 2, o modo 3 é mapeado para o modo 17 e o modo 4 é mapeado para o modo 4.
[00234] Várias soluções são propostas para preencher os três primeiros modos da lista de modos restantes.
[00235] Os primeiros três modos na lista de modos restantes podem ser preenchidos de várias maneiras possíveis.
[00236] Primeiro, usando os modos de uma lista de modos padrão predeterminada que é {modo planar (PLANAR_IDX), modo dc (DC_IDX), modo vertical (VER_IDX), modo horizontal (HOR_IDX), modo intra 2 (2), modo diagonal vertical (VDIA_IDX), modo diagonal (DIA_IDX)} (os termos entre parênteses mostram os termos correspondentes na Figura 6, mais detalhes sobre a Figura 6 são fornecidos abaixo); segundo, usando deslocamentos para os modos angulares que já estão presentes na lista de MPM. Aqui, o deslocamento pode ser +/- N, onde N é um valor inteiro possível cujo valor é {1, 2, 3, 4}. Os deslocamentos podem ser adicionados apenas aos dois primeiros modos angulares da lista de MPM.
[00237] Terceiro, os modos intra de vizinhos não adjacentes também podem ser usados para preencher os três modos. Como mostrado na Figura 7, modos intra de vizinhos de segunda camada podem ser usados.
[00238] Quarto, conforme mostrado na Figura 6, em uma primeira etapa, um determinado modo da lista de MPM é obtido e verificado se está “próximo” a uma das seguintes categorias de modo {DC_IDX, HOR_IDX, DIA_IDX, VER_IDX, VDIA_IDX}, na segunda etapa, as categorias de modo são então “classificadas” com base na “maioria” dos modos próximos a ela. Em uma terceira etapa, a lista de modos restantes é gerada inserindo modos que estão próximos à categoria de modo vencedor da etapa 2.
[00239] Em uma forma de implementação do presente pedido, em que a geração de uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e pelo menos um modo de predição intra no conjunto de não MPM, compreende: gerar um primeiro conjunto de valores de acordo com os valores dos modos de predição no conjunto de MPMs, um valor no primeiro conjunto de valores é o menor valor do modo de predição no conjunto de não MPM; gerar um segundo conjunto de valores de acordo com a adição de um deslocamento ao valor de pelo menos um modo de predição no conjunto de MPMs; gerar a relação de mapeamento de acordo com o primeiro conjunto de valores e o segundo conjunto de valores.
[00240] Em uma forma de implementação do presente pedido, o lado do decodificador primeiro obtém o conjunto de MPM para o bloco atual, o processo de geração pode se referir à parte relacionada no ITU H.264, ITU H.265 ou a descrição acima sobre a construção do candModeList. Depois de obtido o conjunto de MPMs, o lado do decodificador seleciona o menor valor do modo de predição no conjunto de não MPM como um valor no primeiro conjunto de valores.
[00241] Em um exemplo, o primeiro conjunto de valores compreende três menores valores no conjunto de não MPM, se os valores dos modos de predição no conjunto de MPMs forem (0, 1, 3, 5, 8, 10), então o primeiro conjunto apresenta os valores (2, 4, 6).
[00242] Em outro exemplo, o primeiro conjunto de valores compreende dois valores menores no conjunto de não MPM, se os valores dos modos de predição no conjunto de MPMs forem (0, 1, 3, 5, 8, 10), então o primeiro conjunto de valores é constituído de (2, 4).
[00243] Em um exemplo, um deslocamento de -1, +1, +2, - 2, +3, -3, +4 ou -4 é adicionado a uma pluralidade de valores correspondentes ao conjunto de MPMs.
[00244] Em uma forma de implementação do presente pedido, em que a geração de uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e pelo menos um modo de predição intra no conjunto de não MPM, compreende: gerar um primeiro conjunto de valores de acordo com os valores dos modos de predição no conjunto de MPMs, um valor no primeiro conjunto de valores é o menor valor do modo de predição no conjunto de não MPM; gerar um segundo conjunto de valores de acordo com a adição de um deslocamento ao valor de pelo menos um modo de predição angular no conjunto de MPMs; gerar a relação de mapeamento de acordo com o primeiro conjunto de valores e o segundo conjunto de valores.
[00245] Em um exemplo, um deslocamento de -1, +1, +2, -
2, +3, -3, +4 ou -4 é adicionado a pelo menos um valor correspondente a pelo menos um modo de predição angular no conjunto de MPMs.
[00246] Em outro exemplo, um deslocamento de -1, +1, +2, -2, +3, -3, +4 ou -4 é adicionado aos valores correspondentes a dois modos de predição angular no conjunto de MPMs.
[00247] Em uma forma de implementação do presente pedido, uma quantidade de modos de predição na pluralidade de modos de predição intra para o bloco de imagem é 67, uma quantidade de modos de predição no conjunto de MPMs é 6, uma quantidade de modos de predição no primeiro conjunto de modos de predição intra no conjunto de não MPM é 3 e uma quantidade de modos de predição no segundo conjunto de modos de predição intra no conjunto de não MPM é 58, em que a geração de uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e, pelo menos, um modo de predição intra no conjunto de não MPM, compreendendo: a obtenção dos três menores valores de três modos de predição no conjunto de não MPM, de acordo com os valores dos modos de predição no conjunto de MPMs; obtenção de dois valores de dois modos de predição angular no conjunto de MPM, adicionar deslocamento aos dois valores para obter valores de deslocamento; obter um segundo conjunto de valores de acordo com os valores dos modos de predição no conjunto de MPMs e os valores de deslocamento; gerar a relação de mapeamento de acordo com o primeiro conjunto de valores e o segundo conjunto de valores.
[00248] Em uma forma de implementação do presente pedido, em que a geração de uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e, pelo menos, um modo de predição intra no conjunto de não MPM, compreende: gerar um primeiro conjunto de valores de acordo com os valores dos modos de predição no conjunto de MPMs, um valor no primeiro conjunto de valores é o menor valor do modo de predição no conjunto de não MPM; gerar um segundo conjunto de valores de acordo com uma lista de modos padrão predeterminada compreendendo ou consistindo em um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) e um modo diagonal modo (DIA_IDX); gerar a relação de mapeamento de acordo com o primeiro conjunto de valores e o segundo conjunto de valores.
[00249] Em um exemplo, um deslocamento de -1, +1, +2, - 2, +3, -3, +4 ou -4 é adicionado a pelo menos um valor correspondente a pelo menos um modo de predição na lista de modos padrão predeterminados.
[00250] Em um exemplo, um deslocamento de -1, +1, +2, - 2, +3, -3, +4 ou -4 é adicionado a, pelo menos um valor correspondente, a pelo menos um modo de predição angular no modo padrão predeterminado Lista.
[00251] Em um exemplo, um deslocamento de -1, +1, +2, - 2, +3, -3, +4 ou -4 é adicionado a dois valores correspondentes a dois modos de predição angular na lista de modos padrão predeterminados.
[00252] Em uma forma de implementação do presente pedido, em que a geração de uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e, pelo menos, um modo de predição intra no conjunto de não MPM, compreende: gerar um primeiro conjunto de valores de acordo com os valores dos modos de predição no conjunto de MPMs, um valor no primeiro conjunto de valores é o menor valor do modo de predição no conjunto de não MPM; gerar um segundo conjunto de valores de acordo com uma lista de modo padrão predeterminada compreendendo ou consistindo em um modo planar (PLANAR_IDX), um modo dc (DC_IDX), um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) e um modo diagonal (DIA_IDX); gerar a relação de mapeamento de acordo com o primeiro conjunto de valores e o segundo conjunto de valores.
[00253] Em uma forma de implementação do presente pedido, em que a palavra de código do modo de predição intra é codificada usando 5 bits, e a palavra de código do modo de predição intra é 00000, 00001 ou 00010.
[00254] Em um exemplo, o lado de decodificação decodifica a palavra de código para obter um valor inicial, por exemplo, se a palavra de código é 00001, então o valor inicial é 1; em seguida, compare com o valor inicial com cada valor correspondente ao modo de predição no conjunto de MPMs, se o valor inicial for maior ou igual ao valor correspondente ao modo de predição, no conjunto de MPMs, o valor inicial aumenta em um, repita esta etapa até que todos os valores do conjunto de MPMs tenham sido comparados com o valor inicial e obtenha um valor final.
[00255] Por exemplo, ajuste os valores correspondentes ao conjunto de MPMs em ordem crescente, os valores ajustados correspondentes ao conjunto de MPMs são (0, 1, 4, 6, 8, 10); a palavra de código é 00001, na primeira etapa, como 1 é maior que o primeiro valor correspondente ao conjunto de MPMs, este valor inicial 1 é incrementado em um e um valor de correção é 2; na segunda etapa, como 2 é maior que no segundo valor correspondente ao conjunto de MPMs, outro valor corretivo 3 é obtido de acordo com o incremento 1 a 2; e como 3 é menor que o terceiro valor correspondente ao conjunto de MPMs, obtém-se um valor final
3. E se o valor final 3 não estiver no conjunto de mapeamento, o valor final 3 é o valor correspondente ao modo de predição intra do bloco de imagem, de modo que o modo de predição intra do bloco de imagem é o modo angular
3.
[00256] Se o valor final 3 estiver no conjunto de mapeamento, um valor mapeado (por exemplo, 17) é o valor correspondente ao modo de predição intra do bloco de imagem, de modo que o modo de predição intra do bloco de imagem é o modo angular 17. Em alguns exemplos, um valor mapeado pode ser igual ao valor final, por exemplo, se o valor final 3 está no conjunto de mapeamento, um valor mapeado também está, de modo que o modo de predição intra do bloco de imagem é o modo angular 3.
[00257] Em outro aspecto do presente pedido, um decodificador que compreende circuitos de processamento é divulgado para realizar os métodos de decodificação acima.
[00258] Em outro aspecto do presente pedido, é divulgado um produto de programa de computador que compreende um código de programa para executar os métodos de decodificação acima.
[00259] Em outro aspecto do presente pedido, um decodificador para decodificar dados de vídeo é divulgado, o decodificador compreende: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado aos processadores e armazenamento de programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar os métodos de decodificação acima.
[00260] O circuito de processamento pode ser implementado em hardware ou em uma combinação de hardware e software, por exemplo, por um processador programável de software ou semelhante.
[00261] Em outro aspecto da presente divulgação é divulgado um método de codificação, o qual compreende: obtenção de um modo de predição intra de um bloco de imagem de uma pluralidade de modos de predição intra, a pluralidade de modos de predição intra para o bloco de imagem compreende um conjunto de Modos Mais Prováveis, MPMs e um conjunto de não MPM, em que o conjunto de não MPM compreende um primeiro conjunto de modos de predição intra e um segundo conjunto de modos de predição intra; se o modo de predição intra do bloco de imagem estiver no conjunto de não MPM, gerar uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e pelo menos um modo de predição intra no conjunto de não MPM; codificar o modo de predição intra do bloco de imagem para obter uma palavra de código de modo de predição intra de acordo com a relação de mapeamento.
[00262] Em uma forma de implementação do presente pedido, o processo de obtenção de um modo de predição intra de um bloco de imagem pode se referir-se à divulgação relativa na descrição detalhada abaixo de parte das modalidades, ou à divulgação relativa no campo da tecnologia de codificação de vídeo, tal como no ITU-T H.264, ITU-T H.265.
[00263] Em uma forma de implementação do presente pedido, o método de codificação compreende ainda: gerar um conjunto de MPMs, determinar se o modo de predição intra do bloco de imagem está no conjunto de MPMs. Portanto, se o modo de predição intra do bloco de imagem não estiver no conjunto de MPMs, então o modo de predição intra do bloco de imagem está no conjunto de não MPM.
[00264] O processo de geração de um conjunto de MPMs pode referir-se à divulgação relativa na parte de descrição ou à divulgação relativa no campo da tecnologia de codificação de vídeo, como no ITU-T H.264, ITU-T H.265.
[00265] Em uma forma de implementação do presente pedido, o processo de geração de uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e, pelo menos um modo de predição intra no conjunto de não MPM, pode se referir à divulgação relativa no lado da decodificação.
[00266] Em uma forma de implementação do presente pedido, um primeiro conjunto de modos de predição intra é codificado usando 5 bits e um segundo conjunto de modos de predição intra é codificado usando 6 bits.
[00267] Em outro aspecto do presente pedido, um codificador que compreende circuitos de processamento é fornecido para realizar os métodos de codificação acima.
[00268] Em outro aspecto do presente pedido, é fornecido um produto de programa de computador que compreende código de programa para executar os métodos de codificação acima.
[00269] Em outro aspecto do presente pedido, um codificador para codificar dados de vídeo é fornecido, o codificador compreendendo: um ou mais processadores; e um meio de armazenamento legível por computador não transitório, acoplado aos processadores e armazenamento de programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar os métodos de codificação acima.
[00270] O circuito de processamento pode ser implementado em hardware ou em uma combinação de hardware e software, por exemplo, por um processador programável de software ou semelhante.
[00271] Em uma forma de implementação da presente divulgação, de acordo com a Figura 8, o presente pedido divulga um método de decodificação de vídeo, compreendendo: S801; decodificar dados codificados de um bloco de imagem para obter um modo de predição intra a partir de uma pluralidade de modos de predição intra para o bloco de imagem; a pluralidade de modos de predição intra para o bloco de imagem compreende um conjunto de Modos Mais Prováveis, MPMs e um conjunto de não MPM, em que o conjunto de não MPM compreende um primeiro conjunto de modos de predição intra e um segundo conjunto de modos de predição intra, em que um modo no primeiro conjunto de modos de predição intra é codificado usando N bits, um modo no segundo conjunto de modos de predição intra é codificado usando M bits, N e M são inteiros positivos, N é menor que M.
[00272] A decodificação dos dados codificados para obter um modo de predição intra a partir de uma pluralidade de modos de predição intra para o bloco de imagem (S801) compreendendo: S802: decodificar os dados codificados para obter uma indicação sinalizando se o modo de predição intra para o bloco de imagem está no conjunto de MPMs ou não; se a indicação que sinaliza o modo de predição intra para o bloco de imagem não estiver no conjunto de MPMs, S803: gerar uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e, pelo menos, um modo de predição intra no conjunto de não MPM; S804: decodificar os dados codificados para obter uma palavra de código de modo de predição intra para o bloco de imagem; S805: obter o modo de predição intra para o bloco de imagem de acordo com a relação de mapeamento e a palavra de código do modo de predição intra.
[00273] De acordo com o método de decodificação de vídeo do presente pedido, um esquema de binarização truncado pode ser usado para codificar modos de predição no conjunto de não MPM e uma relação de mapeamento é gerada, portanto, o modo de predição para o bloco atual tem uma maior possibilidade de ser codificado usa menos bits e a complexidade computacional no lado do decodificador é reduzida.
[00274] Em uma forma de implementação do presente pedido, de acordo com a Figura 9, o presente pedido divulga um método de decodificação de vídeo, compreendendo: S901; receber dados codificados de um bloco de imagem; o lado do decodificador pode ser configurado para receber os dados de imagem codificados por meio de um enlace de comunicação direta entre o lado do codificador e o lado do decodificador, por exemplo, uma conexão direta com ou sem fio, ou através de qualquer tipo de rede, por exemplo, uma rede com fio ou sem fio ou qualquer combinação destas, ou qualquer tipo de rede privada e pública, ou qualquer tipo de combinação das mesmas.
[00275] S902: decodificar os dados codificados para obter uma indicação sinalizando se o modo de predição intra para o bloco de imagem está no conjunto de MPMs ou não; a indicação, indicando se o modo de predição intra para o bloco de imagem está no conjunto de MPM ou não, pode ser um sinalizador. Quando o valor do sinalizador é 1 pode indicar que o modo de predição intra para o bloco de imagem está no conjunto de MPMs, quando o valor do sinalizador é 0 pode indicar que o modo de predição intra para o bloco de imagem não está no conjunto de MPMs. Por exemplo, no lado do codificador, se uma lista de MPM (um conjunto de MPMs) é um conjunto de modos intra [25, 42, 63] e o valor do modo intra de blocos atual é 42, então o indicador de sinalizador MPM é definido como 1, visto que o modo intra para o bloco atual é encontrado na segunda entrada da lista de MPM. Se, por exemplo, o modo intra do bloco atual é 41 em vez de 42, então o indicador de sinalizador MPM é definido como 0, o sinalizador MPM é enviado para o lado do decodificador nos dados codificados.
[00276] Se a indicação que sinaliza se o modo de predição intra para o bloco de imagem está no conjunto de MPMs, execute a etapa S903.
[00277] Se a indicação sinalizando que o modo de predição intra para o bloco de imagem não está no conjunto de MPMs, execute a etapa S904.
[00278] S903: decodificar os dados codificados para obter o modo de predição intra para o bloco de imagem de acordo com o conjunto de MPMs.
[00279] Em um exemplo, se a indicação que sinaliza o modo de predição intra para o bloco de imagem está no conjunto de MPMs. O processo de derivação para o modo de predição intra para o bloco de imagem (IntraPredModeY [xPb][yPb]) é definido como segue: se intra_luma_mpm_flag [xPb][yPb] for igual a 1 (o que indica que o modo de predição intra para o bloco de imagem está no conjunto de MPM), o IntraPredModeY [xPb][yPb] é definido igual a candModeList [intra_luma_mpm_idx [xPb][yPb], onde (xPb, yPb) especifica a amostra superior esquerda do bloco de predição luma atual em relação à amostra luma superior esquerda da imagem atual, e candModeList é a lista de MPM real, decodificando os dados codificados para obter um índice MPM, obtendo o modo de predição intra do bloco de imagem de acordo com o índice MPM e a lista de MPM.
[00280] Em um exemplo específico, o conjunto de MPMs é (15, 0, 20), o valor do índice MPM é 2, então o modo de predição intra do bloco de imagem é o modo planar (valor 0). Em outro exemplo específico, o conjunto de MPMs é (15, 36, 0, 1, 21, 19), o valor do índice MPM é 5, então o modo de predição intra do bloco de imagem é o modo angular 21. O índice MPM indica a posição do modo de predição intra para o bloco de imagem dentro do conjunto de MPMs.
[00281] S904: gerar uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e pelo menos um modo de predição intra no conjunto de não MPM.
[00282] Em um exemplo, se a indicação que sinaliza o modo de predição intra para o bloco de imagem não estiver no conjunto de MPMs, duas listas são construídas: a saber, uma lista de palavras de código e uma lista de modos derivados.
[00283] Por exemplo, a primeira lista de palavras de código é construída da seguinte forma:
1. encontrar o menor modo na lista de MPM, suponha que o menor modo seja Ms;
2. definir uma variável de incremento inicial Inc = 1;
3. definir o modo candidato Mc como (Ms + Inc), verifique se o modo Mc também está na lista de MPM; se Mc não estiver na lista de MPM, adicione Mc na lista de palavras de código, caso contrário, vá para a etapa 4;
4. verificar se as entradas inseridas na lista de palavras de código estão cheias (o comprimento inserido é igual ao comprimento da lista de palavras de código): se estiver cheio, encerrar; caso contrário, definir Inc = Inc + 1 e ir para a etapa
3.
[00284] Para resumir, a lista de palavras de código conterá os menores modos, exceto aqueles que estão presentes na lista de MPM. Dado que o comprimento da lista de MPM é L, o comprimento da lista de palavras de código é 64- (67-L) = L-3. Por exemplo, se a lista de MPM for (15, 36, 0, 1, 21, 19), a palavra de código construída é (2, 3, 4).
[00285] A segunda lista de modos derivados é construída da seguinte forma:
1. encontrar os dois primeiros modos angulares na lista de MPM, assumindo que os encontrados são angular0 e angular1;
2. definir uma variável de incremento inicial Inc = 1;
3. derivar um novo modo M0minus = angular0 - Inc. Observar que M0minus deve ser garantido também um modo angular (ou seja, 66> = M0minus> = 2). Portanto, se angular0 é igual a 2, Inc é 1; então o M0minus derivado seria 66; se Inc for 2, então M0minus seria 65, etc. A operação minus levaria ao modo angular máximo;
4. verificar se M0minus está na lista de MPM, caso contrário e se a lista de modos derivados não está cheia, insira M0minus na lista de modos derivados. De outra forma, se a lista de modos derivados estiver cheia, encerrar; Caso contrário, ir para a etapa 5;
5. derivar um novo modo M0plus = angular0 + Inc. Observe que M0plus deve ser garantido também um modo angular (ou seja, 66> = M0plus> = 2). Portanto, se angular0 é igual a 66, Inc é 1, então o M0plus derivado seria 2. Se Inc fosse 2, então M0plus seria 3, etc. A operação plus seria reduzida ao modo angular mínimo;
6. verificar se M0plus na lista de MPM, caso contrário e se a lista de modos derivados não está cheia, insira M0plus na lista de modos derivados. De outra forma, se a lista de modos derivados estiver cheia, encerrar; caso contrário, ir para a etapa 7;
7. repetir a etapa 3-6 substituindo angular0 por angular1;
8. definir Inc = Inc + 1 e repetir as etapas 3-7.
[00286] Para resumir, a lista de modos derivados obtém modos vizinhos dos primeiros dois modos angulares na lista de MPM. Se esses modos vizinhos já estiverem incluídos na lista de MPM, eles serão excluídos da lista de modos derivados. Dado que o comprimento da lista de MPM é L, o comprimento da lista de modos derivados é 64- (67-L) = L-3. Um exemplo, se a lista de MPM for (15, 36, 0, 1, 21, 19), então a lista de modos derivados construída é (14, 16, 35).
[00287] Quando a lista de palavras de código e a lista de modo derivado são construídas, um relacionamento de mapeamento bidirecional entre elas é construído. A saber, dadas as listas de exemplos acima com lista de palavras de código (2, 3, 4) e lista de modo derivado (14, 16, 35), o mapeamento bidirecional seria 2<->14, 3<->16 e 3<->35, onde <-> representa o mapeamento bidirecional.
[00288] Duas opções são permitidas para construir o relacionamento de mapeamento bidirecional entre a lista de palavras de código e a lista de modo derivado. A primeira opção é que a lista de modos derivados pode ser construída de uma maneira que possa haver elementos tanto na lista de modos derivados quanto na lista de palavras de código. A outra opção é que a lista de modos derivados não pode ser sobreposta aos modos na lista de palavras de código.
[00289] Em outro exemplo, em uma forma de implementação do presente pedido, gerar uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e pelo menos um modo de predição intra no conjunto de não MPM, compreendendo: classificação uma pluralidade de categorias de modo de predição intra de acordo com o número e/ou a direção dos modos de predição intra no conjunto de MPM que se encontra dentro de cada categoria de modo de predição intra; gerar a relação de mapeamento de acordo com a categoria de modo de predição intra com classificação mais alta.
[00290] Em um exemplo, são fornecidas 5 categorias de modo de predição intra angular, a saber, modo vertical (VER_IDX), modo horizontal (HOR_IDX), modo intra 2 (2), modo diagonal vertical (VDIA_IDX) e modo diagonal DIA_IDX. Um modo de predição intra angular da lista de modos mais prováveis que se encontra dentro de cada categoria de modo de predição intra angular, por exemplo, corresponde a associar cada um dos modos de predição intra angular da lista de modos mais prováveis à categoria de modo de predição intra angular que está mais próxima do modo de predição intra angular correspondente da lista de modos mais prováveis. Em outro exemplo, repetir esta etapa com a segunda categoria de modo de predição intra angular com classificação mais alta.
[00291] Em um exemplo, em que a geração de uma relação de mapeamento entre um modo de predição intra no primeiro conjunto de modos de predição intra e um modo de predição intra no segundo um conjunto de modos de predição intra,
compreende: gerar um conjunto inicial de modos de predição intra de acordo para adicionar um deslocamento a uma pluralidade de valores correspondentes ao conjunto de MPMs; classificar o conjunto de MPMs para obter uma categoria de modo de predição intra com classificação mais alta; gerar a relação de mapeamento de acordo com a categoria de modo de predição intra com classificação mais alta e o conjunto inicial de modos de predição intra.
[00292] Em um exemplo, o conjunto inicial de modos de predição intra é gerado de acordo para adicionar um deslocamento de -1, + 1, +2, -2, +3, -3, +4 ou -4 a uma pluralidade de valores correspondentes ao conjunto de MPMs.
[00293] Em um exemplo, a relação de mapeamento é gerada de acordo com uma lista de modo padrão predeterminada que compreende ou consiste em um modo planar (PLANAR_IDX), um modo dc (DC_IDX), um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) e um modo diagonal (DIA_IDX).
[00294] S905: decodificar os dados codificados para obter uma palavra de código de modo de predição intra para o bloco de imagem; a palavra de código é codificada usando N bits ou M bits no lado codificado. Em um exemplo, como é uma relação de mapeamento bidirecional, então o modo de predição intra correspondente à palavra de código pode ser mapeado para outro modo de predição intra no conjunto de não MPM.
[00295] S906: obter o modo de predição intra para o bloco de imagem de acordo com a relação de mapeamento e a palavra de código do modo de predição intra.
[00296] Em um exemplo, após a relação de mapeamento bidirecional ser construída, será verificado se o modo de predição intra recebido correspondente à palavra de código do modo de predição intra está na lista de palavras de código ou na lista de modo derivado: se o modo de predição intra analisado não estiver na lista de palavras de código nem na lista de modo derivado, definir o modo de predição final como o modo de predição intra analisado.
[00297] Se o modo de predição intra analisado estiver apenas na lista de palavras de código ou apenas na lista de modo derivado, definir o modo de predição final como seu modo de predição intra mapeado correspondente.
[00298] Se o modo de predição intra analisado estiver na lista de palavras de código e na lista de modo derivado, um mecanismo é introduzido na construção dessas duas listas, de modo que a relação de mapeamento bidirecional seja ajustada e todos os modos sobrepostos sejam mapeados para si mesmos em outra lista. Um exemplo: lista de MPM (0 1 2 3 50 66), lista de palavras de código é (4 5 6), lista de modo derivado (4 65 5). Ao construir uma lista de modo derivado ou lista de palavras de código, temos certeza de 4<->4, 5<->5 e 6<->65.
[00299] Além disso, é fornecido um decodificador que compreende circuitos de processamento para realizar os métodos acima.
[00300] Na presente divulgação, um produto de programa de computador que compreende um código de programa é divulgado para executar os métodos acima.
[00301] Na presente divulgação, um decodificador para decodificar dados de vídeo é divulgado, o decodificador compreendendo: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado aos processadores e armazenamento de programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar os métodos acima.
[00302] Na presente divulgação, um método para decodificar vídeo e um decodificador de vídeo são fornecidos. O método de decodificação de vídeo compreende: receber dados codificados de um bloco de imagem de uma unidade de codificação; decodificar os dados codificados para identificar um modo de predição intra a partir de uma pluralidade de modos de predição intra para o bloco de imagem, a pluralidade de modos de predição intra compreende um conjunto de modos mais prováveis, MPMs, um primeiro conjunto de modos de predição intra e um segundo conjunto de modos de predição intra, em que um modo no primeiro conjunto de modos de predição intra é codificado usando N bits, um modo no segundo conjunto de modos de predição intra é codificado usando M bits, N e M são inteiros positivos, N é menor que M, que compreende: decodificar os dados codificados para obter uma indicação sinalizando se o modo de predição intra para o bloco de imagem está no conjunto de MPM ou não; se a indicação que sinaliza o modo de predição intra para o bloco de imagem não estiver no conjunto de MPMs, obter uma palavra de código de modo de predição intra para o bloco de imagem, a palavra de código de modo de predição intra correspondendo a um modo de predição intra inicial;
se a palavra de código do modo de predição intra para o bloco de imagem for codificada usando N bits, mapear o modo de predição intra inicial para obter um modo de predição intra mapeado, usando o modo de predição intra mapeado como o modo de predição intra identificado para o bloco de imagem; e se a palavra de código do modo de predição intra para o bloco de imagem for codificada usando M bits, usando o modo de predição intra inicial como o modo de predição intra identificado para o bloco de imagem.
[00303] Em uma forma de implementação do presente pedido, uma quantidade da pluralidade de modos de predição intra para o bloco de imagem é 67, a pluralidade de modos de predição intra de 67 modos de predição intra compreende: modo planar (valor 0), modo dc (valor 1) e modos angulares com índices 2 a 66.
[00304] Em um exemplo, uma quantidade do conjunto de MPM é 6, uma quantidade do primeiro conjunto de modos de predição intra é 3 e uma quantidade do segundo conjunto de modos de predição intra é 58.
[00305] Em outro exemplo, uma quantidade do conjunto de MPMs é 3, uma quantidade do primeiro conjunto de modos de predicação intra é 3 ou 6 e uma quantidade do segundo conjunto de modos de predicação intra é 61 ou 58.
[00306] Em uma forma de implementação do presente pedido, cada modo no primeiro conjunto de modos de predição intra é codificado usando N bits, cada modo no segundo conjunto de modos de predição intra é codificado usando M bits.
[00307] Em um exemplo, os modos de predição intra no primeiro conjunto de modos de predição intra são codificados usando um esquema de binarização truncado, pelo menos um modo no primeiro conjunto de modos de predição intra é codificado usando N bits e pelo menos um modo no primeiro conjunto de modos de predição intra é codificado usando menos de N bits.
[00308] Em um exemplo, uma indicação sinalizando se o modo de predição intra para o bloco de imagem está no conjunto de MPM ou não é um sinalizador, quando o valor do sinalizador é 1 pode indicar que o modo de predição intra para o bloco de imagem está no conjunto de MPMs, quando o valor do sinalizador é 0 pode indicar que o modo de predição intra para o bloco de imagem não está no conjunto de MPMs.
[00309] Em um exemplo, a indicação que sinaliza o modo de predição intra para o bloco de imagem está no conjunto de MPMs ou não é um sinalizador, quando o valor do sinalizador é 1 pode indicar que o modo de predição intra para o bloco de imagem está no conjunto de MPMs, quando o valor do sinalizador é 0 pode indicar que o modo de predição intra para o bloco de imagem não está no conjunto de MPMs. Por exemplo, no lado do codificador, se a lista de MPM for um conjunto de modos intra, digamos: [20,40, 60] e o valor do modo intra de blocos atual é 40, então o indicador de sinalizador MPM é definido como 1 como o modo intra para o bloco atual é encontrado na segunda entrada da lista de MPM. Se por exemplo, o modo intra de blocos atuais é 41 em vez de 40, então o indicador de sinalizador MPM é definido como 0.
[00310] Em um exemplo, se a indicação que sinaliza o modo de predição intra para o bloco de imagem estiver no conjunto de MPMs. O processo de derivação é definido como segue: IntraPredModeY [xPb][yPb] é derivado aplicando o seguinte procedimento: se intra_luma_mpm_flag [xPb][yPb] for igual a 1, o IntraPredModeY [xPb][yPb] é definido igual a candModeList [intra_luma_mpm_idx [xPb][yPb], onde (xPb, yPb) especifica a amostra superior esquerda do bloco de predição luma atual em relação à amostra luma superior esquerda da imagem atual, e candModeList é a lista de MPM real. Por exemplo, decodificar os dados codificados para obter um índice MPM, obtendo o modo de predição intra do bloco de imagem de acordo com o índice MPM e o conjunto de MPM. Em um exemplo específico, o conjunto de MPM é (15, 0, 20), o valor do índice MPM é 2, de modo que o modo de predição intra do bloco de imagem é o modo planar (valor 0). Em outro exemplo específico, o conjunto de MPM é (15, 36, 0, 1, 21, 19), o valor do índice MPM é 5, de modo que o modo de predição intra do bloco de imagem é o modo angular
21.
[00311] Em um exemplo, uma palavra de código de modo de predição intra para o bloco de imagem de acordo com a decodificação dos dados codificados. Se a palavra de código do modo de predição intra para o bloco de imagem for codificada usando M bits, usando o modo de predição intra inicial como o modo de predição intra identificado para o bloco de imagem. Por exemplo, M é 6, se a palavra de código do modo de predição intra é codificada como 010011 (por exemplo, 6 bits), que corresponde ao modo angular 19, portanto, o modo de predição intra identificado para o bloco de imagem é o modo angular 19.
[00312] Em uma forma de implementação do presente pedido, se a indicação que sinaliza o modo de predição intra para o bloco de imagem não estiver no conjunto de MPMs, são construídas duas listas: nomeadamente, lista de palavras de código e lista de modo derivado.
[00313] A primeira lista de palavras de código é construída da seguinte maneira:
1. encontrar o menor modo na lista de MPM, assumir que o menor modo é Ms
2. definir uma variável de incremento inicial Inc = 1;
3. definir o modo candidato Mc como (Ms + Inc), verificar se o modo Mc também está na lista de MPM; se Mc não estiver na lista de MPM, adicionar Mc na lista de palavras de código; caso contrário, ir para a etapa 4;
4. verificar se as entradas inseridas na lista de palavras de código estão cheias (o comprimento inserido é igual ao comprimento da lista de palavras de código): se estiver cheio, encerrar; caso contrário, definir Inc = Inc + 1 e ir para a etapa
3.
[00314] Para resumir, a lista de palavras de código conterá os menores modos, exceto aqueles que estão presentes na lista de MPM. Dado que o comprimento da lista de MPM é L, o comprimento da lista de palavras de código é 64- (67-L) = L-3. Um exemplo, se a lista de MPM for (15, 36, 0, 1, 21, 19), então a palavra de código construída é (2, 3, 4).
[00315] A segunda lista de modos derivados é construída da seguinte forma:
1. encontrar os dois primeiros modos angulares na lista de MPM, assumir que os encontrados são angular0 e angular1;
2. definir uma variável de incremento inicial Inc = 1;
3. derivar um novo modo M0minus = angular0 - Inc. Observar que M0minus deve ser garantido também um modo angular (ou seja, 66> = M0minus> = 2). Portanto, se angular0 é igual a 2, Inc é 1; então o M0minus derivado será 66; se Inc for 2, então M0minus será 65, etc. A operação minus levaria ao modo angular máximo;
4. verificar se M0minus na lista de MPM, caso contrário e se a lista de modos derivados não está cheia, insira M0minus na lista de modos derivados. De outra forma, se a lista de modos derivados estiver cheia, encerrar; caso contrário, ir para a etapa 5;
5. derivar um novo modo M0plus = angular0 + Inc. Observar que M0plus deve ser garantido também um modo angular (ou seja, 66> = M0plus> = 2). Portanto, se angular0 é igual a 66, Inc é 1, então o M0plus derivado seria 2. Se Inc for 2, então M0plus será 3, etc. A operação plus seria reduzida ao modo angular mínimo;
6. verificar se M0plus está na lista de MPM, caso contrário se a lista de modos derivados não estiver cheia, inserir M0plus na lista de modos derivados. De outra forma, se a lista de modos derivados estiver cheia, encerrar; caso contrário, ir para a etapa 7;
7. repita a etapa 3-6 substituindo Angular0 por angular1;
8. definir Inc = Inc + 1 e repita a etapa 3-7.
[00316] Para resumir, a lista de modos derivados obtém modos vizinhos dos primeiros dois modos angulares na lista de MPM. Se esses modos vizinhos já estiverem incluídos na lista de MPM, eles serão excluídos da lista de modos derivados. Dado que o comprimento da lista de MPM é L, o comprimento da lista de modos derivados é 64- (67-L) = L-3. Um exemplo, se a lista de MPM for (15, 36, 0, 1, 21, 19), então a lista de modos derivados construída será (14, 16, 35).
[00317] Quando a lista de palavras de código e a lista de modo derivado são construídas, um relacionamento de mapeamento bidirecional entre elas é construído. Nomeadamente, dadas as listas de exemplo acima com lista de palavras de código (2, 3, 4) e lista de modo derivado (14, 16, 35), 2<->14, 3<->16 e 3<->35, onde <-> representa mapeamento bidirecional.
[00318] Depois que a relação de mapeamento bidirecional é construída, é verificado se o modo de predição intra recebido está na lista de palavras de código ou na lista de modos derivados: se o modo de predição intra analisado não estiver na lista de palavras de código, nem na lista de modo derivado, definir o modo de predição final como o modo de predição intra analisado.
[00319] Se o modo de predição intra analisado estiver apenas na lista de palavras de código ou apenas na lista de modo derivado, definir o modo de predição final como seu modo de predição intra mapeado correspondente.
[00320] Se o modo de predição intra analisado estiver na lista de palavras de código e na lista de modo derivado, um mecanismo é introduzido na construção dessas duas listas, de modo que a relação de mapeamento bidirecional seja ajustada e todos os modos sobrepostos sejam mapeados para si mesmos em outra lista. Um exemplo: lista de MPM (0 1 2 3 50 66), lista de palavras de código é (4 5 6), lista de modo derivado (4 65 5). Ao construir uma lista de modo derivado ou lista de palavras de código, temos certeza de 4<->4, 5<->5 e 6<->65.
[00321] Em uma forma de implementação do presente pedido, uma palavra de código de modo de predição intra para o bloco de imagem é fornecida de acordo com a decodificação dos dados codificados. Se a palavra de código do modo de predição intra para o bloco de imagem é codificada usando N bits, mapeando o modo de predição intra inicial para obter um modo de predição intra mapeado, usando o modo de predição intra mapeado como o modo de predição intra identificado para o bloco de imagem. Por exemplo, N é 5, se a palavra de código do modo de predição intra é codificada como 00011 (por exemplo, 5 bits), que corresponde ao modo angular 3, neste exemplo, um modo de predição intra inicial é o modo angular 3, um modo de predição intra mapeado pode ser modo DC (valor pré-definido 1) ou modo angular 47; em outro exemplo, um modo de predição intra mapeado pode ser o mesmo que o modo de predição inicial, por exemplo, o modo de predição intra mapeado também é o modo angular 3.
[00322] Em um exemplo, um esquema de sinalização modo intra com 6 MPMs e os 61 modos restantes é fornecido, em que os 61 modos restantes são codificados usando um esquema de binarização truncado. Os restantes 61 modos intra também podem ser codificados usando um código de comprimento fixo de 6 bits, porém uma desvantagem com o código de comprimento fixo de 6 bits é que das 64 palavras de código possíveis, apenas 61 palavras de código são usadas e 3 palavras de código restantes são não usadas. Em vez de um código de comprimento fixo, é proposta a binarização truncada, que usaria apenas 5 bits para sinalizar os primeiros 3 modos restantes e os 58 modos restantes são então codificados usando 6 bits.
[00323] A binarização truncada permite que as palavras de código menores sejam sinalizadas usando menos bits quando comparadas às palavras de código maiores. Por exemplo, conforme mostrado na Figura 4, os modos horizontais começando com “modos intra 2, 3, 4 ...” serão mais frequentemente sinalizados usando 5 bits. Portanto, para a sinalização eficiente dos modos restantes (modos não MPM), as primeiras palavras de código não MPM são mapeadas para os modos derivados que são mais prováveis. Por exemplo, o tamanho da lista de MPM é 6 e os modos intra que estão incluídos na lista de MPM são [18, 30, 0, 1, 66, 24], então os três primeiros modos nos modos não MPM que requerem apenas 5 bits para sinalização são modos [2,3,4]. Os modos [2, 3, 4] são chamados de “modos intra de palavra de código”. Uma vez que os modos 2, 3, 4 podem não ser sempre os modos altamente prováveis, esses modos são mapeados para representar três outros modos intra que são mais prováveis. Por exemplo, após os 6 modos mais prováveis nos MPMs, três outros modos que são mais prováveis são os números de modo [19, 17, 21]. Os modos [19, 17, 21] são nomeados como “modos não MPM derivados”. Uma maneira simples de garantir que os modos 19, 17, 21 consumam apenas 5 bits é mapear os modos intra [2, 3, 4] com modos intra
[19, 17, 21]. Basicamente, o codificador faz o mapeamento e sinaliza modo intras 19 com modo intra 2 e, em seguida, o decodificador faz o mapeamento inverso e mapeia modo intra 2 com modo intra 19. Além disso, este mapeamento simples reduz o número de operações de poda para sinalizar os modos não MPM quando comparado à sinalização de modos não MPM usando uma lista e sinalizando o índice na lista. Em um caso especial, se os “modos não MPM derivados” e “modos intra de palavra de código” com a palavra de código menor tiverem uma sobreposição, então é garantido que o modo intra comum entre ambas as listas sejam mapeados em conjunto. Por exemplo, se os “modos intra de palavra de código” forem [2, 3, 4] e a lista de “modos não MPM derivados” for [2, 4, 17], então o modo intra 2 é mapeado para modo intra 2, o modo 3 é mapeado para o modo 17 e o modo 4 é mapeado para o modo 4.
[00324] Em outro exemplo, várias soluções são fornecidas para preencher os três primeiros modos da lista de modos restantes.
[00325] Primeiro, usando os modos de uma lista de modos padrão predeterminada que é {modo planar (PLANAR_IDX), modo dc (DC_IDX), modo vertical (VER_IDX), modo horizontal (HOR_IDX), modo intra 2 (2), modo diagonal vertical (VDIA_IDX), modo diagonal (DIA_IDX)} (os termos entre parênteses mostram os termos correspondentes na Figura 6, mais detalhes sobre a Figura 6 são fornecidos abaixo).
[00326] Em segundo lugar, usando deslocamentos para os modos angulares que já estão presentes na lista de MPM. Aqui, o deslocamento pode ser +/- N, onde N é um valor inteiro possível cujo valor é {1, 2, 3, 4}. Os deslocamentos podem ser adicionados apenas aos dois primeiros modos angulares da lista de MPM.
[00327] Em terceiro lugar, os modos intra de vizinhos não adjacentes também podem ser usados para preencher os três modos. Como mostrado na Figura 7, modos intra de vizinhos de segunda camada podem ser usados.
[00328] Em quarto lugar, conforme mostrado na Figura 6, em uma primeira etapa, um determinado modo da lista de MPM é obtido e verificado se está “próximo” a uma das seguintes categorias de modo {DC_IDX, HOR_IDX, DIA_IDX, VER_IDX, VDIA_IDX}, na segunda etapa, as categorias de modo são então “classificadas” com base na “maioria” dos modos que estão próximos a ele. Em uma terceira etapa, a lista de modos restantes é gerada inserindo modos que estão próximos à categoria de modo vencedor da etapa 2.
[00329] A Figura 6 mostra um exemplo de 67 modos de predição intra, por exemplo, como proposto para VVC, a pluralidade de modos de predição intra de 67 modos de predição intra compreendendo: modo planar (índice 0), modo dc (índice 1) e modos angulares com índices 2 a 66, em que o modo angular inferior esquerdo na Figura 6 se refere ao índice 2 e a numeração dos índices sendo incrementada até o índice 66 ser o modo angular de extremidade superior direita da Figura 6.
[00330] Um dispositivo de rede adequado para implementar as modalidades divulgadas é descrito a seguir no presente documento. O dispositivo de rede compreende portas de entrada e unidades receptoras (Rx) para receber dados; um processador, unidade lógica ou unidade central de processamento (CPU) para processar os dados; unidades transmissoras (Tx) 1340 e portas de saída para transmitir os dados; e uma memória para armazenar os dados. O dispositivo de rede também pode compreender componentes ópticos para elétricos (OE) e componentes elétricos para ópticos (EO) acoplados às portas de entrada, unidades receptoras, unidades transmissoras e portas de saída para saída ou entrada de sinais elétricos.
[00331] O processador é implementado por hardware e software. O processador pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, como um processador multi-core), matrizes de portas programáveis em campo (FPGAs), circuitos integrados de aplicação específica (ASICs) e processadores de sinais digitais (DSPs). O processador está em comunicação com as portas de entrada, unidades receptoras, unidades transmissoras, portas de saída e memória. O processador compreende um módulo de codificação. O módulo de codificação implementa as modalidades divulgadas descritas acima. Por exemplo, o módulo de codificação implementa, processa, prepara ou fornece as várias funções de rede. A inclusão do módulo de codificação, portanto, fornece uma melhoria substancial para a funcionalidade do dispositivo de rede e efetua uma transformação do dispositivo de rede para um estado diferente. Alternativamente, o módulo de codificação é implementado como instruções armazenadas na memória e executadas pelo processador.
[00332] A memória compreende um ou mais discos, unidades de fita e unidades de estado sólido e pode ser usada como um dispositivo de armazenamento de dados de fluxo excessivo, para armazenar programas, quando tais programas são selecionados para execução e para armazenar instruções e dados que são lidos durante execução do programa. A memória pode ser volátil e/ou não volátil e pode ser memória somente leitura (ROM), memória de acesso aleatório (RAM), memória endereçável por conteúdo ternário (TCAM) e/ou memória de acesso aleatório estática (SRAM).
[00333] A Figura 10 é um diagrama de blocos de um aparelho 1500 que pode ser usado para implementar várias modalidades. O aparelho 1500 pode ser o dispositivo fonte 12, como mostrado na Figura 1, ou o codificador de vídeo 20, como mostrado na Figura 2, ou o dispositivo de destino 14 como mostrado na Figura 1, ou o decodificador de vídeo 30, como mostrado na Figura 3. Além disso, o aparelho 1500 pode hospedar um ou mais dos elementos descritos. Em algumas modalidades, o aparelho 1500 é equipado com um ou mais dispositivos de entrada/saída, como um alto-falante, microfone, mouse, tela sensível ao toque, teclado, impressora, monitor e semelhantes. O aparelho 1500 pode incluir uma ou mais unidades centrais de processamento (CPUs) 1510, uma memória 1520, um armazenamento em massa 1530, um adaptador de vídeo 1540 e uma interface I/O 1560, conectada a um barramento. O barramento é um ou mais de qualquer tipo de várias arquiteturas de barramento, incluindo um barramento de memória ou controlador de memória, um barramento periférico, um barramento de vídeo ou semelhantes.
[00334] A CPU 1510 pode ter qualquer tipo de processador eletrônico de dados. A memória 1520 pode ter, ou ser, qualquer tipo de memória de sistema, como memória de acesso aleatório estática (SRAM), memória de acesso aleatório dinâmica (DRAM), DRAM síncrona (SDRAM), memória somente leitura (ROM), uma combinação das mesmas, ou semelhantes. Em uma modalidade, a memória 1520 pode incluir ROM para uso na inicialização e DRAM para programa e armazenamento de dados para uso durante a execução de programas. Nas modalidades, a memória 1520 não é transitória. O armazenamento em massa 1530 inclui qualquer tipo de dispositivo de armazenamento que armazena dados, programas e outras informações e para tornar os dados, programas e outras informações acessíveis através do barramento. O armazenamento em massa 1530 inclui, por exemplo, uma ou mais de uma unidade de estado sólido, unidade de disco rígido, uma unidade de disco magnético, uma unidade de disco óptico ou semelhantes.
[00335] O adaptador de vídeo 1540 e a interface I/O 1560 fornecem interfaces para acoplar dispositivos externos de entrada e saída ao aparelho 1500. Por exemplo, o aparelho 1500 pode fornecer interface de comando SQL para clientes. Conforme ilustrado, exemplos de dispositivos de entrada e saída incluem um visor 1590 acoplado ao adaptador de vídeo 1540 e qualquer combinação de mouse/teclado/impressora 1570 acoplado à interface I/O
1560. Outros dispositivos podem ser acoplados ao aparelho 1500, e adicionais ou menos placas de interface podem ser utilizadas. Por exemplo, uma placa de interface serial (não mostrada) pode ser usada para fornecer uma interface serial para uma impressora.
[00336] O aparelho 1500 também inclui uma ou mais interfaces de rede 1550, que incluem enlaces com fio, como um cabo Ethernet ou semelhante, e/ou enlaces sem fio para acessar nós ou uma ou mais redes 1580. A interface de rede 1550 permite que o aparelho 1500 comunicar-se com unidades remotas através das redes 1580. Por exemplo, a interface de rede 1550 pode fornecer comunicação ao banco de dados. Em uma modalidade, o aparelho 1500 é acoplado a uma rede de área local ou uma rede de área ampla para processamento de dados e comunicações com dispositivos remotos, como outras unidades de processamento, a Internet, instalações de armazenamento remoto ou semelhantes.
[00337] A aproximação linear por partes é introduzida para calcular os valores dos coeficientes de ponderação necessários para prever pixels dentro de um determinado bloco. A aproximação linear por partes, por um lado, reduz significativamente a complexidade computacional do mecanismo de predição ponderada por distância em comparação com o cálculo do coeficiente de ponderação simples e, por outro lado, ajuda a alcançar maior precisão dos valores do coeficiente de ponderação em comparação com simplificações da técnica anterior.
[00338] As modalidades podem ser aplicadas a outras técnicas de predição intra bidirecionais e dependentes de posição (por exemplo, modificações diferentes de PDPC), bem como mecanismos que usam coeficientes de ponderação que dependem da distância de um pixel para outro para combinar diferentes partes de uma imagem (por exemplo, alguns métodos de mistura no processamento de imagem).
[00339] As modalidades compreendem, por exemplo, um aparelho para determinar um modo de predição intra adotado com base em uma lista de modos mais prováveis (MPM) e uma lista de modos restantes tendo uma primeira parte e uma segunda parte, em que o modo de predição intra adotado é um de uma pluralidade de modos de predição intra compreendendo uma pluralidade de modos de predição intra angular para predizer valores de amostra de um bloco de imagem atual, em que o aparelho compreende um circuito de processamento configurado para: gerar a primeira parte da lista de modos restantes incluindo um ou mais modos de predição intra angular determinados com base na lista de modos mais prováveis, de modo que um ou mais modos de predição intra angular da primeira parte da lista de modos restantes estejam próximos de um respectivo modo de predição intra angular da lista de modos mais prováveis; e determinar o modo de predição intra adotado, no caso de o modo de predição intra adotado fazer parte da primeira parte da lista de modos restantes, usando menos bits, por exemplo, para codificar ou decodificar o modo de predição intra adotado, do que no caso do modo de predição intra adotado fazer parte da segunda parte da lista de modos restantes.
[00340] Em um exemplo, em que o circuito de processamento é configurado para gerar a primeira parte da lista de modos restantes por: classificar uma pluralidade de categorias de modo de predição intra angular de acordo com o número e/ou a direção dos modos de predição intra angular dos modos mais prováveis na lista abrangida por cada categoria de modo de predição intra angular; e gerar uma primeira parte da lista de modos restantes incluindo um ou mais modos de predição intra angular da categoria de modo de predição intra angular com classificação mais alta na lista de modos restantes.
[00341] As modalidades compreendem, por exemplo, 5 categorias de modo de predição intra angular, ou seja, modo vertical (VER_IDX), modo horizontal (HOR_IDX), modo intra 2 (2), modo diagonal vertical (VDIA_IDX) e modo diagonal DIA_IDX, em que um modo de predição intra angular da lista de modos mais prováveis dentro de cada modo de predição da categoria intra angular, por exemplo, corresponde à associação de cada um dos modos de predição intra angular da lista de modos mais prováveis à categoria de modo de predição intra angular que está mais próxima do modo de predição intra angular correspondente da lista de modos mais prováveis.
[00342] Em um exemplo, o circuito de processamento é ainda configurado para completar a primeira parte da lista de modos restantes, repetindo com a segunda categoria de modo de predição intra angular com classificação mais alta.
[00343] Em um exemplo, cada modo de predição intra é identificado por um índice de modo de predição intra e os circuitos de processamento são configurados para definir a pluralidade de categorias de modo de predição intra angular, com base nos respectivos modos de predição intra angular associados a uma direção horizontal, uma direção vertical e uma ou mais direções diagonais.
[00344] Em um exemplo, cada modo de predição intra é identificado por um índice de modo de predição intra e os circuitos de processamento são configurados para gerar a primeira parte da lista de modos restantes, incluindo um ou mais modos de predição intra angular na primeira parte da lista de modos restantes, cujo respectivo índice de modo de predição intra tem um deslocamento de +1, -1, +2, -2, +3, - 3, +4 ou -4 em relação a um índice de modo de predição intra de um modo de predição intra angular da lista de modos mais prováveis.
[00345] Em um exemplo, cada elemento da lista de modos mais prováveis é identificado por um índice de modos mais prováveis e os circuitos de processamento são configurados para gerar a primeira parte da lista de modos restantes, incluindo um ou mais modos de predição intra angular no primeira parte da lista de modos restantes, cujo respectivo índice de modo de predição intra tem um deslocamento de +1, -1, +2, -2, +3, -3, +4 ou -4 em relação a um índice de modo de predição intra, de um modo de predição intra angular da lista de modos mais prováveis.
[00346] Em um exemplo, o circuito de processamento é configurado para gerar a primeira parte da lista de modos restantes, incluindo um ou mais modos de predição intra angular na primeira parte da lista de modos restantes, com base em um loop de processamento começando com o deslocamento de +1 em relação a um índice de modo de predição intra de um modo de predição intra angular da lista de modos mais prováveis, que é incrementado durante cada rodada do loop de processamento, ou com o deslocamento de -1 em relação a um índice de modo de predição intra de um modo de predição intra angular da lista de modos mais prováveis, que é diminuída durante cada rodada do loop de processamento.
[00347] Em um exemplo, o circuito de processamento é configurado para repetir o loop de processamento para um modo de predição intra angular da lista de modos mais prováveis tendo um pequeno índice de modos mais prováveis, mais frequentemente do que o loop de processamento para um modo de predição intra angular da lista de modos mais prováveis com um grande índice de modos mais prováveis.
[00348] Em um exemplo, o circuito de processamento é configurado para gerar a primeira parte da lista de modos restantes, incluindo um ou mais modos de predição intra angular na primeira parte da lista de modos restantes, cujo respectivo índice de modo de predição intra tem um deslocamento de +2 , -2, +4, -4, +6, -6, +8 ou -8 em relação a um índice de modo de predição intra de um modo de predição intra angular da lista de modos mais prováveis.
[00349] Em um exemplo, em que o circuito de processamento é ainda configurado para gerar a segunda parte da lista de modos restantes, incluindo aqueles modos de predição intra da pluralidade de modos de predição intra na segunda parte da lista de modos restantes que não fazem parte da lista de modos mais prováveis e a primeira parte da lista de modos restantes.
[00350] Em um exemplo, o circuito de processamento é ainda configurado para prever valores de amostra do bloco de imagem atual usando o modo de predição intra adotado e para fornecer um bloco de imagem previsto (105).
[00351] Em um exemplo, o aparelho é um aparelho de codificação, e em que o circuito de processamento é ainda configurado para: codificar o bloco de imagem atual com base no bloco de imagem previsto e no modo de predição intra adotado.
[00352] Em um exemplo, o circuito de processamento é ainda configurado para sinalizar um código binário truncado para um modo de predição intra do bloco de imagem atual, se o modo de predição intra pertencer a lista de modos restantes.
[00353] Em um exemplo, o aparelho é um aparelho de decodificação, e em que o circuito de processamento é ainda configurado para decodificar o bloco de imagem atual, com base no bloco de imagem previsto e no modo de predição intra adotado.
[00354] Em um exemplo, em que o circuito de processamento é ainda configurado para analisar um código binário truncado para determinar um modo de predição intra do bloco de imagem atual, se o modo de predição intra pertencer à lista de modos restantes.
[00355] Em um exemplo é provido um método para determinar um modo de predição intra adotado com base em uma lista de modos mais prováveis e uma lista de modos restantes tendo uma primeira parte e uma segunda parte, em que o modo de predição intra adotado é um de uma pluralidade de modos de predição intra compreendendo uma pluralidade de modos de predição intra angular para predizer valores de amostra de um bloco de imagem atual, em que o método compreende: gerar a primeira parte da lista de modos restantes, incluindo um ou mais modos de predição intra angular determinados com base na lista de modos mais prováveis, de tal modo que um ou mais modos de predição intra angular da primeira parte da lista de modos restantes estão próximos de um respectivo modo de predição intra angular, da lista de modos mais prováveis; e determinar o modo de predição intra adotado, no caso do modo de predição intra adotado fazer parte da primeira parte da lista de modos restantes, usando menos bits, por exemplo, para codificar ou decodificar o modo de predição intra adotado,
do que no caso do modo de predição intra adotado fazer parte da segunda parte da lista de modos restantes.
[00356] Em um exemplo, é fornecido um produto de programa de computador que compreende código de programa para realizar os exemplos acima quando executado em um computador ou processador.
[00357] Em um exemplo, o circuito de processamento é ainda configurado para determinar a primeira parte da lista de modos restantes de uma lista de modos padrão predeterminada que compreende ou consiste em um modo planar (PLANAR_IDX), um modo dc (DC_IDX), um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) e um modo diagonal (DIA_IDX).
[00358] Em um exemplo, o circuito de processamento é ainda configurado para determinar a primeira parte da lista de modos restantes, incluindo os modos de predição intra de vizinhos de segunda camada do bloco de imagem atual.
[00359] Em um exemplo, no codificador e no decodificador, o modo intra é sinalizado usando binarização truncada para os modos intra não MPM.
[00360] Em um exemplo, uma vez que a binarização truncada pode ser usada para codificar 61 modos não MPM, os primeiros três modos exigirão que 5 bits sejam sinalizados e, portanto, os três primeiros modos na lista de modos não MPM são gerados com base nos modos intra que já estão incluídos na lista de MPM.
[00361] Em um exemplo, em que os três primeiros modos na lista de modos não MPM são sinalizados por um mapeamento de palavra de código simples, em que o mapeamento no codificador é definido como uma etapa que mapeia uma palavra de código de modo intra que consome menos bits com um “modo intra diferente”, que sabidamente consome mais bits e ao mesmo tempo é mais provável. No decodificador, o mapeamento inverso é definido como uma etapa que mapeia um modo intra que foi analisado a partir do fluxo de bits com um “modo intra diferente”, que é então usado como o modo de predição intra real para o bloco de imagem atual.
[00362] Em um exemplo, um método de decodificação de dados de vídeo é fornecido, o método compreende: receber dados codificados de um bloco de imagem de uma unidade de codificação; decodificar os dados codificados para identificar um modo de predição intra de uma pluralidade de modos de predição intra para o bloco de imagem, a pluralidade de modos de predição intra compreende um conjunto de modos mais prováveis, MPM, um primeiro conjunto de modos de predição intra e um segundo conjunto de modos de predição intra, em que um modo no primeiro conjunto de modos de predição intra é codificado usando N bits, um modo no segundo conjunto de modos de predição intra é codificado usando M bits, N e M são inteiros positivos, N é menor que M, decodificar os dados codificados para identificar um modo de predição intra de uma pluralidade de modos predição intra para o bloco de imagem, compreendendo: decodificar os dados codificados para obter uma indicação sinalizando se o modo de predição intra para o bloco de imagem está no conjunto de MPM ou não; se a indicação que sinaliza o modo de predição intra para o bloco de imagem não estiver no conjunto de MPM, obter uma palavra de código de modo de predição intra para o bloco de imagem, a palavra de código de modo de predição intra correspondendo a um modo de predição intra inicial; se a palavra de código do modo de predição intra para o bloco de imagem for codificada usando N bits, mapear o modo de predição intra inicial para obter um modo de predição intra mapeado, usando o modo de predição intra mapeado, como o modo de predição intra identificado para o bloco de imagem; ou, se a palavra de código do modo de predição intra para o bloco de imagem for codificada usando M bits, usando o modo de predição intra inicial como o modo de predição intra identificado para o bloco de imagem.
[00363] Em um exemplo, se a palavra de código do modo de predição intra para o bloco de imagem é codificada usando N bits, um valor da palavra de código do modo de predição intra para o bloco de imagem é menor do que qualquer um de uma pluralidade de valores correspondentes ao segundo conjunto modos de predição intra.
[00364] Em um exemplo, o mapeamento do modo de predição intra inicial para obter o modo de predição intra mapeado compreende: mapear o modo de predição intra inicial de acordo com o conjunto de MPM, para obter o modo de predição intra mapeado.
[00365] Em um exemplo, o mapeamento do modo de predição intra inicial de acordo com o conjunto de MPM, compreende: classificar uma pluralidade de categorias de modos de predição intra, de acordo com o número e/ou a direção dos modos de predição intra no conjunto de MPM que se encontra dentro de cada categoria de modo de predição intra; mapear o modo de predição intra inicial de acordo com a categoria de modo de predição intra com classificação mais alta.
[00366] Em um exemplo, o mapeamento do modo de predição intra inicial, de acordo com o conjunto de MPM compreende: gerar um conjunto inicial de modos de predição intra de acordo para adicionar um deslocamento a uma pluralidade de valores correspondentes ao conjunto de MPM; classificar o conjunto de MPM para obter uma categoria de modo de predição intra com classificação mais alta; mapear o modo de predição intra inicial de acordo com a categoria de modo de predição intra com classificação mais alta e o conjunto inicial de modos de predição intra.
[00367] Em um exemplo, o conjunto inicial de modos de predição intra é gerado de acordo para adicionar um deslocamento de -1, + 1, +2, -2, +3, -3, +4 ou -4 a uma pluralidade de valores correspondentes ao conjunto de MPM.
[00368] Em um exemplo, o mapeamento do modo de predição intra inicial para obter o modo de predição intra mapeado compreende: mapear o modo de predição intra inicial de acordo com uma lista de modos padrão predeterminada que compreende ou consiste em um modo planar (PLANAR_IDX), um modo dc (DC_IDX), um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) e um modo diagonal (DIA_IDX), para obter o modo de predição intra mapeado.
[00369] Em alguns exemplos, outros aspectos da presente divulgação são resumidos no que se segue: a presente divulgação fornece um método de decodificação de dados de vídeo, o método compreendendo: decodificar dados codificados de um bloco de imagem para obter um modo de predição intra de uma pluralidade de modos de predição intra para o bloco de imagem, a pluralidade de modos de predição intra para o bloco de imagem compreende um conjunto de modos mais prováveis, MPMs e um conjunto de não MPM, em que o conjunto de não MPM compreende um primeiro conjunto de modos de predição intra e um segundo conjunto de modos de predição intra, em que um modo no primeiro conjunto de modos de predição intra é codificado usando N bits, um modo no segundo conjunto de modos de predição intra é codificado usando M bits, N e M são inteiros positivos, N é menor que M, em que a decodificação de dados codificados de um bloco de imagem para obter um modo de predição intra de uma pluralidade de modos predição intra para o bloco de imagem compreendendo: decodificar os dados codificados para obter uma indicação sinalizando se o modo de predição intra para o bloco de imagem está no conjunto de MPM ou não; se a indicação sinalizando o modo de predição intra para o bloco de imagem não estiver no conjunto de MPMs, gerando uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e pelo menos um modo de predição intra no conjunto de não MPM; decodificar os dados codificados para obter uma palavra de código de modo de predição intra para o bloco de imagem; obter o modo de predição intra para o bloco de imagem de acordo com a relação de mapeamento e a palavra de código do modo de predição intra.
[00370] Em uma modalidade, a relação de mapeamento é gerada de acordo com o conjunto de MPMs.
[00371] Em uma modalidade, a relação de mapeamento é gerada de acordo com uma lista de modo padrão predeterminada que compreende ou consiste em um modo planar
(PLANAR_IDX), um modo dc (DC_IDX), um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) e um modo diagonal (DIA_IDX).
[00372] Em uma modalidade, a geração de uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e pelo menos um modo de predição intra no conjunto de não MPM, compreende: classificar uma pluralidade de categorias de modo de predição intra de acordo com ao número e/ou a direção dos modos de predição intra no conjunto de MPMs que se encontram dentro de cada categoria de modo de predição intra; gerar a relação de mapeamento de acordo com a categoria de modo de predição intra com classificação mais alta.
[00373] Em uma modalidade, a geração de uma relação de mapeamento entre um modo de predição intra no primeiro conjunto de modos de predição intra e um modo de predição intra no segundo um conjunto de modos de predição intra, compreendendo: gerar um conjunto inicial de modos de predição intra de acordo com adicionar um deslocamento para uma pluralidade de valores correspondentes ao conjunto de MPMs; classificar o conjunto de MPMs para obter uma categoria de modo de predição intra com classificação mais alta; gerar a relação de mapeamento de acordo com a categoria de modo de predição intra com classificação mais alta e o conjunto inicial de modos de predição intra.
[00374] Em uma modalidade, o conjunto inicial de modos de predição intra é gerado de acordo para adicionar um deslocamento de -1, + 1, +2, -2, +3, -3, +4 ou -4 a uma pluralidade de valores correspondentes ao conjunto de MPMs.
[00375] Em uma modalidade, a geração de uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e, pelo menos, um modo de predição intra no conjunto de não MPM, compreende: gerar um primeiro conjunto de valores de acordo com os valores de modos de predição no conjunto de MPM, um valor no primeiro conjunto de valores é o menor valor do modo de predição no conjunto de não MPM; gerar um segundo conjunto de valores de acordo com a adição de um deslocamento ao valor de pelo menos um modo de predição no conjunto de MPMs; gerar a relação de mapeamento de acordo com o primeiro conjunto de valores e o segundo conjunto de valores.
[00376] Em uma modalidade, a geração de uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e, pelo menos um modo de predição intra no conjunto de não MPM, compreende: gerar um primeiro conjunto de valores de acordo com os valores dos modos de predição no conjunto de MPMs, um valor no primeiro conjunto de valores é o menor valor do modo de predição no conjunto de não MPM; gerar um segundo conjunto de valores de acordo com a adição de um deslocamento ao valor de pelo menos um modo de predição angular no conjunto de MPMs; gerar a relação de mapeamento de acordo com o primeiro conjunto de valores e o segundo conjunto de valores.
[00377] Em uma modalidade, uma quantidade de modos de predição na pluralidade de modos de predição intra para o bloco de imagem é 67, uma quantidade de modos de predição no conjunto de MPMs é 6, uma quantidade de modos de predição no primeiro conjunto de modos de predição intra no conjunto de não MPMs é 3 e uma quantidade de modos de predição no segundo conjunto de modos de predição intra no conjunto de não MPM é 58, em que a geração de uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e, pelo menos, um modo de predição intra no conjunto de não MPM, compreende: a obtenção dos menores três valores de três modos de predição no conjunto de não MPM de acordo com os valores dos modos de predição no conjunto de MPMs; obtenção de dois valores de dois modos de predição angular no conjunto de MPMs, adicionando deslocamento aos dois valores para obter valores de deslocamento; obter um segundo conjunto de valores de acordo com os valores dos modos de predição no conjunto de MPMs e os valores de deslocamento; gerar a relação de mapeamento de acordo com o primeiro conjunto de valores e o segundo conjunto de valores.
[00378] Em uma modalidade, a geração de uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e pelo menos um modo de predição intra no conjunto de não MPM, compreende: gerar um primeiro conjunto de valores de acordo com os valores dos modos de predição no conjunto de MPMs, um valor no primeiro conjunto de valores é o menor valor do modo de predição no conjunto de não MPM; gerar um segundo conjunto de valores de acordo com uma lista de modos padrão predeterminada compreendendo ou consistindo em um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) e um modo diagonal modo (DIA_IDX); gerar a relação de mapeamento de acordo com o primeiro conjunto de valores e o segundo conjunto de valores.
[00379] Em uma modalidade, a geração de uma relação de mapeamento entre pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra e pelo menos um modo de predição intra no conjunto de não MPM, compreende: gerar um primeiro conjunto de valores de acordo com os valores dos modos de predição no conjunto de MPMs, um valor no primeiro conjunto de valores é o menor valor do modo de predição no conjunto de não MPM; gerar um segundo conjunto de valores de acordo com uma lista de modo padrão predeterminada compreendendo ou consistindo em um modo planar (PLANAR_IDX), um modo dc (DC_IDX), um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) e um modo diagonal (DIA_IDX); gerar a relação de mapeamento de acordo com o primeiro conjunto de valores e o segundo conjunto de valores.
[00380] Em uma modalidade, a palavra de código do modo de predição intra é codificada usando 5 bits, e a palavra de código do modo de predição intra é 00000, 00001 ou
00010.
[00381] Em uma modalidade, um de pelo menos um modo de predição intra no primeiro conjunto de modos de predição intra corresponde a um de pelo menos um modo de predição intra no conjunto de não MPM.
[00382] Além disso, é fornecido um decodificador que compreende circuitos de processamento configurados para realizar qualquer um dos métodos acima.
[00383] Além disso, é fornecido um produto de programa de computador que compreende um código de programa para executar qualquer um dos métodos acima.
[00384] Além disso, é fornecido um decodificador para decodificar dados de vídeo, compreendendo: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado aos processadores e armazenamento de programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar o método de acordo com qualquer uma das reivindicações 1 a
13.
[00385] A presente divulgação fornece um método para construir uma lista de Modo Mais Provável, MPM, o método compreendendo: determinar se um bloco esquerdo de uma unidade de codificação atual (bloco de codificação) está disponível ou não, se o bloco esquerdo da unidade de codificação atual está disponível, adicionando um modo de predição intra do bloco esquerdo, em uma lista de MPM; determinar se um bloco acima da unidade de codificação atual está disponível ou não, se o bloco acima da unidade de codificação atual estiver disponível, adicionar um modo de predição intra do bloco acima na lista de MPM; se um modo planar não estiver na lista de MPM, adicionar o modo planar na lista de MPM; se um modo DC não estiver na lista de MPM, adicionar o modo DC na lista de MPM.
[00386] Em uma modalidade, quando o modo de predição do bloco esquerdo não é um modo de predição intra, o bloco esquerdo da unidade de codificação atual não está disponível.
[00387] Em uma modalidade, quando a unidade de codificação atual é um bloco de codificação localizado na extremidade esquerda de um quadro, o bloco esquerdo da unidade de codificação atual não está disponível.
[00388] Em uma modalidade, o processamento paralelo é suportado e a unidade de codificação atual é um bloco de codificação localizado na extremidade esquerda de um bloco, o bloco esquerdo da unidade de codificação atual não está disponível.
[00389] Em uma modalidade, o processamento paralelo não é suportado e a unidade de codificação atual é um bloco de codificação localizado na extremidade esquerda de um bloco, mas não na extremidade esquerda de um quadro, o bloco esquerdo da unidade de codificação atual está disponível.
[00390] Em uma modalidade, o processamento paralelo é suportado e a unidade de codificação atual é um bloco de codificação localizado na extremidade esquerda de uma fatia, o bloco esquerdo da unidade de codificação atual não está disponível.
[00391] Em uma modalidade, o processamento paralelo não é suportado e a unidade de codificação atual é um bloco de codificação localizado na extremidade esquerda de uma fatia, mas não na extremidade esquerda de um quadro, o bloco esquerdo da unidade de codificação atual está disponível.
[00392] Em uma modalidade, quando o modo de predição do bloco acima não é um modo de predição intra, o bloco acima da unidade de codificação atual não está disponível.
[00393] Em uma modalidade, quando a unidade de codificação atual é um bloco de codificação localizado na extremidade superior de um quadro, o bloco acima da unidade de codificação atual não está disponível.
[00394] Em uma modalidade, o processamento paralelo é suportado e a unidade de codificação atual é um bloco de codificação localizado na extremidade superior de um bloco, o bloco acima da unidade de codificação atual não está disponível.
[00395] Em uma modalidade, o processamento paralelo não é suportado e a unidade de codificação atual for um bloco de codificação localizado na extremidade superior de um bloco, mas não na extremidade superior de um quadro, o bloco acima da unidade de codificação atual está disponível.
[00396] Em uma modalidade, o processamento paralelo é suportado e a unidade de codificação atual é um bloco de codificação localizado na extremidade superior de uma fatia, o bloco acima da unidade de codificação atual não está disponível.
[00397] Em uma modalidade, o processamento paralelo não é suportado e a unidade de codificação atual é um bloco de codificação localizado na extremidade superior de uma fatia, mas não na extremidade superior de um quadro, o bloco acima da unidade de codificação atual está disponível.
[00398] Em uma modalidade, quando o tamanho do buffer de linha é restrito e a unidade de codificação atual é um bloco de codificação localizado na extremidade superior de uma CTU atual, o bloco acima da unidade de codificação atual não está disponível.
[00399] Em uma modalidade, o método compreende ainda:
se o bloco esquerdo da unidade de codificação atual estiver disponível e o modo de predição intra do bloco esquerdo for um modo angular, adicionar um deslocamento ao modo de predição do bloco esquerdo para obter um novo modo de predição, se o novo modo de predição não estiver na lista de MPM, adicionar o novo modo de predição na lista de MPM.
[00400] Em uma modalidade, o deslocamento é -1.
[00401] Em uma modalidade, o deslocamento é 1.
[00402] Em uma modalidade, o método compreende ainda: se o bloco acima da unidade de codificação atual estiver disponível e o modo de predição intra do bloco acima for um modo angular, adicionar um deslocamento ao modo de predição do bloco acima para obter um modo de predição de deslocamento acima, se o modo de predição de deslocamento acima não estiver na lista de MPM, adicionar o modo de predição de deslocamento acima na lista de MPM.
[00403] Em uma modalidade, o deslocamento é -1.
[00404] Em uma modalidade, o deslocamento é 1.
[00405] Em uma modalidade, o método compreende ainda: adição de um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) ou um modo diagonal (DIA_IDX) na lista de MPM.
[00406] Em uma modalidade, o método compreende ainda uma lista de candidatos de modo angular compreendendo ou consistindo em: um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) ou um modo diagonal (DIA_IDX) na lista de MPM; e o método compreende ainda: determinar iterativamente de acordo com sua ordem na lista, se um modo angular da lista está na lista de MPM, e se o respectivo modo angular não está na lista de MPM adicionar o respectivo modo angular na lista de MPM.
[00407] Em uma modalidade, a construção da lista de MPM começa com a etapa de determinar se um bloco esquerdo de uma unidade de codificação atual está disponível ou não, por exemplo, com base em uma lista de MPM vazia.
[00408] Em uma modalidade, o método compreende ainda: se o bloco esquerdo do bloco de codificação atual não estiver disponível e um outro bloco na direção esquerda geral estiver disponível (por exemplo, BL ou AL na Figura 5), inserir o modo de predição intra do outro bloco na lista de MPM inicial, se o bloco esquerdo estiver disponível, não inserir o modo de predição intra do outro bloco na lista de MPM inicial.
[00409] Em uma modalidade, o método compreende ainda: se o bloco acima do bloco de codificação atual não estiver disponível e um outro bloco na direção geral acima estiver disponível (por exemplo, AR ou AL na Figura 5), inserir o modo de predição intra do outro bloco na lista de MPM inicial, se o bloco acima estiver disponível, não inserir o modo de predição intra do outro bloco na lista de MPM inicial.
[00410] Em uma modalidade, o método compreende ainda: adicionar um modo vertical (VER_IDX), um modo horizontal (HOR_IDX), um modo intra 2 (2), um modo diagonal vertical (VDIA_IDX) ou um modo diagonal (DIA_IDX) no MPM inicial lista se eles ainda não estiverem na lista de MPM inicial.
[00411] Em uma modalidade, o método compreende ainda: se ambos os blocos esquerdo e acima do bloco de codificação atual não forem angulares, então verificar um outro bloco vizinho (por exemplo, BL ou AL ou AR na Figura 5). Se algum deles (BL, ou AL ou AR) for angular, usar este modo angular como o modo angular inicial para o processo de derivação -1 + 1, conforme descrito antes.
[00412] A presente divulgação fornece ainda um codificador que compreende circuitos de processamento para realizar qualquer um dos métodos acima.
[00413] A presente divulgação fornece ainda um decodificador que compreende circuitos de processamento para realizar qualquer um dos métodos acima.
[00414] A presente divulgação fornece ainda um produto de programa de computador que compreende um código de programa para executar qualquer um dos métodos acima.
[00415] A presente divulgação fornece ainda um decodificador para construir uma lista de Modo Mais Provável, MPM, compreendendo: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado aos processadores e armazenamento de programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar qualquer um dos métodos acima.
[00416] A presente divulgação fornece ainda um codificador para construir um Modo Mais Provável, MPM, lista, compreendendo: um ou mais processadores; e um meio de armazenamento legível por computador não transitório acoplado aos processadores e armazenamento de programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar qualquer um dos métodos acima.
[00417] Implementações da matéria e as operações descritas nesta divulgação podem ser implementadas em circuitos eletrônicos digitais, ou em software, firmware ou hardware de computador, incluindo as estruturas citadas nesta divulgação e seus equivalentes estruturais, ou em combinações de um ou mais dos mesmos. Implementações do assunto descrito nesta divulgação podem ser implementadas como um ou mais programas de computador, ou seja, um ou mais módulos de instruções de programa de computador, codificados em meio de armazenamento de computador para execução, ou para controlar a operação do aparelho de processamento de dados. Alternativamente ou além disso, as instruções do programa podem ser codificadas em um sinal propagado gerado artificialmente, por exemplo, um sinal elétrico, óptico ou eletromagnético gerado por máquina que é gerado para codificar informações para transmissão para um aparelho receptor adequado para execução por um aparelho de processamento de dados. Um meio de armazenamento de computador, por exemplo, o meio legível por computador, pode ser, ou ser incluído em, um dispositivo de armazenamento legível por computador, um substrato de armazenamento legível por computador, uma matriz ou dispositivo de memória de acesso aleatório ou serial ou uma combinação de um ou mais desses. Além disso, embora um meio de armazenamento de computador não seja um sinal propagado, um meio de armazenamento de computador pode ser uma fonte ou destino de instruções de programa de computador codificadas em um sinal propagado gerado artificialmente. O meio de armazenamento de computador também pode ser, ou incluído em um ou mais componentes físicos e/ou não transitórios separados ou mídia (por exemplo, vários CDs, discos ou outros dispositivos de armazenamento).
[00418] Em algumas implementações, as operações descritas nesta divulgação podem ser implementadas como um serviço hospedado fornecido em um servidor em uma rede de computação em nuvem. Por exemplo, o meio de armazenamento legível por computador pode ser agrupado logicamente e acessível dentro de uma rede de computação em nuvem. Os servidores dentro da rede de computação em nuvem podem incluir uma plataforma de computação em nuvem para fornecer serviços baseados em nuvem. Os termos “nuvem”, “computação em nuvem” e “baseado em nuvem” podem ser usados indistintamente, conforme apropriado, sem se afastar do escopo desta divulgação. Os serviços baseados em nuvem podem ser serviços hospedados que são fornecidos por servidores e fornecidos através de uma rede para uma plataforma de cliente para aprimorar, complementar ou substituir aplicativos executados localmente em um computador cliente. O circuito pode usar serviços baseados em nuvem para receber rapidamente atualizações de software, aplicativos e outros recursos que, de outra forma, exigiriam um longo período de tempo antes que os recursos pudessem ser liberados ao circuito.
[00419] Um programa de computador (também conhecido como programa, software, aplicativo de software, script ou código) pode ser escrito em qualquer forma de linguagem de programação, incluindo linguagens compiladas ou interpretadas, linguagens declarativas ou processuais, e pode ser implementado em qualquer forma, incluindo como um programa autônomo ou como um módulo, componente, subrotina, objeto ou outra unidade adequada para uso em um ambiente de computação. Um programa de computador pode, mas não precisa, corresponder a um arquivo em um sistema de arquivos. Um programa pode ser armazenado em uma parte de um arquivo que contém outros programas ou dados (por exemplo, um ou mais scripts armazenados em um documento de linguagem de marcação), em um único arquivo dedicado ao programa em questão ou em vários arquivos coordenados (por exemplo, arquivos que armazenam um ou mais módulos, subprogramas ou partes do código). Um programa de computador pode ser implementado para ser executado em um computador ou em vários computadores localizados em um local ou distribuídos em vários locais e interconectados por uma rede de comunicação.
[00420] Os processos e fluxos lógicos descritos nesta divulgação podem ser realizados por um ou mais processadores programáveis executando um ou mais programas de computador para realizar ações operando em dados de entrada e gerando saída. Os processos e fluxos lógicos também podem ser realizados, e o aparelho também pode ser implementado como, circuitos lógicos de propósito especial, por exemplo, um FPGA (matriz de porta programável em campo) ou um ASIC (circuito integrado de aplicação específica).
[00421] Os processadores adequados para a execução de um programa de computador incluem, a título de exemplo, microprocessadores de uso geral e especial e qualquer um ou mais processadores de qualquer tipo de computador digital. Geralmente, um processador receberá instruções e dados de uma memória somente leitura ou uma memória de acesso aleatório ou ambas. Os elementos essenciais de um computador são um processador para realizar ações de acordo com as instruções e um ou mais dispositivos de memória para armazenar instruções e dados. Geralmente, um computador também incluirá, ou será operacionalmente acoplado para receber dados ou transferir dados para, ou ambos, um ou mais dispositivos de armazenamento em massa para armazenar dados, por exemplo, discos magnéticos, magneto ópticos ou discos ópticos. No entanto, um computador não precisa ter esses dispositivos. Além disso, um computador pode ser incorporado em outro dispositivo, por exemplo, um telefone móvel, um assistente digital pessoal (PDA), um reprodutor de áudio ou vídeo móvel, um console de jogos, um receptor de Sistema de Posicionamento Global (GPS) ou um dispositivo de armazenamento portátil (por exemplo, uma unidade flash de barramento serial universal (USB)), para citar apenas alguns. Dispositivos adequados para armazenar instruções e dados de programas de computador incluem todas as formas de memória não volátil, mídia e dispositivos de memória, incluindo a título de exemplo, dispositivos de memória semicondutores, por exemplo, EPROM, EEPROM e dispositivos de memória flash; discos magnéticos, por exemplo, discos rígidos internos ou discos removíveis; discos magneto ópticos; e discos de CD-ROM e DVD-ROM. O processador e a memória podem ser complementados por, ou incorporados em circuitos lógicos de finalidade especial.
[00422] Embora esta divulgação contenha muitos detalhes de implementação específicos, estes não devem ser interpretados como limitações no escopo de quaisquer implementações ou do que pode ser reivindicado, mas sim como descrições de recursos específicos para implementações particulares. Determinados recursos que são descritos nesta divulgação no contexto de implementações separadas também podem ser implementados, em combinação em uma única implementação. Por outro lado, vários recursos que são descritos no contexto de uma única implementação também podem ser implementados em várias implementações separadamente ou em qualquer subcombinação adequada. Além disso, embora as características possam ser descritas acima como agindo em certas combinações e mesmo inicialmente reivindicadas como tal, uma ou mais características de uma combinação reivindicada podem, em alguns casos, ser retiradas da combinação e a combinação reivindicada pode ser direcionada a uma subcombinação ou variação de uma subcombinação.
[00423] Da mesma forma, embora as operações sejam representadas nos desenhos em uma ordem específica, isso não deve ser entendido como exigindo que tais operações sejam realizadas na ordem particular mostrada ou em ordem sequencial, ou que todas as operações ilustradas sejam realizadas, para atingir os resultados desejáveis. Em certas circunstâncias, multitarefa e processamento paralelo podem ser vantajosos. Além disso, a separação de vários componentes do sistema nas implementações descritas acima não deve ser entendida como exigindo tal separação em todas as implementações, e deve ser entendido que os componentes e sistemas do programa descritos podem geralmente ser integrados em um único produto de software ou empacotados em vários produtos de software.
[00424] Assim, implementações particulares da matéria foram descritas. Outras implementações estão dentro do escopo das seguintes reivindicações. Em alguns casos, as ações citadas nas reivindicações podem ser realizadas em uma ordem diferente e ainda alcançar os resultados desejáveis. Além disso, os processos descritos nas figuras anexas não requerem necessariamente a ordem particular mostrada, ou ordem sequencial, para atingir os resultados desejáveis. Em certas implementações, multitarefa e processamento paralelo podem ser vantajosos.
[00425] Embora várias modalidades tenham sido fornecidas na presente divulgação, deve ser entendido que os sistemas e métodos divulgados podem ser incorporados em muitas outras formas específicas. Os presentes exemplos devem ser considerados ilustrativos e não restritivos, e a intenção não deve ser limitada aos detalhes fornecidos no presente documento. Por exemplo, os vários elementos ou componentes podem ser combinados ou integrados em outro sistema ou certos recursos podem ser omitidos ou não implementados.
[00426] Além disso, técnicas, sistemas, subsistemas e métodos descritos e ilustrados nas várias modalidades como discretos ou separados podem ser combinados ou integrados com outros sistemas, módulos, técnicas ou métodos, sem se afastar do escopo da presente divulgação. Outros itens mostrados ou discutidos como acoplados ou diretamente acoplados ou comunicando-se uns com os outros podem ser indiretamente acoplados ou se comunicam através de alguma interface, dispositivo ou componente intermediário, seja eletricamente, mecanicamente ou de outra forma.
[00427] Definições de acrônimos e glossário:
CTU/CTB - Unidade de Árvore de Codificação/Bloco de Árvore de Codificação CU/CB - Unidade de Codificação/Bloco de Codificação PU/PB - Unidade de Predição/Bloco de Predição TU/TB - Unidade de Transformação/Bloco de Transformação HEVC - Codificação de Vídeo de Alta Eficiência.

Claims (16)

REIVINDICAÇÕES EMENDADAS
1. Método para a construção de uma lista de Modo Mais Provável, MPM, para o processo de predição correspondente ao bloco de vídeo, caracterizado pelo fato de que o método compreende: determinar se um bloco esquerdo de um bloco de codificação atual está disponível ou não, se o bloco esquerdo do bloco de codificação atual estiver disponível, adicionar um modo de predição intra do bloco esquerdo em uma lista de MPM; determinar se um bloco acima do bloco de codificação atual está disponível ou não, se o bloco acima do bloco de codificação atual estiver disponível, adicionar um modo de predição intra do bloco acima na lista de MPM; adicionar um deslocamento para o modo de predição intra do bloco esquerdo para obter um novo modo de predição, se o bloco esquerdo do bloco de codificação atual estiver disponível e o modo de predição intra do bloco esquerdo for um modo angular; e adicionar o novo modo de predição na lista de MPM, se o novo modo de predição não estiver na lista de MPM.
2. Método para a construção de uma lista de Modo Mais Provável, MPM, para o processo de predição correspondente ao bloco de vídeo, caracterizado pelo fato de que o método compreende: determinar se um bloco esquerdo de um bloco de codificação atual está disponível ou não, se o bloco esquerdo do bloco de codificação atual estiver disponível, adicionar um modo de predição intra do bloco esquerdo em uma lista de MPM;
determinar se um bloco acima do bloco de codificação atual está disponível ou não, se o bloco acima do bloco de codificação atual estiver disponível, adicionar um modo de predição intra do bloco acima na lista de MPM; adicionar um deslocamento para o modo de predição intra do bloco acima para obter um modo de predição de deslocamento acima, se o bloco acima do bloco de codificação atual estiver disponível e o modo de predição intra do bloco acima for um modo angular; e adicionar o modo de predição de deslocamento acima na lista de MPM, se o modo de predição de deslocamento acima não estiver na lista de MPM.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o deslocamento é -1 ou +1.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que compreende ainda: se um modo planar não estiver na lista de MPM, adicionar o modo planar à lista de MPM; e se um modo DC não estiver na lista de MPM, adicionar o modo DC à lista de MPM.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que, quando um modo de predição do bloco esquerdo não é um modo de predição intra, o bloco esquerdo do bloco de codificação atual não está disponível.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que, quando o bloco de codificação atual é um bloco de codificação localizado na extremidade esquerda de um quadro, o bloco esquerdo do bloco de codificação atual não está disponível.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que quando o processamento paralelo é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade esquerda de uma fatia ou uma parte, o bloco esquerdo do bloco de codificação atual não está disponível.
8. Método, de acordo com qualquer uma das reivindicações 1 a 7, caracterizado pelo fato de que, quando o processamento paralelo não é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade esquerda de uma fatia ou uma parte, mas não na extremidade esquerda de um quadro, o bloco esquerdo do bloco de codificação atual está disponível.
9. Método, de acordo com qualquer uma das reivindicações 1 a 8, caracterizado pelo fato de que, quando um modo de predição do bloco acima não é um modo de predição intra, o bloco acima do bloco de codificação atual não está disponível.
10. Método, de acordo com qualquer uma das reivindicações 1 a 9, caracterizado pelo fato de que, quando o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de um quadro, o bloco acima do bloco de codificação atual não está disponível.
11. Método, de acordo com qualquer uma das reivindicações 1 a 10, caracterizado pelo fato de que quando o processamento paralelo é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de uma fatia ou uma parte, o bloco acima do bloco de codificação atual não está disponível.
12. Método, de acordo com qualquer uma das reivindicações 1 a 11, caracterizado pelo fato de que quando o processamento paralelo não é suportado e o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de uma fatia ou bloco, mas não na extremidade superior de um quadro, o bloco acima do bloco de codificação atual está disponível.
13. Método, de acordo com qualquer uma das reivindicações 1 a 12, caracterizado pelo fato de que, quando o tamanho do buffer de linha é restrito e o bloco de codificação atual é um bloco de codificação localizado na extremidade superior de uma unidade de árvore de codificação atual, CTU, o bloco acima do bloco de codificação atual não está disponível.
14. Codificador, caracterizado pelo fato de que compreende circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 13.
15. Decodificador, caracterizado pelo fato de que compreende circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 13.
16. Meio de armazenamento legível por computador não transitório compreendendo instruções, caracterizado pelo fato de que quando as instruções são executadas por um ou mais processadores, fazem com que um computador realize o método conforme definido em qualquer uma das reivindicações 1 a 13.
BR112021003679-2A 2018-08-27 2019-08-15 método, codificador e decodificador para predição intra BR112021003679A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862723299P 2018-08-27 2018-08-27
US62/723,299 2018-08-27
PCT/CN2019/100815 WO2020042916A1 (en) 2018-08-27 2019-08-15 Method and Apparatus for Intra Prediction

Publications (1)

Publication Number Publication Date
BR112021003679A2 true BR112021003679A2 (pt) 2021-05-18

Family

ID=69645012

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021003679-2A BR112021003679A2 (pt) 2018-08-27 2019-08-15 método, codificador e decodificador para predição intra

Country Status (10)

Country Link
US (1) US11044469B2 (pt)
EP (1) EP3815372A4 (pt)
JP (1) JP2021535679A (pt)
KR (2) KR20210027486A (pt)
CN (1) CN112385227A (pt)
AU (3) AU2019330406B2 (pt)
BR (1) BR112021003679A2 (pt)
CA (1) CA3106487A1 (pt)
CL (1) CL2021000492A1 (pt)
WO (1) WO2020042916A1 (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020043092A1 (en) * 2018-08-31 2020-03-05 Mediatek Singapore Pte. Ltd. Method and apparatus of intra prediction with mpm generation in image and video processing
WO2020091213A1 (ko) * 2018-11-04 2020-05-07 엘지전자 주식회사 영상 코딩 시스템에서 인트라 예측 방법 및 장치
CN116527892A (zh) * 2019-01-08 2023-08-01 Lg电子株式会社 解码设备、编码设备和数据发送设备
US20230137221A1 (en) * 2020-04-02 2023-05-04 Telefonaktiebolaget Lm Ericsson (Publ) Decoding based on bi-directional picture condition
KR20240049364A (ko) * 2021-09-29 2024-04-16 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 디코더측 인트라 모드 도출을 위한 방법 및 디바이스
WO2023198112A1 (en) * 2022-04-15 2023-10-19 Mediatek Inc. Method and apparatus of improvement for decoder-derived intra prediction in video coding system
CN117956164A (zh) * 2022-10-21 2024-04-30 腾讯科技(深圳)有限公司 视频编解码方法、装置、计算机可读介质及电子设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013039676A1 (en) * 2011-09-13 2013-03-21 Mediatek Singapore Pte. Ltd. Method and apparatus for intra mode coding in hevc
CN107197310B (zh) * 2011-10-07 2020-02-21 英迪股份有限公司 对视频信号进行解码的方法
KR20130049522A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
US9628789B2 (en) * 2011-11-18 2017-04-18 Qualcomm Incorporated Reference mode selection in intra mode coding
CN108174205A (zh) * 2011-12-05 2018-06-15 Lg 电子株式会社 帧内预测的方法和设备
US9491458B2 (en) * 2012-04-12 2016-11-08 Qualcomm Incorporated Scalable video coding prediction with non-causal information
WO2014072571A1 (en) * 2012-10-01 2014-05-15 Nokia Corporation Method and apparatus for scalable video coding
CN106031176B (zh) * 2013-12-19 2019-12-13 三星电子株式会社 涉及帧内预测的视频编码方法和装置以及视频解码方法和装置
CN104883565A (zh) * 2014-12-31 2015-09-02 乐视网信息技术(北京)股份有限公司 一种高效视频编码的帧内预测模式决策方法及装置
GB2534606A (en) * 2015-01-29 2016-08-03 Canon Kk Method and device for encoding or decoding an image comprising encoding of decoding information representing prediction modes
CN115134591A (zh) * 2015-06-05 2022-09-30 杜比实验室特许公司 图像编解码方法、比特流存储方法
US20190289301A1 (en) * 2016-05-23 2019-09-19 Kaonmedia Co., Ltd. Image processing method, and image encoding and decoding method using same
US10326986B2 (en) * 2016-08-15 2019-06-18 Qualcomm Incorporated Intra video coding using a decoupled tree structure
US10368107B2 (en) * 2016-08-15 2019-07-30 Qualcomm Incorporated Intra video coding using a decoupled tree structure
US10506228B2 (en) * 2016-10-04 2019-12-10 Qualcomm Incorporated Variable number of intra modes for video coding
EP3577898A4 (en) * 2017-01-31 2020-06-24 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR PARTITIONING A VIDEO BLOCK IMAGE FOR VIDEO CODING
US11032551B2 (en) * 2018-12-04 2021-06-08 Tencent America LLC Simplified most probable mode list generation scheme
US11683501B2 (en) * 2019-01-17 2023-06-20 Tencent America LLC Method and apparatus for video coding

Also Published As

Publication number Publication date
EP3815372A1 (en) 2021-05-05
CA3106487A1 (en) 2020-03-05
KR20210027486A (ko) 2021-03-10
AU2023202684A1 (en) 2023-05-18
CL2021000492A1 (es) 2021-07-02
WO2020042916A1 (en) 2020-03-05
AU2023202685A1 (en) 2023-05-18
AU2019330406A1 (en) 2021-02-04
AU2023202684B2 (en) 2024-04-04
AU2023202685B2 (en) 2023-09-14
JP2021535679A (ja) 2021-12-16
EP3815372A4 (en) 2021-05-05
KR20230156813A (ko) 2023-11-14
CN112385227A (zh) 2021-02-19
AU2019330406B2 (en) 2023-02-02
US20200382768A1 (en) 2020-12-03
US11044469B2 (en) 2021-06-22

Similar Documents

Publication Publication Date Title
BR112021003679A2 (pt) método, codificador e decodificador para predição intra
AU2019335453B2 (en) Method and apparatus for intra prediction
BR112021004679A2 (pt) método e aparelho para predição
US11277608B2 (en) Method and apparatus for intra prediction
US11297345B2 (en) Intra prediction mode derivation based on neighboring blocks
BR112020025155A2 (pt) método e aparelho para predição intra

Legal Events

Date Code Title Description
B154 Notification of filing of divisional application [chapter 15.50 patent gazette]

Free format text: O PEDIDO FOI DIVIDIDO NO BR122023013789-2 PROTOCOLO 870230060278 EM 10/07/2023 16:43.O PEDIDO FOI DIVIDIDO NO BR122023013795-7 PROTOCOLO 870230060299 EM 10/07/2023 16:57.O PEDIDO FOI DIVIDIDO NO BR122023013801-5 PROTOCOLO 870230060318 EM 10/07/2023 17:15.