BR112021004679A2 - método e aparelho para predição - Google Patents

método e aparelho para predição Download PDF

Info

Publication number
BR112021004679A2
BR112021004679A2 BR112021004679-8A BR112021004679A BR112021004679A2 BR 112021004679 A2 BR112021004679 A2 BR 112021004679A2 BR 112021004679 A BR112021004679 A BR 112021004679A BR 112021004679 A2 BR112021004679 A2 BR 112021004679A2
Authority
BR
Brazil
Prior art keywords
intra
prediction
refidx
block
prediction mode
Prior art date
Application number
BR112021004679-8A
Other languages
English (en)
Inventor
Alexey Konstantinovich Filippov
Vasily Alexeevich Rufitskiy
Jianle Chen
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 BR112021004679A2 publication Critical patent/BR112021004679A2/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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • 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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)

Abstract

A presente revelação fornece métodos e dispositivos para predição intra de um bloco atual em codificação ou decodificação de vídeo. O método compreende: realizar processamento de predição intra do bloco atual de acordo com um modo de predição intra direcional, compreendendo filtragem de amostra de referência ou filtragem de interpolação de subpixel aplicada a amostras de referência em um ou mais blocos de referência, em que o modo de predição intra direcional é classificado em um dos grupos a seguir: (A) modos horizontais ou verticais, (B) modos direcionais incluindo modos diagonais que representam ângulos os quais são múltiplos de 45 graus, (C) modos direcionais restantes; se o modo de predição intra direcional for classificado como pertencente ao grupo B, um filtro de amostra de referência é aplicado às amostras de referência; se o modo de predição intra direcional for classificado como pertencente ao grupo C, um filtro de interpolação de amostra de referência intra é aplicado às amostras de referência.

Description

“MÉTODO E APARELHO PARA PREDIÇÃO” CAMPO TÉCNICO
[0001] A presente revelação se refere ao campo técnico de codificação e decodificação de imagem e/ou vídeo e, em particular, a método e aparelho para predição intra/inter.
FUNDAMENTOS
[0002] A codificação de vídeo (codificação e decodificação de vídeo) é usada em uma ampla gama de aplicativos de vídeo digital, por exemplo, transmissão por broadcast de TV digital, transmissão de vídeo pela Internet e redes móveis, aplicações de conversação em tempo real, como chat de vídeo, videoconferência, discos DVD e Blu-ray, aquisição de conteúdo de vídeo e sistemas de edição, e filmadoras de aplicações de segurança.
[0003] A quantidade de dados de vídeo necessária para representar até mesmo um vídeo relativamente curto pode ser substancial, o que pode resultar em dificuldades quando os dados devem ser transmitidos ou de outra forma comunicados através de uma rede de comunicações com capacidade de largura de banda limitada. Assim, os dados de vídeo são geralmente comprimidos antes de serem comunicados pelas redes de telecomunicações dos dias modernos. O tamanho de um vídeo também pode ser um problema quando o vídeo é armazenado em um dispositivo de armazenamento porque os recursos de memória podem ser limitados. Dispositivos de compressão de vídeo muitas vezes usam software e/ou hardware na fonte para codificar os dados de vídeo antes da transmissão ou armazenamento, diminuindo assim a quantidade de dados necessária para representar imagens de vídeo digital. Os dados compactados são então recebidos no destino por um dispositivo de descompressão de vídeo que decodifica os dados de vídeo. Com recursos de rede limitados e demandas cada vez maiores de maior qualidade de vídeo, melhores técnicas de compressão e descompressão que melhoram a taxa de compressão com pouco ou nenhum sacrifício na qualidade da imagem são desejáveis.
[0004] 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, por causa de resoluções, profundidades de cores e taxas de quadros mais altas. Isso gerou fluxos de dados maiores que hoje em dia são comumente transportados pela Internet e por redes de comunicação móvel. Vídeos de resolução mais alta, no entanto, normalmente requerem mais largura de banda, pois têm mais informações. Para 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 acarreta 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.
[0005] A Codificação de Vídeo de Alta Eficiência (HEVC) é um exemplo de um padrão de codificação de vídeo que é comumente conhecido por pessoas versadas na técnica. Em HEVC, para dividir uma unidade de codificação (CU) em unidades de predição (PU) ou unidades de transformada (TUs). O padrão de próxima geração da Codificação de Vídeo Digital (VVC) é o mais recente projeto de vídeo conjunto do Grupo de Especialistas de Codificação de Vídeo ITU-T (VCEG) e das organizações de padronização de Grupo de Especialistas de Imagens em Movimento ISO/IEC (MPEG), trabalhando juntos em uma parceria conhecida como a Equipe de Exploração de Vídeo Conjunta (JVET). A VVC também é conhecida como padrão ITU-T H.266/Codificação de Vídeo de Próxima Geração (NGVC). Na VVC, os conceitos de vários tipos de partição devem ser removidos, ou seja, 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 de transformada máximo, e oferece mais flexibilidade para formatos de partição de CU.
[0006] O processamento dessas unidades de codificação (UCs) (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 de predição predição intra e 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.
[0007] 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 conjunto de colaboração conhecido como Equipe de Exploração de Vídeo Conjunta (JVET) para avaliar projetos de tecnologia de compressão propostos por seus especialistas nesta área.
[0008] O padrão VTM (Modelo de Teste Versátil, Versatile Test Model) usa 35 modos Intra, enquanto o BMS (Conjunto de Avaliação Comparativa, Benchmark Set) usa 67 modos Intra.
[0009] O esquema de codificação modo intra atualmente descrito no 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
[0010] As modalidades do presente pedido fornecem aparelhos e métodos para codificação e decodificação de acordo com as reivindicações independentes.
[0011] O precedente e outros objetivos são alcançados pelo objeto das reivindicações independentes. Outras formas de implementação são evidentes a partir das reivindicações dependentes, da descrição e das figuras.
[0012] De acordo com um primeiro aspecto, a presente invenção se refere a um método para predição intra de um bloco atual em codificação ou decodificação de vídeo, em que o método compreende: realizar processamento de predição intra do bloco atual de acordo com um modo de predição intra direcional, compreendendo filtragem de amostra de referência ou filtragem de interpolação de subpixel aplicada a amostras de referência em um ou mais blocos de referência, em que o modo de predição intra direcional é classificado em um dentre os seguintes grupos: (A) modos vertical ou horizontal, (B) modos direcionais incluindo modos diagonais que representam ângulos múltiplos de 45 graus, (C) modos direcionais restantes; se o modo de predição intra direcional for classificado como pertencente ao grupo B, um filtro de amostra de referência é aplicado às amostras de referência; se o modo de predição intra direcional for classificado como pertencente ao grupo C, um filtro de interpolação de amostra de referência intra é aplicado às amostras de referência.
[0013] Em uma modalidade, se o modo de predição intra direcional for classificado como pertencente ao grupo A, nenhum filtro é aplicado às amostras de referência para gerar um preditor intra.
[0014] Em uma modalidade, se o modo de predição intra direcional for classificado como pertencente ao grupo B, o filtro de amostra de referência é aplicado às amostras de referência para copiar os valores filtrados em um preditor intra de acordo com o modo de predição intra direcional; e se o modo de predição intra direcional for classificado como pertencente ao grupo C, o filtro de interpolação de amostra de referência intra é aplicado às amostras de referência para gerar uma amostra predita que cai em uma posição fracionária ou inteira entre as amostras de referência de acordo com o modo de predição intra direcional.
[0015] Em uma modalidade, o filtro de amostra de referência ou o processamento de predição intra é um filtro 3-tap.
[0016] Por exemplo, o filtro de amostra de referência do processamento de predição intra é o filtro 3-tap de [1, 2, 1].
[0017] Em uma modalidade, um filtro de interpolação do processamento de predição intra para um dado deslocamento de subpixel é selecionado a partir de um conjunto de filtros, em que um dos quais é o mesmo que um filtro para um processo de predição inter.
[0018] Em uma modalidade, o filtro de interpolação tem comprimento de 4 taps e precisão de seu coeficiente de 6 bits.
[0019] Em uma modalidade, o grupo B compreende adicionalmente modos de inclinação inteira de ângulo amplo.
[0020] Por exemplo, um modo de inclinação inteira de ângulo amplo é um modo de predição intra direcional diferente de horizontal, vertical e diagonal, onde as posições de amostra de referência para cada amostra predita do bloco atual são não fracionárias.
[0021] Em uma modalidade, o grupo B compreende adicionalmente modos de predição intra para os quais um valor de um parâmetro de ângulo de predição intra é um múltiplo diferente de zero de 32.
[0022] Em uma modalidade, o grupo B compreende um ou todos os modos de predição intra: [-14, -12, -10, -6, 2, 34, 66, 72, 76, 78, 80].
[0023] De acordo com um segundo aspecto, a presente invenção se refere a um aparelho para predição intra de um bloco atual em codificação ou decodificação de vídeo, em que o aparelho compreende circuitos de processamento configurados para realizar processamento de predição intra do bloco atual de acordo com um modo de predição intra direcional, compreendendo filtragem de amostra de referência ou filtragem de interpolação de subpixel aplicada a amostras de referência em um ou mais blocos de referência, em que o modo de predição intra direcional é classificado em um dentre os seguintes grupos: (A) modos vertical ou horizontal, (B) modos direcionais incluindo modos diagonais que representam ângulos que são múltiplos de 45 graus, (C) modos direcionais restantes; se o modo de predição intra direcional for classificado como pertencente ao grupo B, um filtro de amostra de referência é aplicado às amostras de referência; se o modo de predição intra direcional for classificado como pertencente ao grupo C, um filtro de interpolação de amostra de referência intra é aplicado às amostras de referência.
[0024] Outros recursos e formas de implementação do aparelho de acordo com o segundo aspecto da invenção correspondem aos recursos e formas de implementação do aparelho de acordo com o primeiro aspecto da invenção.
[0025] De acordo com um terceiro aspecto, a presente invenção se refere a um produto de programa de computador que compreende código de programa para realizar qualquer um dos métodos acima descritos quando executado em um computador ou processador.
[0026] Os detalhes de uma ou mais modalidades são apresentados nos desenhos anexos e na descrição abaixo. Outros recursos, objetos e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0027] As seguintes modalidades são descritas em mais detalhes com referência às figuras e desenhos anexos, nos quais:
[0028] A Figura 1 é um diagrama de blocos mostrando um exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da invenção.
[0029] A Figura 2 é um diagrama de blocos mostrando um exemplo de um codificador de vídeo configurado para implementar modalidades da invenção.
[0030] A Figura 3 é um diagrama de blocos mostrando um exemplo de estrutura de um decodificador de vídeo configurado para implementar modalidades da invenção.
[0031] A Figura 4 mostra um diagrama esquemático que ilustra 67 modos de predição intra.
[0032] A Figura 5 ilustra um primeiro exemplo de uso de diferentes filtros de interpolação em predição intra e inter.
[0033] A Figura 6 ilustra um segundo exemplo de uso de diferentes filtros de interpolação em predição intra e inter.
[0034] A Figura 7 ilustra um terceiro exemplo de uso de diferentes filtros de interpolação em predição intra e inter.
[0035] A Figura 8 ilustra o uso de um filtro de interpolação comum a ser usado para amostras preditas de modo intra e inter.
[0036] A Figura 9 ilustra uma modalidade usando um módulo de filtragem sendo envolvido na predição de amostras de crominância em compensação de movimento e predição de luminância e amostras de crominância ao realizar predição intra.
[0037] A Figura 10 ilustra uma modalidade, em que módulos de filtragem de hardware carregam coeficientes armazenados em uma ROM.
[0038] A Figura 11 ilustra um diagrama esquemático de uma pluralidade de modos de predição intra.
[0039] A Figura 12 ilustra um exemplo de seleção de filtro de interpolação para modos menores e maiores que a diagonal no caso de um bloco não quadrado.
[0040] A Figura 13 ilustra o particionamento de blocos Árvore Quádrupla mais Árvore Binária (QTBT).
[0041] A Figura 14 mostra uma orientação horizontal e vertical de um bloco.
[0042] A Figura 15 ilustra esquematicamente a seleção de um filtro de interpolação para um bloco não quadrado.
[0043] A Figura 16 ilustra uma modalidade para seleção de filtro de interpolação de amostra de referência para um bloco não quadrado.
[0044] A Figura 17 ilustra uma modalidade alternativa para seleção de filtro de interpolação de amostra de referência para um bloco não quadrado.
[0045] A Figura 18 mostra um diagrama esquemático que ilustra 93 direções de predição intra.
[0046] A Figura 19 mostra um diagrama de blocos de um aparelho de acordo com uma modalidade.
[0047] A Figura 20 mostra um diagrama de blocos de um aparelho de acordo com outra modalidade.
[0048] A Figura 21 mostra um bloco a ser previsto usando um modo de predição intra.
DESCRIÇÃO DETALHADA DAS MODALIDADES
[0049] Na descrição a seguir, é feita referência aos desenhos anexos, que fazem parte da revelaçã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 as modalidades da invenção podem ser usadas em outros aspectos e compreendem mudanças estruturais ou lógicas não representadas nas figuras. A seguinte descrição detalhada, portanto, não deve ser tomada em um sentido limitante, e o escopo da presente invenção é definido pelas reivindicações anexas.
[0050] Por exemplo, entende-se que uma revelação em conexão com um método descrito também pode ser verdadeira para um dispositivo ou sistema correspondente configurado para realizar o método e vice-versa. Por exemplo, se uma ou uma pluralidade de etapas de método específicas forem descritas, um dispositivo correspondente pode incluir uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, para realizar a uma ou a pluralidade de etapas de método descritas (por exemplo, uma unidade realizando a uma ou a pluralidade de etapas, ou uma pluralidade de unidades, cada uma realizando uma ou mais da pluralidade de etapas), mesmo se tais uma ou mais unidades não forem explicitamente descritas ou ilustradas nas figuras. Por outro lado, por exemplo, se um aparelho específico é descrito com base em uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, um método correspondente pode incluir uma etapa para realizar a funcionalidade de uma ou pluralidade de unidades (por exemplo, uma etapa de realizar a funcionalidade de uma ou 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 forem explicitamente descritas ou ilustradas nas figuras. Além disso, entende-se que os recursos das várias modalidades exemplares e/ou aspectos descritos neste documento podem ser combinados uns com os outros, a menos que especificamente indicado de outra forma.
[0051] 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 figura, imagem ou quadro pode ser usado/são usados como sinônimos no campo da codificação de vídeo, bem como nesta aplicação. Cada imagem é normalmente particionada em um conjunto de blocos não sobrepostos. A codificação/decodificação da imagem é tipicamente realizada em um nível de bloco onde, por exemplo, predição interquadro ou predição intraquadro é usada 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 no lado de decodificador o processamento inverso é aplicado ao bloco codificado/comprimido para reconstruir o bloco para representação.
[0052] 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 das imagens de vídeo originais (assumindo nenhuma perda de transmissão ou outra perda de dados durante o armazenamento ou transmissão). No caso de codificação de vídeo com perdas, compressão adicional, por exemplo, 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 à qualidade das imagens de vídeo originais.
[0053] Vários padrões de codificação de vídeo pertencem ao grupo de “codecs de vídeo híbridos com perdas” (ou seja, combinam predição espacial e temporal no domínio da amostra e codificação de transformada 2D para aplicar quantização no domínio de transformada). 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 vídeo), por exemplo, usando predição espacial (imagem intra) e/ou 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, transformar o bloco residual e quantizar o bloco residual no domínio de transformada para reduzir a quantidade de dados a serem transmitidos (compressão), enquanto no decodificador, o processamento inverso em comparação com o codificador é aplicado ao bloco codificado ou comprimido para reconstruir o bloco atual para representação. Além disso, o codificador duplica o ciclo de processamento do decodificador de modo que ambos irão gerar predições idênticas (por exemplo, predições intra e inter) e/ou reconstruções para processamento, ou seja, codificação dos blocos subsequentes.
[0054] Nas seguintes modalidades de um sistema de codificação de vídeo 10, um codificador de vídeo 20 e um decodificador de vídeo 30 são descritos com base nas Figuras 1 a 3.
[0055] A Figura 1 é um diagrama de blocos conceitual ou esquemático que ilustra um sistema de codificação de exemplo 10, por exemplo, um sistema de codificação de vídeo que pode utilizar técnicas do presente pedido (presente revelaçã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 realizar técnicas de acordo com vários exemplos descritos no presente pedido. Conforme 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, para um dispositivo de destino 14 para decodificar os dados codificados 13.
[0056] 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.
[0057] 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 um dispositivo de geração 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 figura ou imagem a ser codificada), 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)).
[0058] Uma imagem (digital) é ou pode ser considerada como um arranjo bidimensional ou matriz de amostras com valores de intensidade. Uma amostra no arranjo 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) do arranjo ou imagem define o tamanho e/ou resolução da imagem. Para a representação da cor, normalmente três componentes de cor são empregados, ou seja, a imagem pode ser representada ou incluir três arranjos de amostra. No formato ou espaço de cor RBG, uma imagem compreende um arranjo de amostra vermelha, verde e azul correspondente. No entanto, na codificação de vídeo, cada pixel é tipicamente representado em um formato ou espaço de cor de luminância/crominância, 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 luma para abreviar) Y representa o brilho ou intensidade do nível de cinza (por exemplo, como em uma imagem de escala de cinza), enquanto os dois componentes de crominância (ou croma para abreviar) Cb e Cr representam a cromaticidade ou componentes de informação de cor.
Consequentemente, uma imagem no formato YCbCr compreende um arranjo de amostra de luminância de valores de amostra de luminância (Y), e dois arranjos 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 um arranjo de amostra de luminância.
[0059] 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 integrada no dispositivo de origem, a memória pode ser uma memória local ou integrada, por exemplo, integrada 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 de captura de imagem externo como uma câmera, uma memória externa ou um dispositivo de geração de imagem externo, 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 ótica, 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.
[0060] 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 podem ser referidos como imagem bruta ou dados de imagem brutos 17.
[0061] 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 pela 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.
[0062] 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).
[0063] 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 para, 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.
[0064] 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.
[0065] A interface de comunicação 28 do dispositivo de destino 14 é configurada para receber os dados de imagem codificados 21 ou os dados codificados 13, por exemplo, diretamente do dispositivo de origem 12 ou de qualquer outra fonte, por exemplo, um dispositivo de armazenamento, por exemplo, um dispositivo de armazenamento de dados de imagem codificados.
[0066] 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 direto 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 delas, ou qualquer tipo de rede privada e pública, ou qualquer tipo de combinação das mesmas.
[0067] 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 através de um enlace de comunicação ou rede de comunicação.
[0068] 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.
[0069] 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 1A 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 estabelecer uma conexão, para reconhecer e trocar qualquer outra informação relacionada ao enlace de comunicação e/ou transmissão de dados, por exemplo, transmissão de dados de imagem codificada.
[0070] O decodificador 30 é configurado para receber os dados de imagem codificados 21 e fornecer dados de imagem decodificados 31 ou uma imagem decodificada 31 (mais detalhes serão descritos abaixo, por exemplo, com base na Figura 3).
[0071] 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 pós-processados 33, 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, recorte ou reamostragem, ou qualquer outro processamento, por exemplo, para preparar os dados de imagem decodificados 31 para exibição, por exemplo, pelo dispositivo de exibição 34.
[0072] O dispositivo de exibição 34 do dispositivo de destino 14 é 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, uma exibição ou monitor integrado ou externo. As exibições podem, por exemplo, compreender exibições de cristal líquido (LCD), exibições de diodos emissores de luz orgânica (OLED), exibições de plasma, projetores, exibições de micro LED, cristal líquido em silício (LCoS), processador de luz digital (DLP) ou qualquer outro tipo de exibição.
[0073] 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 ambos 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 a funcionalidade correspondente e o dispositivo de destino 14 ou a funcionalidade correspondente podem ser implementados usando o mesmo hardware e/ou software ou por hardware e/ou software separados ou qualquer combinação dos mesmos.
[0074] Como será evidente para o versado 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 e aplicativo reais.
[0075] 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), arranjos 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 uma mídia de armazenamento legível por computador não transitória adequada e pode executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta revelação. Qualquer um dos anteriores (incluindo hardware, software, uma combinação de hardware e software, etc.) pode ser considerado um ou mais processadores. Cada um dos codificadores de vídeo 20 e decodificadores de vídeo 30 pode ser incluído 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.
[0076] 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 computadores tablet, câmeras, computadores desktop, decodificadores, televisores, dispositivos de exibição, reprodutores 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 receptor de broadcast, dispositivo transmissor de broadcasttap 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.
[0077] 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 ser aplicadas à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 os dispositivos de codificação e decodificação. Em outros exemplos, os dados são recuperados a partir de uma memória local, transmitidos por 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 a partir da memória. Em alguns exemplos, a codificação e 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 a partir da memória.
[0078] A Figura 2 mostra um diagrama de blocos esquemático/conceitual de um codificador de vídeo de exemplo 20 que é 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 transformada 206, uma unidade de quantização 208, uma unidade de quantização inversa 210 e unidade de processamento de transformada inversa 212, uma unidade de reconstrução 214, um buffer 216, uma unidade de filtro 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 uma 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.
[0079] Por exemplo, a unidade de cálculo residual 204, a unidade de processamento de transformada 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 percurso de sinal direto do codificador 20, enquanto, por exemplo, a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o buffer 216, o filtro loop 220, o buffer de imagem decodificada (DPB) 230, a unidade de processamento de predição 260 formam um percurso de sinal reverso do codificador, em que o percurso de sinal reverso do codificador corresponde ao percurso de sinal do decodificador (ver decodificador 30 na Figura 3).
[0080] O codificador 20 é 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, imagens previamente codificadas e/ou decodificadas da mesma sequência de vídeo, ou seja, a sequência de vídeo que também compreende a imagem atual).
[0081] 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, isto é, para fornecer um bloco de predição 265, que pode ser um bloco predito de modo inter 245 ou um bloco predito de modo intra 255.
[0082] 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.
[0083] 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 resíduo mínimo (resíduo mínimo significa melhor compressão para transmissão ou armazenamento), ou uma sobrecarga de sinalização mínima (sobrecarga de sinalização mínima 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), ou seja, 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 um critério de seleção de modo de predição.
[0084] 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, depois de 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 mais tarde.
[0085] As modalidades do codificador de vídeo 20 podem compreender uma unidade de particionamento de imagem (não representada na Figura 2) configurada para particionar a imagem em uma pluralidade de blocos de imagem (normalmente não sobrepostos). Esses blocos também podem ser referidos como blocos 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 imagem 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 de bloco, ou para alterar o tamanho de bloco entre imagens ou subconjuntos ou grupos de imagens, e particionar cada imagem nos blocos correspondentes.
[0086] Como a imagem, o bloco de imagem novamente é ou pode ser considerado como um arranjo bidimensional ou matriz 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, um arranjo de amostra (por exemplo, um arranjo de luma no caso de uma imagem monocromática, ou um arranjo de luma ou croma no caso de uma imagem colorida) ou três arranjos de amostra (por exemplo, um arranjo de luma e dois arranjos de croma no caso de uma imagem colorida) ou qualquer outro número e/ou tipo de arranjos 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, um arranjo MxN (M colunas por N linhas) de amostras, ou um arranjo MxN de coeficientes de transformada.
[0087] As modalidades do codificador de vídeo, conforme 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.
[0088] 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 referidas como 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).
[0089] 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.
[0090] A Figura 3 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 de vídeo 30 recebe dados de vídeo, por exemplo, um fluxo de bits de vídeo codificado que representa os blocos de imagem de uma fatia de vídeo codificada e elementos de sintaxe associados, a partir do codificador de vídeo 100.
[0091] 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 transformada inversa 312, uma unidade de reconstrução 314 (por exemplo, um somador 314), um buffer 316, um filtro 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, realizar 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.
[0092] A unidade de decodificação de entropia 304 é configurada para realizar a decodificação de entropia para os dados de imagem codificados 21 para 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 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.
[0093] 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 transformada inversa 312 pode ser idêntica em função à unidade de processamento de transformada 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 loop 320 pode ser idêntico em função ao filtro loop 120 e o buffer de imagem decodificada 330 pode ser idêntico em função ao buffer de imagem decodificada 130.
[0094] A unidade de processamento de predição 360 pode compreender uma unidade de predição inter 344 e uma unidade de predição intra 354, em que a unidade de predição inter 344 pode se assemelhar à unidade de predição inter 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, a partir da unidade de decodificação de entropia 304.
[0095] 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 a partir do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia intercodificada (isto é, B ou P), a unidade de predição inter 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.
[0096] 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 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 intercodificado da fatia, status de predição 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.
[0097] 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.
[0098] A unidade de processamento de transformada inversa 312 é configurada para aplicar uma transformada inversa, por exemplo, uma DCT inversa, uma transformada de inteiro inversa, ou um processo de transformada inversa conceitualmente semelhante, aos coeficientes de transformada a fim de produzir blocos residuais no domínio de pixel.
[0099] A unidade de reconstrução 314 (por exemplo, somador 314) é configurada para adicionar o bloco de transformada inversa 313 (ou seja, 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.
[0100] A unidade de filtro 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 loop 320 pode ser configurada para realizar qualquer combinação das técnicas de filtragem descritas posteriormente. A unidade de filtro loop 320 se destina a representar um ou mais filtros 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 loop adaptativo (ALF) ou um filtro de nitidez ou filtros de suavização ou filtros colaborativos. Embora a unidade de filtro loop 320 seja mostrada na Figura 3 como sendo um filtro em loop, em outras configurações, a unidade de filtro loop 320 pode ser implementada como um filtro pós loop.
[0101] 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.
[0102] O decodificador 30 é configurado para emitir a imagem decodificada 331, por exemplo, através da saída 332, para apresentação ou visualização a um usuário.
[0103] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar o fluxo de bits compactado. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo de saída sem a unidade de filtragem loop 320. Por exemplo, um decodificador 30 não baseado em transformada pode quantizar inversamente o sinal residual diretamente sem a unidade de processamento de transformada 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 transformada inversa 312 combinadas em uma única unidade.
[0104] 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 chamadas de 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).
[0105] As modalidades do decodificador de vídeo conforme 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 partes (normalmente não sobrepostos), e cada grupo de partes pode compreender, por exemplo, um ou mais blocos (por exemplo, CTUs) ou um ou mais partes, em que cada parte, por exemplo, pode ser de forma retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários.
[0106] Deve ser entendido que, no codificador e no decodificador, um resultado de processamento de uma etapa atual pode ser adicionalmente processado e, em seguida, enviado para a próximo etapa. Por exemplo, após a filtragem de interpolação, derivação de vetor de movimento ou filtragem loop, uma operação adicional, como Corte ou deslocamento, pode ser realizada no resultado do processamento da filtragem de interpolação, derivação de vetor de movimento ou filtragem loop.
[0107] De acordo com o padrão HEVC/H.265, 35 modos de predição intra estão disponíveis. Este conjunto contém os seguintes modos: modo planar (o índice do modo de predição intra é 0), modo DC (o índice de modo de predição intra é 1) e modos direcionais (angulares) que cobrem a faixa de 180 ° e têm o intervalo de valores de índice de modo de predição intra de 2 a 34. Para capturar as direções de aresta arbitrárias presentes no vídeo natural, o número de modos intra direcionais é estendido a partir de 33, como usado em HEVC, para 65. Os modos direcionais adicionais são mostrados na Figura 4, e o 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 o intervalo de aproximadamente 230 °, ou seja, vários pares de modos têm direcionalidade oposta. No caso do Modelo de Referência de HEVC (HM) e plataformas de JEM, apenas um par de modos angulares (ou seja, modos 2 e 66) tem direcionalidade oposta, conforme mostrado na Figura 4. Para construir um preditor, os modos angulares convencionais tomam amostras de referência e (se necessário) as filtram 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).
[0108] A Figura 4 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 4 se refere ao índice 2 e a numeração dos índices sendo incrementada até o índice 66 sendo o modo angular mais superior direito da Figura 4.
[0109] 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 a predição de imagem intra ou de imagem inter.
[0110] Conforme usado neste documento, o termo "bloco" pode ser uma porção de uma imagem ou um quadro. Por conveniência de descrição, as modalidades da invençã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 sobre Codificação de Vídeo (JCT-VC) do Grupo de Especialistas de Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas de Imagens em Movimento ISO/IEC (MPEG). Um versado na técnica entenderá que as modalidades da invençã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 de imagem inter (temporal) ou de imagem intra (espacial) é feita no nível de CU. Cada CU pode ser dividida em uma, duas ou quatro PUs de acordo com o tipo de divisão de PU. Dentro de uma PU, o mesmo processo de predição é aplicado e as informações relevantes são transmitidas ao 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, uma CU pode ser particionada em unidades de transformada (TUs) de acordo com outra estrutura de árvore quádrupla semelhante à árvore de codificação para a CU. No desenvolvimento mais recente da técnica de compressão de vídeo, o particionamento de árvore quádrupla e árvore binária (QTBT) é usado para particionar um bloco de codificação. Na estrutura de bloco de 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 de árvore quádrupla. Os nós folha de árvore quádrupla são ainda particionados por uma estrutura de árvore binária. Os nós folha de árvore binária são chamados de unidades de codificação (CUs), e essa segmentação é usada para predição e processamento de transformada sem qualquer particionamento adicional. Isso significa que CU, PU e TU têm o mesmo tamanho de bloco na estrutura de bloco de codificação de 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 bloco de QTBT.
[0111] 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 para abreviar 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 conjunto de colaboração conhecido como Equipe de Exploração de Vídeo Conjunta (JVET) para avaliar projetos de tecnologia de compressão propostos por seus especialistas nesta área.
[0112] O VTM (Versatile Test Model, Modelo de Teste Versátil) usa 35 modos Intra, enquanto o BMS (Benchmark Set, Conjunto de Avaliação Comparativa) usa 67 modos Intra. A predição intra é um mecanismo usado em muitas estruturas de codificação de vídeo para aumentar a eficiência da compressão nos casos em que apenas um dado quadro pode estar envolvido.
[0113] Conforme mostrado na Figura 4, a versão mais recente do JEM tem alguns modos correspondentes a direções de predição intra enviesadas. Para qualquer um desses modos, para prever amostras dentro de um bloco, a interpolação de um conjunto de amostras de referência vizinhas deve ser realizada, se uma posição correspondente dentro de um lado de bloco for fracionária. HEVC e VVC usam interpolação linear entre duas amostras de referência adjacentes. O JEM usa filtros de interpolação 4-tap mais sofisticados. Os coeficientes de filtro são selecionados para serem gaussianos ou cúbicos, dependendo da largura ou do valor de altura. A decisão de usar largura ou altura está harmonizada com a decisão sobre a seleção de lado de referência principal:
quando o modo de predição intra for maior que ou igual ao modo diagonal, o lado superior das amostras de referência é selecionado para ser o lado de referência principal e o valor de largura é selecionado para determinar o filtro de interpolação em uso. Caso contrário, a referência de lado principal é selecionada a partir do lado esquerdo do bloco e a altura controla o processo de seleção de filtro. Especificamente, se o comprimento de lado selecionado for menor ou igual a 8 amostras, a interpolação cúbica 4-tap é aplicada. Caso contrário, o filtro de interpolação é um Gaussiano 4-tap.
[0114] O coeficiente de filtro específico usado no JEM é dado na Tabela 1. A amostra predita é calculada convoluindo com os coeficientes selecionados da Tabela 1 de acordo com o deslocamento de subpixel e o tipo de filtro da seguinte forma: 𝑠(𝑥) = (∑𝑖<4 𝑖=0(ref𝑖+𝑥 ∙ 𝑐𝑖 ) + 128) ≫ 8
[0115] Nesta equação, “>>” indica uma operação de deslocamento à direita bit a bit.
[0116] Se o filtro cúbico for selecionado, a amostra predita é ainda mais recortada para o intervalo de valores permitido, que ou é definido no SPS ou derivado da profundidade de bits do componente selecionado. Tabela 1. Filtros de interpolação de predição intra Deslocamento Filtro cúbico Filtro de Gauss de subpixel c0 c1 c2 c3 c0 c1 c2 c3 0 (inteiro) 0 256 0 0 47 161 47 1 1 -3 252 8 -1 43 161 51 1 2 -5 247 17 -3 40 160 54 2 3 -7 242 25 -4 37 159 58 2 4 -9 236 34 -5 34 158 62 2 5 -10 230 43 -7 31 156 67 2 6 -12 224 52 -8 28 154 71 3 7 -13 217 61 -9 26 151 76 3 8 -14 210 70 -10 23 149 80 4 9 -15 203 79 -11 21 146 85 4 10 -16 195 89 -12 19 142 90 5 11 -16 187 98 -13 17 139 94 6
12 -16 179 107 -14 16 135 99 6 13 -16 170 116 -14 14 131 104 7 14 -17 162 126 -15 13 127 108 8 15 -16 153 135 -16 11 123 113 9 16 (meio pel) -16 144 144 -16 10 118 118 10 17 -16 135 153 -16 9 113 123 11 18 -15 126 162 -17 8 108 127 13 19 -14 116 170 -16 7 104 131 14 20 -14 107 179 -16 6 99 135 16 21 -13 98 187 -16 6 94 139 17 22 -12 89 195 -16 5 90 142 19 23 -11 79 203 -15 4 85 146 21 24 -10 70 210 -14 4 80 149 23 25 -9 61 217 -13 3 76 151 26 26 -8 52 224 -12 3 71 154 28 27 -7 43 230 -10 2 67 156 31 28 -5 34 236 -9 2 62 158 34 29 -4 25 242 -7 2 58 159 37 30 -3 17 247 -5 2 54 160 40 31 -1 8 252 -3 1 51 161 43
[0117] O processo de compensação de movimento também utiliza filtragem para prever valores de amostra quando os deslocamentos dos pixels do bloco de referência são fracionários. No JEM, a filtragem 8-tap é usada para o componente de luminância e a filtragem de comprimento 4-tap é usada para o componente de crominância. O filtro de interpolação de movimento é primeiro aplicado horizontalmente, e a saída da filtragem horizontal é filtrada verticalmente. Os coeficientes de um filtro de crominância 4-tap são fornecidos na Tabela 2. Tabela 2. Coeficientes de filtro de interpolação de movimento de crominância Deslocamento de c0 c1 c2 c3 subpixel
0 (inteiro) 0 64 0 0 1 -1 63 2 0 2 -2 62 4 0 3 -2 60 7 -1 4 -2 58 10 -2 5 -3 57 12 -2 6 -4 56 14 -2 7 -4 55 15 -2 8 -4 54 16 -2 9 -5 53 18 -2 10 -6 52 20 -2 11 -6 49 24 -3 12 -6 46 28 -4 13 -5 44 29 -4 14 -4 42 30 -4 15 -4 39 33 -4 16 (meio pel) -4 36 36 -4 17 -4 33 39 -4 18 -4 30 42 -4 19 -4 29 44 -5 20 -4 28 46 -6 21 -3 24 49 -6 22 -2 20 52 -6 23 -2 18 53 -5 24 -2 16 54 -4 25 -2 15 55 -4 26 -2 14 56 -4 27 -2 12 57 -3 28 -2 10 58 -2 29 -1 7 60 -2 30 0 4 62 -2 31 0 2 63 -1
[0118] As soluções de codificação de vídeo do estado da técnica usam diferentes filtros de interpolação em predição intra e inter. Particularmente, as Figuras 5 a 7 mostram diferentes exemplos de filtros de interpolação.
[0119] A Figura 5 ilustra esquematicamente os filtros de interpolação usados no JEM. Como pode ser visto na figura, para a interpolação de compensação de movimento uma posição fracionária na predição inter, um filtro de interpolação 8-tap com coeficientes de 6 bits é usado para luma e um filtro de interpolação 4-tap com coeficientes de 6 bits é usado para croma. Além disso, para interpolação de amostra de referência intra em predição intra, um filtro de interpolação Gaussiano 4-tap com coeficientes de 8 bits ou um filtro de interpolação cúbico 4-tap com coeficientes de 8 bits é usado.
[0120] A Figura 6 ilustra esquematicamente os filtros de interpolação propostos para o Experimento Principal CE3 3.1.3 (G. Van der Auwera et al: JVET K1023 “Description of Core Experiment 3 (CE3): Intra Prediction and Mode Coding”, versão 2). Como pode ser visto na figura, para a interpolação de compensação de movimento uma posição fracionária na predição inter, um filtro de interpolação 8-tap com coeficientes de 6 bits é usado para luma e um filtro de interpolação 4-tap com coeficientes de 6 bits é usado para croma. Além disso, para interpolação de amostra de referência intra em predição intra, é usado um filtro de interpolação Gaussiano 6-tap com coeficientes de 8 bits ou um filtro de interpolação cúbico 4-tap com coeficientes de 8 bits.
[0121] A Figura 7 ilustra esquematicamente os filtros de interpolação propostos em G. Van der Auwera et al.: JVET K0064 “CE3-related: On MDIS and intra interpolation filter switching”, versão 2. Como pode ser visto na figura, para interpolação de compensação de movimento uma posição fracionária na predição inter, um filtro de interpolação 8-tap com coeficientes de 6 bits é usado para luma e um filtro de interpolação 4-tap com coeficientes de 6 bits é usado para croma. Além disso, para interpolação de amostra de referência intra na predição intra, um filtro de interpolação 6-tap Gaussiano com coeficientes de 8 bits ou um filtro de interpolação 6-tap cúbico com coeficientes de 8 bits é usado.
[0122] De acordo com esta revelação, as tabelas de consulta e os módulos de hardware do filtro sub-pel de compensação de movimento de croma são reutilizados para interpolar valores de pixel dentro de um preditor intra, se eles caírem em posições fracionárias entre as amostras de referência. Uma vez que o mesmo hardware se destina a ser usado para inter e predição intra, a precisão dos coeficientes de filtro deve ser consistente, ou seja, o número de bits para representar os coeficientes de filtro para a interpolação de amostra de referência intra deve ser alinhado com a precisão de coeficiente de filtragem de interpolação de compensação de movimento sub-pel de movimento.
[0123] A Figura 8 ilustra a ideia da revelação fornecida. O "filtro de interpolação 4-tap com coeficientes de 6 bits para croma" (também referido como "filtro intra/inter unificado") pode ser usado para ambos os processos: interpolação de amostras preditas de modo intra e inter.
[0124] Uma modalidade que utiliza este projeto é mostrada na Figura
9. Nesta implementação, um módulo de filtragem está sendo implementado como uma unidade separada que está sendo envolvida em ambos: predição de amostras de crominância em compensação de movimento e predição de luminância e amostras de crominância ao realizar predição intra. Nesta implementação, a parte de filtragem de hardware está sendo usada em processos predição intra e inter.
[0125] Outra modalidade mostra a implementação quando apenas LUTs de coeficientes de filtro são reutilizados, como ilustrado na Figura 10. Nesta modalidade, os módulos de filtragem de hardware carregam coeficientes a partir de LUTs armazenados em ROM. Uma chave mostrada no processo de predição intra determina o tipo de filtro sendo usado dependendo do comprimento de lado principal selecionado para o processo de predição intra.
[0126] Uma modalidade da aplicação fornecida pode usar os seguintes coeficientes (ver Tabela 3). Tabela 3: Filtros intra e interpolação Deslocamento Filtro intra/inter Filtro de Gauss de subpixel unificado c0 c1 c2 c3 c0 c1 c2 c3 0 (inteiro) 0 64 0 0 16 32 16 0 1 -1 63 2 0 15 29 17 3 2 -2 62 4 0 14 29 18 3 3 -2 60 7 -1 14 29 18 3 4 -2 58 10 -2 14 28 18 4
5 -3 57 12 -2 13 28 19 4 6 -4 56 14 -2 12 28 20 4 7 -4 55 15 -2 12 27 20 5 8 -4 54 16 -2 11 27 21 5 9 5 1 1 2 2 -5 3 8 -2 1 7 1 5 10 -6 52 20 -2 10 26 22 6 11 -6 49 24 -3 10 26 22 6 12 -6 46 28 -4 9 26 23 6 13 -5 44 29 -4 9 26 23 6 14 -4 42 30 -4 8 25 24 7 15 -4 39 33 -4 8 25 24 7 16 (meio pel) -4 36 36 -4 7 25 25 7 17 -4 33 39 -4 7 24 25 8 18 -4 30 42 -4 7 24 25 8 19 -4 29 44 -5 6 23 26 9 20 -4 28 46 -6 6 23 26 9 21 -3 24 49 -6 6 22 26 10 22 -2 20 52 -6 6 22 26 10 23 -2 18 53 -5 5 21 27 11 24 -2 16 54 -4 5 21 27 11 25 -2 15 55 -4 5 20 27 12 26 -2 14 56 -4 4 20 28 12 27 -2 12 57 -3 4 19 28 13 28 -2 10 58 -2 4 18 28 14 29 -1 7 60 -2 3 18 29 14 30 0 4 62 -2 3 18 29 14 31 0 2 63 -1 3 17 29 15
[0127] Uma amostra predita de modo intra pode ser calculada por convolução com coeficientes selecionados da Tabela 1 de acordo com o deslocamento de subpixel e o tipo de filtro da seguinte forma: 𝑠(𝑥) = (∑𝑖<4 𝑖=0(ref𝑖+𝑥 ∙ 𝑐𝑖 ) + 32) ≫ 6
[0128] Nesta equação, “>>” indica uma operação de deslocamento à direita bit a bit.
[0129] Se o filtro "intra/inter unificado" for selecionado, a amostra predita é ainda mais recortada para o intervalo de valores permitido, que é definido no SPS ou derivado da profundidade de bits do componente selecionado.
[0130] Para interpolação de amostra de referência intra e interpolação de compensação de movimento sub-pel, o mesmo filtro pode ser usado para reutilizar módulos de hardware e reduzir o tamanho total da memória necessária,
[0131] A precisão dos coeficientes de filtro usados para a interpolação de amostra de referência intra, além do filtro reutilizado, deve ser alinhada com a precisão dos coeficientes de filtro reutilizados mencionados acima.
[0132] Observe que o processamento de luma na compensação de movimento não usa necessariamente a filtragem 8-tap, mas também pode operar na filtragem 4-tap. Nesse caso, um filtro 4-tap pode ser selecionado para ser unificado.
[0133] O método pode ser aplicado em diferentes partes do processo de predição intra que pode envolver interpolação. Particularmente, ao estender as amostras de referência principais, as amostras de referência laterais também podem ser filtradas usando filtro de interpolação unificado (ver V. Drugeon: JVET-K0211 “CE3: DC mode without divisions and modifications to intra filtering (Tests 1.2.1, 2.2.2 and 2.5.1)” versão 1 para detalhes).
[0134] As operações de cópia intrabloco também envolvem uma etapa de interpolação que pode usar o método proposto (ver [Xiaozhong Xu, Shan Liu, Tzu-Der Chuang, Yu-Wen Huang, Shawmin Lei, Krishnakanth Rapaka, Chao Pang, Vadim Seregin, Ye-Kui Wang, Marta Karczewicz: Intra Block Copy in HEVC Screen Content Coding Extensions. IEEE J. Emerg. Sel. Topics Circuits Syst. 6 (4): 409-419 (2016)] para descrição da cópia Intrabloco). É fornecido um método para predição intra, o método compreendendo: usar um filtro de interpolação para o componente de crominância como o filtro de interpolação para predição intra de um bloco.
[0135] Em uma modalidade, uma Tabela de consulta do filtro de interpolação para o componente de crominância é a mesma que uma Tabela de consulta do filtro de interpolação para predição intra.
[0136] Em uma modalidade, uma Tabela de consulta do filtro de interpolação para o componente de crominância não é a mesma que uma Tabela de consulta do filtro de interpolação para predição intra.
[0137] Em uma modalidade, o filtro de interpolação é um filtro 4-tap.
[0138] Em uma modalidade, a Tabela de consulta do filtro de interpolação para o componente de crominância é Deslocamento c0 c1 c2 c3 de subpixel 0 (inteiro) 0 64 0 0 1 -1 63 2 0 2 -2 62 4 0 3 -2 60 7 -1 4 -2 58 10 -2 5 -3 57 12 -2 6 -4 56 14 -2 7 -4 55 15 -2 8 -4 54 16 -2 9 -5 53 18 -2 10 -6 52 20 -2 11 -6 49 24 -3 12 -6 46 28 -4 13 -5 44 29 -4 14 -4 42 30 -4 15 -4 39 33 -4 16 (meio pel) -4 36 36 -4 17 -4 33 39 -4 18 -4 30 42 -4 19 -4 29 44 -5 20 -4 28 46 -6 21 -3 24 49 -6 22 -2 20 52 -6 23 -2 18 53 -5 24 -2 16 54 -4
25 -2 15 55 -4 26 -2 14 56 -4 27 -2 12 57 -3 28 -2 10 58 -2 29 -1 7 60 -2 30 0 4 62 -2 31 0 2 63 -1
[0139] É fornecido um método para predição intra, o método compreendendo: selecionar um filtro de interpolação de um conjunto de filtros de interpolação para predição intra de um bloco.
[0140] Em uma modalidade, o conjunto de filtros de interpolação compreende um filtro de Gauss e um filtro cúbico.
[0141] Em uma modalidade, uma Tabela de consulta do filtro de interpolação selecionado é a mesma que uma Tabela de consulta do filtro de interpolação para o componente de crominância.
[0142] Em uma modalidade, o filtro de interpolação selecionado é um filtro 4-tap.
[0143] Em uma modalidade, o filtro de interpolação selecionado é um filtro Cúbico.
[0144] Em uma modalidade, uma Tabela de consulta do filtro de interpolação selecionado é Deslocamento c0 c1 c2 c3 de subpixel 0 (inteiro) 0 64 0 0 1 -1 63 2 0 2 -2 62 4 0 3 -2 60 7 -1 4 -2 58 10 -2 5 -3 57 12 -2 6 -4 56 14 -2 7 -4 55 15 -2 8 -4 54 16 -2
9 -5 53 18 -2 10 -6 52 20 -2 11 -6 49 24 -3 12 -6 46 28 -4 13 -5 44 29 -4 14 -4 42 30 -4 15 -4 39 33 -4 16 (meio pel) -4 36 36 -4 17 -4 33 39 -4 18 -4 30 42 -4 19 -4 29 44 -5 20 -4 28 46 -6 21 -3 24 49 -6 22 -2 20 52 -6 23 -2 18 53 -5 24 -2 16 54 -4 25 -2 15 55 -4 26 -2 14 56 -4 27 -2 12 57 -3 28 -2 10 58 -2 29 -1 7 60 -2 30 0 4 62 -2 31 0 2 63 -1
[0145] Em uma modalidade, uma Tabela de consulta do filtro de interpolação selecionado é Deslocamento c0 c1 c2 c3 de subpixel 0 (inteiro) 16 32 16 0 1 15 29 17 3 2 14 29 18 3 3 14 29 18 3 4 14 28 18 4
16 (meio pel) 7 25 25 7 17 7 24 25 8 18 7 24 25 8 19 6 23 26 9 20 6 23 26 9 21 6 22 26 10 22 6 22 26 10 23 5 21 27 11 24 5 21 27 11 25 5 20 27 12 26 4 20 28 12 27 4 19 28 13 28 4 18 28 14 29 3 18 29 14 30 3 18 29 14 31 3 17 29 15
[0146] É fornecido um codificador que compreende circuitos de processamento para realizar qualquer um dos métodos acima.
[0147] É fornecido um decodificador que compreende circuitos de processamento para realizar qualquer um dos métodos acima.
[0148] É fornecido um produto de programa de computador que compreende um código de programa para realizar qualquer um dos métodos acima.
[0149] É fornecido um decodificador, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando 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.
[0150] É fornecido um codificador, compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando 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.
[0151] Por exemplo, entende-se que uma revelação em conexão com um método descrito também pode ser verdadeira para um dispositivo ou sistema correspondente configurado para realizar o método e vice-versa. Por exemplo, se uma etapa de método específica for descrita, um dispositivo correspondente pode incluir uma unidade para realizar a etapa de método descrita, mesmo se tal unidade não for explicitamente descrita ou ilustrada nas figuras. Além disso, entende-se que os recursos dos vários aspectos exemplares descritos neste documento podem ser combinados entre si, a menos que especificamente indicado de outra forma.
[0152] É fornecido um método para filtragem dependente de razão de aspecto para predição intra, o método compreendendo: selecionar um filtro de interpolação para um bloco a ser previsto dependendo de uma razão de aspecto do bloco.
[0153] Em um exemplo, o filtro de interpolação é selecionado dependendo de uma direção para limiarização de um modo de predição intra do bloco a ser previsto.
[0154] Em um exemplo, a direção corresponde a um ângulo da diagonal principal do bloco a ser previsto.
[0155] Em um exemplo, um ângulo da direção é calculado como:
H  T = arctan( ) W ,
onde W , H são a largura e a altura do bloco a ser previsto, respectivamente.
[0156] Em um exemplo, a razão é RA = log 2 (W ) − log 2 ( H ) , onde W , H são a largura e a altura do bloco a ser previsto, respectivamente.
[0157] Em um exemplo, o ângulo da diagonal principal do bloco a ser previsto é determinado com base na razão de aspecto.
[0158] Em um exemplo, um limiar de um modo de predição intra do bloco é determinado com base no ângulo da diagonal principal do bloco a ser previsto.
[0159] Em um exemplo, o filtro de interpolação é selecionado dependendo de qual lado pertencem as amostras de referência sendo usadas.
[0160] Em um exemplo, uma linha reta com um ângulo correspondente a uma direção interna divide o bloco em duas áreas.
[0161] Em um exemplo, as amostras de referência pertencentes a diferentes áreas são preditas usando diferentes filtros de interpolação.
[0162] Em um exemplo, o filtro inclui um filtro de interpolação cúbico ou um filtro de interpolação de Gauss.
[0163] Em uma forma de implementação do presente pedido, um quadro é o mesmo que uma imagem.
[0164] Em uma forma de implementação da presente revelação, um valor correspondente a VER_IDX é 50; um valor correspondente a HOR_IDX é 18; um valor correspondente a VDIA_IDX é 66, e este valor pode ser o maior valor nos valores correspondentes aos modos angulares; o valor 2 que corresponde ao modo intra 2 pode ser o menor valor entre os valores correspondentes aos modos angulares; um valor correspondente a DIA_IDX é
34.
[0165] A presente revelação visa a melhoria no esquema de sinalização intramodo. Na presente revelação, um método de decodificação de vídeo e um decodificador de vídeo são propostos.
[0166] Em outro aspecto da presente revelação, um decodificador que compreende circuitos de processamento é revelado configurado para realizar os métodos de decodificação acima.
[0167] Em outro aspecto da presente revelação, é fornecido um produto de programa de computador que compreende um código de programa para realizar qualquer um dos métodos de decodificação acima.
[0168] Em outro aspecto da presente revelação, um decodificador para decodificar dados de vídeo é fornecido, o decodificador compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando 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 de decodificação acima.
[0169] Os circuitos de processamento podem ser implementados em hardware ou em uma combinação de hardware e software, por exemplo, por um processador programável de software ou semelhantes.
[0170] Os circuitos de processamento podem ser implementados em hardware ou em uma combinação de hardware e software, por exemplo, por um processador programável de software ou semelhante.
[0171] A Figura 11 ilustra um diagrama esquemático de uma pluralidade de modos de predição intra usados no esquema HEVC UIP. Para blocos de luminância, os modos de predição intra podem compreender até 36 modos de predição intra, que podem incluir três modos não direcionais e 33 modos direcionais. Os modos não direcionais podem compreender um modo de predição planar, um modo de predição médio (DC) e um modo de predição de croma a partir de luma (LM). O modo de predição planar pode realizar predições assumindo uma superfície de amplitude de bloco com uma inclinação horizontal e vertical derivada do limite do bloco. O modo de predição DC pode realizar predições assumindo uma superfície de bloco plana com um valor correspondente ao valor médio do limite do bloco. O modo de predição de LM pode realizar predições assumindo que um valor de croma para o bloco corresponda ao valor de luma para o bloco. Os modos direcionais podem realizar predições com base em blocos adjacentes, como mostrado na Figura 11.
[0172] H.264/AVC e HEVC especifica que um filtro passa-baixa pode ser aplicado a amostras de referência antes de ser usado no processo de predição intra. A decisão de usar filtro de amostra de referência ou não é determinada pelo modo de predição intra e tamanho de bloco. Este mecanismo pode ser referido como Suavização Intra Dependente de Modo (MDIS). Também existe uma pluralidade de métodos relacionados a MDIS. Por exemplo, o método de Suavização de Amostra de Referência Adaptativa (ARSS) pode explicitamente (ou seja, uma bandeira é incluída em um fluxo de bits) ou implicitamente (ou seja, a ocultação de dados é usada para evitar colocar uma bandeira em um fluxo de bits para reduzir a sobrecarga de sinalização) se as amostras de predição são filtradas. Neste caso, o codificador pode tomar a decisão sobre a suavização testando o custo de Taxa de Distorção (RD) para todos os modos de predição intra potenciais.
[0173] Conforme mostrado na Figura 11, a versão mais recente do JEM (JEM-7.2) tem alguns modos correspondentes às direções de predição intra enviesadas. Para qualquer um desses modos, para prever amostras dentro de um bloco, a interpolação de um conjunto de amostras de referência vizinhas deve ser realizada, se uma posição correspondente dentro de um lado de bloco for fracionária. HEVC e VVC usam interpolação linear entre duas amostras de referência adjacentes. O JEM usa filtros de interpolação 4-tap mais sofisticados. Os coeficientes de filtro são selecionados para serem gaussianos ou cúbicos, dependendo da largura ou do valor da altura. A decisão de usar largura ou altura é harmonizada com a decisão sobre a seleção do lado de referência principal: quando o modo de predição intra for maior que ou igual ao modo diagonal, o lado superior das amostras de referência é selecionado para ser o lado de referência principal e o valor de largura é selecionado para determinar o filtro de interpolação em uso. Caso contrário, a referência de lado principal é selecionada a partir do lado esquerdo do bloco e a altura controla o processo de seleção de filtro. Especificamente, se o comprimento de lado selecionado for menor ou igual a 8 amostras, a interpolação cúbica 4-tap é aplicada. Caso contrário, o filtro de interpolação é um Gaussiano 4-tap.
[0174] Um exemplo de seleção de filtro de interpolação para modos menores e maiores que o diagonal (denotado como 45 °) no caso do bloco de 32x4 é mostrado na Figura 12.
[0175] No VVC, um mecanismo de particionamento baseado em árvore quádrupla e árvore binária e conhecido como QTBT é usado. Conforme representado na Figura 13, o particionamento de QTBT pode fornecer não apenas blocos quadrados, mas também retangulares. Claro, alguma sobrecarga de sinalização e complexidade computacional aumentada no lado de codificador são o preço do particionamento de QTBT em comparação ao particionamento baseado em árvore quádrupla convencional usado no padrão HEVC/H.265. No entanto, o particionamento baseado em QTBT é dotado de melhores propriedades de segmentação e, portanto, demonstra eficiência de codificação significativamente maior do que a árvore quádrupla convencional.
[0176] No entanto, o VVC em seu estado atual aplica o mesmo filtro a ambos os lados das amostras de referência (esquerdo e superior). Não importa se um bloco está orientado verticalmente ou horizontalmente, um filtro de amostra de referência será o mesmo para ambos os lados da amostra de referência.
[0177] Neste documento, os termos "bloco orientado verticalmente" ("orientação vertical de um bloco") e "bloco orientado horizontalmente" ("orientação horizontal de um bloco") são aplicados a blocos retangulares gerados pela estrutura de QTBT. Esses termos têm o mesmo significado conforme mostrado na Figura 14.
[0178] A presente revelação fornece um mecanismo para selecionar diferentes filtros de amostra de referência a fim de considerar a orientação de um bloco. Especificamente, a largura e a altura de um bloco são verificadas independentemente de modo que diferentes filtros de amostra de referência sejam aplicados à amostra de referência localizada em diferentes lados de um bloco a ser previsto.
[0179] Na revisão do estado da técnica, foi descrito que a seleção de filtro de interpolação está harmonizada com a decisão sobre a seleção de lado de referência principal. Ambas as decisões atualmente dependem da comparação do modo de predição intra com a direção diagonal (45 graus).
[0180] Porém, pode ser notado que este projeto apresenta uma falha grave para os blocos alongados. Na Figura 15, pode-se observar que mesmo se o lado mais curto for selecionado como a referência principal usando os critérios de comparação de modo, a maioria dos pixels previstos ainda seriam derivados das amostras de referência do lado mais longo (mostrado como área tracejada).
[0181] A presente revelação propõe o uso de uma direção alternativa para limiarização de um modo de predição intra durante o processo de seleção de filtro de interpolação. Especificamente, as direções correspondem ao ângulo da diagonal principal do bloco a ser previsto. Por exemplo, para blocos de tamanho 32x4 e 4x32, o modo de limiar mT usado para determinar o filtro de amostra de referência é definido como mostrado na Figura 16.
[0182] O valor específico do ângulo de predição intra de limiar pode ser calculado usando a seguinte fórmula:
H  T = arctan( ) W ,
[0183] Onde W e H são a largura e a altura do bloco, respectivamente.
[0184] Outra modalidade da presente revelação é usar diferentes filtros de interpolação, dependendo de qual lado as amostras de referência sendo usadas pertencem. Um exemplo desta determinação é mostrado na Figura 17.
[0185] Uma linha reta com um ângulo correspondente à intradireção m divide um bloco previsto em duas áreas. Amostras pertencentes a diferentes áreas são preditas usando diferentes filtros de interpolação.
[0186] Valores exemplificativos de mT (para o conjunto de modos de predição intra definidos em BMS1.0) e ângulos correspondentes são dados na Tabela 4. Os ângulos  são dados como mostrado em. Tabela 4. Valores exemplificativos de mT (para o conjunto de modos de predição intra definidos em BMS1.0) Razão de aspecto Ângulo da diagonal Modo de predição intra principal  , graus de limiar mT -5 81,78 19 -4 93,57 19 -3 97,13 21 -2 104,04 23 -1 116,57 27 0 135,00 DIA_IDX (34) 1 153,44 41 2 165,96 45 3 172,88 47 4 176,42 49 5 178,21 49
[0187] Em comparação com a tecnologia e soluções existentes, a presente revelação usa amostras dentro de um bloco que são preditas usando diferentes filtros de interpolação, em que o filtro de interpolação usado para prever uma amostra é selecionado de acordo com a forma do bloco, orientação sendo horizontal ou vertical e ângulo de modo de predição intra.
[0188] A presente revelação pode ser aplicada no estágio de filtragem de amostra de referência. Em particular, é possível determinar o filtro de suavização de amostra de referência usando regras semelhantes descritas acima para o processo de seleção de filtro de interpolação.
[0189] Além da filtragem de interpolação, a filtragem de amostra de referência também pode ser aplicada a amostras de referência imediatamente antes de prever amostras dentro de um preditor intra. As amostras de referência filtradas obtidas após a filtragem de amostra de referência podem ser usadas para copiá-las em amostras correspondentes dentro de um preditor intra de acordo com uma direção selecionada a partir do modo de predição intra ou para filtragem de interpolação adicional. Os seguintes filtros podem ser aplicados a amostras de referência desta forma: Tabela 5. Filtros de amostra de referência exemplificativa Índice Comprimento de Coeficientes de filtro filtro 0 1 [1], ou seja, o modo de desvio é aplicado, uma vez que nenhuma filtragem é realizada neste caso 1 3 [1, 2, 1] 2 5 [2, 3, 6, 3, 2] 3 5 [1, 4, 6, 4, 1]
[0190] A Figura 21 ilustra um bloco atual 1130, ilustrado com um quadro em negrito circundante e incluindo as amostras 1120. Além disso, a figura ilustra as amostras de referência 1110 de blocos vizinhos. Por exemplo, as amostras de referência podem ser amostras de um bloco acima ou de um bloco esquerdo.
[0191] De acordo com uma modalidade, o método fornecido inclui as seguintes etapas: cada modo de predição intra direcional selecionado é classificado em um dentre os seguintes grupos: A. modos vertical ou horizontal, B. modos diagonais que representam ângulos múltiplos de 45 graus, C. modos direcionais restantes; se o modo de predição intra direcional for classificado como pertencente ao grupo A, então, nenhum filtro é aplicado às amostras de referência 1110 para gerar as amostras 1120 pertencentes a um preditor intra. As amostras de referência 1110 são separadas das amostras 1120 dentro de um bloco a ser previsto (preditor intra) com limites de bloco 1130 como mostrado na Figura 11; se um modo cair no grupo B, então um filtro de amostra de referência (qualquer filtro de amostra de referência mostrado na Tabela 5, por exemplo, [1, 2, 1]) é aplicado às amostras de referência para adicionalmente copiar esses valores filtrados em um preditor intra de acordo com a direção selecionada, mas nenhum filtro de interpolação é aplicado; se um modo for classificado como pertencente ao grupo C, então apenas um filtro de interpolação de amostra de referência intra (por exemplo, filtros apresentados na Tabela 3) é aplicado às amostras de referência para gerar uma amostra predita que cai em uma posição fracionária ou inteira entre as amostras de referência de acordo com uma direção selecionada (nenhuma filtragem de amostra de referência é realizada).
[0192] De acordo com uma modalidade, o método fornecido fornece as seguintes etapas: O modo de predição intra direcional para processamento de predição intra de um bloco atual é classificado em um dentre os seguintes grupos: Modos vertical ou horizontal, Modos direcionais incluindo modos diagonais que representam ângulos múltiplos de 45 graus, Modos direcionais restantes. Se o modo de predição intra direcional for classificado como pertencente ao grupo B, um filtro de amostra de referência é aplicado às amostras de referência; Se o modo de predição intra direcional for classificado como pertencente ao grupo C, um filtro de interpolação de amostra de referência intra é aplicado às amostras de referência. Em outras palavras, dependendo da classificação do modo de predição intra a ser usado para predição intra de um bloco atual, ou uma amostra de referência é aplicada (classificação B) ou um filtro de interpolação de amostra de referência é aplicado (classificação C).
[0193] Em particular, de acordo com a modalidade, ou um filtro de amostra ou um filtro de interpolação de amostra é aplicado. Em particular, nenhum filtro de interpolação é aplicado em um caso em que o filtro de amostra de referência de acordo com um modo de predição intra direcional não é uma amostra fracionária. Em outras palavras, em um caso onde a amostra de referência de acordo com a direção de predição cai em uma amostra inteira, nenhum filtro de interpolação deve ser usado.
[0194] Além disso, de acordo com a classificação, nenhum filtro pode ser usado. Por exemplo, em um caso de classificação A do modo de predição intra a ser usado para predição intra do bloco atual, nem um filtro de amostra de referência nem um filtro de interpolação de amostra de referência podem ser usados.
[0195] As amostras preditas podem ser obtidas a partir das linhas esquerda e superior das amostras de referência, conforme ilustrado na Figura
21. Dependendo do modo de predição intra, para cada uma das amostras preditas, uma posição correspondente da amostra de referência é determinada. Se o modo tiver uma inclinação não inteira, a posição da amostra de referência é fracionária e o valor da amostra de referência são obtidos aplicando um filtro de interpolação ao subconjunto de amostras de referência adjacente a essa posição fracionária.
[0196] A posição desta amostra de referência dentro de uma linha de amostras de referência tem um deslocamento horizontal (quando o modo de predição intra for maior que DIA_IDX) ou vertical (quando o modo de predição intra for menor que DIA-IDX) em relação à posição da amostra predita. O valor deste deslocamento depende do ângulo do modo e da distância a partir da amostra predita até a linha de amostras de referência. Quando o modo de predição intra for 2 ou VDIA_IDX, o ângulo de predição é igual a 45 graus e o valor do deslocamento é igual ao valor da distância até a linha de amostras de referência.
[0197] Os modos diagonais do grupo B também podem compreender modos de ângulo amplo de inclinação inteira. Neste caso, de forma semelhante aos modos DIA_IDX e VDIA_IDX, o valor do deslocamento é um múltiplo da distância até a linha de amostras de referência, e as posições da amostra de referência para cada amostra predita não são fracionárias.
[0198] Por exemplo, quando a predição de linha multirreferência não é usada (o índice de linha de referência é igual a zero) e a posição de uma amostra predita dentro de um bloco é igual a (1,3) em relação à amostra predita superior esquerda que tem posição (0, 0), a distância para as linhas da amostra de referência é igual a 4 amostras quando o modo de predição intra for maior que DIA_IDX. Quando o modo de predição intra for menor que DIA_IDX, esta distância é igual a 2.
[0199] Quando o modo de predição intra for um modo angular amplo e sua inclinação for um número inteiro, o valor da amostra predita pode ser calculado como: predSamples [x, y] = p [x + ∆] [-1], ∆ = N * (y + 1) quando o modo de predição intra for maior que DIA_IDX, caso contrário, predSamples [x, y] = p [-1] [y + ∆], ∆ = N * (x + 1).
[0200] Aqui, ∆ denota o valor do deslocamento.
[0201] O valor N para os modos de ângulo-45 2 e VDIA_IDX é igual a
1.
[0202] Os modos que representam ângulos que são múltiplos de 45 graus usariam as mesmas expressões para determinar as amostras preditas “predSamples [x] [y]”, mas o valor de N seria maior que 1 e inteiro. Observe que os modos que representam ângulos múltiplos de 45 graus não incluem necessariamente os modos horizontal e vertical.
[0203] Pode-se notar que o valor do deslocamento ∆ para os modos de ângulo amplo de inclinação inteira é um múltiplo do deslocamento para o modo 2 e modo VDIA_IDX,
[0204] Geralmente, o valor do deslocamento pode ser mapeado para o modo de predição intra (predModeIntra) usando um parâmetro
“intraPredAngle”. Um mapeamento específico deste parâmetro para o modo de predição intra é mostrado na Tabela 6 abaixo: Tabela 6 - Especificação de intraPredAngle predModeIntra -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 2 3 4 intraPredAngle 512 341 256 171 128 102 86 73 64 57 51 45 39 35 32 29 26 predModeIntra 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 intraPredAngle 23 20 18 16 14 12 10 8 6 4 3 2 1 0 -1 -2 -3 predModeIntra 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 intraPredAngle -4 -6 -8 -10 -12 -14 -16 -18 -20 -23 -26 -29 -32 -29 -26 -23 -20 predModeIntra 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 intraPredAngle -18 -16 -14 -12 -10 -8 -6 -4 -3 -2 -1 0 1 2 3 4 6 predMod eIntra 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 intraPredAngle 8 10 12 14 16 18 20 23 26 29 32 35 39 45 51 57 64 predModeIntra 73 74 75 76 77 78 79 80 intraPredAngle 73 86 102 128 171 256 341 512
[0205] O parâmetro de ângulo inverso invAngle é derivado com base em intraPredAngle da seguinte forma: invAngle = Round
[0206] Um exemplo de derivação de amostras preditas é descrito abaixo:
[0207] Os valores das amostras de predição predSamples [x] [y], com x = 0..nTbW - 1, y = 0..nTbH - 1 são derivados da seguinte forma:
[0208] Se predModeIntra for maior ou igual a 34, as seguintes etapas ordenadas se aplicam:
[0209] 1. O arranjo de amostras de referência ref [x] é especificado da seguinte forma:
[0210] O seguinte se aplica:
[0211] ref [x] = p [−1 - refIdx + x] [−1 - refIdx], com x = 0..nTbW + refIdx
[0212] Se intraPredAngle for menor que 0, o arranjo de amostras de referência principal é estendido da seguinte forma:
[0213] Quando (nTbH * intraPredAngle) >> 5 é menor que -1,
[0214] i. ref [x] = p [−1 - refIdx] [−1 - refIdx + ((x * invAngle + 128) >> 8)], com x = −1.. (nTbH * intraPredAngle) >> 5
[0215] ii. ref [((nTbH * intraPredAngle) >> 5) - 1] = ref [(nTbH * intraPredAngle) >> 5]
[0216] iii. ref [nTbW + 1 + refIdx] = ref [nTbW + refIdx]
[0217] Caso contrário,
[0218] i. ref [x] = p [−1 - refIdx + x] [−1 - refIdx], com x = nTbW + 1 + refIdx..refW + refIdx
[0219] ii. ref [-1] = ref [0]
[0220] As amostras adicionais ref [refW + refIdx + x] com x = 1.. (Max (1, nTbW/nTbH) * refIdx + 1) são derivadas da seguinte forma:
[0221] i. ref [refW + refIdx + x] = p [−1 + refW] [−1 - refIdx]
[0222] 2. Os valores das amostras de predição predSamples [x] [y], com x = 0..nTbW - 1, y = 0..nTbH - 1 são derivados da seguinte forma:
[0223] A variável de índice iIdx e o fator de multiplicação iFact são derivados da seguinte forma:
[0224] i. iIdx = ((y + 1 + refIdx) * intraPredAngle) >> 5 + refIdx
[0225] ii. iFact = ((y + 1 + refIdx) * intraPredAngle) & 31
[0226] Se cIdx for igual a 0, o seguinte se aplica:
[0227] Os coeficientes de filtro de interpolação fT [j] com j = 0..3 são derivados da seguinte forma:
[0228] i. fT [j] = filterFlag ? fG [iFact] [j]: fC [iFact] [j]
[0229] O valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0230] i. predSamples [x] [y] = Clip1Y ((( ) + 32) >> 6)
[0231] Caso contrário (cIdx não é igual a 0), dependendo do valor de iFact, aplica-se o seguinte:
[0232] Se iFact não for igual a 0, o valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0233] predSamples [x] [y] = ((32 - iFact) * ref [x + iIdx + 1] + iFact * ref [x + iIdx + 2] + 16) >> 5
[0234] A. Caso contrário, o valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0235] i. PredSamples [x] [y] = ref [x + iIdx + 1]
[0236] B. Caso contrário (predModeIntra é menor que 34), as seguintes etapas ordenadas se aplicam:
[0237] 3. O arranjo de amostras de referência ref [x] é especificado da seguinte forma:
[0238] O seguinte se aplica:
[0239] i. ref [x] = p [−1 - refIdx] [−1 - refIdx + x], com x = 0..nTbH + refIdx
[0240] Se intraPredAngle for menor que 0, o arranjo de amostras de referência principal é estendido da seguinte forma:
[0241] Quando (nTbW * intraPredAngle) >> 5 é menor que -1,
[0242] i. ref [x] = p [−1 - refIdx + ((x * invAngle + 128) >> 8)] [−1 - refIdx], com x = −1.. (nTbW * intraPredAngle) >> 5
[0243] ii. ref [((nTbW * intraPredAngle) >> 5) - 1] = ref [(nTbW * intraPredAngle) >> 5]
[0244] iii. ref [nTbG + 1 + refIdx] = ref [nTbH + refIdx]
[0245] Caso contrário,
[0246] i. ref [x] = p [−1 - refIdx] [−1 - refIdx + x], com x = nTbH + 1 + refIdx..refH + refIdx
[0247] ii. ref [-1] = ref [0]
[0248] As amostras adicionais ref [refH + refIdx + x] com x = 1.. (Max (1, nTbW/nTbH) * refIdx + 1) são derivadas da seguinte forma:
[0249] i. ref [refH + refIdx + x] = p [−1 + refH] [−1 - refIdx]
[0250] 4. Os valores das amostras de predição predSamples [x] [y], com x = 0..nTbW - 1, y = 0..nTbH - 1 são derivados da seguinte forma:
[0251] A variável de índice iIdx e o fator de multiplicação iFact são derivados da seguinte forma:
[0252] i. iIdx = ((x + 1 + refIdx) * intraPredAngle) >> 5
[0253] ii. iFact = ((x + 1 + refIdx) * intraPredAngle) & 31
[0254] Se cIdx for igual a 0, o seguinte se aplica:
[0255] Os coeficientes de filtro de interpolação fT [j] com j = 0..3 são derivados da seguinte forma:
[0256] i. fT [j] = filterFlag ? fG [iFact] [j]: fC [iFact] [j]
[0257] O valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0258] i. predSamples [x] [y] = Clip1Y ((( ) + 32) >> 6)
[0259] Caso contrário (cIdx não é igual a 0), dependendo do valor de iFact, aplica-se o seguinte:
[0260] Se iFact não for igual a 0, o valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0261] i. predSamples [x] [y] = ((32 - iFact) * ref [y + iIdx + 1] + iFact * ref [y + i Idx + 2] + 16) >> 5
[0262] Caso contrário, o valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0263] i. predSamples [x] [y] = ref [y + iIdx + 1]
[0264] A partir do exemplo acima e da Tabela acima, pode ser notado que a invocação de interpolação para alguns dos modos é redundante. Especificamente, isso ocorre para os modos que têm um parâmetro intraPredAngle correspondente sendo um múltiplo de 32. O valor 32 corresponde a um modo de inclinação de 45 graus inteiro. Na verdade, o valor de predAngle é uma representação inteira de ponto fixo de 5 bits para o valor de deslocamento que seria usado para amostras preditas adjacentes à linha de amostras de referência.
[0265] Especificamente, para os modos [-14, -12, -10, -6, 2, 34, 66, 72, 76, 78, 80], o cálculo de amostras preditas não requer interpolação. Os valores das amostras preditas podem ser obtidos copiando as amostras de referência.
[0266] Uma versão de um projeto de especificação VVC que incorpora uma implementação exemplar de uma modalidade da revelação é fornecida no texto abaixo:
[0267] 8.4.4.2.1 Predição de amostra intra geral
[0268] As entradas para este processo são:
[0269] - um local de amostra (xTbCmp, yTbCmp) especificando a amostra superior esquerda do atual bloco de transformada em relação à amostra superior esquerda da imagem atual,
[0270] - uma variável predModeIntra especificando o modo de predição intra,
[0271] - uma variável nTbW especificando a largura de bloco de transformada,
[0272] - uma variável nTbH especificando a altura de bloco de transformada,
[0273] - uma variável nCbW especificando a largura de bloco de codificação,
[0274] - uma variável nCbH especificando a altura de bloco de codificação,
[0275] - uma variável cIdx especificando o componente de cor do bloco atual.
[0276] As saídas desse processo são as amostras preditas predSamples [x] [y], com x = 0..nTbW - 1, y = 0..nTbH - 1.
[0277] As variáveis refW e refH são derivadas da seguinte forma:
[0278] - Se IntraSubPartitionsSplitType for igual a ISP_NO_SPLIT ou cIdx não for igual a 0, o seguinte se aplica:
[0279] refW = nTbW * 2 (8 - 103)
[0280] refH = nTbH * 2 (8 - 104)
[0281] - Caso contrário (IntraSubPartitionsSplitType não é igual a ISP_NO_SPLIT e cIdx é igual a 0), o seguinte se aplica:
[0282] refW = nCbW * 2 (8 - 105)
[0283] refH = nCbH * 2 (8 - 106)
[0284] A variável refIdx especificando o índice de linha de referência de predição intra é derivada da seguinte forma:
[0285] refIdx = (cIdx = = 0) ? IntraLumaRefLineIdx [xTbCmp] [yTbCmp]: 0 (8 - 107)
[0286] Para a geração das amostras de referência p [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx, as seguintes etapas ordenadas se aplicam:
[0287] 1. O processo de marcação de disponibilidade de amostra de referência conforme especificado na cláusula 8.4.4.2.2 de Bross B et al.: "Versatile Cideo Coding (Draft 4)", JVET-M1001-v7, março de 2019, (a seguir, este documento é referido como JVET-M1001-v7) é invocado com o local de amostra (xTbCmp, yTbCmp), o índice de linha de referência de predição intra refIdx, a largura de amostra de referência refW, a altura de amostra de referência refH, o índice de componente de cor cIdx como entradas, e as amostras de referência refUnfilt [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = - refIdx..refW - 1, y = −1 - refIdx como saída.
[0288] 2. Quando pelo menos uma amostra refUnfilt [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx está marcada como "não disponível para predição intra", um processo de substituição de amostra de referência conforme especificado na cláusula 8.4.4.2.3 de JVET- M1001-v7 é invocado com o índice de linha de referência de predição intra refIdx, a largura de amostra de referência refW, a altura de amostra de referência refH, as amostras de referência refUnfilt [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx, e o índice de componente de cor cIdx como entradas, e as amostras de referência modificadas refUnfilt [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx como saída.
[0289] 3. Se predModeIntra for igual a INTRA_DC, RefFilterFlag é definido igual a 0. Caso contrário, o parâmetro intraPredAngle, RefFilterFlag e InterpolationFlag são obtidos invocando o parâmetro intraPredAngle correspondente e o processo de derivação de bandeiras de filtro especificado na cláusula 8.4.4.2.7 abaixo, com o modo de predição predModeIntra, o índice de linha de referência de predição intra refIdx, a largura de bloco de transformada nTbW, a altura de bloco de transformada nTbH, a largura de bloco de codificação nCbW e a altura nCbH e o índice de componente de cor cIdx.
[0290] 4. O processo de filtragem de amostra de referência, conforme especificado na cláusula 8.4.4.2.4 abaixo, é invocado com o índice de linha de referência de predição intra refIdx, a largura de bloco de transformada nTbW e a altura nTbH, a largura de amostra de referência refW, a altura de amostra de referência refH, as amostras não filtradas refUnfilt [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx, parâmetro RefFilterFlag e o índice de componente de cor cIdx como entradas, e as amostras de referência p [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = -1 - refIdx como saída.
[0291] O processo de predição de amostra intra de acordo com predModeIntra se aplica da seguinte forma:
[0292] - Se predModeIntra for igual a INTRA_PLANAR, o processo de modo de predição intra correspondente especificado na cláusula 8.4.4.2.5 de JVET-M1001-v7 é invocado com a largura de bloco de transformada nTbW e a altura de bloco de transformada nTbH, e o arranjo de amostras de referência p como entradas, e a saída é o arranjo de amostras preditas predSamples.
[0293] - Caso contrário, se predModeIntra for igual a INTRA_DC, o processo de modo de predição intra correspondente especificado na cláusula
8.4.4.2.6 de JVET-M1001-v7 é invocado com a largura de bloco de transformada nTbW, a altura de bloco de transformada nTbH e o arranjo de amostras de referência p como entradas, e a saída é o arranjo de amostras preditas predSamples.
[0294] Caso contrário, se predModeIntra for igual a INTRA_LT_CCLM, INTRA_L_CCLM ou INTRA_T_CCLM, o processo do modo de predição intra correspondente especificado na cláusula 8.4.4.2.8 é chamado com o modo de predição intra predModeIntra, o conjunto de locais de amostra (xTbC, yTbC) igual a (xTbCmp, yTbCmp), a largura de bloco de transformada nTbW e a altura nTbH, e o arranjo de amostras de referência p como entradas, e a saída é o arranjo de amostras preditas predSamples.
[0295] Caso contrário, o processo de modo de predição intra correspondente especificado na cláusula 8.4.4.2.8 abaixo é invocado com o modo de predição intra predModeIntra, o índice de linha de referência de predição intra refIdx, a largura de bloco de transformada nTbW, a altura de bloco de transformada nTbH, a largura de amostra de referência refW, a altura de amostra de referência refH, a largura de bloco de codificação nCbW, e a altura nCbH, a bandeira de seleção de filtro de interpolação InterpolationFlag, a bandeira de filtro de referência RefFilterFlag e o arranjo de amostras de referência p como entradas, e o modo de predição intra modificado predModeIntra e o arranjo de amostras preditas predSamples como saídas.
[0296] Quando todas as seguintes condições forem verdadeiras, o processo de filtragem de amostra de predição dependente da posição especificado na cláusula 8.4.4.2.9 de JVET-M1001-v7 é invocado com o modo de predição intra predModeIntra, a largura de bloco de transformada nTbW, a altura de bloco de transformada nTbH, as amostras preditas predSamples [x] [y],
com x = 0..nTbW - 1, y = 0..nTbH - 1, a largura de amostra de referência refW, a altura de amostra de referência refH, as amostras de referência p [x] [y], com x = −1, y = −1..refH - 1 e x = 0..refW - 1, y = −1, e o índice de componente de cor cIdx como entradas, e a saída é o arranjo de amostras preditas modificado predSamples:
[0297] - IntraSubPartitionsSplitType é igual a ISP_NO_SPLIT ou cIdx não é igual a 0
[0298] - refIdx é igual a 0 ou cIdx não é igual a 0
[0299] - Uma das seguintes condições é verdadeira:
[0300] - predModeIntra é igual a INTRA_PLANAR
[0301] - predModeIntra é igual a INTRA_DC
[0302] - predModeIntra é igual a INTRA_ANGULAR18
[0303] - predModeIntra é igual a INTRA_ANGULAR50
[0304] - predModeIntra é menor ou igual a INTRA_ANGULAR10
[0305] - predModeIntra é maior ou igual a INTRA_ANGULAR58
[0306] 8.4.4.2.4 Processo de filtragem de amostra de referência
[0307] As entradas para este processo são:
[0308] - uma variável refIdx especificando o índice de linha de referência de predição intra,
[0309] - uma variável nTbW especificando a largura de bloco de transformada,
[0310] - uma variável nTbH especificando a altura de bloco de transformada,
[0311] - uma variável refW especificando a largura de amostras de referência,
[0312] - uma variável refH especificando a altura de amostras de referência,
[0313] - as amostras vizinhas (não filtradas) refUnfilt [x] [y], com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx,
[0314] - Parâmetro RefFilterFlag
[0315] As saídas deste processo são as amostras de referência p [x] [y], com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx.
[0316] Para a derivação das amostras de referência p [x] [y], o seguinte se aplica:
[0317] - Se R efFilterFlag for igual a 1, os valores de amostra filtrados p [x] [y] com x = −1, y = −1..refH - 1 e x = 0..refW - 1, y = −1 são derivados do seguinte modo:
[0318] p [−1] [−1] = (refUnfilt [−1] [0] + 2 * refUnfilt [−1] [−1] + refUnfilt
[0] [−1] + 2) >> 2 (8 - 111)
[0319] p [−1] [y] = (refUnfilt [−1] [y + 1] + 2 * refUnfilt [−1] [y] + refUnfilt [−1] [y - 1] + 2) >> 2 para y = 0..refH - 2 (8 - 112)
[0320] p [−1] [refH - 1] = refUnfilt [−1] [refH - 1] (8 - 113)
[0321] p [x] [−1] = (refUnfilt [x - 1] [−1] + 2 * refUnfilt [x] [−1] + refUnfilt [x + 1] [−1] + 2) >> 2 para x = 0..refW - 2 (8 - 114)
[0322] p [refW - 1] [−1] = refUnfilt [refW - 1] [−1] (8 - 115)
[0323] - Caso contrário, os valores de amostras de referência p [x] [y] são definidos iguais aos valores de amostra não filtrados refUnfilt [x] [y] com x = −1− refIdx, y = −1− refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1− refIdx.
[0324] 8.4.4.2.7 Especificação do parâmetro intraPredAngle e derivação de bandeiras de filtro
[0325] As entradas para este processo são:
[0326] - o modo de predição intra predModeIntra,
[0327] - uma variável nTbW especificando a largura de bloco de transformada,
[0328] - uma variável nTbH especificando a altura de bloco de transformada,
[0329] - uma variável nCbW especificando a largura de bloco de codificação,
[0330] - uma variável nCbH especificando a altura de bloco de codificação,
[0331] - um índice de componente de cor cIdx
[0332] As saídas deste processo são o modo de predição intra modificado predModeIntra, o parâmetro intraPredAngle RefFilterFlag e as variáveis InterpolationFlag.
[0333] As variáveis nW e nH são derivadas da seguinte forma:
[0334] - Se IntraSubPartitionsSplitType for igual a ISP_NO_SPLIT ou cIdx não for igual a 0, o seguinte se aplica:
[0335] nW = nTbW
[0336] nH = nTbH
[0337] - Caso contrário (IntraSubPartitionsSplitType não é igual a ISP_NO_SPLIT e cIdx é igual a 0), o seguinte se aplica:
[0338] nW = nCbW
[0339] nH = nCbH
[0340] A variável whRatio é definida igual a Abs (Log2 (nW/nH)).
[0341] Para blocos não quadrados (nW não é igual a nH), o modo de predição intra predModeIntra é modificado da seguinte forma:
[0342] - Se todas as condições a seguir forem verdadeiras, predModeIntra é definido igual a (predModeIntra + 65).
[0343] - nW é maior que nH
[0344] - predModeIntra é maior ou igual a 2
[0345] - predModeIntra é menor que (whRatio > 1) ? (8 + 2 * whRatio): 8
[0346] - Caso contrário, se todas as condições a seguir forem verdadeiras, predModeIntra é definido igual a (predModeIntra - 67).
[0347] - nH é maior que nW
[0348] - predModeIntra é menor ou igual a 66
[0349] - predModeIntra é maior que (whRatio > 1) ? (60 - 2 * whRatio): 60
[0350] O parâmetro de ângulo intraPredAngle é determinado conforme especificado na Tabela 7 usando o valor predModeIntra. Tabela 7 - Especificação de intraPredAngle predModeIntra -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 2 3 4 intraPr edAngle 512 341 256 171 128 102 86 73 64 57 51 45 39 35 32 29 26 predModeIntra 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 intraPredAngle 23 20 18 16 14 12 10 8 6 4 3 2 1 0 -1 -2 -3 predModeIntra 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 intraPredAngle -4 -6 -8 -10 -12 -14 -16 -18 -20 -23 -26 -29 -32 -29 -26 -23 -20 predModeIntra 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 intraPredAngle -18 -16 -14 -12 -10 -8 -6 -4 -3 -2 -1 0 1 2 3 4 6 predModeIntra 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 intraPredAngle 8 10 12 14 16 18 20 23 26 29 32 35 39 45 51 57 64 predModeIntra 73 74 75 76 77 78 79 80 IntraPredAngle 73 86 102 128 171 256 341 512
[0351] A variável filterFlag é derivada da seguinte maneira:
[0352] - Se uma ou mais das seguintes condições forem verdadeiras, filterFlag é definido igual a 0.
[0353] - cIdx não é igual a 0
[0354] - refIdx não é igual a 0
[0355] - IntraSubPartitionsSplitType não é igual a ISP_NO_SPLIT e cIdx é igual a 0 e predModeIntra é maior ou igual a INTRA_ANGULAR34 e nW é maior que 8
[0356] - IntraSubPartitionsSplitType não é igual a ISP_NO_SPLIT e cIdx é igual a 0 e predModeIntra é menor que INTRA_ANGULAR34 e nH é maior que 8.
[0357] - Caso contrário, se predModeIntra for INTRA_PLANAR, a variável filterFlag é definida igual a nTbS> 5? 1: 0
[0358] - Caso contrário, se intraPredAngle for maior que 32, a variável filterFlag é definida igual a 1
[0359] - Caso contrário, o seguinte se aplica:
[0360] - A variável minDistVerHor é definida igual a Min (Abs (predModeIntra - 50), Abs (predModeIntra - 18)).
[0361] - A variável intraHorVerDistThres [nTbS] é especificada na Tabela 8.
[0362] A variável filterFlag é derivada da seguinte maneira:
[0363] - Se minDistVerHor for maior que intraHorVerDistThres [nTbS] ou Abs (intraPredAngle)> 32, filterFlag é definido igual a 1. Tabela 8 - Especificação de intraHorVerDistThres [nTbS] para vários tamanhos de bloco de transformada nTbS nTbS nTbS nTbS nTbS nTbS = nTbS = =2 =3 =4 =5 6 7 intraHorVerDistThre 16 14 2 0 0 0 s [nTbS]
[0364] As variáveis de saída RefFilterFlag e InterpolationFlag são derivadas da seguinte forma:
[0365] - Se predModeIntra for INTRA_PLANAR ou predIntraAng for um inteiro múltiplo de 32, a variável RefFilterFlag é definida igual a filterFlag, InterpolationFlag é definida igual a 0,
[0366] - Caso contrário, a variável RefFilterFlag é definida igual a 0, InterpolationFlag é definida igual a filterFlag.
[0367] Informativo: RefFilterFlag e InterpolationFlag nunca devem ser iguais a 1 para qualquer predModeIntra, consulte a Tabela 9): Tabela 9 - Especificação de RefFilterFlag e InterpolationFlag (informativo) predModeIntra RefFilterFlag InterpolationFlag INTRA_DC, 18, 50 0 0 INTRA_PLANAR filterFlag 0 -14, -12, -10, -6, 2, 34, 66, 72, 76, 78, filterFlag 0 80 Outros modos 0 filterFlag
[0368] 8.4.4.2.8 Especificação dos modos de predição intra angular
[0369] As entradas para este processo são:
[0370] - Modo de Predição intra predModeIntra,
[0371] - o parâmetro intraPredAngle, ´
[0372] - uma variável refIdx especificando o índice de linha de referência de predição intra,
[0373] - uma variável nTbW especificando a largura de bloco de transformada,
[0374] - uma variável nTbH especificando a altura de bloco de transformada,
[0375] - uma variável refW especificando a largura de amostras de referência,
[0376] - uma variável refH especificando a altura de amostras de referência,
[0377] - uma variável nCbW especificando a largura de bloco de codificação,
[0378] - uma variável nCbH especificando a altura de bloco de codificação,
[0379] - uma variável InterpolationFlag especificando o uso de interpolação de filtro 4-tap,
[0380] - uma variável RefFilterFlag especificando se as amostras vizinhas são filtradas
[0381] - as amostras vizinhas p [x] [y], com x = −1− refIdx, y = −1− refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1− refIdx.
[0382] As saídas deste processo são o modo de predição intra modificado predModeIntra e as amostras preditas predSamples [x] [y], com x =
0..nTbW - 1, y = 0..nTbH - 1.
[0383] A variável nTbS é definida igual a (Log2 (nTbW) + Log2 (nTbH)) >> 1
[0384] A Figura 18 ilustra as 93 direções de predição, onde as direções tracejadas estão associadas aos modos de ângulo amplo que são aplicados apenas a blocos não quadrados.
[0385] O parâmetro de ângulo inverso invAngle é derivado com base em intraPredAngle da seguinte forma: invAngle = Round
[0386] Os coeficientes de filtro de interpolação fC [fase] [j] e fG [fase] [j] com fase = 0..31 e j = 0..3 são especificados na Tabela 10. Tabela 10 - Especificação dos coeficientes de filtro de interpolação fC e fG Posição coeficientes de filtro de Coeficientes de filtro de de interpolação fC interpolação fG amostra fC [p] fC [p] fC [p] fC [p] fG [p] fG [p] fG [p] fG [p] fracionária
[0] [1] [2] [3] [0] [1] [2] [3] p 0 0 64 0 0 16 32 16 0 1 -1 63 2 0 15 29 17 3 2 -2 62 4 0 15 29 17 3
3 -2 60 7 -1 14 29 18 3 4 -2 58 10 -2 13 29 18 4 5 -3 57 12 -2 13 28 19 4 6 -4 56 14 -2 13 28 19 4 7 -4 55 15 -2 12 28 20 4 8 -4 54 16 -2 11 28 20 5 9 -5 53 18 -2 11 27 21 5 10 -6 52 20 -2 10 27 22 5 11 -6 49 24 -3 9 27 22 6 12 -6 46 28 -4 9 26 23 6 13 -5 44 29 -4 9 26 23 6 14 -4 42 30 -4 8 25 24 7 15 -4 39 33 -4 8 25 24 7 16 -4 36 36 -4 8 24 24 8 17 -4 33 39 -4 7 24 25 8 18 -4 30 42 -4 7 24 25 8 19 -4 29 44 -5 6 23 26 9 20 -4 28 46 -6 6 23 26 9 21 -3 24 49 -6 6 22 27 9 22 -2 20 52 -6 5 22 27 10 23 -2 18 53 -5 5 21 27 11 24 -2 16 54 -4 5 20 28 11 25 -2 15 55 -4 4 20 28 12 26 -2 14 56 -4 4 19 28 13 27 -2 12 57 -3 4 19 28 13 28 -2 10 58 -2 4 18 29 13 29 -1 7 60 -2 3 18 29 14 30 0 4 62 -2 3 17 29 15 31 0 2 63 -1 3 17 29 15
[0387] Os valores das amostras de predição predSamples [x] [y], com x = 0..nTbW - 1, y = 0..nTbH - 1 são derivados da seguinte forma:
[0388] - Se predModeIntra for maior ou igual a 34, as seguintes etapas ordenadas se aplicam:
[0389] 1. O arranjo de amostras de referência ref [x] é especificado da seguinte forma:
[0390] - O seguinte se aplica:
[0391] ref [x] = p [−1 - refIdx + x] [−1 - refIdx], com x = 0..nTbW + refIdx
[0392] - Se intraPredAngle for menor que 0, o arranjo de amostras de referência principal é estendido da seguinte forma:
[0393] - Quando (nTbH * intraPredAngle) >> 5 é menor que -1,
[0394] ref [x] = p [−1 - refIdx] [−1 - refIdx + ((x * invAngle + 128) >> 8)], com x = −1.. (nTbH * intraPredAngle) >> 5
[0395] ref [((nTbH * intraPredAngle) >> 5) - 1] = ref [(nTbH * intraPredAngle) >> 5]
[0396] ref [nTbW + 1 + refIdx] = ref [nTbW + refIdx]
[0397] - Caso contrário,
[0398] ref [x] = p [−1 - refIdx + x] [−1 - refIdx], com x = nTbW + 1 + refIdx..refW + refIdx
[0399] ref [-1] = ref [0]
[0400] As amostras adicionais ref [refW + refIdx + x] com x = 1.. (Max (1, nTbW/nTbH) * refIdx + 1) são derivadas da seguinte forma:
[0401] ref [refW + refIdx + x] = p [−1 + refW] [−1 - refIdx]
[0402] 2. Os valores das amostras de predição predSamples [x] [y], com x = 0..nTbW - 1, y = 0..nTbH - 1 são derivados da seguinte forma:
[0403] - A variável de índice iIdx e o fator de multiplicação iFact são derivados da seguinte forma:
[0404] iIdx = ((y + 1 + refIdx) * intraPredAngle) >> 5 + refIdx
[0405] iFact = ((y + 1 + refIdx) * intraPredAngle) & 31
[0406] - Se RefFilterFlag for igual a 0, o seguinte se aplica:
[0407] - Os coeficientes de filtro de interpolação fT [j] com j = 0..3 são derivados da seguinte forma:
[0408] fT [j] = InterpolationFlag ? fG [iFact] [j]: fC [iFact] [j]
[0409] - O valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0410] predSamples [x] [y] = Clip1Y ((( ) + 32) >> 6)
[0411] Caso contrário (RefFilterFlag não é igual a 0), dependendo do valor de iFact, o seguinte se aplica:
[0412] - Se iFact não for igual a 0, o valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0413] predSamples [x] [y] = ((32 - iFact) * ref [x + iIdx + 1] + iFact * ref [x + iIdx + 2] + 16) >> 5
[0414] - Caso contrário, o valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0415] PredSamples [x] [y] = ref [x + iIdx + 1]
[0416] Caso contrário (predModeIntra é menor que 34), as seguintes etapas ordenadas se aplicam:
[0417] 1. O arranjo de amostras de referência ref [x] é especificado da seguinte forma:
[0418] - O seguinte se aplica:
[0419] ref [x] = p [−1 - refIdx] [−1 - refIdx + x], com x = 0..nTbH + refIdx
[0420] - Se intraPredAngle for menor que 0, o arranjo de amostras de referência principal é estendido da seguinte forma:
[0421] - Quando (nTbW * intraPredAngle) >> 5 é menor que -1,
[0422] ref [x] = p [−1 - refIdx + ((x * invAngle + 128) >> 8)] [−1 - refIdx], com x = −1.. (nTbW * intraPredAngle) >> 5
[0423] ref [((nTbW * intraPredAngle) >> 5) - 1] = ref [(nTbW * intraPredAngle) >> 5]
[0424] ref [nTbG + 1 + refIdx] = ref [nTbH + refIdx]
[0425] - Caso contrário,
[0426] ref [x] = p [−1 - refIdx] [−1 - refIdx + x], com x = nTbH + 1 + refIdx..refH + refIdx
[0427] ref [-1] = ref [0]
[0428] - As amostras adicionais ref [refH + refIdx + x] com x = 1.. (Max (1, nTbW/nTbH) * refIdx + 1) são derivadas da seguinte forma:
[0429] ref [refH + refIdx + x] = p [−1 + refH] [−1 - refIdx]
[0430] 2. Os valores das amostras de predição predSamples [x] [y], com x = 0..nTbW - 1, y = 0..nTbH - 1 são derivados da seguinte forma:
[0431] - A variável de índice iIdx e o fator de multiplicação iFact são derivados da seguinte forma:
[0432] iIdx = ((x + 1 + refIdx) * intraPredAngle) >> 5
[0433] iFact = ((x + 1 + refIdx) * intraPredAngle) & 31
[0434] - Se RefFilterFlag for igual a 0, o seguinte se aplica:
[0435] - Os coeficientes de filtro de interpolação fT [j] com j = 0..3 são derivados da seguinte forma:
[0436] fT [j] = InterpolationFlag? fG [iFact] [j]: fC [iFact] [j]
[0437] - O valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0438] predSamples [x] [y] = Clip1Y ((( ) + 32) >> 6)
[0439] - Caso contrário (RefFilterFlag não é igual a 0), dependendo do valor de iFact, o seguinte se aplica:
[0440] - Se iFact não for igual a 0, o valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0441] predSamples [x] [y] = ((32 - iFact) * ref [y + iIdx + 1] + iFact * ref [y + iIdx + 2] + 16) >> 5
[0442] - Caso contrário, o valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0443] predSamples [x] [y] = ref [y + iIdx + 1]
[0444] Com base no tamanho do bloco previsto, os modos de ângulo amplo podem cair em grupos diferentes. No exemplo dado abaixo, esses modos ainda pertenceriam ao grupo “B” ou ao grupo “C” dependendo se eles têm uma inclinação não fracionária. No entanto, a seleção do filtro de interpolação para os modos do grupo “C” e a presença da etapa de filtragem da amostra de referência para os modos do grupo “B” dependeria do tamanho do bloco. A parte da derivação de filterFlag pode ser modificada da seguinte forma:
[0445] A variável filterFlag é derivada da seguinte maneira:
[0446] - Se uma ou mais das seguintes condições forem verdadeiras, filterFlag é definido igual a 0.
[0447] - cIdx não é igual a 0
[0448] - refIdx não é igual a 0
[0449] - IntraSubPartitionsSplitType não é igual a ISP_NO_SPLIT e cIdx é igual a 0 e predModeIntra é maior ou igual a INTRA_ANGULAR34 e nW é maior que 8
[0450] - IntraSubPartitionsSplitType não é igual a ISP_NO_SPLIT e cIdx é igual a 0 e predModeIntra é menor que INTRA_ANGULAR34 e nH é maior que 8.
[0451] - Caso contrário, se predModeIntra for INTRA_PLANAR, a variável filterFlag é definida igual a nTbS> 5? 1: 0
[0452] - Caso contrário, se intraPredAngle for maior que 32 e nTbW * nTbH for maior que 32, a variável filterFlag é definida igual a 1
[0453] Caso contrário, o seguinte se aplica:
[0454] - A variável minDistVerHor é definida igual a Min (Abs (predModeIntra - 50), Abs (predModeIntra - 18)).
[0455] - A variável intraHorVerDistThres [nTbS] é especificada na Tabela 11.
[0456] - A variável filterFlag é derivada da seguinte maneira:
[0457] - Se minDistVerHor for maior que intraHorVerDistThres [nTbS] ou Abs (intraPredAngle)> 32, filterFlag é definido igual a 1. Tabela 11 - Especificação de intraHorVerDistThres [nTbS] para vários tamanhos de bloco de transformada nTbS nTbS nTbS nTbS nTbS nTbS nTbS =2 =3 =4 =5 =6 =7 intraHorVerDistThres [nTbS] 16 14 2 0 0 0
[0458] Os modos de ângulo amplo podem ser modos que indicam direções dentro da parte inferior do quadrante esquerdo inferior ou da parte direita ou do quadrante direito acima. Especificamente, no exemplo ilustrado na Figura 18, os modos de ângulo amplo são os modos -14 a -1, bem como os modos 67 a 80.
[0459] Outra versão de um projeto de especificação VVC que incorpora uma implementação exemplar de uma modalidade da presente revelação compreende a seguinte parte que se refere à filtragem de amostra de referência é fornecida abaixo:
[0460] Para a geração das amostras de referência p [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx, as seguintes etapas ordenadas se aplicam:
[0461] 1. O processo de marcação de disponibilidade de amostra de referência, conforme especificado na cláusula 8.4.4.2.2 de JVET-M1001-v7, é invocado com o local de amostra (xTbCmp, yTbCmp), o índice de linha de referência de predição intra refIdx, a largura de amostra de referência refW, a altura de amostra de referência refH, o índice de componente de cor cIdx como entradas, e as amostras de referência refUnfilt [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = - refIdx.. refW - 1, y = −1 - refIdx como saída.
[0462] 2. Quando pelo menos uma amostra refUnfilt [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx está marcada como "não disponível para predição intra", o processo de substituição de amostra de referência conforme especificado na cláusula 8.4.4.2.3 de JVET-M1001-v7 é invocado com o índice de linha de referência de predição intra refIdx, a largura de amostra de referência refW, a altura de amostra de referência refH, as amostras de referência refUnfilt [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx, e o índice de componente de cor cIdx como entradas, e as amostras de referência modificadas refUnfilt [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx como entrada Se predModeIntra não for igual a INTRA_PLANAR e predModeIntra não for igual a INTRA_DC, o parâmetro intraPredAngle é obtido invocando o processo de modo de predição intra correspondente especificado na cláusula
8.4.4.2. 7 abaixo, caso contrário, se predModeIntra é igual a INTRA_PLANAR, intraPredAngle é definido como 32, caso contrário, intraPredAngle é definido como 0.
[0463] 3. O processo de filtragem de amostra de referência, conforme especificado na cláusula 8.4.4.2.4 abaixo, é invocado com o índice de linha de referência de predição intra refIdx, a largura de bloco de transformada nTbW e a altura nTbH, a largura de amostra de referência refW, a altura de amostra de referência refH, as amostras não filtradas refUnfilt [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx, parâmetro intraPredAngle e o índice de componente de cor cIdx como entradas, e as amostras de referência p [x] [y] com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = -1 - refIdx como saída.
[0464] O processo de predição de amostra intra de acordo com predModeIntra se aplica da seguinte forma:
[0465] - Se predModeIntra for igual a INTRA_PLANAR, o processo de modo de predição intra correspondente especificado na cláusula 8.4.4.2.5 de JVET-M1001-v7 é invocado com a largura de bloco de transformada nTbW, e a altura de bloco de transformada nTbH, e o arranjo de amostras de referência p como entradas, e a saída é o arranjo de amostras preditas predSamples.
[0466] - Caso contrário, se predModeIntra for igual a INTRA_DC, o processo de modo de predição intra correspondente especificado na cláusula
8.4.4.2.6 de JVET-M1001-v7 é invocado com a largura de bloco de transformada nTbW, a altura de bloco de transformada nTbH e o arranjo de amostras de referência p como entradas, e a saída é o arranjo de amostras preditas predSamples.
[0467] - Caso contrário, se predModeIntra for igual a INTRA_LT_CCLM, INTRA_L_CCLM ou INTRA_T_CCLM, o processo de modo de predição intra correspondente especificado na cláusula 8.4.4.2.8 abaixo é invocado com o modo de predição intra predModeIntra, o local de amostra (xTbC, yTbC) definido igual a (xTbCmp, yTbCmp), a largura de bloco de transformada nTbW e a altura nTbH, e o arranjo de amostras de referência p como entradas, e a saída é o arranjo de amostras preditas predSamples.
[0468] - Caso contrário, se uma ou mais das seguintes condições forem verdadeiras, fourTapFlag é definido igual a 0:
[0469] - o índice de componente de cor cIdx não é igual a 0
[0470] - intraPredAngle é um múltiplo de 32.
[0471] Caso contrário, o processo de modo de predição intra correspondente especificado na cláusula 8.4.4.2.7 abaixo é invocado com o modo de predição intra predModeIntra, o índice de linha de referência de predição intra refIdx, a largura de bloco de transformada nTbW, a altura de bloco de transformada nTbH, a largura de amostra de referência refW, a altura de amostra de referência refH, a largura de bloco de codificação nCbW e a altura nCbH, o fourTapFlag, e o arranjo de amostras de referência p como entradas, e o modo de predição intra modificado predModeIntra e o arranjo de amostras preditas predSamples como saídas.
[0472] 8.4.4.2.4 Processo de filtragem de amostra de referência
[0473] As entradas para este processo são:
[0474] - uma variável refIdx especificando o índice de linha de referência de predição intra,
[0475] - uma variável nTbW especificando a largura de bloco de transformada,
[0476] - uma variável nTbH especificando a altura de bloco de transformada,
[0477] - uma variável refW especificando a largura de amostras de referência,
[0478] - uma variável refH especificando a altura de amostras de referência,
[0479] - as amostras vizinhas (não filtradas) refUnfilt [x] [y], com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx,
[0480] - parâmetro predIntraAngle
[0481] - uma variável cIdx especificando o componente de cor do bloco atual.
[0482] As saídas deste processo são as amostras de referência p [x] [y], com x = −1 - refIdx, y = −1 - refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1 - refIdx.
[0483] A variável filterFlag é derivada da seguinte maneira:
[0484] - Se todas as seguintes condições forem verdadeiras, filterFlag é definido igual a 1:
[0485] - refIdx é igual a 0
[0486] - nTbW * nTbH é maior que 32
[0487] - cIdx é igual a 0
[0488] - IntraSubPartitionsSplitType é igual a ISP_NO_SPLIT
[0489] - predIntraAngle não é igual a 0 e é um múltiplo de 32
[0490] - Caso contrário, filterFlag é definido igual a 0.
[0491] Para a derivação das amostras de referência p [x] [y], o seguinte se aplica:
[0492] - Se filterFlag for igual a 1, os valores de amostra filtrados p [x] [y] com x = −1, y = −1..refH - 1 e x = 0..refW - 1, y = −1 são derivados como segue:
[0493] p [−1] [−1] = (refUnfilt [−1] [0] + 2 * refUnfilt [−1] [−1] + refUnfilt
[0] [−1] + 2) >> 2 (8 - 111)
[0494] p [−1] [y] = (refUnfilt [−1] [y + 1] + 2 * refUnfilt [−1] [y] + refUnfilt [−1] [y - 1] + 2) >> 2 para y = 0..refH - 2 (8 - 112)
[0495] p [−1] [refH - 1] = refUnfilt [−1] [refH - 1] (8 - 113)
[0496] p [x] [−1] = (refUnfilt [x - 1] [−1] + 2 * refUnfilt [x] [−1] + refUnfilt [x + 1] [−1] + 2) >> 2 para x = 0..refW - 2 (8 - 114)
[0497] p [refW - 1] [−1] = refUnfilt [refW - 1] [−1] (8 - 115)
[0498] - Caso contrário, os valores de amostras de referência p [x] [y] são definidos iguais aos valores de amostra não filtrados refUnfilt [x] [y] com x = −1− refIdx, y = −1− refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1− refIdx.
[0499] 8.4.4.2.7 Especificação do parâmetro intraPredAngle
[0500] As entradas para este processo são:
[0501] - o modo de predição intra predModeIntra,
[0502] - uma variável nTbW especificando a largura de bloco de transformada,
[0503] - uma variável nTbH especificando a altura de bloco de transformada,
[0504] - uma variável nCbW especificando a largura de bloco de codificação,
[0505] - uma variável nCbH especificando a altura de bloco de codificação,
[0506] As saídas desse processo são o modo de predição intra modificado predModeIntra, o parâmetro intraPredAngle e uma variável filterFlag.
[0507] As variáveis nW e nH são derivadas da seguinte forma:
[0508] - Se IntraSubPartitionsSplitType for igual a ISP_NO_SPLIT ou cIdx não for igual a 0, o seguinte se aplica:
[0509] nW = nTbW (8 - 125)
[0510] nH = nTbH (8 - 126)
[0511] - Caso contrário (IntraSubPartitionsSplitType não é igual a ISP_NO_SPLIT e cIdx é igual a 0), o seguinte se aplica:
[0512] nW = nCbW (8 - 127)
[0513] nH = nCbH (8 - 128)
[0514] A variável whRatio é definida igual a Abs (Log2 (nW/nH)).
[0515] Para blocos não quadrados (nW não é igual a nH), o modo de predição intra predModeIntra é modificado da seguinte forma:
[0516] - Se todas as condições a seguir forem verdadeiras, predModeIntra é definido igual a (predModeIntra + 65).
[0517] - nW é maior que nH
[0518] - predModeIntra é maior ou igual a 2
[0519] - predModeIntra é menor que (whRatio > 1) ? (8 + 2 * whRatio): 8
[0520] - Caso contrário, se todas as condições a seguir forem verdadeiras, predModeIntra é definido igual a (predModeIntra - 67).
[0521] - nH é maior que nW
[0522] - predModeIntra é menor ou igual a 66
[0523] - predModeIntra é maior que (whRatio > 1) ? (60 - 2 * whRatio): 60
[0524] O parâmetro de ângulo intraPredAngle é determinado conforme especificado na Tabela 12 usando o valor de predModeIntra. Tabela 12 - Especificação de intraPredAngle predModeIntra -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 2 3 4 intraPredAngle 512 341 256 171 128 102 86 73 64 57 51 45 39 35 32 29 26 predModeIntra 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 intraPredAngle 23 20 18 16 14 12 10 8 6 4 3 2 1 0 -1 -2 -3 predModeIntra 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 intraPredAngle -4 -6 -8 -10 -12 -14 -16 -18 -20 -23 -26 -29 -32 -29 -26 -23 -20 predModeIntra 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 intraPredAngle -18 -16 -14 -12 -10 -8 -6 -4 -3 -2 -1 0 1 2 3 4 6 predModeIntra 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 intraPredAngle 8 10 12 14 16 18 20 23 26 29 32 35 39 45 51 57 64 predModeIntra 73 74 75 76 77 78 79 80 intraPredAngle 73 86 102 128 171 256 341 512
[0525] A variável filterFlag é derivada da seguinte maneira:
[0526] - Se uma ou mais das seguintes condições forem verdadeiras, filterFlag é definido igual a 0.
[0527] - refIdx não é igual a 0
[0528] - IntraSubPartitionsSplitType não é igual a ISP_NO_SPLIT e cIdx é igual a 0 e predModeIntra é maior ou igual a INTRA_ANGULAR34 e nW é maior que 8
[0529] - IntraSubPartitionsSplitType não é igual a ISP_NO_SPLIT e cIdx é igual a 0 e predModeIntra é menor que INTRA_ANGULAR34 e nH é maior que 8.
[0530] - Caso contrário, o seguinte se aplica:
[0531] - A variável minDistVerHor é definida igual a Min (Abs (predModeIntra - 50), Abs (predModeIntra - 18)).
[0532] - A variável intraHorVerDistThres [nTbS] é especificada na Tabela 11.
[0533] - A variável filterFlag é derivada da seguinte maneira:
[0534] - Se minDistVerHor for maior que intraHorVerDistThres [nTbS] ou Abs (intraPredAngle) > 32, filterFlag é definido igual a 1.
[0535] 8.4.4.2.8 Especificação dos modos de predição intra angulares
[0536] As entradas para este processo são:
[0537] - Modo de Predição intra predModeIntra,
[0538] - o parâmetro intraPredAngle,
[0539] - uma variável refIdx especificando o índice de linha de referência de predição intra,
[0540] - uma variável nTbW especificando a largura de bloco de transformada,
[0541] - uma variável nTbH especificando a altura de bloco de transformada,
[0542] - uma variável refW especificando a largura de amostras de referência,
[0543] - uma variável refH especificando a altura de amostras de referência,
[0544] - uma variável nCbW especificando a largura de bloco de codificação,
[0545] - uma variável nCbH especificando a altura de bloco de codificação,
[0546] - uma variável fourTapFlag especificando o uso de interpolação de filtro 4-tap,
[0547] - uma variável filterFlag
[0548] - as amostras vizinhas p [x] [y], com x = −1− refIdx, y = −1− refIdx..refH - 1 e x = −refIdx..refW - 1, y = −1− refIdx.
[0549] As saídas deste processo são o modo de predição intra modificado predModeIntra e as amostras preditas predSamples [x] [y], com x =
0..nTbW - 1, y = 0..nTbH - 1.
[0550] A variável nTbS é definida igual a (Log2 (nTbW) + Log2 (nTbH)) >> 1.
[0551] A variável filterFlag é derivada da seguinte maneira:
[0552] - Se uma ou mais das seguintes condições forem verdadeiras, filterFlag é definido igual a 0.
[0553] - refIdx não é igual a 0
[0554] - IntraSubPartitionsSplitType não é igual a ISP_NO_SPLIT e cIdx é igual a 0 e predModeIntra é maior ou igual a INTRA_ANGULAR34 e nW é maior que 8
[0555] - IntraSubPartitionsSplitType não é igual a ISP_NO_SPLIT e cIdx é igual a 0 e predModeIntra é menor que INTRA_ANGULAR34 e nH é maior que 8.
[0556] - Caso contrário, o seguinte se aplica:
[0557] - A variável minDistVerHor é definida igual a Min (Abs (predModeIntra - 50), Abs (predModeIntra - 18)).
[0558] - A variável intraHorVerDistThres [nTbS] é especificada na Tabela 13.
[0559] - A variável filterFlag é derivada da seguinte maneira:
[0560] - Se minDistVerHor for maior que intraHorVerDistThres [nTbS] ou Abs (intraPredAngle) for maior que 32, filterFlag será definido como 1.
[0561] - Caso contrário, filterFlag é definido igual a 0. Tabela 13 - Especificação de intraHorVerDistThres [nTbS] para vários tamanhos de bloco de transformada nTbS nTbS nTbS nTbS nTbS nTbS nTbS =2 =3 =4 =5 =6 =7 intraHorVerDistThres [nTbS] 16 14 2 0 0 [0562] 0
[0563] A Figura 18 ilustra as 93 direções de predição, onde as direções tracejadas estão associadas aos modos de ângulo amplo que são aplicados apenas a blocos não quadrados.
[0564] O parâmetro de ângulo inverso invAngle é derivado com base em intraPredAngle da seguinte forma:
[0565] invAngle = Round (8 - 129)
[0566] Os coeficientes de filtro de interpolação fC [fase] [j] e fG [fase] [j] com fase = 0..31 ej = 0..3 são especificados na Tabela 14. Posição coeficientes de filtro de Coeficientes de filtro de de interpolação fC interpolação fG amostra fC [p] fC [p] fC [p] fC [p] fG [p] fG [p] fG [p] fG [p] fracionária
[0] [1] [2] [3] [0] [1] [2] [3] p 0 0 64 0 0 16 32 16 0 1 -1 63 2 0 15 29 17 3 2 -2 62 4 0 15 29 17 3 3 -2 60 7 -1 14 29 18 3 4 -2 58 10 -2 13 29 18 4 5 -3 57 12 -2 13 28 19 4 6 -4 56 14 -2 13 28 19 4 7 -4 55 15 -2 12 28 20 4 8 -4 54 16 -2 11 28 20 5 9 -5 53 18 -2 11 27 21 5 10 -6 52 20 -2 10 27 22 5 11 -6 49 24 -3 9 27 22 6 12 -6 46 28 -4 9 26 23 6 13 -5 44 29 -4 9 26 23 6 14 -4 42 30 -4 8 25 24 7 15 -4 39 33 -4 8 25 24 7 16 -4 36 36 -4 8 24 24 8 17 -4 33 39 -4 7 24 25 8 18 -4 30 42 -4 7 24 25 8 19 -4 29 44 -5 6 23 26 9 20 -4 28 46 -6 6 23 26 9 21 -3 24 49 -6 6 22 27 9
22 -2 20 52 -6 5 22 27 10 23 -2 18 53 -5 5 21 27 11 24 -2 16 54 -4 5 20 28 11 25 -2 15 55 -4 4 20 28 12 26 -2 14 56 -4 4 19 28 13 27 -2 12 57 -3 4 19 28 13 28 -2 10 58 -2 4 18 29 13 29 -1 7 60 -2 3 18 29 14 30 0 4 62 -2 3 17 29 15 31 0 2 63 -1 3 17 29 15 Tabela 14 - Especificação dos coeficientes de filtro de interpolação fC e fG
[0567] Os valores das amostras de predição predSamples [x] [y], com x = 0..nTbW - 1, y = 0..nTbH - 1 são derivados da seguinte forma:
[0568] - Se predModeIntra for maior ou igual a 34, as seguintes etapas ordenadas se aplicam:
[0569] 1. O arranjo de amostras de referência ref [x] é especificado da seguinte forma:
[0570] - O seguinte se aplica:
[0571] ref [x] = p [−1 - refIdx + x] [−1 - refIdx], com x = 0..nTbW + refIdx (8 - 130)
[0572] - Se intraPredAngle for menor que 0, o arranjo de amostras de referência principal é estendido da seguinte forma:
[0573] - Quando (nTbH * intraPredAngle) >> 5 é menor que -1,
[0574] ref [x] = p [−1 - refIdx] [−1 - refIdx + ((x * invAngle + 128) >> 8)], com x = −1.. (nTbH * intraPredAngle) >> 5 (8 - 131)
[0575] ref [((nTbH * intraPredAngle) >> 5) - 1] = ref [(nTbH * intraPredAngle) >> 5] (8 - 132)
[0576] ref [nTbW + 1 + refIdx] = ref [nTbW + refIdx] (8 - 133)
[0577] - Caso contrário,
[0578] ref [x] = p [−1 - refIdx + x] [−1 - refIdx], com x = nTbW + 1 + refIdx..refW + refIdx (8 - 134)
[0579] ref [−1] = ref [0] (8 - 135)
[0580] As amostras adicionais ref [refW + refIdx + x] com x = 1.. (Max (1, nTbW/nTbH) * refIdx + 1) são derivadas da seguinte forma:
[0581] ref [refW + refIdx + x] = p [−1 + refW] [−1 - refIdx] (8 - 136)
[0582] 2. Os valores das amostras de predição predSamples [x] [y], com x = 0..nTbW - 1, y = 0..nTbH - 1 são derivados da seguinte forma:
[0583] - A variável de índice iIdx e o fator de multiplicação iFact são derivados da seguinte forma:
[0584] iIdx = ((y + 1 + refIdx) * intraPredAngle) >> 5 + refIdx (8 - 137)
[0585] iFact = ((y + 1 + refIdx) * intraPredAngle) & 31 (8 - 138)
[0586] Se fourTapFlag for igual a 1, o seguinte se aplica:
[0587] - Os coeficientes de filtro de interpolação fT [j] com j = 0..3 são derivados da seguinte forma:
[0588] fT [j] = filterFlag ? fG [iFact] [j]: fC [iFact] [j] (8 - 139)
[0589] - O valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0590] predSamples [x] [y] = Clip1Y ((( ) + 32) >> 6) (8 - 140)
[0591] Caso contrário (fourTapFlag não é igual a 1), dependendo do valor de iFact, o seguinte se aplica:
[0592] - Se iFact não for igual a 0, o valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0593] predSamples [x] [y] = ((32 - iFact) * ref [x + iIdx + 1] + iFact * ref [x + iIdx + 2] + 16) >> 5 (8 - 141)
[0594] - Caso contrário, o valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0595] predSamples [x] [y] = ref [x + iIdx + 1] (8 - 142)
[0596] - Caso contrário (predModeIntra é menor que 34), as seguintes etapas ordenadas se aplicam:
[0597] 1. O arranjo de amostras de referência ref [x] é especificado da seguinte forma:
[0598] - O seguinte se aplica:
[0599] ref [x] = p [−1 - refIdx] [−1 - refIdx + x], com x = 0..nTbH + refIdx (8 - 143)
[0600] - Se intraPredAngle for menor que 0, o arranjo de amostras de referência principal é estendido da seguinte forma:
[0601] - Quando (nTbW * intraPredAngle) >> 5 é menor que -1,
[0602] ref [x] = p [−1 - refIdx + ((x * invAngle + 128) >> 8)] [−1 - refIdx], com x = −1.. (nTbW * intraPredAngle) >> 5 (8 - 144)
[0603] ref [((nTbW * intraPredAngle) >> 5) - 1] = ref [(nTbW * intraPredAngle) >> 5] (8 - 145)
[0604] ref [nTbG + 1 + refIdx] = ref [nTbH + refIdx] (8 - 146)
[0605] - Caso contrário,
[0606] ref [x] = p [−1 - refIdx] [−1 - refIdx + x], com x = nTbH + 1 + refIdx..refH + refIdx (8 - 147)
[0607] ref [−1] = ref [0] (8 - 148)
[0608] - As amostras adicionais ref [refH + refIdx + x] com x = 1.. (Max (1, nTbW/nTbH) * refIdx + 1) são derivadas da seguinte forma:
[0609] ref [refH + refIdx + x] = p [−1 + refH] [−1 - refIdx] (8 - 149)
[0610] 2. Os valores das amostras de predição predSamples [x] [y], com x = 0..nTbW - 1, y = 0..nTbH - 1 são derivados da seguinte forma:
[0611] A variável de índice iIdx e o fator de multiplicação iFact são derivados da seguinte forma:
[0612] iIdx = ((x + 1 + refIdx) * intraPredAngle) >> 5 (8 - 150)
[0613] iFact = ((x + 1 + refIdx) * intraPredAngle) & 31 (8 - 151)
[0614] - Se fourTapFlag for igual a 1, o seguinte se aplica:
[0615] - Os coeficientes de filtro de interpolação fT [j] com j = 0..3 são derivados da seguinte forma:
[0616] fT [j] = filterFlag ? fG [iFact] [j]: fC [iFact] [j] (8 - 152)
[0617] - O valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0618] predSamples [x] [y] = Clip1Y ((( ) + 32) >> 6) (8 - 153)
[0619] - Caso contrário (fourTapFlag não é igual a 1), dependendo do valor de iFact, o seguinte se aplica:
[0620] - Se iFact não for igual a 0, o valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0621] predSamples [x] [y] = ((32 - iFact) * ref [y + iIdx + 1] + iFact * ref [y + i Idx + 2] + 16) >> 5 (8 - 154)
[0622] - Caso contrário, o valor das amostras de predição predSamples [x] [y] é derivado da seguinte forma:
[0623] predSamples [x] [y] = ref [y + iIdx + 1]
[0624] A Figura 19 é um diagrama esquemático de um dispositivo de rede 1300 (por exemplo, dispositivo de codificação) de acordo com uma modalidade da revelação. O dispositivo de rede 1300 é adequado para implementar as modalidades reveladas conforme descrito neste documento. O dispositivo de rede 1300 compreende portas de entrada 1310 e unidades receptoras (Rx) 1320 para receber dados; um processador, unidade lógica ou unidade de processamento central (CPU) 1330 para processar os dados; unidades transmissoras (Tx) 1340 e portas de saída 1350 para transmitir os dados; e uma memória 1360 para armazenar os dados. O dispositivo de rede 1300 também pode compreender componentes óticos-para-elétricos (OE) e componentes elétricos-para-óticos (EO) acoplados às portas de entrada 1310, unidades receptoras 1320, unidades transmissoras 1340 e portas de saída 1350 para saída ou entrada de sinais óticos ou elétricos.
[0625] O processador 1330 é implementado por hardware e software. O processador 1330 pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, como um processador de múltiplos núcleos), arranjos de portas programáveis em campo (FPGAs), circuitos integrados de aplicação específica (ASICs) e processadores de sinais digitais (DSPs). O processador 1330 está em comunicação com as portas de entrada 1310, unidades receptoras 1320, unidades transmissoras 1340, portas de saída 1350 e memória 1360. O processador 1330 compreende um módulo de codificação 1370. O módulo de codificação 1370 implementa as modalidades reveladas descritas acima. Por exemplo, o módulo de codificação 1370 implementa, processa, prepara ou fornece as várias funções de rede. A inclusão do módulo de codificação 1370, portanto, fornece uma melhoria substancial para a funcionalidade do dispositivo de rede 1300 e efetua uma transformação do dispositivo de rede 1300 para um estado diferente. Alternativamente, o módulo de codificação 1370 é implementado como instruções armazenadas na memória 1360 e executadas pelo processador 1330.
[0626] A memória 1360 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 sobrefluxo, para armazenar programas quando tais programas são selecionados para execução e para armazenar instruções e dados que são lidos durante a execução do programa. A memória 1360 pode ser volátil e/ou não volátil, e pode ser memória somente de leitura (ROM), memória de acesso aleatório (RAM), memória endereçável de conteúdo ternário (TCAM) e/ou memória de acesso aleatório estática (SRAM).
[0627] É fornecido um decodificador que compreende circuitos de processamento configurados para realizar qualquer um dos métodos acima.
[0628] Na presente revelação, um produto de programa de computador é fornecido, o produto de programa de computador compreendendo um código de programa é revelado para realizar qualquer um dos métodos acima.
[0629] Na presente revelação, um decodificador para decodificar dados de vídeo é fornecido, o decodificador compreendendo: um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando 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.
[0630] Um dispositivo de rede adequado para implementar as modalidades reveladas, conforme descrito neste documento, é descrito a seguir. O dispositivo de rede compreende portas de entrada e unidades receptoras (Rx) para receber dados; um processador, unidade lógica ou unidade de processamento central (CPU) para processar os dados; unidades transmissoras (Tx) 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 óticos- para-elétricos (OE) e componentes elétricos-para-óticos (EO) acoplados às portas de entrada, unidades receptoras, unidades transmissoras e portas de saída para saída ou entrada de componentes óticos ou elétricos sinais.
[0631] 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 de múltiplos núcleos), arranjos 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 reveladas 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.
[0632] 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 sobrefluxo, 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 de leitura (ROM), memória de acesso aleatório (RAM), memória endereçável de conteúdo ternário (TCAM) e/ou memória de acesso aleatório estática (SRAM).
[0633] A Figura 20 é 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 está equipado com um ou mais dispositivos de entrada/saída, como um alto-falante, microfone, mouse, tela sensível ao toque, teclado, teclado, impressora, monitor e semelhantes. O aparelho 1500 pode incluir uma ou mais unidades de processamento central (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.
[0634] 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 de 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 armazenamento de programa e dados para uso durante a execução de programas. Em 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, unidade de disco magnético, unidade de disco ótico ou semelhantes.
[0635] O adaptador de vídeo 1540 e a interface I/O 1560 fornecem interfaces para acoplar dispositivos de entrada e saída externos ao aparelho
1500. Por exemplo, o aparelho 1100 pode fornecer interface de comando de 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.
[0636] O aparelho 1100 também inclui uma ou mais interfaces de rede 1550, que incluem enlaces com fio, como um cabo Ethernet ou semelhantes, e/ou enlaces sem fio para acessar nós ou uma ou mais redes 1580. A interface de rede 1550 permite ao aparelho 1500 comunicar-se com unidades remotas através das redes 1580. Por exemplo, a interface de rede 1550 pode fornecer comunicação com o 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.
[0637] 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 de distância ponderada 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 de coeficiente de ponderação em comparação com as simplificações da arte anterior.
[0638] As modalidades podem ser aplicadas a outras técnicas de predição intra bidirecionais e dependentes de posição (por exemplo, diferentes modificações 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).
[0639] Embora várias modalidades tenham sido fornecidas na presente revelação, deve ser entendido que os sistemas e métodos revelados podem ser incorporados em muitas outras formas específicas sem se afastar do espírito ou escopo da presente revelação. Os presentes exemplos devem ser considerados ilustrativos e não restritivos, e a intenção não se limita aos detalhes aqui fornecidos. 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.
[0640] 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. Outros itens mostrados ou discutidos como acoplados ou diretamente acoplados ou comunicando-se uns com os outros podem ser indiretamente acoplados ou se comunicar através de alguma interface, dispositivo ou componente intermediário, seja eletricamente, mecanicamente ou de outra forma. Outros exemplos de mudanças, substituições e alterações são verificáveis por um versado na técnica e podem ser feitos.
[0641] Implementações do assunto e as operações descritas nesta revelação podem ser implementados em circuitos eletrônicos digitais, ou em software de computador, firmware ou hardware, incluindo as estruturas reveladas nesta revelação e seus equivalentes estruturais, ou em combinações de um ou mais deles. Implementações do assunto descrito nesta revelaçã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 mídia de armazenamento de computador para execução por, ou para controlar a operação de, aparelho de processamento de dados. Em alternativa ou além disso, as instruções de programa podem ser codificadas em um sinal propagado gerado artificialmente, por exemplo, um sinal eléctrico, ótico ou eletromagnético gerado por máquina que é gerado para a informação de codificação para a transmissão a um aparelho receptor adequado para execução por um aparelho de processamento de dados. Uma mídia de armazenamento de computador, por exemplo, a mídia legível por computador, pode ser, ou ser incluída em, um dispositivo de armazenamento legível por computador, um substrato de armazenamento legível por computador, um arranjo ou dispositivo de memória de acesso aleatório ou serial ou uma combinação de um ou mais deles. Além disso, enquanto uma mídia de armazenamento de computador não é um sinal propagado, uma mídia de armazenamento de computador pode ser uma fonte ou destino de instruções de programa de computador codificadas em um sinal propagado gerado artificialmente. A mídia de armazenamento de computador também pode ser, ou ser incluída 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).
[0642] Em algumas implementações, as operações descritas nesta revelação podem ser implementadas como um serviço hospedado fornecido em um servidor em uma rede de computação em nuvem. Por exemplo, a mídia de armazenamento legível por computador pode ser agrupada 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 revelaçã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 aplicações executadas localmente em um computador de cliente. O circuito pode usar serviços baseados em nuvem para receber rapidamente atualizações de software, aplicações e outros recursos que, de outra forma, exigiriam um longo período de tempo antes que os recursos pudessem ser entregues ao circuito.
[0643] Um programa de computador (também conhecido como um programa, software, aplicação 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 procedurais, e pode ser implantado em qualquer forma, incluindo como um programa independente ou como um módulo, componente, sub-rotina, objeto, ou outra unidade apropriada para o 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, sub-programas ou porções de código). Um programa de computador pode ser implantado 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.
[0644] Os processos e fluxos lógicos descritos nesta revelaçã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 os fluxos lógicos também podem ser realizados por, e o aparelho também pode ser implementado como, circuitos lógicos de propósito especial, por exemplo, um FPGA (arranjo de portas programável em campo) ou um ASIC (circuito integrado de aplicação específica).
[0645] Os processadores adequados para a execução de um programa de computador incluem, a título de exemplo, microprocessadores de propósito geral e especial, e qualquer um ou mais processadores de qualquer tipo de computador digital. Geralmente, um processador irá receber instruções e dados a partir de uma memória somente de leitura ou a 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, discos magneto-óticos ou discos óticos. 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 o armazenamento de instruções de programa de computador e dados 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 de semicondutores, como, 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-óticos; 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 propósito especial.
[0646] Embora esta revelaçã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 de implementações particulares. Certos recursos que são descritos nesta revelaçã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 os recursos possam ser descritos acima como agindo em certas combinações e mesmo inicialmente reivindicados como tal, um ou mais recursos de uma combinação reivindicada podem, em alguns casos, ser extirpados da combinação, e a combinação reivindicada pode ser direcionada a uma subcombinação ou variação de uma subcombinação.
[0647] Da mesma forma, embora as operações sejam representadas nos desenhos em uma ordem particular, 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, processamento multitarefa e 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.
[0648] Assim, implementações particulares do assunto foram descritas. Outras implementações estão dentro do escopo das seguintes reivindicações. Em alguns casos, as ações recitadas 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, processamento multitarefa e paralelo podem ser vantajosos.
[0649] Embora várias modalidades tenham sido fornecidas na presente revelação, deve ser entendido que os sistemas e métodos revelados podem ser incorporados em muitas outras formas específicas sem se afastar do espírito ou escopo da presente revelação. Os presentes exemplos devem ser considerados ilustrativos e não restritivos, e a intenção não se limita aos detalhes aqui fornecidos. 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.
[0650] 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 revelação. Outros itens mostrados ou discutidos como acoplados ou diretamente acoplados ou comunicando-se uns com os outros podem ser indiretamente acoplados ou se comunicar através de alguma interface, dispositivo ou componente intermediário,
seja eletricamente, mecanicamente ou de outra forma. Outros exemplos de mudanças, substituições e alterações são verificáveis por um versado na técnica e podem ser feitos sem se afastar do espírito e do escopo revelados neste documento.
DEFINIÇÕES DE ACRÔNIMOS E GLOSSÁRIO JEM Modelo de Exploração Conjunta (a base de código de software para futura exploração de codificação de vídeo) JVET Equipe de Especialistas de Vídeo Conjunta LUT Tabela de Consulta QT Árvore Quádrupla QTBT Árvore Quádrupla mais Árvore Binária RDO Otimização de distorção de taxa ROM Memória somente de leitura VTM Modelo de teste de VVC VVC Codificação de Vídeo Versátil, o projeto de padronização desenvolvido pela JVET. 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 transformada/bloco de transformada HEVC Codificação de Vídeo de Alta Eficiência

Claims (18)

REIVINDICAÇÕES
1. Método para predição intra de um bloco atual em codificação ou decodificação de vídeo, CARACTERIZADO pelo fato de que o método compreende: realizar processamento de predição intra do bloco atual de acordo com um modo de predição intra direcional, compreendendo filtragem de amostra de referência ou filtragem de interpolação de subpixel aplicada a amostras de referência em um ou mais blocos de referência, em que o modo de predição intra direcional é classificado em um dentre os seguintes grupos: A. modos vertical ou horizontal, B. modos direcionais incluindo modos diagonais que representam ângulos que são múltiplos de 45 graus, C. modos direcionais restantes; se o modo de predição intra direcional for classificado como pertencente ao grupo B, um filtro de amostra de referência é aplicado às amostras de referência; se o modo de predição intra direcional for classificado como pertencente ao grupo C, um filtro de interpolação de amostra de referência intra é aplicado às amostras de referência.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, se o modo de predição intra direcional for classificado como pertencente ao grupo A, nenhum filtro é aplicado às amostras de referência para gerar um preditor intra.
3. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que, se o modo de predição intra direcional for classificado como pertencente ao grupo B, o filtro de amostra de referência é aplicado às amostras de referência para copiar valores filtrados em um preditor intra de acordo com o modo de predição intra direcional; e se o modo de predição intra direcional for classificado como pertencente ao grupo C, o filtro de interpolação de amostra de referência intra é aplicado às amostras de referência para gerar uma amostra predita que cai em uma posição fracionária ou inteira entre as amostras de referência de acordo com o modo de predição intra direcional.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, CARACTERIZADO pelo fato de que o filtro de amostra de referência ou o processamento de predição intra é um filtro 3-tap.
5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que o filtro de amostra de referência do processamento de predição intra é um filtro 3-tap de [1, 2, 1].
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, CARACTERIZADO pelo fato de que um filtro de interpolação do processamento de predição intra para um dado deslocamento de subpixel é selecionado a partir de um conjunto de filtros, em que um dos quais é o mesmo que um filtro para um processo de predição inter.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, CARACTERIZADO pelo fato de que o filtro de interpolação tem comprimento de 4 taps e precisão de seu coeficiente de 6 bits.
8. Método, de acordo com qualquer uma das reivindicações 1 a 7, CARACTERIZADO pelo fato de que grupo B compreende adicionalmente modos de inclinação inteira de ângulo amplo.
9. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que um modo de inclinação inteira de ângulo amplo é um modo de predição intra direcional diferente de horizontal, vertical e diagonal, em que posições de amostra de referência para cada amostra predita do bloco atual são não fracionárias.
10. Método, de acordo com qualquer uma das reivindicações 1 a 9, CARACTERIZADO pelo fato de que grupo B compreende adicionalmente modos de predição intra para os quais um valor de um parâmetro de ângulo de predição intra é um múltiplo diferente de zero de 32.
11. Método, de acordo com qualquer uma das reivindicações 1 a 10, CARACTERIZADO pelo fato de que grupo B compreende um ou todos os modos de predição intra: [-14, -12, -10, -6, 2, 34, 66, 72, 76, 78, 80].
12. Método de codificação de vídeo para realizar processamento de predição intra de um bloco de codificação atual, o método CARACTERIZADO pelo fato de que compreende: obter um modo de predição intra do bloco de codificação atual;
realizar processamento de predição intra do bloco de codificação atual de acordo com o modo de predição intra do bloco de codificação atual, realizando-se um processo de filtragem de amostra de referência em uma amostra de referência para o bloco de codificação atual, quando o modo de predição intra do bloco de codificação atual for um modo diagonal; ou realizar processamento de predição intra do bloco de codificação atual de acordo com o modo de predição intra do bloco de codificação atual, realizando-se um processo de filtragem de interpolação em uma amostra de referência para o bloco de codificação atual, quando o modo de predição intra do bloco de codificação atual for um modo direcional, mas não for um dentre os seguintes modos de predição intra direcional: modo vertical, modo horizontal e modos diagonais.
13. Método, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que o modo diagonal representa ângulo que é múltiplo de 45 graus.
14. Método, de acordo com a reivindicação 12 ou 13, CARACTERIZADO pelo fato de que o método compreende adicionalmente: realizar processamento de predição intra do bloco de codificação atual de acordo com o modo de predição intra do bloco de codificação atual e com uma amostra de referência para o bloco de codificação atual, em que quando o modo de predição intra do bloco de codificação atual for modo vertical ou modo horizontal, nenhum processo de filtragem é aplicado à amostra de referência para o bloco de codificação atual.
15. Método, de acordo com qualquer uma das reivindicações 12 a 14, CARACTERIZADO pelo fato de que o processo de filtragem de amostra de referência é realizado com base em uma filtragem 3-tap [1,2,1].
16. Método, de acordo com qualquer uma das reivindicações 12 a 15, CARACTERIZADO pelo fato de que o processo de filtragem de interpolação é realizado para gerar uma amostra predita que cai em uma posição fracionária ou inteira entre amostras de referência.
17. Aparelho para predição intra de um bloco atual em codificação ou decodificação de vídeo, CARACTERIZADO pelo fato de que o aparelho compreende circuitos de processamento configurados para realizar processamento de predição intra do bloco atual de acordo com um modo de predição intra direcional, compreendendo filtragem de amostra de referência ou filtragem de interpolação de subpixel aplicada a amostras de referência em um ou mais blocos de referência, em que o modo de predição intra direcional é classificado em um dentre os seguintes grupos: A. modos vertical ou horizontal, B. modos direcionais incluindo modos diagonais que representam ângulos que são múltiplos de 45 graus, C. modos direcionais restantes; se o modo de predição intra direcional for classificado como pertencente ao grupo B, um filtro de amostra de referência é aplicado às amostras de referência; se o modo de predição intra direcional for classificado como pertencente ao grupo C, um filtro de interpolação de amostra de referência intra é aplicado às amostras de referência.
18. Produto de programa de computador, CARACTERIZADO pelo fato de que compreende código de programa para realizar o método conforme definido em qualquer uma das reivindicações 1 a 16 quando executado em um computador ou processador.
BR112021004679-8A 2018-09-16 2019-09-13 método e aparelho para predição BR112021004679A2 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862731970P 2018-09-16 2018-09-16
US62/731,970 2018-09-16
US201962822775P 2019-03-22 2019-03-22
US62/822,775 2019-03-22
US201962822868P 2019-03-23 2019-03-23
US62/822,868 2019-03-23
PCT/RU2019/050153 WO2020055292A1 (en) 2018-09-16 2019-09-13 Method and apparatus for prediction

Publications (1)

Publication Number Publication Date
BR112021004679A2 true BR112021004679A2 (pt) 2021-06-01

Family

ID=69778614

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021004679-8A BR112021004679A2 (pt) 2018-09-16 2019-09-13 método e aparelho para predição

Country Status (15)

Country Link
US (2) US11647185B2 (pt)
EP (2) EP3847815B1 (pt)
JP (2) JP2021536203A (pt)
KR (2) KR102551917B1 (pt)
CN (3) CN111543061A (pt)
AU (2) AU2019340292B2 (pt)
BR (1) BR112021004679A2 (pt)
CA (1) CA3112913C (pt)
ES (1) ES2966083T3 (pt)
HU (1) HUE063986T2 (pt)
IL (1) IL281544A (pt)
MX (1) MX2021002953A (pt)
PL (1) PL3847815T3 (pt)
PT (1) PT3847815T (pt)
WO (1) WO2020055292A1 (pt)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112740685B (zh) * 2018-09-19 2024-06-07 韩国电子通信研究院 图像编码/解码方法和装置以及存储有比特流的记录介质
US10469845B1 (en) * 2018-09-21 2019-11-05 Tencent America, Llc Method and apparatus for intra mode coding
US11910011B2 (en) * 2019-03-22 2024-02-20 Lg Electronics Inc. Intra prediction-based image decoding method and device therefor in image coding system
US20240137504A1 (en) * 2021-02-25 2024-04-25 Interdigital Ce Patent Holdings, Sas Methods and apparatuses for encoding/decoding a video
KR102615727B1 (ko) 2021-04-28 2023-12-20 주식회사 넥스트바이오메디컬 분해시간 조절이 가능한 색전용 수화겔 및 이의 제조방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5597968B2 (ja) * 2009-07-01 2014-10-01 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
CN101895751B (zh) * 2010-07-06 2012-02-08 北京大学 帧内预测的方法及装置、基于帧内预测的编/解码方法及系统
KR102062821B1 (ko) * 2010-09-29 2020-01-07 한국전자통신연구원 필터 정보 예측을 이용한 영상 부호화/복호화 방법 및 장치
CN107959852A (zh) * 2011-11-08 2018-04-24 株式会社Kt 对视频信号进行解码的方法
CN102984523B (zh) * 2012-12-14 2015-12-09 北京大学 一种多方向的帧内预测编解码方法及装置
CN103248892A (zh) * 2013-05-07 2013-08-14 北京大学 一种帧内预测方法及装置
BR112016013761B1 (pt) * 2014-05-23 2023-03-14 Huawei Technologies Co., Ltd Método e aparelho para reconstruir blocos de imagem utilizando predição, e meio de armazenamento legível por computador
US20180035112A1 (en) * 2015-02-13 2018-02-01 Lg Electronics Inc. METHOD AND APPARATUS FOR ENCODING AND DECODING VIDEO SIGNAL USING NON-UNIFORM PHASE INTERPOLATION (As Amended)
US20160373770A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Intra prediction and intra mode coding
WO2017043786A1 (ko) * 2015-09-10 2017-03-16 엘지전자 주식회사 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
CN113301334B (zh) * 2015-11-17 2023-11-03 华为技术有限公司 视频编码样本自适应滤波的方法和装置
US10194170B2 (en) * 2015-11-20 2019-01-29 Mediatek Inc. Method and apparatus for video coding using filter coefficients determined based on pixel projection phase
US10362314B2 (en) * 2015-11-27 2019-07-23 Mediatek Inc. Apparatus and method for video coding by intra-prediction
US10382781B2 (en) * 2016-09-28 2019-08-13 Qualcomm Incorporated Interpolation filters for intra prediction in video coding
CN116320497A (zh) * 2016-11-28 2023-06-23 韩国电子通信研究院 用于滤波的方法和装置
SG11202100010SA (en) * 2017-07-03 2021-02-25 Univ Hanyang Ind Univ Coop Found Method and device for decoding image by using partition unit including additional region
CN117176958A (zh) * 2017-11-28 2023-12-05 Lx 半导体科技有限公司 图像编码/解码方法、图像数据的传输方法和存储介质
US11128872B2 (en) * 2018-07-16 2021-09-21 Qualcomm Incorporated Position dependent intra prediction combination with wide angle intra prediction
US20220201286A1 (en) * 2019-04-25 2022-06-23 Mediatek Inc. Method and Apparatus of Encoding or Decoding with Mode Dependent Intra Smoothing Filter in Intra Prediction

Also Published As

Publication number Publication date
EP4270958A3 (en) 2024-02-28
EP4270958A2 (en) 2023-11-01
EP3847815A4 (en) 2021-09-08
AU2019340292A1 (en) 2021-04-15
PL3847815T3 (pl) 2024-03-11
AU2019340292B2 (en) 2023-07-13
KR20210055086A (ko) 2021-05-14
WO2020055292A1 (en) 2020-03-19
US20210203928A1 (en) 2021-07-01
US11647185B2 (en) 2023-05-09
CN114143539B (zh) 2023-08-04
EP3847815A1 (en) 2021-07-14
MX2021002953A (es) 2021-07-15
US20230319270A1 (en) 2023-10-05
AU2023248190A1 (en) 2023-11-02
KR20230105003A (ko) 2023-07-11
JP2021536203A (ja) 2021-12-23
CN112040228B (zh) 2021-08-03
CA3112913C (en) 2023-10-31
CN114143539A (zh) 2022-03-04
PT3847815T (pt) 2023-12-26
CN112040228A (zh) 2020-12-04
IL281544A (en) 2021-05-31
KR102551917B1 (ko) 2023-07-04
JP2023169242A (ja) 2023-11-29
CA3112913A1 (en) 2020-03-19
EP3847815B1 (en) 2023-11-08
CN111543061A (zh) 2020-08-14
ES2966083T3 (es) 2024-04-18
HUE063986T2 (hu) 2024-02-28

Similar Documents

Publication Publication Date Title
BR112020026863A2 (pt) método e aparelho para filtragem de interpolação para predição intra e inter em codificação de vídeo
BR112021004679A2 (pt) método e aparelho para predição
BR112021004984A2 (pt) aparelho e método para quantização inversa
BR112020027043A2 (pt) Método e decodificador para interpredição
BR112021003679A2 (pt) método, codificador e decodificador para predição intra
BR112021003999A2 (pt) relação entre elementos de restrição de partição
BR122023020161A2 (pt) Processo de codificação para modo de partição geométrica
BR112021011723A2 (pt) Método e aparelho de predição intra e codificador, decodificador, programa de computador, mídia de armazenamento não transitória, e fluxo de bits
BR112021013565A2 (pt) Codificador, decodificador, meio legível por computador não transitório e método de codificação de vídeo de um bloco de uma imagem
BR112021012949A2 (pt) Aparelho, método de predição intra de bloco de imagem, dispositivo para codificar ou decodificar imagem e gravação não transitória
BR112021009099A2 (pt) codificador de vídeo, decodificador de vídeo e métodos de codificação ou decodificação de uma imagem
BR112021003946A2 (pt) codificador de vídeo, decodificador de vídeo e métodos correspondentes
US11297345B2 (en) Intra prediction mode derivation based on neighboring blocks
CA3119645C (en) Method and apparatus for intra prediction
WO2020069632A1 (en) A video encoder, a video decoder and corresponding methods
US11438629B2 (en) Method and apparatus for hierarchical signaling of enabling and disabling prediction mechanisms for video coding