BR112021011929A2 - Unidade de armazenamento não transitória, decodificador para decodificação e codificador para codificação de uma figura a partir de um fluxo contínuo de dados e método de decodificação e codificação - Google Patents

Unidade de armazenamento não transitória, decodificador para decodificação e codificador para codificação de uma figura a partir de um fluxo contínuo de dados e método de decodificação e codificação Download PDF

Info

Publication number
BR112021011929A2
BR112021011929A2 BR112021011929-9A BR112021011929A BR112021011929A2 BR 112021011929 A2 BR112021011929 A2 BR 112021011929A2 BR 112021011929 A BR112021011929 A BR 112021011929A BR 112021011929 A2 BR112021011929 A2 BR 112021011929A2
Authority
BR
Brazil
Prior art keywords
linear
predetermined
samples
width
height
Prior art date
Application number
BR112021011929-9A
Other languages
English (en)
Inventor
Jonathan PFAFF
Heiko Schwarz
Detlev Marpe
Thomas Wiegand
Philipp HELLE
Michael Schäfer
Roman RISCHKE
Tobias Hinz
Philipp Merkle
Björn STALLENBERGER
Martin Winken
Mischa SIEKMANN
Original Assignee
Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
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 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. filed Critical Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
Publication of BR112021011929A2 publication Critical patent/BR112021011929A2/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution

Abstract

unidade de armazenamento não transitória, decodificador para decodificação e codificador para codificação de uma figura a partir de um fluxo contínuo de dados e método de decodificação e codificação. a presente invenção se refere a técnicas para codificação/decodificação de sinais de vídeo, por exemplo, implementadas em decodificadores, codificadores, métodos e unidades de armazenamento não transitórias que armazenam instruções para realizar os métodos. um decodificador ou codificador pode ser configurado para prever um bloco pré-determinado da figura usando uma pluralidade de amostras vizinhas pela redução da pluralidade de amostras vizinhas para obter um conjunto reduzido de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas, sujeitando o conjunto reduzido de valores de amostra a uma transformação linear ou linear afim para obter valores previstos para amostras pré-determinadas do bloco pré-determinado.

Description

Relatório Descritivo da Patente de Invenção para “UNIDADE DE ARMAZENAMENTO NÃO TRANSITÓRIA, DECODIFICADOR PARA DECODIFICAÇÃO E
CODIFICADOR PARA CODIFICAÇÃO DE UMA FIGURA A PARTIR DE UM FLUXO CONTÍNUO DE DADOS E MÉTODO DE DECODIFICAÇÃO E CODIFICAÇÃO” 1 INTRODUÇÃO
[001] A seguir, diferentes exemplos inventivos, modalidades e aspectos serão descritos. Pelo menos alguns destes exemplos, modalidades e aspectos se referem, entre outros, a métodos e/ou aparelhos para codificação de vídeo e/ou para realizar intraprevisões, por exemplo, usando transformações lineares ou afins com redução de amostra vizinha e/ou para otimizar distribuição de vídeo (por exemplo, difusão, transmissão contínua, reprodução de arquivo, etc.), por exemplo, para aplicações de vídeo e/ou para aplicações de realidade virtual. Adicionalmente, exemplos, modalidades e aspectos podem se referir a Codificação de Vídeo de Alta Eficiência (HEVC) ou sucessores. Também, modalidades, exemplos e aspectos adicionais serão definidos pelas reivindicações anexas.
[002] Deve-se notar que quaisquer modalidades, exemplos e aspectos definidos pelas reivindicações podem ser complementados por qualquer um dos detalhes (recursos e funcionalidades) descritos nos seguintes capítulos.
[003] Também, as modalidades, os exemplos e os aspectos descritos nos seguintes capítulos podem ser usados individualmente, e também podem ser complementados por qualquer um dos recursos em um outro capítulo, ou por qualquer recurso incluído nas reivindicações.
[004] Também deve-se notar que exemplos, modalidades e aspectos individuais aqui descritos podem ser usados individualmente ou em combinação. Assim, detalhes podem ser adicionados em cada um dos ditos exemplos, modalidades e aspectos individuais sem adicionar detalhes em um outro dos ditos aspectos.
[005] Também deve-se notar que a presente revelação descreve, explicitamente ou implicitamente, recursos de sistema e/ou método de decodificação e/ou de codificação.
[006] Além do mais, recursos e funcionalidades aqui revelados em relação a um método também podem ser usados em um aparelho. Além do mais, quaisquer recursos e funcionalidades aqui revelados em relação a um aparelho também podem ser usados em um correspondente método. Em outras palavras, os métodos aqui revelados podem ser complementados por qualquer um dos recursos e funcionalidades descritos em relação aos aparelhos. Também, qualquer um dos recursos e funcionalidades aqui descritos pode ser implementado em hardware ou em software, ou usando uma combinação de hardware e software, como será descrito em outras seções, tais como “modalidades e exemplos adicionais”, etc.
[007] Além do mais, qualquer um dos recursos descritos entre parênteses (“(…)” ou “[…]”) pode ser considerado como opcional em alguns exemplos, modalidades, ou aspectos.
1.1 SUMÁRIO
[008] De acordo com um aspecto, é provido um decodificador para decodificação de uma figura a partir de um fluxo contínuo de dados, configurado para prever um bloco pré-determinado da figura usando uma pluralidade de amostras vizinhas por reduzir (por exemplo, por ponderação ou amostragem descendente) a pluralidade de amostras vizinhas para obter um conjunto reduzido de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas, sujeitar o conjunto reduzido de valores de amostra a uma transformação linear ou linear afim para obter valores previstos para amostras pré-determinadas do bloco pré-determinado.
[009] Em exemplos, o decodificador pode ser adicionalmente configurado para realizar a redução, por exemplo, por ponderação ou amostragem descendente, da pluralidade de amostras vizinhas para obter o conjunto reduzido de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas.
[010] Em alguns casos, o decodificador também pode derivar, por exemplo, por interpolação, valores de previsão para amostras adicionais do bloco pré-determinado com base em valores previstos para as amostras pré-determinadas e a pluralidade de amostras vizinhas. Desta maneira, uma operação de amostragem ascendente pode ser aplicada.
[011] De acordo com um aspecto, é provido um codificador para codificação de uma figura a partir de um fluxo contínuo de dados, configurado para prever um bloco pré-determinado da figura usando uma pluralidade de amostras vizinhas por reduzir (por exemplo, por ponderação ou amostragem descendente) a pluralidade de amostras vizinhas para obter um conjunto reduzido de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas, sujeitar o conjunto reduzido de valores de amostra a uma transformação linear ou linear afim para obter valores previstos para amostras pré-determinadas do bloco pré-determinado.
[012] Em exemplos, o codificador pode ser adicionalmente configurado para realizar a redução por amostragem descendente da pluralidade de amostras vizinhas para obter o conjunto reduzido de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas.
[013] Em alguns casos, o codificador também pode derivar, por exemplo, por interpolação, valores de previsão para amostras adicionais do bloco pré-determinado com base em valores previstos para as amostras pré-determinadas e a pluralidade de amostras vizinhas. Desta maneira, uma operação de amostragem ascendente pode ser aplicada.
[014] Em exemplos, pode ser provido um sistema compreendendo um codificador de acordo com o exposto e/ou um decodificador como exposto. Em alguns exemplos, o hardware e/ou pelo menos algumas rotinas procedimentais do codificador pode ser os mesmos do decodificador.
[015] Em exemplos, pode ser provido um método de decodificação compreendendo prever um bloco pré-determinado da figura usando uma pluralidade de amostras vizinhas por reduzir, por exemplo, por amostragem descendente ou ponderação, a pluralidade de amostras vizinhas para obter um conjunto reduzido de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas, sujeitar o conjunto reduzido de valores de amostra a uma transformação linear ou linear afim para obter valores previstos para amostras pré-determinadas do bloco pré-determinado.
[016] Em exemplos, pode ser provido um método de codificação compreendendo prever um bloco pré-determinado da figura usando uma pluralidade de amostras vizinhas por reduzir, por exemplo, por amostragem descendente ou ponderação, a pluralidade de amostras vizinhas para obter um conjunto reduzido de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas, sujeitar o conjunto reduzido de valores de amostra a uma transformação linear ou linear afim para obter valores previstos para amostras pré-determinadas do bloco pré-determinado.
[017] Em exemplos, pode ser provida uma unidade de armazenamento não transitória que armazena instruções que, quando executadas por um processador, fazem com que o processador realize um método, como exposto.
1.3 BREVE DESCRIÇÃO DOS DESENHOS
[018] As figuras 1 e 2 mostram exemplos de codificador.
[019] As figuras 3 e 4 mostram exemplos de decodificador.
[020] A figura 5 mostra um diagrama de uma previsão de um bloco.
[021] A figura 6 mostra uma operação de matriz.
[022] As figuras 7.1-7.4 mostram exemplos de operações de acordo com exemplos.
[023] As figuras 8.1 e 8.2 mostram exemplos de métodos de acordo com exemplos.
[024] A figura 9 (subdividida nas figuras 9a e 9b) mostra um exemplo.
[025] A figura 10 mostra um exemplo de codificador.
[026] A figura 11 mostra um exemplo de decodificador.
[027] A figura 12 mostra um esquema que associa as dimensões dos blocos a serem previstos a modos de previsão.
[028] A figura 13 mostra um esquema usado para entender a invenção.
2. CODIFICADORES, DECODIFICADORES
[029] A seguir, são descritos vários exemplos que podem auxiliar a alcançar uma compressão mais efetiva durante o uso de intraprevisão. Alguns exemplos alcançam o aumento da eficiência de compressão por gastar um conjunto de modos de intraprevisão. Os últimos podem ser adicionados em outros modos de intraprevisão heuristicamente desenhados, por exemplo, ou podem ser providos exclusivamente. E até mesmo outros exemplos fazem uso de ambas as especialidades recém-discutidas.
[030] A fim de facilitar o entendimento dos seguintes exemplos do presente pedido, a descrição inicia com uma apresentação de possíveis codificadores e decodificadores adaptados ao mesmo nos quais os exemplos subsequentemente esboçados do presente pedido podem ser construídos. A figura 1 mostra um aparelho para bloco de codificação a bloco de uma figura 10 em um fluxo contínuo de dados
12. O aparelho é indicado usando o sinal de referência 14 e pode ser um codificador de figura estática ou um codificador de vídeo. Em outras palavras, a figura 10 pode ser uma figura atual proveniente de um vídeo 16 quando o codificador 14 for configurado para codificar o vídeo 16 que inclui a figura 10 no fluxo contínuo de dados 12, ou o codificador 14 pode codificar a figura 10 no fluxo contínuo de dados 12 exclusivamente.
[031] Da forma mencionada, o codificador 14 realiza a codificação de uma maneira bloco a bloco ou com base em bloco. Para isto, o codificador 14 subdivide a figura 10 em blocos, cujas unidades o codificador 14 codifica a figura 10 no fluxo contínuo de dados 12. Exemplos de possíveis subdivisões da figura 10 em blocos 18 são apresentados com mais detalhes a seguir. No geral, a subdivisão pode acabar em blocos 18 de tamanho constante, tal como um arranjo de blocos arranjado em linhas e colunas ou em blocos 18 de diferentes tamanhos de bloco, tal como pelo uso de um subdivisionamento multiárvores hierárquico com início do subdivisionamento multiárvores da íntegra da área de figura da figura 10 ou a partir de um pré- particionamento da figura 10 em um arranjo de blocos de árvore em que estes exemplos não devem ser tratados como excluindo outras maneiras possíveis de subdivisionamento da figura 10 em blocos 18.
[032] Adicionalmente, o codificador 14 é um codificador preditivos configurado para codificar preditivamente a figura 10 no fluxo contínuo de dados 12. Para um certo bloco 18, isto significa que o codificador 14 determina um sinal de previsão para o bloco 18 e codifica o resíduo de previsão, isto é, o erro de previsão no qual o sinal de previsão desvia do conteúdo da figura real no bloco 18, no fluxo contínuo de dados
12.
[033] O codificador 14 pode suportar diferentes modos de previsão para derivar o sinal de previsão para um certo bloco 18. Os modos de previsão, que são de importância nos seguintes exemplos, são modos de intraprevisão de acordo com os quais o interior do bloco 18 é espacialmente previsto a partir das amostras vizinhas já codificadas da figura 10. A codificação da figura 10 no fluxo contínuo de dados 12 e, desta maneira, o correspondente procedimento de decodificação, podem ser com base em uma certa ordem de codificação 20 definida entre blocos 18. Por exemplo, a ordem de codificação 20 pode atravessar blocos 18 em uma ordem de escaneamento por varredura, tal como linha a linha do topo até a base, com atravessamento de cada linha da esquerda para a direita, por exemplo. No caso de subdivisionamento com base em multiárvores hierárquicas, ordenamento de escaneamento por varredura pode ser aplicado em cada nível de hierarquia, em que uma ordem de atravessamento primeiro na profundidade pode ser aplicada, isto é, nós folhas em um bloco de um certo nível de hierarquia podem preceder blocos do mesmo nível de hierarquia que tem o mesmo bloco pai de acordo com a ordem de codificação 20. Dependendo da ordem de codificação 20, amostras vizinhas já codificadas de um bloco 18 podem ser localizadas usualmente em um ou mais lados do bloco 18. No caso dos exemplos aqui apresentados, por exemplo, amostras vizinhas já codificadas de um bloco 18 ficam localizadas no topo do, e à esquerda do bloco 18.
[034] Modos de intraprevisão podem não ser os únicos suportados pelo codificador 14. No caso de o codificador 14 ser um codificador de vídeo, por exemplo, o codificador 14 também pode suportar modos de interprevisão de acordo com os quais um bloco 18 é temporariamente previsto a partir de uma figura de vídeo previamente codificada 16. Um modo de interprevisão como este pode ser um modo de previsão compensado no movimento de acordo com o qual um vetor de movimento é sinalizado para um bloco como este 18 que indica um deslocamento espacial relativo da parte a partir da qual o sinal de previsão do bloco 18 deve ser derivado como uma cópia. Adicionalmente ou alternativamente, outros modos não intraprevisão também podem estar disponíveis, tais como modos de interprevisão, no caso de o codificador 14 ser um codificador multivisualizações, ou modos não preditivos de acordo com os quais o interior do bloco 18 é codificado como está, isto é, sem nenhuma previsão.
[035] Antes de começar com o foco da descrição do presente pedido sobre modos de intraprevisão, um exemplo mais específico para um possível codificador com base em bloco, isto é, para uma possível implementação do codificador 14, da forma descrita em relação à figura 2 com, então, apresentação de dois exemplos correspondentes para um decodificador que se adapta às figuras 1 e 2, respectivamente.
[036] A figura 2 mostra uma possível implementação do codificador 14 da figura 1, a saber, um em que o codificador é configurado para usar codificação de transformação para codificação do resíduo de previsão, embora o mesmo seja praticamente um exemplo e o presente pedido não seja restrito a este tipo de codificação residual de previsão. De acordo com a figura 2, o codificador 14 compreende um subtrator 22 configurado para subtrair a partir do sinal entrante, isto é, da figura 10 ou, com base em bloco, o bloco atual 18, o correspondente sinal de previsão 24 para obter o sinal do resíduo de previsão 26 que é, então, codificado por um codificador do resíduo de previsão 28 em um fluxo contínuo de dados 12. O codificador do resíduo de previsão 28 é composto por um estágio de codificação com perdas 28a e um estágio de codificação sem perdas 28b. O estágio com perdas 28a recebe o sinal do resíduo de previsão 26 e compreende um quantizador 30 que quantiza as amostras do sinal do resíduo de previsão 26. Da forma já supramencionada, o presente exemplo usa codificação de transformação do sinal do resíduo de previsão 26 e, desta maneira, o estágio de codificação com perdas 28a compreende um estágio de transformação 32 conectado entre o subtrator 22 e o quantizador 30 para transformar um resíduo de previsão espectralmente decomposto 26 como este com uma quantização do quantizador 30 que ocorre nos coeficientes transformados durante a apresentação do sinal residual 26. A transformação pode ser uma transformada DCT, DST, FFT, Hadamard ou congêneres. O sinal do resíduo de previsão transformado e quantizado 34 é, então, sujeito a codificação sem perdas pelo estágio de codificação sem perdas 28b, que é um codificador de entropia que codifica por entropia o sinal do resíduo de previsão quantizado 34 no fluxo contínuo de dados
12. O codificador 14 compreende adicionalmente o estágio de reconstrução do sinal do resíduo de previsão 36 conectado na saída do quantizador 30 para reconstruir a partir do sinal do resíduo de previsão transformado e quantizado 34 o sinal do resíduo de previsão de uma maneira também disponível no decodificador, isto é, levando a perda de codificação do quantizador 30 em conta. Para este fim, o estágio de reconstrução do resíduo de previsão 36 compreende um dequantizador 38 que realiza o inverso da quantização do quantizador 30, seguido por um transformador inverso 40 que realiza a transformação inversa em relação à transformação realizada pelo transformador 32, tal como o inverso da decomposição espectral, tal como o inverso de qualquer um dos exemplos de transformação específicos supramencionados. O codificador 14 compreende um adicionador 42 que adiciona o sinal do resíduo de previsão reconstruído como saída pelo transformador inverso 40 e o sinal de previsão
24 para transmitir um sinal reconstruído, isto é, amostras reconstruídas. Esta saída é alimentada em um previsor 44 do codificador 14 que, então, determina o sinal de previsão 24 com base na mesma. É o previsor 44 que suporta todos os modos de previsão já discutidos anteriormente em relação à figura 1. A figura 2 também ilustra que, no caso de o codificador 14 ser um codificador de vídeo, o codificador 14 também pode compreender um filtro em laço 46 com filtros de figuras completamente reconstruídas que, depois de terem sido filtradas, formam as figuras de referência para o previsor 44 em relação ao bloco interprevisto.
[037] Da forma já supramencionada, o codificador 14 opera com base em bloco. Para a subsequente descrição, as bases de bloco de interesse compreendem a subdivisão da figura 10 em blocos para os quais o modo de intraprevisão é selecionado dentre um conjunto ou pluralidade de modos de intraprevisão suportados pelo previsor 44 ou codificador 14, respectivamente, e o modo de intraprevisão selecionado realizado individualmente. Outros tipos de blocos nos quais a figura 10 é subdividida também podem, entretanto, existir. Por exemplo, a supramencionada decisão se a figura 10 é intercodificada ou intracodificada pode ser feita em uma granularidade ou em unidades de blocos que desviam dos blocos 18. Por exemplo, a decisão de modo inter/intra pode ser realizada em um nível de blocos de codificação nos quais a figura 10 é subdividida, e cada bloco de codificação é subdividido em blocos de previsão. Blocos de previsão com blocos de codificação para os quais foi decidido que intraprevisão é usada, são, cada qual, subdivididos em uma decisão do modo de intraprevisão. Para isto, para cada um destes blocos de previsão, é decidido quanto a qual modo de intraprevisão suportado deve ser usado para o respectivo bloco de previsão. Estes blocos de previsão irão formar blocos 18 que, aqui, são de interesse. Blocos de previsão em blocos de codificação associados com interprevisão serão tratados diferentemente pelo previsor 44. Os mesmos serão interprevistos a partir de figuras de referência pela determinação de um vetor de movimento e cópia do sinal de previsão para este bloco a partir de um local na figura de referência apontado pelo vetor de movimento. Um outro subdivisionamento de bloco se refere ao subdivisionamento em blocos de transformação em cujas unidades as transformações pelo transformador 32 e pelo transformador inverso 40 são realizadas. Blocos transformados podem, por exemplo, ser o resultado de subdivisionamento adicional dos blocos de codificação. Naturalmente, os exemplos aqui apresentados não devem ser tratados como sendo limitantes e outros exemplos também existem. A título de completude apenas, percebe-se que o subdivisionamento em blocos de codificação pode, por exemplo, usar subdivisionamento multiárvores, e blocos de previsão e/ou blocos de transformação podem ser obtidos pela subdivisão adicional dos blocos de codificação usando subdivisionamento multiárvores, também.
[038] Um decodificador 54 ou aparelho para decodificação bloco a bloco adaptado ao codificador 14 da figura 1 é representado na figura 3. Este decodificador 54 faz o oposto do codificador 14, isto é, o mesmo decodifica a partir do fluxo contínuo de dados 12 a figura 10 de uma maneira bloco a bloco e suporta, para este fim, uma pluralidade de modos de intraprevisão. O decodificador 54 pode compreender um provedor residual 156, por exemplo. Todas as outras possibilidades discutidas anteriormente em relação à figura 1 são válidas para o decodificador 54, também. Para isto, o decodificador 54 pode ser um decodificador de figura estática ou um decodificador de vídeo e todos os modos de previsão e possibilidades de previsão são suportados pelo decodificador 54, também. A diferença entre o codificador 14 e o decodificador 54 reside, primariamente, no fato de que o codificador 14 escolhe ou seleciona decisões de codificação de acordo com alguma otimização, tal como, por exemplo, a fim de minimizar alguma função de custo que pode depender da taxa de codificação e/ou da distorção de codificação. Uma destas opções de codificação ou parâmetros de codificação pode envolver uma seleção do modo de intraprevisão a ser usado para um bloco atual 18 dentre os modos de intraprevisão disponíveis ou suportados. O modo de intraprevisão selecionado pode, então, ser sinalizado pelo codificador 14 para o bloco atual 18 no fluxo contínuo de dados 12 com o decodificador 54 refazendo a seleção usando esta sinalização no fluxo contínuo de dados 12 para o bloco 18. Igualmente, o subdivisionamento da figura 10 em blocos 18 pode ser sujeito à otimização no codificador 14 e correspondente informação de subdivisão pode ser conduzida no fluxo contínuo de dados 12 com o decodificador 54 recuperando a subdivisão da figura 10 nos blocos 18 com base na informação de subdivisão. Sumarizando o exposto, o decodificador 54 pode ser um decodificador preditivo que opera com base em bloco e, além dos modos de intraprevisão, o decodificador 54 pode suportar outros modos de previsão, tais como modos de interprevisão, no caso de, por exemplo, o decodificador 54 ser um decodificador de vídeo. Na decodificação, o decodificador 54 também pode usar a ordem de codificação 20 discutida em relação à figura 1 e, como esta ordem de codificação 20 é obedecida tanto no codificador 14 quanto no decodificador 54, as mesmas amostras vizinhas estão disponíveis para um bloco atual 18 tanto no codificador 14 quanto no decodificador 54. Desta maneira, a fim de evitar a repetição desnecessária, a descrição do modo de operação do codificador 14 também deve se aplicar ao decodificador 54 na medida em que a subdivisão da figura 10 em blocos é relacionada, por exemplo, na medida em que a previsão é relacionada e na medida em que a codificação do resíduo de previsão é relacionada. Diferenças residem no fato de que o codificador 14 escolhe, por otimização, algumas opções de codificação ou parâmetros de codificação e sinaliza no, ou insere no, fluxo contínuo de dados 12 os parâmetros de codificação que são, então, derivados a partir do fluxo contínuo de dados 12 pelo decodificador 54 para refazer a previsão, a subdivisão e assim por diante.
[039] A figura 4 mostra uma possível implementação do decodificador 54 da figura 3, a saber, um adaptado à implementação do codificador 14 da figura 1, da forma mostrada na figura 2. Como muitos elementos do codificador 54 da figura 4 são iguais àqueles que ocorrem no correspondente codificador da figura 2, os mesmos sinais de referência, providos com um apóstrofo, são usados na figura 4 a fim de indicar estes elementos. Em particular, o adicionador 42’, filtro em laço opcional 46’ e previsor 44’ são conectados em um laço de previsão da mesma maneira que os mesmos são no codificador da figura 2. O sinal do resíduo de previsão reconstruído,
isto é, dequantizado e retransformado, aplicado no adicionador 42’ é derivado por uma sequência do decodificador de entropia 56 que inverte a codificação de entropia do codificador de entropia 28b, seguida pelo estágio de reconstrução do sinal residual 36’ que é composto pelo dequantizador 38’ e pelo transformador inverso 40’, exatamente como é o caso no lado da codificação. A saída do decodificador é a reconstrução da figura 10. A reconstrução da figura 10 pode estar disponível diretamente na saída de adicionador 42’ ou, alternativamente, na saída do filtro em laço 46’. Algum pós-filtro pode ser arranjado na saída do decodificador a fim de sujeitar a reconstrução da figura 10 a alguma pós-filtragem a fim de melhorar a qualidade da figura, mas esta opção não é representada na figura 4.
[040] Novamente, em relação à figura 4, a descrição apresentada anteriormente em relação à figura 2 deve ser válida para a figura 4, também, com a exceção de que meramente o codificador realiza as tarefas de otimização e as decisões associadas em relação às opções de codificação. Entretanto, toda a descrição em relação a subdivisionamento de bloco, previsão, dequantização e retransformação também é válida para o decodificador 54 da figura 4. 3 ALWIP
[041] Alguns exemplos não limitantes em relação a ALWIP são aqui discutidos, mesmo se ALWIP não for sempre necessário para incorporar as técnicas aqui discutidas.
[042] O presente pedido é relacionado, entre outros, com um melhor conceito de modo de intraprevisão para a codificação de figura bloco a bloco, tal como usável em um codec de vídeo, tais como HEVC ou qualquer sucessor de HEVC.
[043] Modos de intraprevisão são amplamente usados em codificação de figura e vídeo. Em codificação de vídeo, modos de intraprevisão competem com outros modos de previsão, tais como modos de interprevisão, tal como modos de previsão compensados no movimento. Em modos de intraprevisão, um bloco atual é previsto com base em amostras vizinhas, isto é, amostras já codificadas na medida em que o lado do codificador é relacionado, e já decodificadas na medida em que o lado do decodificador é relacionado. Valores de amostra vizinhas são extrapolados no bloco atual para formar um sinal de previsão para o bloco atual com o resíduo de previsão sendo transmitido no fluxo contínuo de dados para o bloco atual. Quanto melhor for o sinal de previsão, mais baixo o resíduo de previsão é e, desta maneira, um número de bits mais baixo é necessário para codificar o resíduo de previsão.
[044] A fim de ser efetivo, diversos aspectos devem ser considerados a fim de formar uma estrutura efetiva para intraprevisão em um ambiente de codificação de figura bloco a bloco. Por exemplo, quanto maior o número de modos de intraprevisão suportados pelo codec, maior é o consumo da taxa de informação complementar a fim de sinalizar a seleção para o decodificador. Por outro lado, o conjunto de modos de intraprevisão suportados deve ser capaz de prover um bom sinal de previsão, isto é, um sinal de previsão que resulta em um baixo resíduo de previsão.
[045] Um conceito de modo de intraprevisão que permite uma compressão mais eficiente de um codec de figura bloco a bloco se usando o melhor conceito de modo de intraprevisão é buscado.
[046] Este objetivo é alcançado, entre outros, pelas assim denominadas transformações Intraprevisor Ponderado Linear Afim (ALWIP). É revelado um aparelho (codificador ou decodificador) para decodificação bloco a bloco de uma figura a partir de um fluxo contínuo de dados, o aparelho suportando pelo menos um modo de intraprevisão de acordo com o qual o sinal de intraprevisão para um bloco de um tamanho pré-determinado da figura é determinado pela aplicação de um primeiro modelo de amostras que vizinho do bloco atual sobre um previsor linear afim que, na sequência, deve ser chamado de Intraprevisor Ponderado Linear Afim (ALWIP).
[047] O aparelho pode ter pelo menos uma das seguintes propriedades (o mesmo pode se aplicar a um método ou a uma outra técnica, por exemplo, implementada em uma unidade de armazenamento não transitória que armazena instruções que, quando executadas por um processador, fazem com que o processador implemente o método e/ou opere como o aparelho).
3.1 PREVISORES PROPOSTOS PODEM SER COMPLEMENTARES A
OUTROS PREVISORES
[048] Os modos de intraprevisão suportados pelo aparelho são complementares a outros modos de intraprevisão do codec. Assim, os mesmos podem ser complementares aos Modos de previsão DC, Plano ou Angular definidos no codec HEVC resp. O software de referência JEM. Os últimos três tipos de modos de intraprevisão devem ser chamados de modos de intraprevisão convencionais de agora em diante. Assim, para um dado bloco no modo intra, um indicador precisa ser analisado pelo decodificador que indica se um dos modos de intraprevisão suportados pelo aparelho deve ser usado ou não.
3.2 MAIS DO QUE UM MODO DE PREVISÃO PROPOSTO
[049] O aparelho pode conter mais do que um modo ALWIP. Assim, no caso em que o decodificador souber que um dos modos ALWIP suportados pelo aparelho deve ser usado, o decodificador precisa analisar informação adicional que indica qual dos modos ALWIP suportados pelo aparelho deve ser usado.
[050] A sinalização do modo suportado pode ter a propriedade em que a codificação de alguns modos ALWIP pode exigir menos bins do que outros modos ALWIP. Qual destes modos exige menos bins e quais modos exigem mais bins ou pode depender da informação que pode ser extraída a partir do fluxo contínuo de bits já decodificado ou pode ser fixo em antecipação. 4 ALGUNS ASPECTOS
[051] A figura 2 mostra o decodificador 54 para decodificação de uma figura a partir de um fluxo contínuo de dados 12. O decodificador 54 pode ser configurado para decodificar um bloco pré-determinado 18 da figura. Em particular, o previsor 44 pode ser configurado para mapear um conjunto de P amostras vizinhas, vizinhas ao bloco pré-determinado 18, usando uma transformação linear ou linear afim [por exemplo, ALWIP] sobre um conjunto de Q valores previstos para amostras do bloco pré- determinado.
[052] Da forma mostrada na figura 5, um bloco pré-determinado 18 compreende Q valores a serem previstos (que, no fim das operações, serão “valores previstos”).
Se o bloco 18 tiver M linhas e N colunas, Q=M*N. Os Q valores do bloco 18 podem estar no domínio espacial (por exemplo, pixels) ou no domínio de transformação (por exemplo, DCT, Transformada em Ondeleta Discreta, etc.). Os Q valores do bloco 18 podem ser previstos com base em P valores tomados a partir dos blocos vizinhos 17a- 17c, que são, no geral, adjacentes ao bloco 18. Os P valores dos blocos vizinhos 17a- 17c podem estar nas posições mais próximas (por exemplo, adjacentes) ao bloco 18. Os P valores dos blocos vizinhos 17a-17c já foram processados e previstos. Os P valores são indicados como valores nas partes 17’a-17’c, para distinguir os mesmos dos blocos dos quais os mesmos são parte (em alguns exemplos, 17’b não é usado).
[053] Da forma mostrada na figura 6, a fim de realizar a previsão, é possível operar com um primeiro vetor 17P com P entradas (cada entrada sendo associada a uma posição em particular nas partes vizinhas 17’a-17’c), um segundo vetor 18Q com Q entradas (cada entrada sendo associada a uma posição em particular no bloco 18), e uma matriz de mapeamento 17M (cada linha sendo associada a uma posição em particular no bloco 18, cada coluna sendo associada a uma posição em particular na partes vizinhas 17’a-17’c). A matriz de mapeamento 17M, portanto, realiza a previsão dos P valores das partes vizinhas 17’a-17’c em valores do bloco 18 de acordo com um modo pré-determinado. As entradas na matriz de mapeamento 17M podem ser, portanto, entendidas como fatores de ponderação. Nas seguintes passagens, será feita referência às partes vizinhas do limite usando os sinais 17a-17c em vez de 17’a- 17’c.
[054] Na tecnologia, são conhecidos diversos modos convencionais, tais como modo DC, modo plano e 65 modos de previsão direcional. Podem ser conhecidos, por exemplo, 67 modos.
[055] Entretanto, foi notado que também é possível fazer uso de diferentes modos, que são aqui chamados de transformações lineares ou lineares afins. A transformação linear ou linear afim compreende P*Q fatores de ponderação, dentre os quais pelo menos ¼ P*Q fatores de ponderação são valores de ponderação não zero, que compreendem, para cada um dos Q valores previstos, uma série de P fatores de ponderação em relação ao respectivo valor previsto. A série, quando sendo arranjada uma abaixo da outra de acordo com uma ordem de escaneamento por varredura dentre as amostras do bloco pré-determinado, forma um envelope que é onidirecionalmente não linear.
[056] A figura 13 mostra um exemplo de um diagrama 70 que mapeia as P posições dos valores vizinhos 17’a-17’c (modelo), as Q posições das amostras vizinhas 17’a-17’c, e nos valores dos P*Q fatores de ponderação da matriz 17M. Um plano 72 é um exemplo do envelope da série para uma transformação DC (que é um plano para a transformação DC). O envelope é evidentemente plano e, portanto, é excluído pela definição da transformação linear ou linear afim (ALWIP). Um outro exemplo é uma matriz que resulta em uma emulação de um modo angular: um envelope será excluído da definição de ALWIP e irá, francamente falando, parecer com uma montanha levando obliquamente do topo até a base ao longo de uma direção no plano P/Q. O modo plano e os 65 modos de previsão direcional terão diferentes envelopes, que, entretanto, serão lineares em pelo menos uma direção, a saber, todas as direções para o DC exemplificado, por exemplo, e a direção da montanha para um modo angular, por exemplo.
[057] Ao contrário, o envelope da transformação linear ou afim não será onidirecionalmente linear. Foi entendido que tal tipo de transformação pode ser ideal, em algumas situações, para realizar a previsão para o bloco 18. Foi notado que é preferível que pelo menos ¼ dos fatores de ponderação seja diferente de zero (isto é, pelo menos os 25% dos P*Q fatores de ponderação são diferentes de 0).
[058] Os fatores de ponderação podem ser não relacionados uns com os outros de acordo com qualquer regra de mapeamento regular. Portanto, uma matriz 17M pode ser de maneira tal que os valores de suas entradas não tenham relacionamento reconhecível aparente. Por exemplo, os fatores de ponderação não podem ser descritos por nenhuma função analítica ou diferencial.
[059] Em exemplos, uma transformação ALWIP é de maneira tal que uma média da máxima das correlações cruzadas entre uma primeira série de fatores de ponderação em relação ao respectivo valor previsto e uma segunda série de fatores de ponderação em relação a valores previstos diferentes do respectivo valor previsto, ou uma versão revertida da última série, qualquer que seja, levando a um máximo superior, possa ser inferior a um limite pré-determinado (por exemplo, 0,2 ou 0,3 ou 0,35 ou 0,1, por exemplo, um limite em uma faixa entre 0,05 e 0,035). Por exemplo, para cada par (i1,i2) de linhas da matriz ALWIP 17M, uma correlação cruzada pode ser calculada pela multiplicação dos P valores da i1-ésima linha pelos P valores da i2- ésima linha. For cada correlação cruzada obtida, o valor máximo pode ser obtido. Portanto, uma média (valor médio) pode ser obtida para a íntegra da matriz 17M (isto é, as máximas das correlações cruzadas em todas as combinações são ponderadas). Depois disto, o limite pode ser, por exemplo, 0,2 ou 0,3 ou 0,35 ou 0,1, por exemplo, um limite em uma faixa entre 0,05 e 0,035.
[060] As P amostras vizinhas dos blocos 17a-17c podem ficar localizadas ao longo de um caminho unidimensional que se estende ao longo de uma borda (por exemplo, 18c, 18a) do bloco pré-determinado 18. Para cada um dos Q valores previstos do bloco pré-determinado 18, a série de P fatores de ponderação em relação ao respectivo valor previsto pode ser ordenada de uma maneira que atravessa o caminho unidimensional em uma direção pré-determinada (por exemplo, da esquerda para a direita, do topo para baixo, etc.).
[061] Em exemplos, a matriz ALWIP 17M pode ser não diagonal ou diagonal não bloco.
[062] Um exemplo da matriz ALWIP 17M para prever um bloco 4x4 18 a partir de 4 amostras vizinhas já previstas pode ser: { { 37, 59, 77, 28}, { 32, 92, 85, 25}, { 31, 69, 100, 24}, { 33, 36, 106, 29}, { 24, 49, 104, 48},
{ 24, 21, 94, 59}, { 29, 0, 80, 72}, { 35, 2, 66, 84}, { 32, 13, 35, 99}, { 39, 11, 34, 103}, { 45, 21, 34, 106}, { 51, 24, 40, 105}, { 50, 28, 43, 101}, { 56, 32, 49, 101}, { 61, 31, 53, 102}, { 61, 32, 54, 100} }.
[063] (Aqui, { 37, 59, 77, 28} é a primeira linha; { 32, 92, 85, 25} é a segunda linha; e { 61, 32, 54, 100} é a 16ª linha da matriz 17M.). A matriz 17M tem dimensão 16x4 e inclui 64 fatores de ponderação (em decorrência de 16*4=64). Isto é em virtude de a matriz 17M ter dimensão QxP, em que Q=M*N, que é o número de amostras do bloco 18 a ser previsto (bloco 18 é um bloco 4x4), e P é o número de amostras das amostras já previstas. Aqui, M=4, N=4, Q=16 (em decorrência de M*N=4*4=16), P=4. A matriz é não diagonal e diagonal não bloco, e não é descrita por uma regra em particular.
[064] Como pode ser visto, menos do que ¼ dos fatores de ponderação são 0 (no case da matriz mostrada anteriormente, um fator de ponderação dentre sessenta e quatro é zero). O envelope formado por estes valores, quando arranjado um abaixo do outro de acordo com uma ordem de escaneamento por varredura, forma um envelope que é onidirecionalmente não linear.
[065] Até mesmo se a explicação exposta for principalmente discutida em relação a um decodificador (por exemplo, o decodificador 54), o mesmo pode ser realizado no codificador (por exemplo, o codificador 14).
[066] Em alguns exemplos, para cada tamanho de bloco (no conjunto de tamanhos de bloco), as transformações ALWIP dos modos de intraprevisão no segundo conjunto de modos de intraprevisão para o respectivo tamanho de bloco são mutuamente diferentes. Além do mais ou alternativamente, uma cardinalidade do segundo conjunto de modos de intraprevisão para os tamanhos de bloco no conjunto de tamanhos de bloco pode coincidir, mas as transformações lineares ou lineares afins associadas dos modos de intraprevisão no segundo conjunto de modos de intraprevisão para diferentes tamanhos de bloco podem ser não transferíveis umas sobre as outras por escala.
[067] Em alguns exemplos, as transformações ALWIP podem ser definidas de uma maneira tal que as mesmas tenham “nada para compartilhar” com transformações convencionais (por exemplo, as transformações ALWIP podem ter “nada” para compartilhar com as correspondentes transformações convencionais, mesmo embora os mesmos tenham sido mapeados por meio de um dos mapeamentos expostos).
[068] Em exemplos, os modos ALWIP são usados tanto para componentes luma quanto para componentes croma, mas, em outros exemplos, os modos ALWIP são usados para componentes luma, mas não são usados para componentes croma. 5 MODOS DE INTRAPREVISÃO PONDERADA LINEAR AFIM COM ACELERAÇÃO DO CODIFICADOR (POR EXEMPLO, TESTE CE3-1.2.1:)
5.1 DESCRIÇÃO DE UM MÉTODO OU APARELHO
[069] Modos de intraprevisão ponderada linear afim (ALWIP) testados em CE3-
1.2.1 podem ser os mesmos propostos em JVET-L0199 sob teste CE3-2.2.2, exceto pelas seguintes mudanças: Harmonização com intraprevisão de linha de referência múltipla (MRL), especialmente estimativa e sinalização do codificador, isto é, MRL não é combinada com ALWIP e transmissão de um índice MRL é restrita a blocos não ALWIP.
[070] Subamostragem agora obrigatória para todos os blocos W×H ≥ 32×32 (era opcional para 32×32 anteriormente); portanto, o teste adicional no codificador e envio do indicador de subamostragem foram removidos.
[071] ALWIP para blocos 64×N e N×64 (com N ≤ 32) foi adicionada por amostragem descendente em 32×N e N×32, respectivamente, e aplicando os correspondentes modos ALWIP.
[072] Além do mais, teste CE3-1.2.1 inclui as seguintes otimizações do codificador para ALWIP: Estimativa de modo combinado: modos convencional e ALWIP usam uma lista candidata de Hadamard compartilhado para estimativa RD completa, isto é, os candidatos a modo ALWIP são adicionados na mesma lista dos candidatos a modo convencional (e MRL) com base no custo de Hadamard.
[073] Intra EMT rápido e intra PB rápido são suportados para a lista de modo combinado, com otimizações adicionais para reduzir o número de verificações RD completas.
[074] Apenas MPMs de blocos à esquerda e acima disponíveis são adicionados na lista para estimativa RD completa para ALWIP, seguindo a mesma abordagem para os modos convencionais.
5.2 AVALIAÇÃO DA COMPLEXIDADE
[075] No Teste CE3-1.2.1, excluindo computações que invocam a Transformada Discreta de Cosseno, no máximo 12 multiplicações por amostra foram necessárias para gerar os sinais de previsão. Além do mais, um número total de 136.492 parâmetros, cada qual em 16 bits, foi exigido. Isto corresponde a 0,273 Megabyte de memória.
5.3 RESULTADOS EXPERIMENTAIS
[076] A avaliação do teste foi realizada de acordo com as condições de teste comuns JVET-J1010 [0651], para as configurações apenas intra (AI) e acesso aleatório (RA) com o software VTM versão 3.0.1. As correspondentes simulações foram conduzidas em um agrupamento Intel Xeon (E5-2697A v4, AVX2 ativo, intensificação por turbo inativa) com Linux OS e compilador GCC 7.2.1. Tabela 1. Resultado de CE3-1.2.1 para configuração VTM AI tempo tempo
Y U V codificação decodificação Classe A1 -2,08% -1,68% -1,60% 155% 104% Classe A2 -1,18% -0,90% -0,84% 153% 103% Classe B -1,18% -0,84% -0,83% 155% 104% Classe C -0,94% -0,63% -0,76% 148% 106% Classe E -1,71% -1,28% -1,21% 154% 106% Total -1,36% -1,02% -1,01% 153% 105% Classe D -0,99% -0,61% -0,76% 145% 107% Classe F -1,38% -1,23% -1,04% 147% 104% (opcional) Tabela 2. Resultado de CE3-1.2.1 para configuração VTM RA tempo tempo
Y U V codificação decodificação Classe A1 -1,25% -1,80% -1,95% 113% 100% Classe A2 -0,68% -0,54% -0,21% 111% 100% Classe B -0,82% -0,72% -0,97% 113% 100% Classe C -0,70% -0,79% -0,82% 113% 99% Classe E Total -0,85% -0,92% -0,98% 113% 100% Classe D -0,65% -1,06% -0,51% 113% 102% Classe F -1,07% -1,04% -0,96% 117% 99% (opcional)
5.4 TESTE CE3-1.2.2: INTRAPREVISÃO PONDERADA LINEAR AFIM
COM REDUÇÃO DE COMPLEXIDADE
[077] A técnica testada em CE2 é relacionada a “Intraprevisões Lineares Afins” descritas em JVET-L0199 [1], mas simplifica as mesmas em termos de exigências de memória e complexidade computacional:
* Pode haver apenas três diferentes conjuntos de matrizes de previsão (por exemplo, S0, S1, S2, veja também a seguir) e vetores de tendência (por exemplo, para prover valores de deslocamento) que cobrem todas as formas de bloco. Como uma consequência, o número de parâmetros é reduzido para 14.400 valores de 10 bits, que é menos memória do que armazenado em uma CTU 128 x 128; * O tamanho da entrada e da saída dos previsores é adicionalmente reduzido. Além do mais, em vez de transformar o limite por meio de DCT, ponderação ou amostragem descendente podem ser realizadas nas amostras do limite e a geração do sinal de previsão pode usar interpolação linear em vez da DCT inversa. Consequentemente, um máximo de quatro multiplicações por amostra pode resultar necessário para gerar o sinal de previsão.
6. EXEMPLOS
[078] É aqui discutido como realizar algumas previsões (por exemplo, da forma mostrada na figura 6) com previsões ALWIP.
[079] Em princípio, em relação à figura 6, a fim de obter os Q=M*N valores de um bloco MxN 18 a ser previsto, multiplicações das Q*P amostras da matriz de previsão ALWIP QxP 17M pelas P amostras do vetor vizinho Px1 17P devem ser realizadas. Portanto, no geral, a fim de obter cada um dos Q=M*N valores do bloco MxN 18 a ser previsto, pelo menos P=M+N multiplicações de valor são necessárias.
[080] Estas multiplicações têm efeitos extremamente indesejados. A dimensão P do vetor de limite 17P é, no geral, dependente do número M+N de amostras do limite (bins ou pixels) 17a, 17c vizinhas ao (por exemplo, adjacente ao) bloco MxN 18 a ser previsto. Isto significa que, se o tamanho de bloco 18 a ser previsto for grande, o número M+N de pixels do limite (17a, 17c) é, desta maneira, grande, portanto, aumentando a dimensão P=M+N do vetor de limite Px1 17P, e o comprimento de cada linha da matriz de previsão ALWIP QxP 17M, e, desta maneira, também, os números de multiplicações necessárias (em termos gerais, Q=M*N=W*H, em que W (Largura) é um outro símbolo para N e H (Altura) é um outro símbolo para M; P, no caso em que o vetor de limite apenas for formado por uma linha e/ou uma coluna de amostras, é
P=M+N=H+W).
[081] Este problema é, no geral, exacerbado pelo fato de que, em sistemas com base em microprocessador (ou outros sistemas de processamento digital), multiplicações são, no geral, operações consumidoras de energia. Pode ser imaginado que um grande número de multiplicações conduzidas para um número extremamente alto de amostras para um grande número de blocos causa um desperdício da potência computacional, o que é, no geral, indesejado.
[082] Desta maneira, seria preferível reduzir o número Q*P de multiplicações necessárias para prever o bloco MxN 18.
[083] Foi entendido que é possível reduzir um tanto a potência computacional necessária para cada intraprevisão de cada bloco 18 a ser previsto pela escolha inteligentemente das operações alternativas às multiplicações e que são mais fáceis de serem processadas.
[084] Em particular, em relação às figuras 7.1-7.4, 8.1, e 8.2, foi entendido que um codificador ou decodificador podem prever um bloco pré-determinado (por exemplo, 18) da figura usando uma pluralidade de amostras vizinhas (por exemplo, 17a, 17c), por reduzir (por exemplo, na etapa 811), (por exemplo, por ponderação ou amostragem descendente), a pluralidade de amostras vizinhas (por exemplo, 17a, 17c) para obter um conjunto reduzido de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas, sujeitar (por exemplo, na etapa 812) o conjunto reduzido de valores de amostra a uma transformação linear ou linear afim para obter valores previstos para amostras pré-determinadas do bloco pré-determinado.
[085] Em alguns casos, o decodificador ou o codificador também podem derivar (por exemplo, etapa 813 na figura 8.1), por exemplo, por interpolação, valores de previsão para amostras adicionais do bloco pré-determinado com base em valores previstos para as amostras pré-determinadas e a pluralidade de amostras vizinhas. Desta maneira, uma estratégia de amostragem ascendente pode ser obtida.
[086] Em exemplos, é possível realizar (por exemplo, na etapa 811) algumas ponderações nas amostras do limite 17, para chegar em um conjunto reduzido 102 (figuras 7.1-7.4) de amostras com um número reduzido de amostras (pelo menos uma das amostras do número reduzido de amostras 102 pode ser a média de duas amostras das amostras do limite originais, ou uma seleção das amostras do limite originais). Por exemplo, se o limite original tiver P=M+N amostras, o conjunto reduzido de amostras podem ter Pred=Mred+Nred, com pelo menos um de Mred<M e Nred<N, de forma que Pred<P. Portanto, o vetor de limite 17P que será realmente usado para a previsão (por exemplo, na etapa 812b) não terá Px1 entradas, mas P redx1 entradas, com Pred<P. Analogamente, a matriz de previsão ALWIP 17M escolhida para a previsão não terá dimensão QxP, mas QxPred (ou QredxPred, veja a seguir) com um reduzido número de elementos da matriz pelo menos em virtude de P red<P (em virtude de pelo menos um de Mred<M e Nred<N).
[087] Em alguns exemplos (por exemplo, as figuras 7.2, 7.3, e 8.2), é até mesmo possível reduzir adicionalmente o número de multiplicações, se o bloco obtido por ′ ′ ALWIP (na etapa 812) for um bloco reduzido que tem tamanho 𝑀𝑟𝑒𝑑 × 𝑁𝑟𝑒𝑑 , com ′ ′ 𝑀𝑟𝑒𝑑 < 𝑀 e/ou 𝑁𝑟𝑒𝑑 < 𝑁 (isto é, as amostras diretamente previstas por ALWIP são menores em número do que as amostras do bloco 18 a ser realmente previsto). Assim, ′ ′ definindo 𝑄𝑟𝑒𝑑 = 𝑀𝑟𝑒𝑑 ∗ 𝑁𝑟𝑒𝑑 , isto irá proporcionar obter uma previsão ALWIP pelo uso, em vez de Q*Pred multiplicações, de Qred*Pred multiplicações (com Qred*Pred< Q*Pred<Q*P). Esta multiplicação irá prever um bloco reduzido, com dimensão ′ ′ 𝑀𝑟𝑒𝑑 × 𝑁𝑟𝑒𝑑 . Será, não obstante, possível realizar (por exemplo, em uma etapa subsequente 813) uma amostragem ascendente (por exemplo, obtida por ′ ′ interpolação) do bloco previsto 𝑀𝑟𝑒𝑑 × 𝑁𝑟𝑒𝑑 reduzido no bloco previsto MxN final.
[088] Estas técnicas podem ser vantajosas já que, embora a multiplicação de matriz envolva um número reduzido (Qred*Pred ou Q*Pred) de multiplicações, tanto a redução inicial (por exemplo, ponderação ou amostragem descendente) quanto a transformação final (por exemplo, interpolação) podem ser realizadas pela redução (ou até mesmo evitação) das multiplicações. Por exemplo, amostragem descendente,
ponderação e/ou interpolação podem ser realizadas (por exemplo, nas etapas 811 e/ou 813) pela adoção de operações binárias não exigentes de potência computacional, tais como adições e deslocamento.
[089] Um exemplo de operação de deslocamento em um nível do processador é aqui discutido. A figura 9 mostra o número 580 codificado em binário (1001000100b) em um registro de dez bits 910, o registro de dez bits 910 tendo 10 registros de bit 910a, cada registro de bit 910a armazenando um valor de bit (por exemplo, 1 ou 0). O valor 1001000100b expressado em binário, codificado no registro de dois bytes 910, é indicado na figura 9a como 901 como “valor a ser deslocado”. O valor binário indicado com número 902 na figura 9b é uma versão deslocada para a direita do valor binário indicado com o número 901. Como pode ser visto, o valor binário 902 (codificado como 0100100010b) é uma versão do valor binário 901 depois que cada valor codificado em cada registro de bit 910a foi simplesmente movido para o registro de bit na respectiva posição direita; o bit menos significativo do valor binário 901 é perdido no valor binário 902; e o bit mais significativo do valor binário deslocado 902 é adicionado como zero. Se for transformado em decimal o valor binário deslocado 902, vê-se que obtém-se o valor decimal 290, que é a metade de 580. Esta pode ser uma técnica para dividir um número binário por dois (há apenas um erro de quantização no caso de o valor 901 ser ímpar). Esta operação é extremamente fácil de ser realizada e não exige alta potência computacional. Notavelmente, pelo deslocamento por um número plural de vezes, divisões por potências de 2 são obtidas: por exemplo, pelo deslocamento duas vezes, uma divisão por 4 é obtida; pelo deslocamento três vezes, uma divisão por 8 é obtida, e, no geral, pelo deslocamento r vezes, uma divisão por 2r (2^r) é obtida. Isto também pode ser indicado com a notação f>>r, de forma que f>>1 indique f/2, f>>2 indique f/4, e assim por diante (com f sendo um número inteiro). Esta operação também é conhecida como rotação para a direita. Analogamente, a operação de rotação para a esquerda f<<r implica a multiplicação de f por 2r (ou 2^r). As operações de deslocamento não são, para processadores, exigentes de potência computacional, já que as mesmas evitam a necessidade de realizar multiplicações, mas são simplesmente obtidas por mover bits em diferentes registros. No exemplo, o registro 910 é representado como um registro de 10 bits. Entretanto, em exemplos, o registro 910 pode ter um diferente número de registros de bit 910a, por exemplo, 8 registros de bit 910 (neste caso, o registro 910 é um registro de 8 bits).
[090] Também, a adição é uma operação extremamente fácil que pode ser facilmente realizada sem muito esforço computacional.
[091] Esta operação de deslocamento pode ser usada, por exemplo, para ponderação de duas amostras do limite e/ou para interpolação de duas amostras (valores de suporte) do bloco previsto reduzido (ou tomado a partir do limite), para obter o bloco previsto final. (Para interpolação, dois valores de amostra são necessários. No bloco, sempre tem-se dois valores pré-determinados, mas, para interpolação das amostras ao longo da borda esquerda e acima do bloco, tem-se apenas um valor pré-determinado, como na figura 7.2, portanto, usa-se uma amostra do limite como um valor de suporte para interpolação.)
[092] Um procedimento de duas etapas pode ser usado, tal como: primeiro, somar os valores das duas amostras; então, dividir ao meio (por exemplo, por deslocamento para a direita) o valor da soma.
[093] Alternativamente, é possível: primeiro, dividir ao meio (por exemplo, por deslocamento para a esquerda) cada uma das amostras;
[094] então, somar os valores das duas amostras divididas ao meio.
[095] Até mesmo operações mais fáceis podem ser realizadas durante a amostragem descendente (por exemplo, na etapa 811), já que é apenas necessário selecionar uma quantidade de amostra por um grupo de amostras (por exemplo, amostras adjacentes umas às outras).
[096] Portanto, agora, é possível definir técnica(s) para reduzir o número de multiplicações a serem realizadas. Algumas destas técnicas podem ser com base,
entre outros, em pelo menos um dos seguintes princípios:
[097] Até mesmo se o bloco 18 a ser realmente previsto tiver tamanho MxN, o bloco pode ser reduzido (em pelo menos uma das duas dimensões) e uma matriz ′ ′ ALWIP com tamanho reduzido QredxPred (com 𝑄𝑟𝑒𝑑 = 𝑀𝑟𝑒𝑑 ∗ 𝑁𝑟𝑒𝑑 , Pred=Nred+Mred, com ′ ′ 𝑀𝑟𝑒𝑑 < 𝑀 e/ou 𝑁𝑟𝑒𝑑 < 𝑁 e/ou Mred<M e/ou Nred<N) pode ser aplicada. Portanto, o vetor de limite 17P terá tamanho Predx1, implicando apenas Pred<P multiplicações (com Pred = Mred + Nred e P=M+N).
[098] O vetor de limite Predx1 17P pode ser obtido facilmente do limite original 17, por exemplo:
[099] Por amostragem descendente (por exemplo, pela escolha de apenas algumas amostras do limite); e/ou
[0100] Pela ponderação de múltiplas amostras do limite (que pode ser facilmente obtida por adição e deslocamento, sem multiplicações).
[0101] Além do mais ou alternativamente, em vez de prever por multiplicação todos os Q=M*N valores do bloco 18 a ser previsto, é possível apenas prever um bloco ′ ′ ′ reduzido com dimensões reduzidas (por exemplo, 𝑄𝑟𝑒𝑑 = 𝑀𝑟𝑒𝑑 ∗ 𝑁𝑟𝑒𝑑 com 𝑀𝑟𝑒𝑑 <𝑀 ′ e/ou 𝑁𝑟𝑒𝑑 < 𝑁). As amostras restantes do bloco 18 a ser previsto serão obtidas por interpolação, por exemplo, usando as Qred amostras como valores de suporte for os Q-Qred valores restantes a serem previstos.
[0102] Um exemplo é provido pela figura 8.1, que pode ser entendida, no geral, como descrevendo um processo 810, um caso em particular do qual é ilustrado na figura 7.1. Neste caso, um bloco 4x4 18 (M=4, N=4, Q=M*N=16) deve ser previsto e uma vizinhança 17 das amostras 17a (uma coluna da linha vertical com quatro amostras já previstas) e 17c (uma linha horizontal com quatro amostras já previstas) já foi prevista em iterações prévias (as vizinhanças 17a e 17c podem ser coletivamente indicadas com 17). A priori, pelo uso da equação mostrada na figura 5, a matriz de previsão 17M deve ser uma matriz QxP=16x8 (em virtude de Q=M*N=4*4 e P=M+N=4+4=8), e o vetor de limite 17P deve ter dimensão 8x1 (em virtude de P=8). Entretanto, isto irá conduzir à necessidade de realizar 8 multiplicações para cada uma das 16 amostras do bloco 4x4 18 a ser previsto, portanto, levando à necessidade de realizar 16*8=128 multiplicações no total. (Percebe-se que o número médio de multiplicações por amostra é uma boa avaliação da complexidade computacional. Para intraprevisões convencionais, quatro multiplicações por amostra são exigidas e isto aumenta o esforço computacional a ser envolvido. Portanto, é possível usar isto, já que um limite superior para ALWIP irá garantir que a complexidade é razoável e não excede a complexidade da intraprevisão convencional.)
[0103] Não obstante, foi entendido que, pelo uso da presente técnica, é possível reduzir, na etapa 811, o número de amostras 17a e 17c vizinhas ao bloco 18 a ser previsto de P para Pred<P. Em particular, foi entendido que é possível ponderar (por exemplo, em 100 na figura 7.1) amostras do limite (17a, 17c) que são adjacentes umas às outras, para obter um limite reduzido 102 com duas linhas horizontais e duas colunas verticais, portanto, operando como o bloco 18 que era um bloco 2x2 (o limite reduzido sendo formado por valores ponderados). Alternativamente, é possível realizar uma amostragem descendente, portanto, selecionando duas amostras para a linha 17c e duas amostras para a coluna 17a. Portanto, a linha horizontal 17c, em vez de ter as quatro amostras originais, é processado como tendo duas amostras (por exemplo, amostras ponderadas), ao mesmo tempo em que a coluna vertical 17a, originalmente tendo quatro amostras, é processada como tendo duas amostras (por exemplo, amostras ponderadas). Também é possível entender que, depois de ter subdividido a linha 17c e a coluna 17a em grupos 110 de duas amostras cada, uma única amostra é mantida (por exemplo, a média das amostras do grupo 110 ou uma simples escolha dentre as amostras do grupo 110). Desta maneira, um assim denominado conjunto reduzido 102 de valores de amostra é obtido, em virtude de o conjunto 102 ter apenas quatro amostras (Mred=2, Nred=2, Pred=Mred+Nred=4, com Pred<P).
[0104] Foi entendido que é possível realizar operações (tais como a ponderação ou a amostragem descendente 100) sem realizar muitas multiplicações no nível do processador: a ponderação ou a amostragem descendente 100 realizadas na etapa
811 podem ser simplesmente obtidas pelas operações diretas e não consumidoras de potência computacional, tais como adições e deslocamentos.
[0105] Foi entendido que, neste ponto, é possível sujeitar o conjunto reduzido de valores de amostra 102 a uma transformação linear ou afim linear (ALWIP) 19 (por exemplo, usando uma matriz de previsão, tal como a matriz 17M da figura 5). Neste caso, a transformação ALWIP 19 mapeia diretamente as quatro amostras 102 sobre os valores de amostra 104 do bloco 18. Nenhuma interpolação é necessária no presente caso.
[0106] Neste caso, a matriz ALWIP 17M tem dimensão QxPred=16x4: isto segue o fato de que todas as Q=16 amostras do bloco 18 a ser previsto são diretamente obtidas pela multiplicação ALWIP (nenhuma interpolação necessária).
[0107] Portanto, na etapa 812a, uma matriz ALWIP adequada 17M com dimensão QxPred é selecionada. A seleção pode, pelo menos parcialmente, ser com base, por exemplo, na sinalização do fluxo contínuo de dados 12. A matriz ALWIP selecionada 17M também pode ser indicada com Ak, em que k pode ser entendido como um índice, que pode ser sinalizado no fluxo contínuo de dados 12 (em alguns casos, a matriz também é indicada como 𝐴𝑚 𝑖𝑑𝑥 , veja a seguir). A seleção pode ser realizada de acordo com o esquema ilustrado na figura 12: para cada dimensão (por exemplo, par de altura/largura do bloco 18 a ser previsto), uma matriz ALWIP 17M é escolhida, por exemplo, entre um dos três conjuntos de matrizes S0, S1, S2 (cada um dos três conjuntos S0, S1, S2 podendo agrupar uma pluralidade de matrizes ALWIP 17M das mesmas dimensões, e a matriz ALWIP a ser escolhida para a previsão será uma das mesmas).
[0108] Na etapa 812b, uma multiplicação entre a matriz ALWIP QxPred selecionada 17M (também indicada como Ak) e o vetor Predx1 de limite 17P é realizado.
[0109] Na etapa 812c, um valor de deslocamento (por exemplo, b k) pode ser adicionado, por exemplo, em todos os valores obtidos 104 do vetor 18Q obtido por 𝑖 ALWIP. O valor do deslocamento (bk ou, em alguns casos, também indicado com 𝑏1,2,3 , veja a seguir) pode ser associado à matriz ALWIP selecionada em particular (A k), e pode ser com base em um índice (por exemplo, que pode ser sinalizado no fluxo contínuo de dados 12).
[0110] Portanto, uma comparação entre o uso da presente técnica e o não uso da presente técnica é aqui resumido:
[0111] Sem a presente técnica:
[0112] Bloco 18 a ser previsto, o bloco tendo dimensões M=4, N=4;
[0113] Q=M*N=4*4=16 valores a serem previstos;
[0114] P=M+N=4+4=8 amostras do limite
[0115] P=8 multiplicações para cada um dos Q=16 valores a serem previstos,
[0116] um número total de P*Q=8*16=128 multiplicações;
[0117] Com a presente técnica, tem-se:
[0118] Bloco 18 a ser previsto, o bloco tendo dimensões M=4, N=4;
[0119] Q=M*N=4*4=16 valores a serem previstos no final;
[0120] Dimensão reduzida do vetor de limite: Pred=Mred+Nred=2+2=4;
[0121] Pred=4 multiplicações para cada um dos Q=16 valores a serem previstos por ALWIP,
[0122] um número total de Pred*Q=4*16=64 multiplicações (a metade de 128!)
[0123] a razão entre o número de multiplicações e o número de valores finais a serem obtidos e é Pred*Q/Q=4, isto é, a metade das P=8 multiplicações para cada amostra a ser prevista!
[0124] Como pode ser entendido, por se basear em operações diretas e não exigentes de potência computacional, tal como ponderação (e, no caso, adições e/ou deslocamentos e/ou amostragem descendente), é possível obter um valor apropriado na etapa 812.
[0125] Em relação às figuras 7.2 e 8.2, o bloco 18 a ser previsto é, aqui, um bloco 8x8 (M=8, N=8) de 64 amostras. Aqui, a priori, uma matriz de previsão 17M deve ter tamanho QxP=64x16 (Q=64 em virtude de Q=M*N=8*8=64, M=8 e N=8 e em virtude de P=M+N=8+8=16). Portanto, a priori, seriam necessárias P=16 multiplicações para cada uma das Q=64 amostras do bloco 8x8 18 a ser previsto, para chegar em
64*16=1.024 multiplicações para a íntegra do bloco 8x8 18!
[0126] Entretanto, como pode-se ver nas figuras 7.2 e 8.2, pode ser provido um método 820 de acordo com qual, em vez de usar todas as 16 amostras do limite, apenas 8 valores (por exemplo, 4 na linha de limite horizontal 17c e 4 na coluna de limite vertical 17a entre amostras do limite originais) são usadas. A partir da linha de limite 17c, 4 amostras podem ser usadas em vez de 8 (por exemplo, as mesmas podem ser médias e/ou seleções duas por duas de uma amostra dentre duas). Desta maneira, o vetor de limite não é um vetor Px1=16x1, mas um vetor Predx1=8x1 apenas (Pred=Mred+Nred=4+4). Foi entendido que é possível selecionar ou ponderar (por exemplo, duas por duas) amostras da linha horizontal 17c e amostras das colunas verticais 17a para ter, em vez das P=16 amostras originais, apenas P red=8 valores limites, formando o conjunto reduzido 102 de valores de amostra. Este conjunto reduzido 102 irá permitir obter uma versão reduzida de bloco 18, a versão reduzida tendo Qred=Mred*Nred=4*4=16 amostras (em vez de Q=M*N=8*8=64). É possível aplicar uma matriz ALWIP para prever um bloco que tem tamanho M redxNred=4x4. A versão reduzida do bloco 18 inclui as amostras indicadas com cinza no esquema 106 na figura 7.2: as amostras indicadas com quadriculado cinza (incluindo amostras 118’ e 118”) formam um bloco 4x4 reduzido com Q red=16 valores obtidos na etapa de sujeitar 812. O bloco 4x4 reduzido foi obtido pela aplicação da transformação linear 19 na etapa de sujeitar 812. Depois de ter obtido os valores do bloco 4x4 reduzido, é possível obter os valores das amostras restantes (amostras indicadas com amostras brancas no esquema 106), por exemplo, por interpolação.
[0127] Em relação ao método 810 das figuras 7.1 e 8.1, este método 820 pode incluir adicionalmente uma etapa 813 de derivar, por exemplo, por interpolação, valores de previsão para as Q-Qred=64-16=48 amostras restantes (quadrados brancos) do bloco MxN=8x8 18 a ser previsto. As Q-Qred=64-16=48 amostras restantes podem ser obtidas a partir das Qred=16 amostras diretamente obtidas por interpolação (a interpolação também pode fazer uso dos valores das amostras do limite, por exemplo). Como pode-se ver na figura 7.2, embora as amostras 118’ e 118’’
tenham sido obtidas na etapa 812 (da forma indicada pelo quadrado cinza), a amostra 108’ (intermediária às amostras 118’ e 118’’ e indicada com quadrado branco) é obtida por interpolação entre as amostras 118’ e 118’’ na etapa 813. Foi entendido que interpolações também podem ser obtidas por operações similares àquelas para ponderação, tais como deslocamento e adição. Portanto, na figura 7.2, o valor 108’ pode, no geral, ser determinado como um valor intermediário entre o valor da amostra 118’ e o valor da amostra 118’’ (pode ser a média).
[0128] Pela realização de interpolações, na etapa 813, também é possível chegar na versão final do bloco MxN=8x8 18 com base em múltiplos valores de amostra indicados em 104.
[0129] Portanto, uma comparação entre o uso da presente técnica e o não uso é:
[0130] Sem a presente técnica:
[0131] Bloco 18 a ser previsto, o bloco que tem dimensões M=8, N=8 e
[0132] Q=M*N=8*8=64 amostras no bloco 18 a ser previsto;
[0133] P=M+N=8+8=16 amostras no limite 17;
[0134] P=16 multiplicações para cada um dos Q=64 valores a serem previstos,
[0135] um número total de P*Q=16*64=1.028 multiplicações
[0136] a razão entre o número de multiplicações e o número de valores finais a ser obtido é P*Q/Q=16
[0137] Com a presente técnica:
[0138] Bloco 18 a ser previsto, que tem dimensões M=8, N=8
[0139] Q=M*N=8*8=64 valores a serem previstos no final;
[0140] mas uma matriz ALWIP QredxPred a ser usada, com Pred=Mred+Nred, Qred= Mred*Nred, Mred=4, Nred=4
[0141] Pred=Mred+Nred=4+4=8 amostras no limite, com Pred<P
[0142] Pred=8 multiplicações para cada um dos Qred=16 valores do bloco 4x4 reduzido a ser previsto (formado por quadrados cinzas no esquema 106),
[0143] um número total de Pred*Qred=8*16=128 multiplicações (muito menos do que 1.024!)
[0144] a razão entre o número de multiplicações e o número de valores finais a ser obtido é Pred*Qred/Q=128/64=2 (muito menos do que os 16 obtidos sem a presente técnica!).
[0145] Desta maneira, a técnica aqui apresentada é 8 vezes menos exigente de potência do que a prévia.
[0146] A figura 7.3 mostra um outro exemplo (que pode ser com base no método 820), em que o bloco 18 a ser previsto é um bloco 4x8 retangular (M=8, N=4) com Q=4*8=32 amostras a serem previstas. O limite 17 é formado pela linha horizontal 17c com N=8 amostras e a coluna vertical 17a com M=4 amostras. Portanto, a priori, o vetor de limite 17P terá dimensão Px1=12x1, ao mesmo tempo em que a matriz de previsão ALWIP deve ser uma matriz QxP=32x12, portanto, causando a necessidade de Q*P=32*12=384 multiplicações.
[0147] Entretanto, é possível, por exemplo, ponderar ou amostrar descendentemente pelo menos as 8 amostras da linha horizontal 17c, para obter uma linha horizontal reduzida com apenas 4 amostras (por exemplo, amostras ponderadas). Em alguns exemplos, a coluna vertical 17a irá permanecer como está (por exemplo, sem ponderação). No total, o limite reduzido terá dimensão P red=8, com Pred<P. Desta maneira, o vetor de limite 17P terá dimensão P redx1=8x1. A matriz de previsão ALWIP 17M será uma matriz com dimensões M*Nred*Pred=4*4*8=64. O bloco 4x4 reduzido (formado pelas colunas cinzas no esquema 107), diretamente obtido na etapa de sujeição 812, terá tamanho de Qred=M*Nred=4*4=16 amostras (em vez das Q=4*8=32 do bloco 4x8 original 18 a ser previsto). Uma vez que o bloco reduzido 4x4 for obtido por ALWIP, é possível adicionar um valor de deslocamento bk (etapa 812c) e realizar interpolações na etapa 813. Como pode-se ver na etapa 813 na figura 7.3, o bloco reduzido 4x4 é expandido para o bloco 4x8 18, em que os valores 108’, não obtidos na etapa 812, são obtidos na etapa 813 por interpolação dos valores 118’ e 118” (quadrados cinzas) obtidos na etapa 812.
[0148] Portanto, uma comparação entre o uso da presente técnica e o não uso é:
[0149] Sem a presente técnica:
[0150] Bloco 18 a ser previsto, o bloco tendo dimensões M=4, N=8
[0151] Q=M*N=4*8=32 valores a serem previstos;
[0152] P=M+N=4+8=12 amostras no limite;
[0153] P=12 multiplicações para cada um dos Q=32 valores a serem previstos,
[0154] um número total de P*Q=12*32=384 multiplicações
[0155] a razão entre o número de multiplicações e o número de valores finais a ser obtido é P*Q/Q=12
[0156] Com a presente técnica:
[0157] Bloco 18 a ser previsto, o bloco tendo dimensões M=4, N=8
[0158] Q=M*N=4*8=32 valores a serem previstos no final;
[0159] mas uma matriz ALWIP QredxPred=16x8 pode ser usada, com M=4, Nred=4, Qred=M*Nred=16, Pred=M+Nred=4+4=8
[0160] Pred=M+Nred=4+4=8 amostras no limite, com Pred<P
[0161] Pred=8 multiplicações para cada um dos Qred=16 valores do bloco reduzido a ser previsto,
[0162] um número total de Qred*Pred =16*8=128 multiplicações (menos do que 384!)
[0163] a razão entre o número de multiplicações e o número de valores finais a ser obtido é Pred*Qred/Q=128/32=4 (muito menos do que 12 obtido sem a presente técnica!).
[0164] Portanto, com a presente técnica, o esforço computacional é reduzido a um terço.
[0165] A figura 7.4 mostra um caso de um bloco 18 a ser previsto com dimensões MxN=16x16 e tendo Q=M*N=16*16=256 valores a serem previstos no final, com P=M+N=16+16=32 amostras do limite. Isto irá levar a uma matriz de previsão com dimensões QxP=256x32, o que irá implicar 256*32=8.192 multiplicações!
[0166] Entretanto, pela aplicação do método 820, é possível, na etapa 811, reduzir (por exemplo, por ponderação ou amostragem descendente) o número de amostras do limite, por exemplo, de 32 para 8: por exemplo, para cada grupo 120 de quatro amostras consecutivas da linha 17a, uma única amostra (por exemplo, selecionada a partir das quatro amostras, ou a média das amostras) permanece. Também, para cada grupo de quatro amostras consecutivas da coluna 17c, uma única amostra (por exemplo, selecionada a partir das quatro amostras, ou a média das amostras) permanece.
[0167] Aqui, a matriz ALWIP 17M é uma matriz QredxPred=64x8: isto vem do fato de que foi escolhido Pred=8 (pelo uso de 8 amostras ponderadas ou selecionadas das 32 do limite) e pelo fato de que o bloco reduzido a ser previsto na etapa 812 é um bloco 8x8 (no esquema 109, os quadrados cinzas são 64).
[0168] Portanto, uma vez que as 64 amostras do bloco 8x8 reduzido forem obtidas na etapa 812, é possível derivar, na etapa 813, os Q-Qred=256-64=192 valores restantes 104 do bloco 18 a ser previsto.
[0169] Neste caso, a fim de realizar as interpolações, foi escolhido usar todas as amostras da coluna de limite 17a e apenas alternar amostras na linha de limite 17c. Outras escolhas podem ser feitas.
[0170] Apesar disto, com o presente método, a razão entre o número de multiplicações e o número de valores finalmente obtidos é Qred*Pred/Q=8*64/256=2, que é muito menor do que as 32 multiplicações para cada valor sem a presente técnica!
[0171] Uma comparação entre o uso da presente técnica e o não uso é:
[0172] Sem a presente técnica:
[0173] Bloco 18 a ser previsto, o bloco tendo dimensões M=16, N=16
[0174] Q=M*N=16*16=256 valores a serem previstos;
[0175] P=M+N=16*16=32 amostras no limite;
[0176] P=32 multiplicações para cada um dos Q=256 valores a serem previstos,
[0177] um número total de P*Q=32*256=8.192 multiplicações;
[0178] a razão entre o número de multiplicações e o número de valores finais a ser obtido é P*Q/Q=32.
[0179] Com a presente técnica:
[0180] Bloco 18 a ser previsto, o bloco tendo dimensões M=16, N=16
[0181] Q=M*N=16*16=256 valores a serem previstos no final;
[0182] mas uma matriz ALWIP QredxPred=64x8 a ser usada, com Mred=4, Nred=4, Qred=8*8=64 amostras a serem previstas por ALWIP, Pred=Mred+Nred=4+4=8
[0183] Pred=Mred+Nred=4+4=8 amostras no limite, com Pred<P
[0184] Pred=8 multiplicações para cada um dos Qred=64 valores do bloco reduzido a ser previsto,
[0185] um número total de Qred*Pred =64*4=256 multiplicações (menos do que
8.192!)
[0186] a razão entre o número de multiplicações e o número de valores finais a ser obtido é Pred*Qred/Q=8*64/256=2 (muito menos do que os 32 obtido sem a presente técnica!).
[0187] Desta maneira, a potência computacional exigida pela presente técnica é 16 vezes menos do que a técnica tradicional!
[0188] Portanto, é possível prever um bloco pré-determinado (18) da figura usando uma pluralidade de amostras vizinhas (17) por
[0189] reduzir (100, 813) a pluralidade de amostras vizinhas para obter um conjunto reduzido (102) de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas (17),
[0190] sujeitar (812) o conjunto reduzido de valores de amostra (102) a uma transformação linear ou linear afim (19, 17M) para obter valores previstos para amostras pré-determinadas (104, 118’, 188”) do bloco pré-determinado (18).
[0191] Em particular, é possível realizar a redução (100, 813) por amostragem descendente da pluralidade de amostras vizinhas para obter o conjunto reduzido (102) de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas (17).
[0192] Alternativamente, é possível realizar a redução (100, 813) por ponderação da pluralidade de amostras vizinhas para obter o conjunto reduzido (102) de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas (17).
[0193] Adicionalmente, é possível derivar (813), por interpolação, valores de previsão para amostras adicionais (108, 108’) do bloco pré-determinado (18) com base nos valores previstos para as amostras pré-determinadas (104, 118’, 118”) e na pluralidade de amostras vizinhas (17).
[0194] A pluralidade de amostras vizinhas (17a, 17c) pode se estender unidimensionalmente ao longo de dois lados (por exemplo, na direção à direita e na direção abaixo nas figuras 7.1-7.4) do bloco pré-determinado (18). As amostras pré- determinadas (por exemplo, aquelas que são obtidas por ALWIP na etapa 812) também podem ser arranjadas em linhas e colunas e, ao longo de pelo menos uma das linhas e colunas, as amostras pré-determinadas podem ser posicionadas em cada n-ésima posição a partir de uma amostra (112) da amostra pré-determinada 112 adjacente aos dois lados do bloco pré-determinado 18.
[0195] Com base na pluralidade de amostras vizinhas (17), é possível determinar, para cada uma das pelo menos uma das linhas e das colunas, um valor de suporte (118) para uma (118) da pluralidade de posições vizinhas, que é alinhada à respectiva uma das pelo menos uma das linhas e das colunas. Também é possível derivar, por interpolação, os valores de previsão 118 para as amostras adicionais (108, 108’) do bloco pré-determinado (18) com base nos valores previstos para as amostras pré- determinadas (104, 118’, 118”) e nos valores de suporte para as amostras vizinhas (118) alinhados à pelo menos uma das linhas e colunas.
[0196] As amostras pré-determinadas (104) podem ser posicionadas em cada n- ésima posição a partir da amostra (112) que é adjacente aos dois lados do bloco pré- determinado 18 ao longo das linhas e as amostras pré-determinadas são posicionadas em cada m-ésima posição de amostra (112) a partir da amostra pré-determinada que (112) é adjacente aos dois lados do bloco pré-determinado (18) ao longo das colunas, em que n, m>1. Em alguns casos, n=m (por exemplo, nas figuras 7.2 e 7.3, em que as amostras 104, 118’, 118”, diretamente obtidas por ALWIP em 812 e indicadas com quadrados cinzas, são alternadas, ao longo de linhas e colunas, em relação às amostras 108, 108’ subsequentemente obtidas na etapa 813).
[0197] Ao longo de pelo menos uma das linhas (17c) e colunas (17a), pode ser possível realizar a determinação dos valores de suporte, por exemplo, por amostragem descendente ou ponderação (122), para cada valor de suporte, de um grupo (120) de amostras vizinhas na pluralidade de amostras vizinhas que inclui a amostra vizinha (118) para a qual o respectivo valor de suporte é determinado. Portanto, na figura 7.4, na etapa 813, é possível obter o valor de amostra 119 pelo uso dos valores da amostra pré-determinada 118’’’ (previamente obtida na etapa 812) e da amostra vizinha 118 como valores de suporte.
[0198] A pluralidade de amostras vizinhas pode se estender unidimensionalmente ao longo de dois lados do bloco pré-determinado (18). Pode ser possível realizar a redução (811) pelo agrupamento da pluralidade de amostras vizinhas (17) em grupos (110) de uma ou mais amostras vizinhas consecutivas e realizar uma amostragem descendente ou uma ponderação em cada um dos grupos (110) de uma ou mais amostras vizinhas que têm duas ou mais do que duas amostras vizinhas.
[0199] Em exemplos, a transformação linear ou linear afim pode compreender fatores de ponderação Pred*Qred ou Pred*Q com Pred sendo o número de valores de amostra (102) no conjunto reduzido de valores de amostra e Qred ou Q é o número amostras pré-determinadas no bloco pré-determinado (18). Pelo menos fatores de ponderação ¼ Pred*Qred ou ¼ Pred*Q são valores de ponderação não zero. Os fatores de ponderação Pred*Qred ou Pred*Q podem compreender, para cada uma das amostras pré-determinadas Q ou Qred, uma série de fatores de ponderação Pred em relação à respectiva amostra pré-determinada, em que a série, quando sendo arranjada uma abaixo da outra de acordo com uma ordem de escaneamento por varredura dentre as amostras pré-determinadas do bloco pré-determinado (18), forma um envelope que é onidirecionalmente não linear. Os fatores de ponderação P red*Q ou Pred*Qred podem ser não relacionados uns aos outros por meio de nenhuma regra de mapeamento regular. Uma média de máxima de correlações cruzadas entre uma primeira série de fatores de ponderação em relação à respectiva amostra pré-determinada, e uma segunda série de fatores de ponderação em relação a amostras pré-determinadas diferentes da respectiva amostra pré-determinada, ou uma versão revertida da última série, qualquer que seja, levando a um máximo superior, é inferior a um limite pré- determinado. O limite pré-determinado pode ser 0,3 [ou, em alguns casos, 0,2 ou 0,1]. As amostras vizinhas Pred (17) podem ficar localizadas ao longo de um caminho unidimensional que se estende ao longo de dois lados do bloco pré-determinado (18) e, para cada uma das amostras pré-determinadas Q ou Qred, a série de fatores de ponderação Pred em relação à respectiva amostra pré-determinada é ordenada de uma maneira que atravessa o caminho unidimensional em uma direção pré-determinada.
[0200] Descrição de métodos e aparelhos
[0201] Para prever as amostras de um bloco retangular de largura 𝑊 (também indicado com N) e altura 𝐻 (também indicada com M), intraprevisão ponderada linear afim (ALWIP) pode tomar uma linha de H amostras do limite vizinhas reconstruídas à esquerda do bloco e uma linha de 𝑊 amostras do limite vizinhas reconstruídas acima do bloco como entrada. Se as amostras reconstruídas estiverem indisponíveis, as mesmas podem ser geradas como é feito na intraprevisão convencional.
[0202] Uma geração do sinal de previsão (por exemplo, os valores para o bloco completo 18) pode ser com base em pelo menos uma ou algumas das seguintes três etapas:
[0203] 1. A partir das amostras do limite 17, amostras 102 (por exemplo, quatro amostras no caso de W=H=4 e/ou oito amostras em outro caso) podem ser extraídas por ponderação ou amostragem descendente (por exemplo, etapa 811).
[0204] 2. Uma multiplicação do vetor de matriz, seguida pela adição de um deslocamento, pode ser realizada com as amostras ponderadas (ou como amostras restantes a partir de amostragem descendente) como uma entrada. O resultado pode ser um sinal de previsão reduzido em um conjunto subamostrado de amostras no bloco original (por exemplo, etapa 812).
[0205] 3. O sinal de previsão na posição restante pode ser gerado, por exemplo, por amostragem ascendente, a partir do sinal de previsão no conjunto subamostrado,
por exemplo, por interpolação linear (por exemplo, etapa 813).
[0206] Graças às etapas 1. (811) e/ou 3. (813), o número total de multiplicações necessárias na computação do produto do vetor da matriz pode ser de maneira tal que o mesmo seja sempre menor ou igual a 4 * W * H. Além do mais, as operações de ponderação no limite e a interpolação linear do sinal de previsão reduzido são realizadas pelo uso exclusivamente de adições e deslocamentos de bit. Em outras palavras, em exemplos, no máximo quatro multiplicações por amostra são necessárias para os modos ALWIP.
[0207] Em alguns exemplos, as matrizes (por exemplo, 17M) e os vetores de deslocamento (por exemplo, bk) necessários para gerar o sinal de previsão podem ser tomados a partir de conjuntos (por exemplo, três conjuntos), por exemplo, S 0, S1, S2, de matrizes que podem ser armazenadas, por exemplo, em unidade(s) de armazenamento do decodificador e do codificador.
[0208] Em alguns exemplos, o conjunto S0 pode compreender (por exemplo, consistir em) n0 (por exemplo, n0 = 16 ou n0 = 18 ou um outro número) matrizes 𝐴𝑖0 , 𝑖 ∈{0,…, 𝑛0 -1}, cada uma das quais podendo ter 16 linhas e 4 colunas e 18 vetores de deslocamento 𝑏0𝑖 , 𝑖 ∈{0,…, 𝑛0 − 1}, cada qual de tamanho 16, para realizar a técnica de acordo com a figura 7.1. Matrizes e vetores de deslocamento deste conjunto são usados para os blocos 18 de tamanho 4 x 4. Uma vez que o vetor de limite foi reduzido para um vetor Pred=4 (quanto à etapa 811 da figura 7.1), é possível mapear as P red=4 amostras do conjunto reduzido de amostras 102 diretamente para as Q=16 amostras do bloco 4x4 18 a ser previsto.
[0209] Em alguns exemplos, o conjunto S1 pode compreender (por exemplo, consistir em) n1 (por exemplo, n1 = 8 ou n1 = 18 ou um outro número) de matrizes 𝐴1𝑖 , 𝑖 ∈{0,…, 𝑛1 -1}, cada uma das quais podendo ter 16 linhas e 8 colunas e 18 vetores de deslocamento 𝑏1𝑖 , 𝑖 ∈{0,…, 𝑛1 -1} cada qual de tamanho 16, para realizar a técnica de acordo com as figuras 7.2 ou 7.3. Matrizes e vetores de deslocamento deste conjunto S1 podem ser usados para os blocos de tamanhos 4 x 8, 4 x 16, 4 x 32, 4 x 64, 8 x 4, 8 x 8, 16 x 4, 32 x 4 e 64 x 4. Adicionalmente, o mesmo também pode ser usado para os blocos de tamanho W x H com max(W, H) > 4 e min(W, H) = 4, isto é, para os blocos de tamanho 4 x 16 ou 16 x 4, 4 x 32 ou 32 x 4 e 4 x 64 ou 64 x 4. A matriz 16 x 8 se refere à versão reduzida do bloco 18, que é um bloco 4x4, da forma obtida nas figuras 7.2 e 7.3.
[0210] Adicionalmente ou alternativamente, o conjunto S2 pode compreender (por exemplo, consistir em) n2 (por exemplo, n2 = 6 ou n2 = 18 ou um outro número) matrizes 𝐴𝑖2 , 𝑖 ∈{0,…, 𝑛2 -1}, cada uma das quais podendo ter 64 linhas e 8 colunas e de 18 vetores de deslocamento 𝑏2𝑖 , 𝑖 ∈{0,…, 𝑛2 -1} de tamanho 64. A matriz 64x8 se refere à versão reduzida do bloco 18, que é um bloco 8x8, por exemplo, obtido na figura 7.4. Matrizes e vetores de deslocamento deste conjunto podem ser usados para os blocos de tamanhos 8 x 16, 8 x 32, 8 x 64, 16 x 8, 16 x 16, 16 x 32, 16 x 64, 32 x 8, 32 x 16, 32 x 32, 32 x 64, 64 x 8, 64 x 16, 64 x 32, 64 x 64.
[0211] Um exemplo da escolha do conjunto S0, S1, S2 (que pode ser realizada na etapa 812a) com base nas dimensões do bloco é sumarizado na figura 12. Diferentes números de matrizes por conjunto são possíveis em exemplos alternativos. Adicionalmente ou alternativamente, diferentes tamanhos de matrizes podem ser usados para diferentes conjuntos.
[0212] Matrizes e vetores de deslocamento deste conjunto ou partes destas matrizes e vetores de deslocamento podem ser usadas para todas outras formas de bloco.
[0213] 5.4 Ponderação ou amostragem descendente do limite
[0214] Aqui, são providos recursos em relação à etapa 811.
[0215] Da forma explicada anteriormente, as amostras do limite (17a, 17c) podem ser ponderadas e/ou amostradas descendentemente (por exemplo, de P amostras para Pred<P amostras).
[0216] Em uma primeira etapa, os limites de entrada 𝑏𝑑𝑟𝑦 𝑡𝑜𝑝 (por exemplo, 17c) e 𝑡𝑜𝑝 𝑏𝑑𝑟𝑦 𝑙𝑒𝑓𝑡 (por exemplo, 17a) podem ser reduzidos para limites menores 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 e 𝑙𝑒𝑓𝑡 𝑡𝑜𝑝 𝑙𝑒𝑓𝑡 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 para chegar no conjunto reduzido 102. Aqui, tanto 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 quanto 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 consistem em 2 amostras no caso de um bloco 4 x 4 e ambos consistem em 4 amostras em outros casos.
[0217] No caso de um bloco 4 x 4, é possível definir 𝑡𝑜𝑝
[0218] 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 [0] = (𝑏𝑑𝑟𝑦 𝑡𝑜𝑝 [0] + 𝑏𝑑𝑟𝑦 𝑡𝑜𝑝 [1] + 1) ≫ 1, 𝑡𝑜𝑝
[0219] 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 [1] = (𝑏𝑑𝑟𝑦 𝑡𝑜𝑝 [2] + 𝑏𝑑𝑟𝑦 𝑡𝑜𝑝 [3] + 1) ≫ 1, 𝑙𝑒𝑓𝑡 𝑡𝑜𝑝 𝑡𝑜𝑝
[0220] e definir 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 analogamente. Desta maneira, 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 [0], 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 [1], 𝑙𝑒𝑓𝑡 𝑙𝑒𝑓𝑡 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 [0] 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 [1] são valores médios obtidos, por exemplo, usando operações de deslocamento de bit.
[0221] Em todos os outros casos (por exemplo, para os blocos de largura ou altura esmaecidas diferentes de 4), se a largura do bloco W for dada como W= 4 ∗ 2𝑘 , para 0 ≤ 𝑖 < 4, define-se 𝑡𝑜𝑝 𝑘
[0222] 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 [𝑖] = ((∑2𝑗=0−1 𝑏𝑑𝑟𝑦 𝑡𝑜𝑝 [𝑖 ∗ 2𝑘 + 𝑗]) + 1 ≪ (𝑘 − 1)) ≫ 𝑘 𝑙𝑒𝑓𝑡
[0223] e define-se 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 analogamente.
[0224] Em ainda outros casos, é possível amostrar descendentemente o limite (por exemplo, pela seleção de uma amostra do limite em particular a partir de um grupo de amostras do limite) para chegar em um número de amostras reduzido. Por exemplo, 𝑡𝑜𝑝 𝑡𝑜𝑝 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 [0] pode ser escolhido dentre 𝑏𝑑𝑟𝑦 𝑡𝑜𝑝 [0] e 𝑏𝑑𝑟𝑦 𝑡𝑜𝑝 [1], e 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 [1] pode ser 𝑙𝑒𝑓𝑡 escolhido dentre 𝑏𝑑𝑟𝑦 𝑡𝑜𝑝 [2] e 𝑏𝑑𝑟𝑦 𝑡𝑜𝑝 [3]. Também é possível definir 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 analogamente. 𝑡𝑜𝑝 𝑙𝑒𝑓𝑡
[0225] Os dois limites reduzidos 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 e 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 podem ser concatenados em um vetor de limite reduzido 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 (associado ao conjunto reduzido 102), também indicado com 17P. O vetor de limite reduzido 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 pode ser, assim, de tamanho quatro (Pred=4) para os blocos de forma 4 x 4 (exemplo da figura 7.1) e de tamanho oito (Pred=8) para os blocos de todas as outras formas (exemplos das figuras 7.2-7.4).
[0226] Aqui, se mode < 18 (ou o número de matrizes no conjunto de matrizes), é possível definir 𝑡𝑜𝑝 𝑙𝑒𝑓𝑡
[0227] 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 = [𝑏𝑑𝑟𝑦𝑟𝑒𝑑 , 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 ].
[0228] Se mode ≥ 18, o que corresponde ao modo transposto de mode - 17, é possível definir 𝑙𝑒𝑓𝑡𝑡𝑜𝑝
[0229] 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 = [ 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 , 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 ].
[0230] Portanto, de acordo com um estado em particular (um estado: mode < 18; um outro estado: mode ≥ 18), é possível distribuir os valores previstos do vetor de saída ao longo de uma ordem de escaneamento diferente (por exemplo, uma ordem de escaneamento: 𝑡𝑜𝑝 𝑙𝑒𝑓𝑡 𝑙𝑒𝑓𝑡 𝑡𝑜𝑝 [𝑏𝑑𝑟𝑦𝑟𝑒𝑑 , 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 ]; uma outra ordem de escaneamento: [ 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 , 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 ]).
[0231] Outras estratégias podem ser realizadas. Em outros exemplos, o índice de modo ‘mode’ não está necessariamente na faixa de 0 a 35 (outras faixas podem ser definidas). Adicionalmente, não é necessário que cada um dos três conjuntos S 0, S1, S2 tenha 18 matrizes (portanto, em vez de expressões como mode ≥ 18, é possível em mode ≥ n0, n1, n2, que são o número de matrizes para cada conjunto de matrizes S0, S1, S2, respectivamente). Adicionalmente, os conjuntos podem ter diferentes números de matrizes cada (por exemplo, pode ser que S0 tenha 16 matrizes S1 tenha oito matrizes, e S2 tenha seis matrizes).
[0232] O modo e a informação transposta não são necessariamente armazenados e/ou transmitidos como um índice de modo combinado ‘mode’: em alguns exemplos, há a possibilidade de sinalização explicitamente como um indicador transposto e o índice da matriz (0-15 para S0, 0-7 para S1 e 0-5 para S2).
[0233] Em alguns casos, a combinação do indicador transposto e do índice da matriz pode ser interpretada como um índice de conjunto. Por exemplo, pode haver um bit operando como indicador transposto, e alguns bits indicando o índice da matriz, coletivamente indicado como “índice ajustado”.
[0234] 5.5 Geração do sinal de previsão reduzido pela multiplicação do vetor de matriz
[0235] Aqui, recursos são providos em relação à etapa 812.
[0236] A partir do vetor de entrada reduzido 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 (vetor de limite 17P), pode-se gerar um sinal de previsão reduzido 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 . O último sinal pode ser um sinal no bloco descendentemente amostrado de largura 𝑊𝑟𝑒𝑑 e altura 𝐻𝑟𝑒𝑑 . Aqui, 𝑊𝑟𝑒𝑑 e 𝐻𝑟𝑒𝑑 podem ser definidos como:
[0237] 𝑊𝑟𝑒𝑑 = 4, 𝐻𝑟𝑒𝑑 = 4; se max(𝑊, 𝐻) ≤ 8,
[0238] 𝑊𝑟𝑒𝑑 = min(𝑊, 8) , 𝐻𝑟𝑒𝑑 = min(𝐻, 8) ; se não.
[0239] O sinal de previsão reduzido 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 pode ser computado pelo cálculo de um produto de vetor da matriz e pela adição de um deslocamento:
[0240] 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 = 𝐴 ∙ 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 + 𝑏.
[0241] Aqui, A é uma matriz (por exemplo, matriz de previsão 17M) que pode ter 𝑊𝑟𝑒𝑑 ∗ 𝐻𝑟𝑒𝑑 linhas e 4 colunas se W=H=4 e 8 colunas em todos os outros casos e b é um vetor que pode ser de tamanho 𝑊𝑟𝑒𝑑 ∗ 𝐻𝑟𝑒𝑑 .
[0242] Se W = H = 4, então A pode ter 4 colunas e 16 linhas e, assim, 4 multiplicações por amostra podem ser necessárias neste caso para computar 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 . Em todos os outros casos, A pode ter 8 colunas e pode-se verificar que, nestes casos, tem-se 8 ∗ 𝑊𝑟𝑒𝑑 ∗ 𝐻𝑟𝑒𝑑 ≤ 4 ∗ 𝑊 ∗ 𝐻, isto é, também nestes casos, no máximo 4 multiplicações por amostra são necessárias para computar 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 .
[0243] A matriz A e o vetor b podem ser tomados a partir de um dos conjuntos S 0, S1, S2 como segue. Define-se um índice 𝑖𝑑𝑥 = 𝑖𝑑𝑥(𝑊, 𝐻) by pelo ajuste de 𝑖𝑑𝑥(𝑊, 𝐻) = 0, se W = H = 4, 𝑖𝑑𝑥(𝑊, 𝐻) = 1, se max(𝑊, 𝐻) = 8 e 𝑖𝑑𝑥(𝑊, 𝐻) = 2 em todos os outros casos. Além do mais, pode-se colocar 𝑚 = 𝑚𝑜𝑑𝑒, se 𝑚𝑜𝑑𝑒 < 18 e 𝑚 = 𝑚𝑜𝑑𝑒 − 17, se não. Então, se 𝑖𝑑𝑥 ≤ 1 ou 𝑖𝑑𝑥 = 2 e min(𝑊, 𝐻) > 4, pode-se colocar 𝐴 = 𝐴𝑚 𝑚 𝑖𝑑𝑥 e 𝑏 = 𝑏𝑖𝑑𝑥 . No caso em que 𝑖𝑑𝑥=2 e min(𝑊, 𝐻) = 4, permite-se que A seja a matriz que surge por deixar de fora cada linha de 𝐴𝑚 𝑖𝑑𝑥 que, no caso W=4, corresponde a uma coordenada x ímpar no bloco descendentemente amostrado, ou, no caso H=4, corresponde a uma coordenada y ímpar no bloco descendentemente amostrado. Se 𝑚𝑜𝑑𝑒 ≥ 18, substitui-se o sinal de previsão reduzido por seu sinal transposto. Em exemplos alternativos, diferentes estratégias podem ser realizadas. Por exemplo, em vez de reduzir o tamanho de uma matriz maior (“deixar de fora”), uma matriz menor de S1 (idx=1) com Wred=4 e Hred=4 é usada. Isto é, tais blocos são agora atribuídos a S1 em vez de S2.
[0244] Outras estratégias podem ser realizadas. Em outros exemplos, o índice de modo ‘mode’ não está necessariamente na faixa de 0 a 35 (outras faixas podem ser definidas). Adicionalmente, não é necessário que cada um dos três conjuntos S 0, S1,
S2 tenha 18 matrizes (portanto, em vez de expressões como 𝑚𝑜𝑑𝑒 < 18, é possível obter 𝑚𝑜𝑑𝑒 < 𝑛0, 𝑛1, 𝑛2, que são o número de matrizes para cada conjunto de matrizes S0, S1, S2, respectivamente). Adicionalmente, os conjuntos podem ter diferentes números de matrizes cada (por exemplo, pode ser que S0 tenha 16 matrizes S1 tenha oito matrizes, e S2 tenha seis matrizes).
[0245] 5.6 Interpolação linear para gerar o sinal de previsão final
[0246] Aqui, recursos são providos em relação à etapa 812.
[0247] Interpolação do sinal de previsão subamostrado, nos grandes blocos, uma segunda versão do limite ponderado pode ser necessária. A saber, se min(𝑊, 𝐻) > 8 e 𝑊 ≥ 𝐻, grava-se W= 8 ∗ 2𝑙 , e para 0 ≤ 𝑖 < 8 define-se 𝑡𝑜𝑝 𝑙
[0248] 𝑏𝑑𝑟𝑦𝑟𝑒𝑑𝐼𝐼 [𝑖] = ((∑2𝑗=0 −1 𝑏𝑑𝑟𝑦 𝑡𝑜𝑝 [𝑖 ∗ 2𝑙 + 𝑗]) + 1 ≪ (𝑙 − 1)) ≫ 𝑙. 𝑙𝑒𝑓𝑡
[0249] Se min(𝑊, 𝐻) > 8 e 𝐻 > 𝑊, define-se 𝑏𝑑𝑟𝑦𝑟𝑒𝑑𝐼𝐼 analogamente.
[0250] Além do mais ou alternativamente, é possível ter uma “amostragem 𝑡𝑜𝑝 descendente severa”, em que o 𝑏𝑑𝑟𝑦𝑟𝑒𝑑𝐼𝐼 [𝑖] é igual a 𝑡𝑜𝑝
[0251] 𝑏𝑑𝑟𝑦𝑟𝑒𝑑𝐼𝐼 [𝑖] = 𝑏𝑑𝑟𝑦 𝑡𝑜𝑝 [(𝑖 + 1) ∗ 2𝑙 − 1]. 𝑙𝑒𝑓𝑡
[0252] Também, 𝑏𝑑𝑟𝑦𝑟𝑒𝑑𝐼𝐼 pode ser definido analogamente.
[0253] Nas posições de amostra que foram deixadas de fora na geração de 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 , o sinal de previsão final pode surgir pela interpolação linear proveniente de 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 (por exemplo, etapa 813 nos exemplos das figuras 7.2-7.4 e 8.2). Esta interpolação linear pode ser desnecessária, em alguns exemplos, se 𝑊 = 𝐻 = 4 (por exemplo, exemplo das figuras 7.1 e 8.1).
[0254] A interpolação linear pode ser dada como segue (outros exemplos são, não obstante, possíveis). Considera-se que 𝑊 ≥ 𝐻. Então, se 𝐻 > 𝐻𝑟𝑒𝑑 , uma amostragem ascendente vertical de 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 pode ser realizada. Neste caso, 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 pode ser estendido por uma linha até o topo, como segue. Se 𝑊 = 8, 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 pode ter largura 𝑡𝑜𝑝 𝑊𝑟𝑒𝑑 = 4 e pode ser estendido até o topo pelo sinal de limite ponderado 𝑏𝑑𝑟𝑦𝑟𝑒𝑑 , por exemplo, da forma definida anteriormente. Se 𝑊 > 8, 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 é de largura 𝑊𝑟𝑒𝑑 = 8 e 𝑡𝑜𝑝 o mesmo é estendido até o topo pelo sinal de limite ponderado 𝑏𝑑𝑟𝑦𝑟𝑒𝑑𝐼𝐼 , por exemplo, da forma definida anteriormente. Pode-se gravar 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 [𝑥][−1] para a primeira linha 𝑢𝑝𝑠,𝑣𝑒𝑟 de 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 . Então, o sinal 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 em um bloco de largura 𝑊𝑟𝑒𝑑 e altura 2 ∗ 𝐻𝑟𝑒𝑑 pode ser dado como 𝑢𝑝𝑠,𝑣𝑒𝑟
[0255] 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 [x][2*y+1] =𝑝𝑟𝑒𝑑𝑟𝑒𝑑 [x][y], 𝑢𝑝𝑠,𝑣𝑒𝑟
[0256] 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 [x][2*y] = (𝑝𝑟𝑒𝑑𝑟𝑒𝑑 [x][y-1] + 𝑝𝑟𝑒𝑑𝑟𝑒𝑑 [x][y] + 1)>>1,
[0257] em que 0 ≤ 𝑥 < 𝑊𝑟𝑒𝑑 e 0 ≤ 𝑦 < 𝐻𝑟𝑒𝑑 . O último processo pode ser realizado k vezes até 2𝑘 ∗ 𝐻𝑟𝑒𝑑 = 𝐻. Assim, se H = 8 ou H = 16, o mesmo pode ser realizado no máximo uma vez. Se H = 32, o mesmo pode ser realizado duas vezes. Se H = 64, o mesmo pode ser realizado três vezes. A seguir, uma operação de amostragem ascendente horizontal pode ser aplicada no resultado da amostragem ascendente vertical. A última operação de amostragem ascendente pode usar o limite completo à esquerda do sinal de previsão. Finalmente, se H > W, pode-se prosseguir analogamente pela primeira amostragem ascendente na direção horizontal (se exigido) e, então, na direção vertical.
[0258] Este é um exemplo de uma interpolação usando amostras do limite reduzidas para a primeira interpolação (horizontalmente ou verticalmente) e amostras do limite originais para a segunda interpolação (verticalmente ou horizontalmente). Dependendo do tamanho de bloco, apenas a segunda ou nenhuma interpolação é exigida. Se interpolação tanto horizontal quanto vertical for exigida, a ordem depende da largura e da altura do bloco.
[0259] Entretanto, diferentes técnicas podem ser implementadas: por exemplo, amostras do limite originais podem ser usadas tanto para a primeira quanto para a segunda interpolação, e a ordem pode ser fixa, por exemplo, primeiro, na horizontal, então, na vertical (em outros casos, primeiro, na vertical, então, na horizontal).
[0260] Portanto, a ordem de interpolação (horizontal/vertical) e o uso de amostras do limite reduzidas/originais pode ser variado.
[0261] 5.7 Ilustração de um exemplo da íntegra do processo ALWIP
[0262] A íntegra do processo de ponderação, multiplicação do vetor da matriz e interpolação linear é ilustrada para diferentes formas nas figuras 7.1-7.4. Note que as formas restantes são tratadas como em um dos casos representados.
[0263] Dado um bloco 4 x 4, ALWIP pode tomar duas médias ao longo de cada eixo geométrico do limite pelo uso da técnica da figura 7.1. As quatro amostras de entrada resultantes entram na multiplicação do vetor da matriz. As matrizes são tomadas a partir do conjunto S0. Depois de adicionar um deslocamento, isto pode produzir as 16 amostras de previsão finais. Interpolação linear não é necessária para gerar o sinal de previsão. Assim, um total de (4 ∗ 16)/(4 ∗ 4) = 4 multiplicações por amostra são realizadas. Veja, por exemplo, as figuras 7.1 e 8.1.
[0264] Dado um bloco 8 x 8, ALWIP pode tomar quatro médias ao longo de cada eixo geométrico do limite. As oito amostras de entrada resultantes entram na multiplicação do vetor da matriz, pelo uso da técnica da figura 7.2. As matrizes são tomadas a partir do conjunto S1. Isto produz 16 amostras nas posições ímpares do bloco de previsão. Assim, um total de (8 ∗ 16)/(8 ∗ 8) = 2 multiplicações por amostra são realizadas. Depois de adicionar um deslocamento, estas amostras podem ser interpoladas, por exemplo, verticalmente pelo uso do limite de topo e, por exemplo, horizontalmente pelo uso do limite à esquerda, por exemplo. Veja, por exemplo, as figuras 7.2 e 8.2.
[0265] Dado um bloco 8 x 4, ALWIP pode tomar quatro médias ao longo do eixo geométrico horizontal do limite e os quatro valores de limite original no limite à esquerda, pelo uso da técnica da figura 7.3. As oito amostras de entrada resultantes entram na multiplicação do vetor da matriz. As matrizes são tomadas a partir do conjunto S1. Isto produz 16 amostras em cada uma das posições horizontal e vertical ímpar do bloco de previsão. Assim, um total de (8 ∗ 16)/(8 ∗ 4) = 4 multiplicações por amostra são realizadas. Depois da adição de um deslocamento, estas amostras são interpoladas horizontalmente pelo uso do limite à esquerda, por exemplo. Veja, por exemplo, as figuras 7.3 e 8.2.
[0266] O caso transposto é tratado desta maneira.
[0267] Dado um bloco 16 x 16, ALWIP pode tomar quatro médias ao longo de cada eixo geométrico do limite. As oito amostras de entrada resultantes entram na multiplicação do vetor da matriz, pelo uso da técnica da figura 7.2. As matrizes são tomadas a partir do conjunto S2. Isto produz 64 amostras nas posições ímpares do bloco de previsão. Assim, um total de (8 ∗ 64)/(16 ∗ 16) = 2 multiplicações por amostra são realizadas. Depois da adição de um deslocamento, estas amostras são interpoladas verticalmente pelo uso do limite de topo e horizontalmente pelo uso do limite à esquerda, por exemplo. Veja, por exemplo, as figuras 7.2 e 8.2. Veja, por exemplo, as figuras 7.4 e 8.2.
[0268] Para formas maiores, o procedimento pode ser essencialmente o mesmo, e é fácil verificar que o número de multiplicações por amostra é menor do que dois.
[0269] Para blocos W x 8, apenas interpolação horizontal é necessária, já que as amostras são dadas em cada uma das posições horizontal e vertical ímpar. Assim, no máximo (8 ∗ 64)/(16 ∗ 8) = 4 multiplicações por amostra são realizadas nestes casos.
[0270] Finalmente para blocos W x 4 com W > 8, considere Ak como a matriz que surge por deixar de fora cada linha que corresponde a uma entrada ímpar ao longo do eixo geométrico horizontal do bloco descendentemente amostrado. Assim, o tamanho da saída pode ser 32 e, novamente, apenas interpolação horizontal permanece para ser realizada. No máximo (8 ∗ 32)/(16 ∗ 4) = 4 multiplicações por amostra podem ser realizadas.
[0271] Os casos transpostos podem ser tratados desta maneira.
[0272] 5.8 Número de parâmetros necessários e avaliação da complexidade
[0273] Os parâmetros necessários para todos os possíveis modos de intraprevisão propostos podem ser compostos pelas matrizes e vetores de deslocamento que pertencem aos conjuntos S0, S1, S2. Todos os coeficientes de matriz e vetores de deslocamento podem ser armazenados como valores de 10 bits. Assim, de acordo com a descrição exposta, um número total de 14.400 parâmetros, cada qual em precisão de 10 bits, pode ser necessário para o método proposto. Isto corresponde a 0,018 Megabyte de memória. É apontado que, atualmente, uma CTU de tamanho 128 x 128 no padrão subamostragem de croma 4:2:0 consiste em 24.576 valores, cada qual em 10 bits. Assim, a exigência de memória da ferramenta de intraprevisão proposta não excede a exigência de memória da ferramenta de referência de figura atual que foi adotada na última reunião. Também, é apontado que os modos de intraprevisão convencionais exigem quatro multiplicações por amostra devido à ferramenta PDPC ou aos filtros de interpolação de 4 derivações para os modos de previsão angulares com posições de ângulo fracionário. Assim, em termos de complexidade operacional, o método proposto não excede os modos de intraprevisão convencionais.
[0274] 5.9 Sinalização dos modos de intraprevisão propostos
[0275] Para blocos luma, 35 modos ALWIP são propostos, por exemplo, (outros números de modos podem ser usados). Para cada Unidade de Codificação (CU) em modo intra, um indicador que indica se um modo ALWIP deve ser aplicado na correspondente Unidade de Previsão (PU) ou não é enviado no fluxo contínuo de bits. A sinalização do último índice pode ser harmonizada com MRL da mesma maneira que para o primeiro teste de CE. Se um modo ALWIP precisar ser aplicado, o índice 𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒 do modo ALWIP pode ser sinalizado usando uma lista MPM com 3 MPMS.
[0276] Aqui, a derivação dos MPMs pode ser realizada usando os modos intra da PU acima e à esquerda, como segue. Pode haver tabelas, por exemplo, três tabelas fixas 𝑚𝑎𝑝_𝑎𝑛𝑔𝑢𝑙𝑎𝑟_𝑡𝑜_𝑎𝑙𝑤𝑖𝑝𝑖𝑑𝑥 , 𝑖𝑑𝑥 ∈ {0,1,2} que podem atribuir a cada modo de intraprevisão convencional 𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒𝐴𝑛𝑔𝑢𝑙𝑎𝑟 um modo ALWIP
[0277] 𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒𝐴𝐿𝑊𝐼𝑃 = 𝑚𝑎𝑝𝑎𝑛𝑔𝑢𝑙𝑎𝑟𝑡𝑜 [𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒𝐴𝑛𝑔𝑢𝑙𝑎𝑟 ]. 𝑎𝑙𝑤𝑖𝑝 𝑖𝑑𝑥
[0278] Para cada PU de largura W e altura H, define-se um índice
[0279] 𝑖𝑑𝑥(𝑃𝑈) = 𝑖𝑑𝑥(𝑊, 𝐻) ∈ {0,1,2}
[0280] que indica a partir de qual dos três conjuntos os parâmetros ALWIP devem ser tomados, como na seção 4 exposta. Se a Unidade de Previsão acima 𝑃𝑈𝑎𝑏𝑜𝑣𝑒 estiver disponível, pertencer à mesma CTU da PU atual e estiver no modo intra, se 𝑖𝑑𝑥(𝑃𝑈) = 𝑖𝑑𝑥(𝑃𝑈𝑎𝑏𝑜𝑣𝑒 ) e se ALWIP for aplicado em 𝑃𝑈𝑎𝑏𝑜𝑣𝑒 com modo ALWIP 𝑎𝑏𝑜𝑣𝑒 𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒𝐴𝐿𝑊𝐼𝑃 , coloca-se 𝑎𝑏𝑜𝑣𝑒 𝑎𝑏𝑜𝑣𝑒
[0281] 𝑚𝑜𝑑𝑒𝐴𝐿𝑊𝐼𝑃 = 𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒𝐴𝐿𝑊𝐼𝑃 .
[0282] Se a PU acima estiver disponível, pertencer à mesma CTU da PU atual e 𝑎𝑏𝑜𝑣𝑒 estiver no modo intra e se um modo de intraprevisão convencional 𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒𝐴𝑛𝑔𝑢𝑙𝑎𝑟 for aplicado na PU acima, coloca-se 𝑎𝑏𝑜𝑣𝑒 𝑎𝑏𝑜𝑣𝑒
[0283] 𝑚𝑜𝑑𝑒𝐴𝐿𝑊𝐼𝑃 = 𝑚𝑎𝑝𝑎𝑛𝑔𝑢𝑙𝑎𝑟𝑡𝑜 [𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒𝐴𝑛𝑔𝑢𝑙𝑎𝑟 ]. 𝑎𝑙𝑤𝑖𝑝 𝑖𝑑𝑥(𝑃𝑈 𝑎𝑏𝑜𝑣𝑒 )
[0284] Em todos os outros casos, coloca-se 𝑎𝑏𝑜𝑣𝑒
[0285] 𝑚𝑜𝑑𝑒𝐴𝐿𝑊𝐼𝑃 = −1
[0286] que significa que este modo está indisponível. Da mesma maneira, mas sem a restrição que a PU à esquerda precisa pertencer à mesma CTU da PU atual, deriva-se um modo 𝑙𝑒𝑓𝑡
[0287] 𝑚𝑜𝑑𝑒𝐴𝐿𝑊𝐼𝑃 .
[0288] Finalmente, três listas padrões fixas 𝑙𝑖𝑠𝑡𝑖𝑑𝑥 , 𝑖𝑑𝑥 ∈ {0,1,2} são providas, cada uma das quais contendo três modos ALWIP distintos. A partir da lista padrão 𝑙𝑖𝑠𝑡𝑖𝑑𝑥(𝑃𝑈) 𝑎𝑏𝑜𝑣𝑒 𝑙𝑒𝑓𝑡 e dos modos 𝑚𝑜𝑑𝑒𝐴𝐿𝑊𝐼𝑃 e 𝑚𝑜𝑑𝑒𝐴𝐿𝑊𝐼𝑃 , constroem-se três MPMs distintos pela substituição de -1 por valores padrões, bem como eliminando repetições.
[0289] 5.10 Derivação de lista MPM adaptada para modos de intraprevisão luma e croma convencionais
[0290] Os modos ALWIP propostos podem ser harmonizados com a codificação com base em MPM dos modos de intraprevisão convencionais, como segue. Os processos de derivação da lista MPM luma e croma para os modos de intraprevisão convencionais podem usar tabelas fixas 𝑚𝑎𝑝_𝑙𝑤𝑖𝑝_𝑡𝑜_𝑎𝑛𝑔𝑢𝑙𝑎𝑟𝑖𝑑𝑥 , 𝑖𝑑𝑥 ∈ {0,1,2}, mapeando de um modo ALWIP 𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒𝐿𝑊𝐼𝑃 em uma dada PU para um dos modos de intraprevisão convencionais
[0291] 𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒𝐴𝑛𝑔𝑢𝑙𝑎𝑟 = 𝑚𝑎𝑝𝑙𝑤𝑖𝑝𝑡𝑜 [𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒𝐿𝑊𝐼𝑃 ]. 𝑎𝑛𝑔𝑢𝑙𝑎𝑟 𝑖𝑑𝑥(𝑃𝑈)
[0292] Para a derivação da lista MPM luma, sempre que for encontrado um bloco luma vizinho que usa um modo ALWIP 𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒𝐿𝑊𝐼𝑃 , este bloco pode ser tratado como se o mesmo estivesse usando o modo de intraprevisão convencional 𝑝𝑟𝑒𝑑𝑚𝑜𝑑𝑒𝐴𝑛𝑔𝑢𝑙𝑎𝑟 . Para a derivação da lista MPM croma, sempre que o atual bloco luma usar um modo LWIP, o mesmo mapeamento pode ser usado para traduzir o modo ALWIP para um modo de intraprevisão convencional.
[0293] 5.11 Resultados experimentais
[0294] Avaliação do teste foi realizada de acordo com as condições de teste comuns JVET-J1010 [0651], para as configurações apenas intra (AI) e acesso aleatório (RA) com o software VTM versão 3.0.1. As correspondentes simulações foram conduzidas em um agrupamento Intel Xeon (E5-2697A v4, AVX2 ativo, intensificação por turbo inativa) com Linux OS e compilador GCC 7.2.1.
[0295] Tabela 1. Resultado de CE3-1.2.2 para configuração de VTM AI tempo tempo Y U V codificaçã decodifica o ção
[0296] Clas [0297] - [0298] - [0299] - [0300] 1 [0301] 1 se A1 1,38% 0,89% 0,75% 52% 04%
[0302] Clas [0303] - [0304] - [0305] - [0306] 1 [0307] 1 se A2 0,75% 0,25% 0,24% 51% 03%
[0308] Clas [0309] - [0310] - [0311] - [0312] 1 [0313] 1 se B 0,79% 0,27% 0,30% 55% 01%
[0314] Clas [0315] - [0316] - [0317] - [0318] 1 [0319] 1 se C 0,86% 0,41% 0,56% 54% 00%
[0320] Clas [0321] - [0322] - [0323] - [0324] 1 [0325] 9 se E 1,11% 0,40% 0,49% 51% 8%
[0326] Tot [0327] - [0328] - [0329] - [0330] 1 [0331] 1 al 0,95% 0,42% 0,46% 53% 01%
[0332] Clas [0333] - [0334] - [0335] - [0336] 1 [0337] 1 se D 0,94% 0,58% 0,38% 54% 01%
[0338] Clas [0339] - [0340] - [0341] - [0342] 1 [0343] 9 se F (opcional) 1,01% 0,64% 0,63% 51% 9%
[0344] [0345] [0346] [0347] [0348] [0349] Tabela 2. Resultado de CE3-1.2.2 para configuração VTM RA tempo tempo Y U V codificaçã decodifica o ção
[0350] Clas [0351] - [0352] - [0353] - [0354] 1 [0355] 1 se A1 0,90% 1,56% 1,61% 11% 00%
[0356] Clas [0357] - [0358] - [0359] - [0360] 1 [0361] 1 se A2 0,42% 0,24% 0,15% 09% 03%
[0362] Clas [0363] - [0364] - [0365] - [0366] 1 [0367] 9 se B 0,52% 0,52% 0,99% 11% 9%
[0368] Clas [0369] - [0370] - [0371] - [0372] 1 [0373] 9 se C 0,52% 0,71% 0,56% 10% 7%
[0374] Clas
[0375] [0376] [0377] [0378] [0379] se E
[0380] Tot [0381] - [0382] - [0383] - [0384] 1 [0385] 1 al 0,57% 0,73% 0,83% 10% 00%
[0386] Clas [0387] - [0388] - [0389] - [0390] 1 [0391] 9 se D 0,54% 0,77% 0,70% 10% 9%
[0392] Clas [0393] - [0394] - [0395] - [0396] 1 [0397] 9 se F (opcional) 0,72% 0,66% 0,45% 12% 5%
[0398] 5.12 Resultados adicionais com acelerações de decodificador adicionais
[0399] São providos adicionalmente dois resultados adicionais para testes que se basearam na mesma sintaxe de CE 3-1.2.2, mas com uma busca de Codificador otimizada.
[0400] Tabela 1. Resultado de CE3-1.2.2 para configuração de VTM AI, Primeira Aceleração do Codificador tempo tempo Y U V codificaçã decodifica o ção
[0401] Clas [0402] - [0403] - [0404] - [0405] 1 [0406] 1 se A1 1,30% 0,72% 0,77% 37% 04%
[0407] Clas [0408] - [0409] - [0410] - [0411] 1 [0412] 1 se A2 0,65% 0,21% 0,20% 36% 04%
[0413] Clas [0414] - [0415] - [0416] - [0417] 1 [0418] 1 se B 0,69% 0,22% 0,22% 37% 02%
[0419] Clas [0420] - [0421] - [0422] - [0423] 1 [0424] 1 se C 0,74% 0,37% 0,47% 34% 03%
[0425] Clas [0426] - [0427] - [0428] - [0429] 1 [0430] 1 se E 1,00% 0,42% 0,39% 37% 01%
[0431] Tot [0432] - [0433] - [0434] - [0435] 1 [0436] 1 al 0,85% 0,37% 0,39% 36% 03%
[0437] Clas [0438] - [0439] - [0440] - [0441] 1 [0442] 1 se D 0,86% 0,32% 0,39% 31% 03%
[0443] Clas [0444] - [0445] - [0446] - [0447] 1 [0448] 1 se F (opcional) 0,92% 0,68% 0,63% 32% 02%
Tabela 2. Resultado de CE3-1.2.2 para configuração VTM RA, Primeira Aceleração do Codificador tempo tempo Y U V codificaçã decodifica o ção
[0449] Clas [0450] - [0451] - [0452] - [0453] 1 [0454] 1 se A1 0,90% 1,56% 1,61% 11% 00%
[0455] Clas [0456] - [0457] - [0458] - [0459] 1 [0460] 1 se A2 0,42% 0,24% 0,15% 09% 03%
[0461] Clas [0462] - [0463] - [0464] - [0465] 1 [0466] 9 se B 0,52% 0,52% 0,99% 11% 9%
[0467] Clas [0468] - [0469] - [0470] - [0471] 1 [0472] 9 se C 0,52% 0,71% 0,56% 10% 7%
[0473] Clas
[0474] [0475] [0476] [0477] [0478] se E
[0479] Tot [0480] - [0481] - [0482] - [0483] 1 [0484] 1 al 0,57% 0,73% 0,83% 10% 00%
[0485] Clas [0486] - [0487] - [0488] - [0489] 1 [0490] 9 se D 0,54% 0,77% 0,70% 10% 9%
[0491] Clas [0492] - [0493] - [0494] - [0495] 1 [0496] 9 se F (opcional) 0,72% 0,66% 0,45% 12% 5%
Tabela 3. Resultado de CE3-1.2.2 para configuração de VTM AI, Segunda Aceleração do Codificador tempo tempo Y U V codificaçã decodifica o ção
[0497] Clas [0498] - [0499] - [0500] - [0501] 1 [0502] 1 se A1 1,13% 0,71% 0,67% 27% 03%
[0503] Clas [0504] - [0505] - [0506] - [0507] 1 [0508] 1 se A2 0,58% 0,18% 0,13% 27% 02%
[0509] Clas [0510] - [0511] - [0512] - [0513] 1 [0514] 9 se B 0,59% 0,25% 0,29% 28% 9%
[0515] Clas [0516] - [0517] - [0518] - [0519] 1 [0520] 1 se C 0,67% 0,37% 0,45% 25% 01%
[0521] Clas [0522] - [0523] - [0524] - [0525] 1 [0526] 1 se E 0,90% 0,46% 0,37% 27% 00%
[0527] Tot [0528] - [0529] - [0530] - [0531] 1 [0532] 1 al 0,75% 0,38% 0,38% 27% 01%
[0533] Clas [0534] - [0535] - [0536] - [0537] 1 [0538] 1 se D 0,75% 0,40% 0,37% 24% 02%
[0539] Clas [0540] - [0541] - [0542] - [0543] 1 [0544] 1 se F (opcional) 0,71% 0,46% 0,39% 24% 00%
Tabela 4. Resultado de CE3-1.2.2 para configuração VTM RA, Segunda Aceleração do Codificador tempo tempo Y U V codificaçã decodifica o ção
[0545] Clas [0546] - [0547] - [0548] - [0549] 1 [0550] 9 se A1 0,79% 1,54% 1,44% 07% 8%
[0551] Clas [0552] - [0553] - [0554] - [0555] 1 [0556] 1 se A2 0,36% 0,28% 0,02% 06% 00%
[0557] Clas [0558] - [0559] - [0560] - [0561] 1 [0562] 9 se B 0,43% 0,41% 0,64% 07% 7%
[0563] Clas [0564] - [0565] - [0566] - [0567] 1 [0568] 9 se C 0,44% 0,68% 0,42% 06% 6%
[0569] Clas
[0570] [0571] [0572] [0573] [0574] se E
[0575] Tot [0576] - [0577] - [0578] - [0579] 1 [0580] 9 al 0,49% 0,68% 0,62% 07% 7%
[0581] Clas [0582] - [0583] - [0584] - [0585] 1 [0586] 1 se D 0,43% 1,09% 0,66% 06% 01%
[0587] Clas [0588] - [0589] - [0590] - [0591] 1 [0592] 9 se F (opcional) 0,59% 0,47% 0,41% 07% 4%
[0593] 6 O codificador da figura 10
[0594] A figura 10 mostra um outro exemplo que pode ser interpretado a partir dos exemplos das figuras 1, 2, e 5-9 (em particular, alguns recursos podem ser diretamente derivados a partir da figura 2 e, portanto, não são aqui repetidos).
[0595] A figura 10 mostra um codificador 14 que pode ser, por exemplo, um caso em particular do codificador da figura 1. Analogamente à figura 2, o codificador 14 pode compreender um subtrator 22 configurado para subtrair a partir do sinal entrante,
isto é, figura 10 ou, com base em bloco, o bloco atual 18, o correspondente sinal de previsão 24 (por exemplo, o bloco 18 com as amostras reconstruídas 104 obtidas na etapa 812), para obter o sinal do resíduo de previsão 26 que é, então, codificado por um codificador do resíduo de previsão 28 em um fluxo contínuo de dados 12. O codificador do resíduo de previsão 28 pode incluir um estágio de codificação com perdas 28a e um estágio de codificação sem perdas (codificador de entropia) 28b. O estágio de codificação com perdas 28a pode receber o sinal do resíduo de previsão 26 e compreende um quantizador 30 (não mostrado) configurado para quantizar as amostras do sinal do resíduo de previsão 26. O sinal do resíduo de previsão obtido 34 é, então, sujeito a codificação sem perdas pelo estágio de codificação sem perdas 28b, que é um codificador de entropia que codifica por entropia o sinal do resíduo de previsão quantizado 34 no fluxo contínuo de dados 12. O codificador 14 pode compreender adicionalmente o estágio de reconstrução do sinal do resíduo de previsão 36 conectado na saída do estágio de codificação com perdas 28a, para reconstruir a partir do sinal do resíduo de previsão transformado e quantizado 34’.
[0596] O codificador 14 pode compreender um adicionador 42 para adicionar o sinal do resíduo de previsão reconstruído 34’ como saída pelo estágio 36 e o sinal de previsão 24 (por exemplo, incluindo o bloco 18 com as amostras reconstruídas 104 obtidas na etapa 813), para transmitir um sinal reconstruído, isto é, amostras reconstruídas. Esta saída é alimentada no previsor 44 que pode, então, determinar o sinal de previsão 24 com base na mesma (por exemplo, pela aplicação das técnicas ilustradas nas figuras 8.1-7.4).
[0597] Como pode ser visto, na figura 9, as etapas do método 811, 812, 813 são aqui mapeadas pelos estágios 811’, 812’, 813’, respectivamente, no previsor 44: as etapas do método 811, 812, 813 podem ser implementadas em unidades de hardware e/ou rotinas procedimentais, coletivamente indicadas com 811’, 812’, 813’, no previsor 44 ou controladas pelo previsor. É mostrado que é possível, em exemplos, ignorar o estágio de derivação 813’, como no exemplo da figura 7.1.
[0598] Em particular, os estágios 811 e/ou 813 podem ser representados como apresentação de um registro, tal como o registro 910 para realizar as operações de deslocamento discutidas anteriormente (o registro 910 não é necessariamente uma parte dos estágios 811 ou 813: o mesmo pode ser uma unidade que é controlada pelo estágio de sujeição). Em vez disto, o estágio 812 é representado como tendo ou controlando um multiplicador 1910, em que as multiplicações realizadas entre os P red elementos das amostras selecionadas ou ponderadas 102 das amostras vizinhas 17 são multiplicadas pelos fatores de ponderação Q ou Q red das matrizes 17M (𝐴𝑖0 ). Nos estágios 811’, 812’, 813’, outros elementos (tais como adicionadores, etc.) não são mostrados por concisão.
[0599] Um armazenamento 1044 é aqui indicado como armazenando as matrizes ALWIP 17M ou 𝐴𝑖0 (por exemplo, nos conjuntos S0, S1, S2) e vetores de deslocamento 𝑏0𝑖 (anteriormente também indicados como bk). O índice 944 (por exemplo, um ou mais dos índices discutidos anteriormente, tais como i, k, índice transposto, índice de conjunto) i da matriz e/ou deslocamento podem ser codificados no fluxo contínuo de dados 12. Os fatores de ponderação Q ou Qred são, no geral, não sinalizados no fluxo contínuo de dados 12: isto é, em virtude de o decodificador já ter noção dos fatores de ponderação Q ou Qred das matrizes ALWIP 17M (por exemplo, tem uma cópia dos dados armazenados no armazenamento 1044), portanto, reduzindo a carga útil.
[0600] Até mesmo se não mostrado nas figuras, há a possibilidade de o codificador 14 decidir as dimensões das matrizes ALWIP a serem usadas (por exemplo, qual conjunto dentre os conjuntos S0, S1, S2), por exemplo, com base nas dimensões do bloco 18. Em alguns casos, não é necessário sinalizar esta escolha, como consequente na escolha das dimensões do bloco 18.
[0601] Portanto, o codificador 14 é configurado para inserir, para o bloco pré- determinado 18, um resíduo de previsão 34 no fluxo contínuo de dados 12 a partir do qual o bloco pré-determinado 18 é reconstruível usando o resíduo de previsão e os valores previstos 24 (104) para as amostras pré-determinadas obtidas na etapa 812.
[0602] Além do mais ou alternativamente, o codificador 14 pode ser configurado para inserir, para o bloco pré-determinado (18), um resíduo de previsão (26, 34) no fluxo contínuo de dados (12) que indica para cada uma das amostras pré- determinadas Q ou Qred um correspondente valor residual de forma que o bloco pré- determinado (18) possa ser reconstruído usando o resíduo de previsão (26, 34) e os valores previstos para as amostras pré-determinadas pela correção do valor previsto para cada conjunto de valores Q ou Qred, de forma que o correspondente valor reconstruído dependa das Pred amostras vizinhas (102) no conjunto reduzido (102) dos valores de amostra estritamente linearmente, exceto por, opcionalmente, uma limitação aplicada depois da previsão e/ou da correção.
[0603] Além do mais ou alternativamente, o codificador 14 pode ser configurado para subdividir a figura (16) em uma pluralidade de blocos de diferentes tamanhos de bloco, que compreendem o bloco pré-determinado (18). O codificador 14 pode ser configurado para selecionar a transformação linear ou linear afim (19, Ak), dependendo de uma largura W (também indicada com N) e uma altura H (também indicada com M) do bloco pré-determinado (18), de maneira tal que a transformação linear ou linear afim (19, Ak) selecionada para o bloco pré-determinado (18) seja selecionada dentre um primeiro conjunto de transformações lineares ou lineares afins desde que a largura W e a altura H do bloco pré-determinado (18) estejam em um primeiro conjunto (por exemplo, associado a S0) de pares de largura/altura e um segundo conjunto de transformações lineares ou lineares afins desde que a largura W e a altura H do bloco pré-determinado (18) estejam em um segundo conjunto (por exemplo, associado a S1) de pares de largura/altura que é disjunto do primeiro conjunto de pares de largura/altura.
[0604] Além do mais ou alternativamente, o codificador pode ser configurado de forma que o terceiro conjunto (por exemplo, S0) de um ou mais pares de largura/altura meramente compreenda um par de largura/altura, W’, H’, e cada transformação linear ou linear afim no segundo conjunto de transformações lineares ou lineares afins é para transformar N’ valores de amostra em W’*H’ valores previstos para um arranjo W’xH’ de posições de amostra.
[0605] Além do mais ou alternativamente, o codificador pode ser configurado de forma que cada um do primeiro e do segundo conjuntos de pares de largura/altura compreenda um primeiro par de largura/altura W p,Hp com Wp sendo desigual a Hp e um segundo par de largura/altura Wq,Hq com Hq=Wp e Wq=Hp.
[0606] Além do mais ou alternativamente, o codificador pode ser configurado de forma que cada um do primeiro e do segundo conjuntos de pares de largura/altura compreenda adicionalmente um terceiro par de largura/altura W p,Hp com Wp sendo igual a Hp e Hp > Hq.
[0607] Além do mais ou alternativamente, o codificador pode ser configurado para inserir para o bloco pré-determinado um índice de conjunto no fluxo contínuo de dados, selecionar a transformação linear ou linear afim dependendo do índice de conjunto dentre um conjunto pré-determinado de transformações lineares ou lineares afins.
[0608] Além do mais ou alternativamente, o codificador pode ser configurado de forma que a pluralidade de amostras vizinhas se estenda unidimensionalmente ao longo de dois lados do bloco pré-determinado e o codificador seja configurado para realizar a redução pelo, para um primeiro subconjunto da pluralidade de amostras vizinhas, que é adjacente a um primeiro lado do bloco pré-determinado, agrupamento do primeiro subconjunto em primeiros grupos (110) de uma ou mais amostras vizinhas consecutivas e, para um segundo subconjunto da pluralidade de amostras vizinhas, que é adjacente a um segundo lado do bloco pré-determinado, agrupamento do segundo subconjunto em segundos grupos (110) de uma ou mais amostras vizinhas consecutivas e realização de uma amostragem descendente ou uma ponderação em cada um do primeiro e do segundo grupos de uma ou mais amostras vizinhas que têm mais do que duas amostras vizinhas, para obter primeiros valores de amostra dos primeiros grupos e segundos valores de amostra para os segundos grupos, e o codificador configurado para selecionar a transformação linear ou linear afim dependendo do índice de conjunto dentre um conjunto pré-determinado de transformações lineares ou lineares afins de maneira tal que dois diferentes estados do índice de conjunto resultem em uma seleção de uma das transformações lineares ou lineares afins do conjunto pré-determinado de transformações lineares ou lineares afins, e sujeitar o conjunto reduzido de valores de amostra à transformação linear ou linear afim pré-determinada no caso do índice de conjunto considerando um primeiro dos dois diferentes estados na forma de um primeiro vetor para produzir um vetor de saída de valores previstos, e distribuir os valores previstos do vetor de saída ao longo de uma primeira ordem de escaneamento sobre as amostras pré-determinadas do bloco pré-determinado e, no caso do índice de conjunto considerando um segundo dos dois estados diferentes na forma de um segundo vetor, os primeiro e segundo vetores diferindo de forma que componentes preenchidos por um dos primeiros valores de amostra no primeiro vetor sejam preenchidos por um dos segundos valores de amostra no segundo vetor, e componentes preenchidos por um dos segundos valores de amostra no primeiro vetor sejam preenchidos por um dos primeiros valores de amostra no segundo vetor, para produzir um vetor de saída de valores previstos, e distribuir os valores previstos do vetor de saída ao longo de uma segunda ordem de escaneamento sobre as amostras pré-determinadas do bloco pré-determinado que é transposto em relação à primeira ordem de escaneamento.
[0609] Além do mais ou alternativamente, o codificador pode ser configurado de forma que cada transformação linear ou linear afim no primeiro conjunto de transformações lineares ou lineares afins seja para transformar N1 valores de amostra em w1*h1 valores previstos para um arranjo w1xh1 de posições de amostra e cada transformação linear ou linear afim no primeiro conjunto de transformações lineares ou lineares afins seja para transformar N2 valores de amostra em w2*h2 valores previstos para um arranjo w2xh2 de posições de amostra, e em que, para um primeiro par pré-determinado do primeiro conjunto de pares de largura/altura, w 1 excede a largura do primeiro par de largura/altura pré-determinado ou h1 excede a altura do primeiro par de largura/altura pré-determinado, e, para um segundo par pré- determinado do primeiro conjunto de pares de largura/altura nem w1 excede a largura do segundo par de largura/altura pré-determinado nem h1 excede a altura do segundo par de largura/altura pré-determinado, e o codificador pode ser configurado para realizar a redução (100), por amostragem descendente ou ponderação, da pluralidade de amostras vizinhas para obter o conjunto reduzido (102) de valores de amostras de forma que o conjunto reduzido (102) de valores de amostras tenha N1 valores de amostra se o bloco pré-determinado for do primeiro par de largura/altura pré- determinado e se o bloco pré-determinado for do segundo par de largura/altura pré- determinado, e realizar a sujeição do conjunto reduzido de valores de amostra à transformação linear ou linear afim selecionada pelo uso apenas de uma primeira subparte da transformação linear ou linear afim selecionada que é relacionada a uma subamostragem do arranjo w1xh1 de posições de amostra ao longo da dimensão da largura se w1 exceder a largura do um par de largura/altura, ou ao longo da dimensão da altura se h1 exceder a altura do um par de largura/altura se o bloco pré-determinado for do primeiro par de largura/altura pré-determinado, e da transformação linear ou linear afim selecionada completamente se o bloco pré-determinado for do segundo par de largura/altura pré-determinado.
[0610] Além do mais ou alternativamente, o codificador pode ser configurado de forma que cada transformação linear ou linear afim no primeiro conjunto de transformações lineares ou lineares afins seja para transformar N1 valores de amostra em w1*h1 valores previstos para um arranjo w1xh1 de posições de amostra com w1=h1 e cada transformação linear ou linear afim no primeiro conjunto de transformações lineares ou lineares afins seja para transformar N2 valores de amostra em w2*h2 valores previstos para um arranjo w2xh2 de posições de amostra com w2=h2.
[0611] 7. O exemplo da figura 11
[0612] A figura 11 mostra um outro exemplo que pode ser interpretado a partir dos exemplos das figuras 3-9 (em particular, alguns recursos podem ser diretamente derivados a partir da figura 4 e não são, portanto, aqui repetidos).
[0613] A figura 11 mostra uma possível implementação do decodificador 54 da figura 4, a saber, um adaptado à implementação de codificador 14 da figura 10. Em particular, o adicionador 42’ e o previsor 44’ podem ser conectados em um laço de previsão da mesma maneira que os mesmos são no codificador 14 da figura 10. O sinal do resíduo de previsão reconstruído, isto é, dequantizado e retransformado, aplicado no adicionador 42’ pode ser derivado por uma sequência de decodificador de entropia que inverte a codificação de entropia do codificador de entropia, seguido pelo estágio de reconstrução do sinal residual que é composto por dequantizador e transformador inverso 40’ exatamente como é o caso no lado da codificação. A saída do decodificador é a reconstrução da figura 10. A reconstrução da figura 10 pode estar disponível diretamente na saída do adicionador 42’ ou, alternativamente, na saída de um filtro em laço.
[0614] Como pode ser visto, os estágios 813’, 812’, 813’ podem ser como o codificador 14, e a unidade de armazenamento 1044 pode armazenar os conjuntos de matrizes como no codificador 14. Portanto, a discussão não é aqui repetida. O índice 944 (por exemplo, um ou mais dos índices discutidos anteriormente, tais como i, k, índice transposto, índice de conjunto) pode ser diretamente obtido a partir do fluxo contínuo de dados 12. A escolha entre os conjuntos S0, S1, S2 pode seguir o tamanho (por exemplo, H/K, ou M/N, por exemplo).
[0615] Além do mais ou alternativamente, o decodificador pode ser configurado para derivar, para o bloco pré-determinado (18), um resíduo de previsão (34”) a partir do fluxo contínuo de dados (12), e reconstruir (42’) o bloco pré-determinado (18) usando o resíduo de previsão (34”) e os valores previstos (24’) para as amostras pré- determinadas (24’, 104, 108, 108’).
[0616] Além do mais ou alternativamente, o decodificador pode ser configurado para derivar, para o bloco pré-determinado (18), um resíduo de previsão (34”) a partir do fluxo contínuo de dados (12) a fim de obter, para cada um do conjunto de Q ou Q red amostras pré-determinadas, um correspondente valor residual, e reconstruir o bloco pré-determinado (18) usando o resíduo de previsão (34”) e os valores previstos (24’, 104) para as amostras pré-determinadas (118’, 118”) pela correção do valor previsto para cada conjunto de Q ou Qred amostras pré-determinadas pelo correspondente valor residual (34”) para obter um correspondente valor reconstruído (10), de forma que o correspondente valor reconstruído (10) dependa das P red amostras vizinhas
(102) no conjunto reduzido de valores de amostra estritamente linearmente, exceto por, opcionalmente, uma limitação aplicada depois da previsão e/ou da correção.
[0617] Além do mais ou alternativamente, o decodificador pode ser configurado de forma que o decodificador seja configurado para subdividir a figura (10) em uma pluralidade de blocos de diferentes tamanhos de bloco, que compreendem o bloco pré-determinado (18), em que o decodificador é configurado para selecionar a transformação linear ou linear afim (19, 17M, Ak) dependendo de uma largura W e uma altura H do bloco pré-determinado (18) de maneira tal que a transformação linear ou linear afim selecionada para o bloco pré-determinado (18) seja selecionada a partir de um primeiro conjunto de transformações lineares ou lineares afins desde que a largura W e a altura H do bloco pré-determinado (81) estejam em um primeiro conjunto de pares de largura/altura e um segundo conjunto de transformações lineares ou lineares afins desde que a largura W e a altura H do bloco pré-determinado estejam em um segundo conjunto de pares de largura/altura que é disjunto do primeiro conjunto de pares de largura/altura.
[0618] Além do mais ou alternativamente, o decodificador pode ser configurado para que o decodificador seja configurado para subdividir a figura (10) em uma pluralidade de blocos de diferentes tamanhos de bloco, que compreendem o bloco pré-determinado (18), em que o decodificador é configurado para selecionar a transformação linear ou linear afim (19, 17M, Ak) dependendo de uma largura W e uma altura H do bloco pré-determinado (18) de maneira tal que a transformação linear ou linear afim selecionada para o bloco pré-determinado (18) seja selecionada a partir de um primeiro conjunto de transformações lineares ou lineares afins desde que a largura W e a altura H do bloco pré-determinado (18) estejam em um primeiro conjunto de pares de largura/altura, um segundo conjunto de transformações lineares ou lineares afins desde que a largura W e a altura H do bloco pré-determinado (18) estejam em um segundo conjunto de pares de largura/altura que é disjunto do primeiro conjunto de pares de largura/altura, e um terceiro conjunto de transformações lineares ou lineares afins desde que a largura W e a altura H do bloco pré-determinado (18)
estejam em um terceiro conjunto de um ou mais pares de largura/altura, que é disjunto do primeiro e do segundo conjuntos de pares de largura/altura.
[0619] Além do mais ou alternativamente, o decodificador pode ser configurado para que o terceiro conjunto de um ou mais pares de largura/altura meramente compreenda um par de largura/altura, W’, H’, e cada transformação linear ou linear afim no primeiro conjunto de transformações lineares ou lineares afins seja para transformar N’ valores de amostra em W’*H’ valores previstos para um arranjo W’xH’ de posições de amostra.
[0620] Além do mais ou alternativamente, o decodificador pode ser configurado para que cada um do primeiro e do segundo conjuntos de pares de largura/altura compreenda um primeiro par de largura/altura W p, Hp com Wp sendo desigual a Hp e um segundo par de largura/altura Wq, Hq com Hq=Wp e Wq=Hp.
[0621] Além do mais ou alternativamente, o decodificador pode ser configurado para que cada um do primeiro e do segundo conjuntos de pares de largura/altura compreenda adicionalmente um terceiro par de largura/altura W p, Hp com Wp sendo igual a Hp e Hp > Hq.
[0622] Além do mais ou alternativamente, o decodificador pode ser configurado para ler para o bloco pré-determinado (18) um índice de conjunto (k) a partir do fluxo contínuo de dados (12), selecionar a transformação linear ou linear afim dependendo do índice de conjunto (k) dentre um conjunto pré-determinado de transformações lineares ou lineares afins.
[0623] Além do mais ou alternativamente, o decodificador pode ser configurado para que a pluralidade de amostras vizinhas (17) estenda unidimensionalmente ao longo de dois lados do bloco pré-determinado (18) e o decodificador seja configurado para realizar a redução (811) pelo, para um primeiro subconjunto da pluralidade de amostras vizinhas, que é adjacente a um primeiro lado do bloco pré-determinado, agrupamento do primeiro subconjunto em primeiros grupos (110) de uma ou mais amostras vizinhas consecutivas e, para um segundo subconjunto da pluralidade de amostras vizinhas, que é adjacente a um segundo lado do bloco pré-determinado,
agrupamento do segundo subconjunto em segundos grupos (110) de uma ou mais amostras vizinhas consecutivas e realização de uma amostragem descendente ou uma ponderação em cada um do primeiro e do segundo grupos de uma ou mais amostras vizinhas que têm mais do que duas amostras vizinhas, para obter primeiros valores de amostra dos primeiros grupos e segundos valores de amostra para os segundos grupos, e o decodificador pode ser configurado para selecionar a transformação linear ou linear afim dependendo do índice de conjunto dentre um conjunto pré-determinado de transformações lineares ou lineares afins de maneira tal que dois diferentes estados do índice de conjunto resultem em uma seleção de uma das transformações lineares ou lineares afins do conjunto pré-determinado de transformações lineares ou lineares afins, e sujeitar o conjunto reduzido de valores de amostra à transformação linear ou linear afim pré-determinada, no caso do índice de conjunto considerando um primeiro dos dois diferentes estados na forma de um primeiro vetor para produzir um vetor de saída de valores previstos, e distribuir os valores previstos do vetor de saída ao longo de uma primeira ordem de escaneamento sobre as amostras pré-determinadas do bloco pré-determinado, e no caso do índice de conjunto considerando um segundo dos dois estados diferentes na forma de um segundo vetor, o primeiro e o segundo vetores diferindo de forma que componentes preenchidos por um dos primeiros valores de amostra no primeiro vetor sejam preenchidos por um dos segundos valores de amostra no segundo vetor, e componentes preenchidos por um dos segundos valores de amostra no primeiro vetor sejam preenchidos por um dos primeiros valores de amostra no segundo vetor, para produzir um vetor de saída de valores previstos, e distribuir os valores previstos do vetor de saída ao longo de uma segunda ordem de escaneamento sobre as amostras pré-determinadas do bloco pré-determinado que é transposto em relação à primeira ordem de escaneamento.
[0624] Além do mais ou alternativamente, o decodificador pode ser configurado para que cada transformação linear ou linear afim no primeiro conjunto de transformações lineares ou lineares afins seja para transformar N1 valores de amostra em w1*h1 valores previstos para um arranjo w1xh1 de posições de amostra e cada transformação linear ou linear afim no primeiro conjunto de transformações lineares ou lineares afins seja para transformar N2 valores de amostra em w2*h2 valores previstos para um arranjo w2xh2 de posições de amostra, e em que, para um primeiro par pré-determinado do primeiro conjunto de pares de largura/altura, w 1 excede a largura do primeiro par de largura/altura pré-determinado ou h1 excede a altura do primeiro par de largura/altura pré-determinado, e, para um segundo par pré- determinado do primeiro conjunto de pares de largura/altura, nem w 1 excede a largura do segundo par de largura/altura pré-determinado nem h1 excede a altura do segundo par de largura/altura pré-determinado, e em que o decodificador é configurado para realizar a redução (100), por amostragem descendente ou ponderação, da pluralidade de amostras vizinhas para obter o conjunto reduzido (102) de valores de amostras de forma que o conjunto reduzido (102) de valores de amostras tenha N 1 valores de amostra se o bloco pré-determinado for do primeiro par de largura/altura pré- determinado e se o bloco pré-determinado for do segundo par de largura/altura pré- determinado, e realizar a sujeição do conjunto reduzido de valores de amostra à transformação linear ou linear afim selecionada pelo uso apenas de uma primeira subparte da transformação linear ou linear afim selecionada que é relacionada a uma subamostragem do arranjo w1xh1 de posições de amostra ao longo da dimensão da largura se w1 exceder a largura do um par de largura/altura, ou ao longo da dimensão da altura se h1 exceder a altura do um par de largura/altura se o bloco pré-determinado for do primeiro par de largura/altura pré-determinado, e da transformação linear ou linear afim selecionada completamente se o bloco pré-determinado for do segundo par de largura/altura pré-determinado.
[0625] Além do mais ou alternativamente, o decodificador pode ser configurado para que cada transformação linear ou linear afim no primeiro conjunto de transformações lineares ou lineares afins seja para transformar N1 valores de amostra em w1*h1 valores previstos para um arranjo w1xh1 de posições de amostra com w1=h1 e cada transformação linear ou linear afim no primeiro conjunto de transformações lineares ou lineares afins seja para transformar N2 valores de amostra em w2*h2 valores previstos para um arranjo w2xh2 de posições de amostra com w2=h2.
[0626] 8. Discussão sobre efeitos das presentes técnicas
[0627] Independentemente do uso de operações, tais como deslocamento de bit para ponderação e/ou interpolação (que chega, entre outros, ao efeito de reduzir os esforços computacionais), também nota-se que outros efeitos podem ser obtidos que, em alguns exemplos, podem até mesmo transcender do uso efetivo do deslocamento de bit.
[0628] Em particular, com os presentes exemplos, modos de previsão podem ser compartilhados através de diferentes formas de bloco, de forma que a seleção da matriz ALWIP 17M (por exemplo, na etapa 812a) seja realizada em um número limitado de conjuntos. Por exemplo, pode haver menos conjuntos de matrizes ALWIP do que possíveis dimensões (por exemplo, pares de alturas/larguras) dos blocos 18 a serem previstos. Referência pode ser feita à figura 12, que mapeia diferentes pares de largura/altura de blocos 18 a serem previstos em um dos conjuntos S0 (por exemplo, com n0 matrizes, por exemplo, com n0=16), S1 (por exemplo, com n1 matrizes, por exemplo, com n1=8), e S2 (por exemplo, com n2 matrizes, por exemplo, com n2=6), da forma discutida anteriormente (diferentes repartições podem ser possíveis).
[0629] Por exemplo, as matrizes 16x8 do conjunto S 1 podem ser compartilhadas por modos de previsão para os blocos com qualquer uma das dimensões 4 x 8, 4 x 16, 4 x 32, 4 x 64, 8 x 4, 8 x 8, 16 x 4, 32 x 4, e 64 x 4, e as matrizes 64x8 do conjunto S2 podem ser compartilhadas por modos de previsão para os blocos com qualquer uma das dimensões 8 x 16, 8 x 32, 8 x 64, 16 x 8, 16 x 16, 16 x 32, 16 x 64, 32 x 8, 32 x 16, 32 x 32, 32 x 64, 64 x 8, 64 x 16, 64 x 32, 64 x 64. É simplesmente necessário realizar técnicas, tais como aquelas discutidas para a etapa de redução 811 (veja anteriormente) para reduzir as dimensões do limite 17 ao número de amostras P red necessário para formar o conjunto 102, mas, na etapa 812, a dimensão original do bloco 18 a ser previsto é irrelevante. Na etapa 813 (se implementada), será possível chegar na previsão completa do bloco simplesmente por realizar interpolações.
[0630] Foi notado que esta abordagem permite reduzir o espaço de armazenamento necessário no espaço de armazenamento 1044 em dimensões inesperadas de 16 * 16 * 4 + 8 * 16 * 8 + 6 * 64 * 8 = 5.120 valores (por exemplo, cada valor sendo, por exemplo, um valor de 8 bits).
[0631] Em comparação, uma técnica tradicional irá exigir usar um conjunto de matrizes para cada um dos pares de largura/altura. Como pode ser facilmente entendido a partir da figura 12, seriam necessários 25 conjuntos! Pode ser facilmente entendido como 25 conjuntos de matrizes exigem muito mais do que um espaço de armazenamento de 5.120 valores. A fim de reduzir o espaço de armazenamento necessário, seria, portanto, necessário reduzir o número de matrizes para cada conjunto: entretanto, se apenas poucas matrizes estiverem à disposição para a previsão, a qualidade seria reduzida!
[0632] A redução do espaço de armazenamento em vista da técnica de compartilhamento é até mesmo amplificada pela redução do tamanho das próprias matrizes armazenadas. Por exemplo, a previsão de um bloco MxN = 64x64 irá exigir uma matriz de tamanho QxP = (M*N)x(M+N), isto é, com (64*64)*(64+64) = 524.288 valores a serem armazenados no espaço de armazenamento! Portanto, com as presentes técnicas é possível poupar até mesmo mais espaço de armazenamento do que o esperado.
[0633] Portanto, as presentes técnicas permitem reduzir o número de parâmetros que precisam ser armazenados na unidade 1044.
[0634] Com ou sem o uso real do deslocamento de bit, os recursos de armazenamento à disposição do codificador ou do decodificador podem ser reduzidos ou, inversamente, mais modos de previsão podem ser usados para paridade do espaço de armazenamento.
[0635] Efeitos ideais são, não obstante, alcançados pela combinação das técnicas de deslocamento de bit (nas etapas 811 e/ou 813) com aquelas de compartilhamento do mesmo modo de previsão para múltiplos modos (na etapa 812).
[0636] Em relação à tradicional abordagem de uso de 25 conjuntos diferentes para os 25 pares diferentes de altura/largura, a presente técnica pode ser aparentemente interpretada como aumentando a complexidade (já que as etapas 811 e/ou 813 não são concebíveis com técnicas tradicionais). Entretanto, a introdução das etapas 811 e/ou 813 pode ser mais do que compensada pela redução das multiplicações.
[0637] Além do mais, em relação à tradicional abordagem de uso de 25 conjuntos diferentes para os 25 pares diferentes de altura/largura, as instruções necessárias para controlar este processamento exige mais espaço de armazenamento (já que instruções adicionais para as etapas 811 e/ou 813 devem ser armazenadas). Entretanto, a necessidade de armazenar as instruções para as etapas 811 e/ou 813 pode ser mais do que compensada pela redução do espaço implicada pelo reduzido número de matrizes armazenadas.
[0638] 9. Modalidades e exemplos adicionais
[0639] No geral, exemplos podem ser implementados como um produto de programa de computador com instruções de programa, as instruções de programa sendo operativas para realizar um dos métodos quando o produto de programa de computador executar em um computador. As instruções de programa podem ser, por exemplo, armazenadas em uma mídia legível por máquina.
[0640] Outros exemplos compreendem o programa de computador para realizar um dos métodos aqui descritos, armazenado em uma portadora legível por máquina.
[0641] Em outras palavras, um exemplo de método é, portanto, um programa de computador que tem instruções de programa para realizar um dos métodos aqui descritos, quando o programa de computador executar em um computador.
[0642] Um exemplo adicional dos métodos é, portanto, uma mídia portadora de dados (ou uma mídia de armazenamento digital, ou uma mídia legível por computador) compreendendo, gravado na mesma, o programa de computador para realizar um dos métodos aqui descritos. A mídia portadora de dados, a mídia de armazenamento digital ou a mídia gravada são tangíveis e/ou não transitórias, em vez de sinais que são intangíveis e transitórios.
[0643] Um exemplo adicional do método é, portanto, um fluxo contínuo de dados ou uma sequência de sinais que representa o programa de computador para realizar um dos métodos aqui descritos. O fluxo contínuo de dados ou a sequência de sinais pode ser, por exemplo, transferida por meio de uma conexão de comunicação de dados, por exemplo, por meio da Internet.
[0644] Um exemplo adicional compreende um meio de processamento, por exemplo, um computador, ou um dispositivo lógico programável que realiza um dos métodos aqui descritos.
[0645] Um exemplo adicional compreende um computador que tem, instalado no mesmo, o programa de computador para realizar um dos métodos aqui descritos.
[0646] Um exemplo adicional compreende um aparelho ou um sistema que transfere (por exemplo, eletronicamente ou opticamente) um programa de computador para realizar um dos métodos aqui descritos para um receptor. O receptor pode, por exemplo, ser um computador, um dispositivo móvel, um dispositivo de memória ou congêneres. O aparelho ou sistema pode, por exemplo, compreender um servidor de arquivos para transferir o programa de computador para o receptor.
[0647] Em alguns exemplos, um dispositivo lógico programável (por exemplo, um arranjo de portas programável no campo) pode ser usado para realizar algumas ou todas as funcionalidades dos métodos aqui descritos. Em alguns exemplos, um arranjo de portas programável no campo pode cooperar com um microprocessador a fim de realizar um dos métodos aqui descritos. No geral, os métodos podem ser realizados por qualquer aparelho em hardware apropriado.
[0648] Os supradescritos exemplos são meramente ilustrativos para os princípios discutidos anteriormente. Entende-se que as modificações e as variações dos arranjos e dos detalhes aqui descritos serão aparentes. É a intenção, portanto, ser limitado pelo escopo das reivindicações anexas e não pelos detalhes específicos apresentados por meio da descrição e da explicação dos exemplos aqui expostos.
[0649] Elementos iguais ou equivalentes ou elementos com funcionalidade igual ou equivalente são denotados na seguinte descrição por números de referência iguais ou equivalentes, mesmo se ocorrendo em figuras diferentes.
[0650] Referências
[0651] [1] P. Helle et al., “Non-linear weighted intra prediction”, JVET-L0199, Macao, China, October 2018.
[0652] [2] F. Bossen, J. Boyce, K. Suehring, X. Li, V. Seregin, “JVET common test conditions and software reference configurations for SDR video”, JVET-K1010, Ljubljana, SI, July 2018.

Claims (53)

REIVINDICAÇÕES
1. Decodificador (54) para decodificação de uma figura (10) a partir de um fluxo contínuo de dados (12), caracterizado por o decodificador ser configurado para subdividir a figura (10) em uma pluralidade de blocos de diferentes tamanhos de bloco que compreendem um bloco pré-determinado (18), em que o decodificador é configurado para prever o bloco pré-determinado (18) da figura usando uma pluralidade de amostras vizinhas (17) por reduzir (100, 811) a pluralidade de amostras vizinhas para obter um conjunto reduzido (102) de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas (17), sujeitar (812) o conjunto reduzido de valores de amostra (102) a uma transformação linear ou linear afim (19, 17M) para obter valores previstos para amostras pré-determinadas (104, 118’, 188”) do bloco pré-determinado (18), em que o decodificador é configurado para realizar a redução (100, 811) pelo agrupamento da pluralidade de amostras vizinhas (17) em grupos (110) de uma ou mais amostras vizinhas consecutivas e realizar uma amostragem descendente ou uma ponderação em cada grupo (110) de uma ou mais amostras vizinhas que tem duas ou mais do que duas amostras vizinhas, em que o decodificador é configurado para selecionar a transformação linear ou linear afim (19, 17M, Ak) dependendo de uma largura W e altura H do bloco pré-determinado (18), de maneira tal que a transformação linear ou linear afim selecionada para o bloco pré-determinado (18) é selecionada dentre um primeiro conjunto de transformações linear ou linear afim, desde que a largura W e a altura H do bloco pré-determinado (81) estejam em um primeiro conjunto de pares de largura/altura e um segundo conjunto de transformações linear ou linear afim, desde que a largura W e a altura H do bloco pré-determinado (81) estejam em um segundo conjunto de pares de largura/altura que é disjunto do primeiro conjunto de pares de largura/altura.
2. Decodificador (54) de acordo com a reivindicação 1, caracterizado por ser adicionalmente configurado para realizar a redução (100, 811) por amostragem descendente.
3. Decodificador (54) de acordo com a reivindicação 1, caracterizado por ser adicionalmente configurado para realizar a redução (100, 811) por ponderação.
4. Decodificador de acordo com a reivindicação 3, caracterizado por a ponderação incluir deslocamento de bit.
5. Decodificador (54) de acordo com qualquer uma das reivindicações anteriores, caracterizado por ser adicionalmente configurado para derivar (813), por interpolação, valores de previsão para amostras adicionais (108, 108’) do bloco pré-determinado (18) com base nos valores previstos para as amostras pré-determinadas (104, 118’, 118”) e na pluralidade de amostras vizinhas (17).
6. Decodificador de acordo com a reivindicação 5, caracterizado por a pluralidade de amostras vizinhas (17) estender unidimensionalmente ao longo de dois lados do bloco pré-determinado (18), as amostras pré-determinadas serem arranjadas em linhas e colunas e, ao longo de pelo menos uma das linhas e colunas, as amostras pré-determinadas serem posicionadas em cada n-ésima posição a partir de uma amostra (112) da amostra pré-determinada (112) adjacente aos dois lados do bloco pré-determinado e o decodificador ser configurado para, com base na pluralidade de amostras vizinhas (17), determinar, para cada uma das pelo menos uma das linhas e das colunas, um valor de suporte (118) para uma (118) da pluralidade de posições vizinhas, que é alinhada à respectiva uma das pelo menos uma das linhas e das colunas, em que o decodificador é configurado para derivar, por interpolação, os valores de previsão para as amostras adicionais (108, 108’) do bloco pré-determinado (18) com base nos valores previstos para as amostras pré-determinadas (104, 118’, 118”) e nos valores de suporte para as amostras vizinhas (118) alinhados à pelo menos uma das linhas e colunas.
7. Decodificador de acordo com a reivindicação 6, caracterizado por as amostras pré-determinadas (104) serem posicionadas em cada n-ésima posição de amostra (112) da amostra pré-determinada (112) que é adjacente aos dois lados do bloco pré-determinado ao longo das linhas e as amostras pré-determinadas serem posicionadas em cada m-ésima posição de amostra (112) da amostra pré- determinada que (112) é adjacente aos dois lados do bloco pré-determinado (18) ao longo das colunas, em que n, m>1.
8. Decodificador de acordo com a reivindicação 7, caracterizado por n = m.
9. Decodificador de acordo com qualquer uma das reivindicações 6 a 8, caracterizado por ser configurado para, ao longo de pelo menos uma das linhas (17c) e colunas (17a), realizar a determinação dos valores de suporte por amostragem descendente ou ponderação (122), para cada valor de suporte, de um grupo (120) de amostras vizinhas na pluralidade de amostras vizinhas que inclui a amostra vizinha (118) para a qual o respectivo valor de suporte é determinado.
10. Decodificador de acordo com qualquer uma das reivindicações 5 a 9, caracterizado por ser configurado para realizar a interpolação por deslocamento de bit.
11. Decodificador de acordo com qualquer uma das reivindicações 1 a 10, caracterizado por a pluralidade de amostras vizinhas (17) estender unidimensionalmente ao longo de dois lados do bloco pré-determinado (18).
12. Decodificador de acordo com qualquer uma das reivindicações 1 a 11, caracterizado por a transformação linear ou linear afim compreender fatores de ponderação Pred*Qred ou Pred*Q com Pred sendo o número de valores de amostra (102) no conjunto reduzido (102) de valores de amostra e Q red ou Q é o número de amostras pré-determinadas no bloco pré-determinado (18), em que pelo menos fatores de ponderação ¼ Pred*Qred ou ¼ Pred*Q são valores de ponderação não zero,
que os fatores de ponderação Pred*Qred ou Pred*Q compreendem, para cada uma das Q ou Qred amostras pré-determinadas, uma série de fatores de ponderação Pred em relação à respectiva amostra pré-determinada, em que a série, quando sendo arranjada uma abaixo da outra de acordo com uma ordem de escaneamento por varredura dentre as amostras pré-determinadas do bloco pré-determinado (18), forma um envelope que é onidirecionalmente não linear.
13. Decodificador de acordo com a reivindicação 12, caracterizado por os fatores de ponderação Pred*Q ou Pred*Qred serem não relacionados uns aos outros por meio de qualquer regra de mapeamento regular.
14. Decodificador de acordo com a reivindicação 12 ou 13, caracterizado por uma média de máxima de correlações cruzadas entre uma primeira série de fatores de ponderação em relação à respectiva amostra pré-determinada, e uma segunda série de fatores de ponderação em relação a amostras pré-determinadas diferentes da respectiva amostra pré-determinada, ou uma versão revertida da última série, qualquer que seja, levando a um máximo superior, ser inferior a um limite pré- determinado.
15. Decodificador de acordo com a reivindicação 14, caracterizado por o limite pré-determinado ser 0,3.
16. Decodificador de acordo com qualquer uma das reivindicações 12 a 15, caracterizado por as amostras vizinhas Pred (17) serem localizadas ao longo de um caminho unidimensional que se estende ao longo de dois lados do bloco pré- determinado (18) e, para cada uma das amostras pré-determinadas Q ou Qred, a série de fatores de ponderação Pred em relação à respectiva amostra pré-determinada é ordenada de uma maneira que atravessa o caminho unidimensional em uma direção pré-determinada.
17. Decodificador de acordo com qualquer uma das reivindicações 1 a 16, caracterizado por ser configurado para derivar, para o bloco pré-determinado (18), um resíduo de previsão (34”) a partir do fluxo contínuo de dados (12), e reconstruir (42’) o bloco pré-determinado (18) usando o resíduo de previsão (34”) e os valores previstos (24’) para as amostras pré-determinadas (24’, 104, 108, 108’).
18. Decodificador de acordo com qualquer uma das reivindicações 10 a 17, caracterizado por ser configurado para derivar, para o bloco pré-determinado (18), um resíduo de previsão (34”) a partir do fluxo contínuo de dados (12) a fim de obter, para cada um do conjunto de Q ou Qred amostras pré-determinadas, um correspondente valor residual, e reconstruir o bloco pré-determinado (18) usando o resíduo de previsão (34”) e os valores previstos (24’, 104) para as amostras pré-determinadas (118’, 118”) pela correção do valor previsto para cada conjunto de Q ou Q red amostras pré- determinadas pelo correspondente valor residual (34”) para obter um correspondente valor reconstruído (10) de forma que o correspondente valor reconstruído (10) dependa das Pred amostras vizinhas (102) no conjunto reduzido (102) de valores de amostra estritamente linearmente, exceto por, opcionalmente, uma limitação aplicada depois da previsão e/ou da correção.
19. Decodificador de acordo com qualquer uma das reivindicações 1 a 18, caracterizado por o decodificador ser configurado para subdividir a figura (10) em uma pluralidade de blocos de diferentes tamanhos de bloco, que compreendem o bloco pré-determinado (18), em que o decodificador é configurado para selecionar a transformação linear ou linear afim (19, 17M, Ak) dependendo de uma largura W e uma altura H do bloco pré-determinado (18) de maneira tal que a transformação linear ou linear afim selecionada para o bloco pré-determinado (18) seja selecionada a partir de um primeiro conjunto (S1) de transformações linear ou linear afim desde que a largura W e a altura H do bloco pré-determinado (18) estejam em um primeiro conjunto de pares de largura/altura, um segundo conjunto (S2) de transformações linear ou linear afim desde que a largura W e a altura H do bloco pré-determinado (18) estejam em um segundo conjunto de pares de largura/altura que é disjunto do primeiro conjunto de pares de largura/altura, e um terceiro conjunto (S0) de transformações linear ou linear afim desde que a largura W e a altura H do bloco pré-determinado (18) estejam em um terceiro conjunto de um ou mais pares de largura/altura, que é disjunto dos primeiro e segundo conjuntos de pares de largura/altura.
20. Decodificador de acordo com a reivindicação 21, caracterizado por ser configurado de forma que o terceiro conjunto (S0) de um ou mais pares de largura/altura meramente compreenda um par de largura/altura, W’, H’, e cada transformação linear ou linear afim no terceiro conjunto (S0) de transformações linear ou linear afim seja para transformar N’ valores de amostra para W’*H’ valores previstos para um arranjo W’*H’ de posições de amostra.
21. Decodificador de acordo com qualquer uma das reivindicações anteriores, caracterizado por ser configurado de forma que cada um dos primeiro e segundo conjunto (S1, S2) de pares de largura/altura compreender um primeiro par de largura/altura Wp, Hp com Wp sendo desigual a Hp e um segundo par de largura/altura Wq, Hq com Hq=Wp e Wq=Hp.
22. Decodificador de acordo com a reivindicação 21, caracterizado por ser configurado de forma que cada um do primeiro e do segundo conjuntos (S 1, S2) de pares de largura/altura compreenda adicionalmente um terceiro par de largura/altura W p, Hp com Wp sendo igual a Hp e Hp > Hq.
23. Decodificador de acordo com qualquer uma das reivindicações anteriores, caracterizado por o mesmo conjunto de transformações linear ou linear afim ser compartilhado por múltiplos pares de largura/altura do bloco pré-determinado.
24. Decodificador de acordo com qualquer uma das reivindicações 1 a 23, caracterizado por ser configurado para ler para o bloco pré-determinado (18) um índice de conjunto (944) do fluxo contínuo de dados (12), selecionar a transformação linear ou linear afim dependendo do índice de conjunto (k) dentre um conjunto pré-determinado de transformações linear ou linear afim.
25. Decodificador de acordo com a reivindicação 24, caracterizado por a pluralidade de amostras vizinhas (17) estender unidimensionalmente ao longo de dois lados do bloco pré-determinado (18) e o decodificador ser configurado para realizar a redução (811) por, para um primeiro subconjunto (17a) da pluralidade de amostras vizinhas, que é adjacente a um primeiro lado do bloco pré-determinado, agrupar o primeiro subconjunto (17a) em primeiros grupos (110) de uma ou mais amostras vizinhas consecutivas e, para um segundo subconjunto (17c) da pluralidade de amostras vizinhas, que é adjacente a um segundo lado do bloco pré-determinado, agrupar o segundo subconjunto (17c) em segundos grupos (110) de uma ou mais amostras vizinhas consecutivas e realizar uma amostragem descendente ou uma ponderação em cada um dos primeiro e segundo grupos (110) de uma ou mais amostras vizinhas que têm mais do que duas amostras vizinhas, para obter primeiros valores de amostra (110) a partir dos primeiros grupos (17a) e segundos valores de amostra (102) para os segundos grupos (17c), e o decodificador sendo configurado para selecionar a transformação linear ou linear afim dependendo do índice de conjunto dentre um conjunto pré-determinado de transformações linear ou linear afim de maneira tal que dois diferentes estados do índice de conjunto resultem em uma seleção de uma mesma transformação linear ou linear afim do conjunto pré- determinado de transformações linear ou linear afim, e sujeitar o conjunto reduzido (102) de valores de amostra à transformação linear ou linear afim pré-determinada, no caso do índice de conjunto considerando um primeiro dos dois diferentes estados na forma de um primeiro vetor para produzir um vetor de saída de valores previstos, e distribuir os valores previstos do vetor de saída ao longo de uma primeira ordem de escaneamento sobre as amostras pré-determinadas do bloco pré- determinado, e no caso do índice de conjunto considerando um segundo dos dois estados diferentes na forma de um segundo vetor, o primeiro e o segundo vetores diferindo de forma que componentes preenchidos por um dos primeiros valores de amostra no primeiro vetor sejam preenchidos por um dos segundos valores de amostra no segundo vetor, e componentes preenchidos por um dos segundos valores de amostra no primeiro vetor sejam preenchidos por um dos primeiros valores de amostra no segundo vetor, para produzir um vetor de saída de valores previstos, e distribuir os valores previstos do vetor de saída ao longo de uma segunda ordem de escaneamento sobre as amostras pré-determinadas do bloco pré-determinado que é transposto em relação à primeira ordem de escaneamento.
26. Decodificador de acordo com qualquer uma das reivindicações 1 a 25, caracterizado por cada transformação linear ou linear afim no primeiro conjunto (S1) de transformações linear ou linear afim ser para transformar N1 valores de amostra em w1*h1 valores previstos para um arranjo w1*h1 de posições de amostra e cada transformação linear ou linear afim no segundo conjunto (S 2) de transformações linear ou linear afim ser para transformar N2 valores de amostra em w2*h2 valores previstos para um arranjo w2*h2 de posições de amostra, e em que, para um primeiro para pré-determinado do primeiro conjunto (S1) de pares de largura/altura, w1 excede a largura do primeiro par de largura/altura pré- determinado ou h1 excede a altura do primeiro par de largura/altura pré-determinado, e, para um segundo par pré-determinado do primeiro conjunto (S1) de pares de largura/altura, nem w1 excede a largura do segundo par de largura/altura pré- determinado nem h1 excede a altura do segundo par de largura/altura pré- determinado, e em que o decodificador é configurado para realizar a redução (100, 811), por amostragem descendente ou ponderação, da pluralidade de amostras vizinhas para obter o conjunto reduzido (102) de valores de amostras de forma que o conjunto reduzido (102) de valores de amostras tenha N1 valores de amostra se o bloco pré-determinado for do primeiro par de largura/altura pré-determinado e se o bloco pré-determinado for do segundo par de largura/altura pré-determinado, e realizar a sujeição (813) do conjunto reduzido (102) de valores de amostra à transformação linear ou linear afim selecionada pelo uso apenas de uma primeira subparte da transformação linear ou linear afim selecionada que é relacionada a uma subamostragem do arranjo w1*h1 de posições de amostra ao longo da dimensão da largura se w1 exceder a largura do um par de largura/altura, ou ao longo da dimensão da altura se h1 exceder a altura do um par de largura/altura se o bloco pré-determinado for do primeiro par de largura/altura pré-determinado, e da transformação linear ou linear afim selecionada completamente se o bloco pré-determinado for do segundo par de largura/altura pré-determinado.
27. Decodificador de acordo com qualquer uma das reivindicações 1 a 26, caracterizado por cada transformação linear ou linear afim no primeiro conjunto de transformações linear ou linear afim ser para transformar N 1 valores de amostra em w1*h1 valores previstos para um arranjo w1*h1 de posições de amostra com w1=h1 e cada transformação linear ou linear afim no segundo conjunto de transformações linear ou linear afim ser para transformar N2 valores de amostra em w2*h2 valores previstos para um arranjo w2*h2 de posições de amostra com w2=h2.
28. Método de decodificação, para decodificar uma figura (16) subdividida em uma pluralidade de blocos de diferentes tamanhos de bloco, que compreendem um bloco pré-determinado (18), caracterizado por o método compreender: prever um bloco pré-determinado (18) da figura usando uma pluralidade de amostras vizinhas (17) por reduzir (100, 811), por amostragem descendente ou ponderação, a pluralidade de amostras vizinhas para obter um conjunto reduzido (102) de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas, em que a redução compreende agrupar a pluralidade de amostras vizinhas (17) em grupos (110) de uma ou mais amostras vizinhas consecutivas e realizar uma amostragem descendente ou uma ponderação em cada grupo (110) de uma ou mais amostras vizinhas que têm duas ou mais do que duas amostras vizinhas, e sujeitar (812) o conjunto reduzido (102) de valores de amostra a uma transformação linear ou linear afim (19) para obter valores previstos para amostras pré-determinadas (104, 118’, 188”) do bloco pré-determinado, em que a sujeição (812) inclui selecionar a transformação linear ou linear afim (19, 17M, Ak) dependendo de uma largura W e uma altura H do bloco pré-determinado (18), de maneira tal que a transformação linear ou linear afim selecionada para o bloco selecionado (18) seja selecionada a partir de um primeiro conjunto de transformações linear ou linear afim, desde que a largura W e a altura H do bloco pré-determinado (81) estejam em um primeiro conjunto de pares de largura/altura e um segundo conjunto de transformações linear ou linear afim, desde que a largura W e a altura H do bloco pré-determinado estejam em um segundo conjunto de pares de largura/altura que é disjunto do primeiro conjunto de pares de largura/altura.
29. Codificador para codificação de uma figura em um fluxo contínuo de dados, o codificador sendo configurado para subdividir a figura (16) em uma pluralidade de blocos de diferentes tamanhos de bloco, que compreendem um bloco pré-determinado (18), caracterizado por o codificador ser configurado para prever um bloco pré-determinado (18) da figura usando uma pluralidade de amostras vizinhas (17a,c) por reduzir (100, 811) a pluralidade de amostras vizinhas para obter um conjunto reduzido (102) de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas, sujeitar (812) o conjunto reduzido (102) de valores de amostra a uma transformação linear ou linear afim (19) para obter valores previstos para amostras pré-determinadas (104) do bloco pré-determinado, em que o codificador é configurado para realizar a redução pelo agrupamento da pluralidade de amostras vizinhas em grupos (110) de uma ou mais amostras vizinhas consecutivas e realizar uma amostragem descendente ou uma ponderação em cada grupo das uma ou mais amostras vizinhas que têm mais do que duas amostras vizinhas, em que o codificador é configurado para selecionar a transformação linear ou linear afim (19, Ak) dependendo de uma largura W e altura H do bloco pré- determinado (18), de maneira tal que a transformação linear ou linear afim (19, A k) selecionada para o bloco pré-determinado (18) seja selecionada a partir de um primeiro conjunto de transformações linear ou linear afim, desde que a largura W e a altura H do bloco pré-determinado (18) estejam em um primeiro conjunto de pares de largura/altura e um segundo conjunto de transformações linear ou linear afim, desde que a largura W e a altura H do bloco pré-determinado (18) estejam em um segundo conjunto de pares de largura/altura que é disjunto do primeiro conjunto de pares de largura/altura.
30. Codificador de acordo com a reivindicação 29, caracterizado por ser configurado para derivar, por interpolação, valores de previsão para amostras adicionais (108) do bloco pré-determinado com base nos valores previstos para as amostras pré- determinadas e na pluralidade de amostras vizinhas.
31. Codificador de acordo com a reivindicação 30, caracterizado por a pluralidade de amostras vizinhas estender unidimensionalmente ao longo de dois lados do bloco pré-determinado, as amostras pré-determinadas serem arranjadas em linhas e colunas e, ao longo de pelo menos uma das linhas e colunas, as amostras pré-determinadas serem posicionadas em cada n-ésima posição a partir de uma amostra (112) da amostra pré-determinada adjacente aos dois lados do bloco pré-determinado e o codificador ser configurado para, com base na pluralidade de amostras vizinhas, determinar, para cada uma das pelo menos uma das linhas e das colunas, um valor de suporte para uma (118) da pluralidade de posições vizinhas, que é alinhada à respectiva uma das pelo menos uma das linhas e das colunas, em que o codificador é configurado para derivar, por interpolação, os valores de previsão para as amostras adicionais (108) do bloco pré-determinado com base em valores previstos para as amostras pré-determinadas e os valores de suporte para as amostras vizinhas alinhadas à pelo menos uma das linhas e colunas.
32. Codificador de acordo com a reivindicação 31, caracterizado por as amostras pré-determinadas serem posicionadas em cada n-ésima posição de amostra (112) da amostra pré-determinada que é adjacente aos dois lados do bloco pré- determinado ao longo das linhas e as amostras pré-determinadas serem posicionadas em cada m-ésima posição de amostra (112) da amostra pré-determinada que é adjacente aos dois lados do bloco pré-determinado ao longo das colunas, em que n, m>1.
33. Codificador de acordo com a reivindicação 31 ou 32, caracterizado por ser configurado para, ao longo de pelo menos uma das linhas e coluna, realizar a determinação dos valores de suporte por amostragem descendente ou ponderação (122), para cada valor de suporte, um grupo (120) de amostras vizinhas na pluralidade de amostras vizinhas que inclui a amostra vizinha (118) para a qual o respectivo valor de suporte é determinado.
34. Codificador de acordo com qualquer uma das reivindicações 30 a 33, caracterizado por ser configurado para realizar a interpolação por deslocamento de bit.
35. Codificador de acordo com qualquer uma das reivindicações 30 a 34, caracterizado por a pluralidade de amostras vizinhas estender unidimensionalmente ao longo de dois lados do bloco pré-determinado.
36. Codificador de acordo com qualquer uma das reivindicações 30 a 35, caracterizado por a transformação linear ou linear afim compreender fatores de ponderação Pred*Qred ou Pred*Q com P sendo o número de valores de amostra no conjunto reduzido (102) de valores de amostra e Q ser o número de amostras pré-determinadas no bloco pré-determinado, em que pelo menos fatores de ponderação ¼ Pred*Qred ou ¼ Pred*Q são valores de ponderação não zero, em que os fatores de ponderação Pred*Qred ou Pred*Q compreendem, para cada uma das amostras pré-determinadas Q ou Qred, uma série de fatores de ponderação Pred em relação à respectiva amostra pré-determinada, em que a série, quando sendo arranjada uma abaixo da outra de acordo com uma ordem de escaneamento por varredura dentre as amostras pré-determinadas do bloco pré- determinado, forma um envelope que é onidirecionalmente não linear.
37. Codificador de acordo com a reivindicação 36, caracterizado por os fatores de ponderação Pred*Qred ou Pred*Q serem não relacionados uns aos outros por meio de nenhuma regra de mapeamento regular.
38. Codificador de acordo com qualquer uma das reivindicações 36 a 37, caracterizado por uma média de máxima de correlações cruzadas entre uma primeira série de fatores de ponderação em relação à respectiva amostra pré- determinada, e uma segunda série de fatores de ponderação em relação a amostras pré-determinadas diferentes da respectiva amostra pré-determinada, ou uma versão revertida da última série, qualquer que seja, levando a um máximo superior, ser inferior a um limite pré-determinado.
39. Codificador de acordo com a reivindicação 38, caracterizado por o limite pré-determinado ser 0,3.
40. Codificador de acordo com qualquer uma das reivindicações 36 a 39, caracterizado por as P amostras vizinhas serem localizadas ao longo de um caminho unidimensional que se estende ao longo de dois lados do bloco pré-determinado e, para cada uma das Q amostras pré-determinadas, a série de P fatores de ponderação em relação à respectiva amostra pré-determinada ser ordenada de uma maneira que atravessa o caminho unidimensional em uma direção pré-determinada.
41. Codificador de acordo com qualquer uma das reivindicações 29 a 40,
caracterizado por ser configurado para inserir, para o bloco pré-determinado, um resíduo de previsão no fluxo contínuo de dados a partir do qual o bloco pré-determinado é reconstruível usando o resíduo de previsão e os valores previstos para as amostras pré-determinadas.
42. Codificador de acordo com qualquer uma das reivindicações 36 a 41, caracterizado por ser configurado para inserir, para o bloco pré-determinado (18), um resíduo de previsão (26, 34) no fluxo contínuo de dados (12) que indica, para cada uma das amostras pré- determinadas Q ou Qred, um correspondente valor residual, de forma que o bloco pré- determinado (18) possa ser reconstruído usando o resíduo de previsão (26, 34) e os valores previstos para as amostras pré-determinadas pela correção do valor previsto para cada conjunto de valores Q ou Qred de forma que o correspondente valor reconstruído dependa das amostras vizinhas Pred (102) no conjunto reduzido (102) de valores de amostra estritamente linearmente, exceto por, opcionalmente, uma limitação aplicada depois da previsão e/ou da correção.
43. Codificador de acordo com qualquer uma das reivindicações 29 a 42, caracterizado por o codificador ser configurado para subdividir a figura em uma pluralidade de blocos de diferentes tamanhos de bloco, que compreendem o bloco pré- determinado, em que o codificador é configurado para selecionar a transformação linear ou linear afim dependendo de uma largura W e uma altura H do bloco pré-determinado de maneira tal que a transformação linear ou linear afim selecionada para o bloco pré- determinado seja selecionada a partir de um primeiro conjunto (S1) de transformações linear ou linear afim desde que a largura W e a altura H do bloco pré-determinado estejam em um primeiro conjunto de pares de largura/altura, um segundo conjunto (S2) de transformações linear ou linear afim desde que a largura W e a altura H do bloco pré-determinado estejam em um segundo conjunto de pares de largura/altura que é disjunto do primeiro conjunto de pares de largura/altura, e um terceiro conjunto (S0) de transformações linear ou linear afim desde que a largura W e a altura H do bloco pré-determinado estejam em um terceiro conjunto de (S0) um ou mais pares de largura/altura, que é disjunto do primeiro e do segundo conjuntos de pares de largura/altura.
44. Codificador de acordo com a reivindicação 43, caracterizado por ser configurado de forma que o terceiro conjunto (S0) de um ou mais pares de largura/altura meramente compreenda um par de largura/altura, W’, H’, e cada transformação linear ou linear afim no terceiro conjunto (S0) de transformações linear ou linear afim seja para transformar N’ valores de amostra em W’*H’ valores previstos para um arranjo W’*H’ de posições de amostra.
45. Codificador de acordo com qualquer uma das reivindicações 29 a 44, caracterizado por ser configurado de forma que cada um dos primeiro e segundo conjuntos de pares de largura/altura compreenda um primeiro par de largura/altura Wp,Hp com Wp sendo desigual a Hp e um segundo par de largura/altura Wq,Hq com Hq=Wp e Wq=Hp.
46. Codificador de acordo com a reivindicação 45, caracterizado por ser configurado de forma que cada um dos primeiro e segundo conjuntos de pares de largura/altura compreenda adicionalmente um terceiro par de largura/altura Wp,Hp com Wp sendo igual a Hp e Hp > Hq.
47. Codificador de acordo com qualquer uma das reivindicações 44 a 46, caracterizado por o mesmo conjunto de transformações linear ou linear afim ser compartilhado por múltiplos pares de largura/altura do bloco pré-determinado.
48. Codificador de acordo com qualquer uma das reivindicações 29 a 47, caracterizado por ser configurado para inserir, para o bloco pré-determinado, um índice de conjunto no fluxo contínuo de dados, selecionar a transformação linear ou linear afim dependendo do índice de conjunto dentre um conjunto pré-determinado de transformações linear ou linear afim.
49. Codificador de acordo com a reivindicação 48, caracterizado por a pluralidade de amostras vizinhas estender unidimensionalmente ao longo de dois lados do bloco pré-determinado e o codificador ser configurado para realizar a redução por, para um primeiro subconjunto da pluralidade de amostras vizinhas, que é adjacente a um primeiro lado do bloco pré-determinado, agrupar o primeiro subconjunto nos primeiros grupos (110) de uma ou mais amostras vizinhas consecutivas e, para um segundo subconjunto da pluralidade de amostras vizinhas, que é adjacente a um segundo lado do bloco pré-determinado, agrupar o segundo subconjunto nos segundos grupos (110) de uma ou mais amostras vizinhas consecutivas e realizar uma amostragem descendente ou uma ponderação em cada um do primeiro e do segundo grupos de uma ou mais amostras vizinhas que têm mais do que duas amostras vizinhas, para obter primeiros valores de amostra dos primeiros grupos e segundos valores de amostra para os segundos grupos, e o codificador configurado para selecionar a transformação linear ou linear afim dependendo do índice de conjunto dentre um conjunto pré-determinado de transformações linear ou linear afim de maneira tal que dois diferentes estados do índice de conjunto resultem em uma seleção de uma mesma transformação linear ou linear afim do conjunto pré- determinado de transformações linear ou linear afim, e sujeitar o conjunto reduzido (102) de valores de amostra à transformação linear ou linear afim pré-determinada no caso do índice de conjunto considerando um primeiro dos dois diferentes estados na forma de um primeiro vetor para produzir um vetor de saída de valores previstos, e distribuir os valores previstos do vetor de saída ao longo de uma primeira ordem de escaneamento sobre as amostras pré-determinadas do bloco pré- determinado e no caso do índice de conjunto considerando um segundo dos dois estados diferentes na forma de um segundo vetor, o primeiro e o segundo vetores diferindo de forma que componentes preenchidos por um dos primeiros valores de amostra no primeiro vetor sejam preenchidos por um dos segundos valores de amostra no segundo vetor, e componentes preenchidos por um dos segundos valores de amostra no primeiro vetor sejam preenchidos por um dos primeiros valores de amostra no segundo vetor, para produzir um vetor de saída de valores previstos, e distribuir os valores previstos do vetor de saída ao longo de uma segunda ordem de escaneamento sobre as amostras pré-determinadas do bloco pré-determinado que é transposto em relação à primeira ordem de escaneamento.
50. Codificador de acordo com qualquer uma das reivindicações 42 a 49, caracterizado por cada transformação linear ou linear afim no primeiro conjunto de transformações linear ou linear afim ser para transformar N 1 valores de amostra em w1*h1 valores previstos para um arranjo w1*h1 de posições de amostra e cada transformação linear ou linear afim no segundo conjunto de transformações linear ou linear afim ser para transformar N2 valores de amostra em w2*h2 valores previstos para um arranjo w2*h2 de posições de amostra, e em que para um primeiro par pré-determinado do primeiro conjunto de pares de largura/altura, w1 excede a largura do primeiro par de largura/altura pré- determinado ou h1 excede a altura do primeiro par de largura/altura pré-determinado, e, para um segundo par pré-determinado do primeiro conjunto de pares de largura/altura, nem w1 excede a largura do segundo par de largura/altura pré- determinado nem h1 excede a altura do segundo par de largura/altura pré- determinado, e em que o codificador é configurado para realizar a redução (100), por amostragem descendente ou ponderação, da pluralidade de amostras vizinhas para obter o conjunto reduzido (102) de valores de amostras de forma que o conjunto reduzido (102) de valores de amostras tenha N 1 valores de amostra se o bloco pré-determinado for do primeiro par de largura/altura pré-determinado e se o bloco pré-determinado for do segundo par de largura/altura pré-determinado, e realizar a sujeição do conjunto reduzido (102) de valores de amostra à transformação linear ou linear afim selecionada pelo uso apenas de uma primeira subparte da transformação linear ou linear afim selecionada que é relacionada a uma subamostragem do arranjo w1*h1 de posições de amostra ao longo da dimensão da largura se w1 exceder a largura do um par de largura/altura, ou ao longo da dimensão da altura se h1 exceder a altura do um par de largura/altura se o bloco pré-determinado for do primeiro par de largura/altura pré-determinado, e da transformação linear ou linear afim selecionada completamente se o bloco pré-determinado for do segundo par de largura/altura pré-determinado.
51. Codificador de acordo com qualquer uma das reivindicações 29 a 50, caracterizado por cada transformação linear ou linear afim no primeiro conjunto de transformações linear ou linear afim ser para transformar N 1 valores de amostra em w1*h1 valores previstos para um arranjo w1*h1 de posições de amostra com w1=h1 e cada transformação linear ou linear afim no segundo conjunto de transformações linear ou linear afim ser para transformar N2 valores de amostra em w2*h2 valores previstos para um arranjo w2*h2 de posições de amostra com w2=h2.
52. Método de codificação, para codificar uma figura (16) subdividida em uma pluralidade de blocos de diferentes tamanhos de bloco, que compreendem um bloco pré-determinado (18), caracterizado por o método compreender prever um bloco pré-determinado (18) da figura usando uma pluralidade de amostras vizinhas (17a, 17c) por reduzir (100), por amostragem descendente ou ponderação, a pluralidade de amostras vizinhas para obter um conjunto reduzido (102) de valores de amostras inferiores, no número de amostras, aos comparados com a pluralidade de amostras vizinhas, em que a redução compreende agrupar a pluralidade de amostras vizinhas (17) em grupos (110) de uma ou mais amostras vizinhas consecutivas e realizar uma amostragem descendente ou uma ponderação em cada grupo (110) de uma ou mais amostras vizinhas que têm duas ou mais do que duas amostras vizinhas, e sujeitar o conjunto reduzido (102) de valores de amostra a uma transformação linear ou linear afim (19) para obter valores previstos para amostras pré-determinadas (104) do bloco pré-determinado, em que a sujeição (812) inclui selecionar a transformação linear ou linear afim (19, 17M, Ak) dependendo de uma largura W e uma altura H do bloco pré-determinado (18), de maneira tal que a transformação linear ou linear afim selecionada para o bloco selecionado (18) seja selecionada a partir de um primeiro conjunto de transformações linear ou linear afim, desde que a largura W e a altura H do bloco pré-determinado (81) estejam em um primeiro conjunto de pares de largura/altura e um segundo conjunto de transformações linear ou linear afim, desde que a largura W e a altura H do bloco pré-determinado estejam em um segundo conjunto de pares de largura/altura que é disjunto do primeiro conjunto de pares de largura/altura.
53. Unidade de armazenamento não transitória, caracterizada por armazenar instruções que, quando executadas por um processador, fazem com que o processador realize um método como definido na reivindicação 28 ou 52.
BR112021011929-9A 2018-12-20 2019-12-19 Unidade de armazenamento não transitória, decodificador para decodificação e codificador para codificação de uma figura a partir de um fluxo contínuo de dados e método de decodificação e codificação BR112021011929A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18214976.5 2018-12-20
EP18214976 2018-12-20
PCT/EP2019/086428 WO2020127811A2 (en) 2018-12-20 2019-12-19 Intra predictions using linear or affine transforms with neighbouring sample reduction

Publications (1)

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

Family

ID=64901350

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021011929-9A BR112021011929A2 (pt) 2018-12-20 2019-12-19 Unidade de armazenamento não transitória, decodificador para decodificação e codificador para codificação de uma figura a partir de um fluxo contínuo de dados e método de decodificação e codificação

Country Status (9)

Country Link
US (2) US11503339B2 (pt)
EP (1) EP3900342A2 (pt)
JP (2) JP2022514870A (pt)
KR (1) KR20210103539A (pt)
CN (1) CN113475071A (pt)
BR (1) BR112021011929A2 (pt)
MX (1) MX2021007328A (pt)
TW (2) TWI755665B (pt)
WO (1) WO2020127811A2 (pt)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2021012229A (es) * 2019-04-12 2021-11-03 Beijing Bytedance Network Tech Co Ltd Determinacion de modo de codificacion de croma basada en intraprediccion basada en matriz.
CN117499656A (zh) * 2019-04-16 2024-02-02 北京字节跳动网络技术有限公司 帧内编解码模式下的矩阵推导
US11381808B2 (en) * 2019-04-25 2022-07-05 Hfi Innovation Inc. Method and apparatus of matrix based intra prediction in image and video processing
KR20220002318A (ko) 2019-05-01 2022-01-06 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 필터링을 이용한 행렬 기반 인트라 예측
WO2020221372A1 (en) 2019-05-01 2020-11-05 Beijing Bytedance Network Technology Co., Ltd. Context coding for matrix-based intra prediction
KR20220006059A (ko) 2019-05-10 2022-01-14 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 처리를 위한 이차 변환 행렬의 선택
BR112021022868A2 (pt) 2019-05-22 2022-01-04 Beijing Bytedance Network Tech Co Ltd Método de processamento de vídeos, aparelho para processar dados de vídeo e meios de armazenamento e gravação não transitórios legíveis por computador
WO2020239017A1 (en) 2019-05-31 2020-12-03 Beijing Bytedance Network Technology Co., Ltd. One-step downsampling process in matrix-based intra prediction
EP3963885A4 (en) 2019-06-05 2022-12-14 Beijing Bytedance Network Technology Co., Ltd. DETERMINING CONTEXT FOR MATRIX-BASED INTRAPREDICTION
KR20220016844A (ko) 2019-06-07 2022-02-10 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 비트스트림들에서 감축된 2차 변환의 조건부 시그널링
JP7456441B2 (ja) 2019-06-11 2024-03-27 ソニーグループ株式会社 画像処理装置及び画像処理方法
JP7422858B2 (ja) 2019-08-03 2024-01-26 北京字節跳動網絡技術有限公司 ビデオ処理方法、装置、記憶媒体及び記憶方法
WO2021032045A1 (en) 2019-08-17 2021-02-25 Beijing Bytedance Network Technology Co., Ltd. Context modeling of side information for reduced secondary transforms in video
JP7444570B2 (ja) 2019-09-20 2024-03-06 シャープ株式会社 動画像復号装置、動画像符号化装置、動画像復号方法および動画像符号化方法
US20210092405A1 (en) * 2019-09-19 2021-03-25 Qualcomm Incorporated Matrix combination for matrix-weighted intra prediction in video coding
KR20220082847A (ko) 2019-10-28 2022-06-17 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 색상 성분에 기초한 신택스 시그널링 및 파싱
WO2023171988A1 (ko) * 2022-03-11 2023-09-14 현대자동차주식회사 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6258704B2 (ja) * 2010-11-04 2018-01-10 ジーイー ビデオ コンプレッション エルエルシー ブロック統合およびスキップモードをサポートする画像符号化および画像復号化
US9654785B2 (en) 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
US9866859B2 (en) 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
US20140064359A1 (en) 2012-08-31 2014-03-06 Qualcomm Incorporated Intra prediction most probable mode order improvement for scalable video coding
AU2014216056A1 (en) * 2014-08-25 2016-03-10 Canon Kabushiki Kaisha Method, apparatus and system for predicting a block of video samples
US10681380B2 (en) * 2015-06-12 2020-06-09 Panasonic Intellectual Property Management Co., Ltd. Image encoding method, image decoding method, image encoding apparatus, and image decoding apparatus
WO2017147765A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Methods for affine motion compensation
US11259047B2 (en) 2016-04-06 2022-02-22 Kt Corporation Method and apparatus for processing video signal
US10547854B2 (en) 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
CN107613294B (zh) * 2017-10-12 2020-04-07 杭州当虹科技股份有限公司 一种快速跳过hevc中p、b帧帧内预测模式的方法
KR20240007716A (ko) * 2018-09-13 2024-01-16 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 아핀 선형 가중 인트라 예측

Also Published As

Publication number Publication date
TW202031045A (zh) 2020-08-16
JP2023179682A (ja) 2023-12-19
TWI815272B (zh) 2023-09-11
KR20210103539A (ko) 2021-08-23
WO2020127811A3 (en) 2020-08-06
MX2021007328A (es) 2021-08-24
JP2022514870A (ja) 2022-02-16
TWI755665B (zh) 2022-02-21
WO2020127811A2 (en) 2020-06-25
US20230039672A1 (en) 2023-02-09
CN113475071A (zh) 2021-10-01
EP3900342A2 (en) 2021-10-27
US11503339B2 (en) 2022-11-15
TW202241130A (zh) 2022-10-16
US20210314618A1 (en) 2021-10-07

Similar Documents

Publication Publication Date Title
BR112021011929A2 (pt) Unidade de armazenamento não transitória, decodificador para decodificação e codificador para codificação de uma figura a partir de um fluxo contínuo de dados e método de decodificação e codificação
TWI771679B (zh) 以區塊為基礎之預測技術
AU2015261728B2 (en) Method and apparatus for intra prediction within display screen
US11350130B2 (en) Method and apparatus for processing video signal by using approximation transform on basis of preprocessing/postprocessing matrix
JP7455869B2 (ja) イントラ予測を用いた符号化
TW202106003A (zh) 使用基於矩陣之內預測及二次轉換之寫碼技術
US20210266527A1 (en) Video signal processing method and device using reference sample
US20210021871A1 (en) Method and apparatus for performing low-complexity operation of transform kernel for video compression
US20230188720A1 (en) MIP for All Channels in the Case of 4:4:4-Chroma Format and of Single Tree
TWI833073B (zh) 使用內預測之寫碼技術
US11290748B2 (en) Method and device for designing low complexity DST7