BR122023020352A2 - Aparelho de decodificação/codificação para decodificação/codificação de imagem e aparelho para transmissão de dados para uma imagem - Google Patents

Aparelho de decodificação/codificação para decodificação/codificação de imagem e aparelho para transmissão de dados para uma imagem Download PDF

Info

Publication number
BR122023020352A2
BR122023020352A2 BR122023020352-6A BR122023020352A BR122023020352A2 BR 122023020352 A2 BR122023020352 A2 BR 122023020352A2 BR 122023020352 A BR122023020352 A BR 122023020352A BR 122023020352 A2 BR122023020352 A2 BR 122023020352A2
Authority
BR
Brazil
Prior art keywords
transform
lfnst
block
index
mts
Prior art date
Application number
BR122023020352-6A
Other languages
English (en)
Inventor
Moonmo KOO
Jaehyun Lim
Seunghwan Kim
Mehdi Salehifar
Original Assignee
Lg Electronics Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lg Electronics Inc. filed Critical Lg Electronics Inc.
Priority claimed from BR112022006368A external-priority patent/BR112022006368A2/pt
Publication of BR122023020352A2 publication Critical patent/BR122023020352A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/18Methods 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 set of transform coefficients
    • 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
    • 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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

“APARELHO DE DECODIFICAÇÃO/CODIFICAÇÃO PARA DECODIFICAÇÃO/CODIFICAÇÃO DE IMAGEM E APARELHO PARA TRANSMISSÃO DE DADOS PARA UMA IMAGEM” Um método de decodificação de imagem de acordo com o presente documento compreende: uma etapa de codificação residual para analisar informação residual recebida em um nível de codificação residual e organizar coeficientes de transformada para um bloco atual de acordo com uma ordem de varredura predeterminada; uma etapa para derivar amostras residuais aplicando pelo menos uma de LFNST ou MTS aos coeficientes de transformada; e uma etapa para gerar uma gravura reconstruída com base nas amostras residuais, em que a LFNST é realizada com base em um índice de LFNST indicando um núcleo de LFNST, a MTS é realizada com base em um índice de MTS indicando um núcleo de MTS, o índice de LFNST e o índice de MTS são sinalizados em um nível de unidade de codificação, e o índice de MTS é sinalizado imediatamente após a sinalização do índice de LFNST.

Description

FUNDAMENTOS Campo da Técnica
[001] A presente revelação refere-se a uma técnica de codificação de imagem e, mais particularmente, a um método e um aparelho para codificar uma imagem com base na transformada em um sistema de codificação de imagem.
Técnica Relacionada
[002] Atualmente, a demanda por imagens/vídeos de alta resolução e alta qualidade, como 4K, 8K ou mais imagens/vídeos de ultra-alta definição (UHD), vem aumentando em vários campos. À medida que os dados de imagem/vídeo se tornam de maior resolução e qualidade, a quantidade de informações transmitidas ou quantidade de bits aumenta em comparação com os dados de imagem convencionais. Portanto, quando os dados de imagem são transmitidos usando um meio como uma fileira de banda larga convencional com fio/sem fio ou os dados de imagem/vídeo são armazenados usando um meio de armazenamento existente, o custo de transmissão e o custo de armazenamento são aumentados.
[003] Além disso, hoje em dia, o interesse e a demanda por mídia imersiva, tal como conteúdo de realidade virtual (VR), realidade artificial (AR) ou holograma, ou similares, estão aumentando, e a transmissão de imagens/vídeos com características de imagem diferentes daquelas de imagens reais, como uma imagem de jogo vem crescendo.
[004] Consequentemente, há uma necessidade de uma técnica de compressão de imagem/vídeo altamente eficiente para compactar e transmitir ou armazenar efetivamente e reproduzir informações de imagens/vídeos de alta resolução e alta qualidade com vários recursos, conforme descrito acima.
SUMÁRIO
[005] Um aspecto técnico da presente revelação é fornecer um método e um aparelho para aumentar a eficiência de codificação de imagem.
[006] Outro aspecto técnico da presente revelação é fornecer um método e um aparelho para aumentar a eficiência na codificação do índice de transformada.
[007] Ainda um outro aspecto técnico da presente divulgação é fornecer um método e aparelho de codificação de imagem usando LFNST e MTS.
[008] Ainda um outro aspecto técnico da presente divulgação é fornecer um método e aparelho de codificação de imagem para sinalização de índice de LFNST e índice de MTS.
[009] De acordo com uma modalidade da presente divulgação, é fornecido um método de decodificação de imagem realizada por um aparelho de decodificação. O método pode incluir: realizar codificação residual de organizar coeficientes de transformada para um bloco atual de acordo com uma ordem de varredura predeterminada analisando informação residual recebida em um nível de codificação residual; derivar amostras residuais aplicando pelo menos uma de uma LFNST ou uma MTS aos coeficientes de transformada; e gerar uma gravura reconstruída com base nas amostras residuais, em que a LFNST pode ser realizada com base em um índice de LFNST indicando um núcleo de LFNST, a MTS pode ser realizada com base em um índice de MTS indicando um núcleo de MTS, o índice de LFNST e o índice de MTS pode ser sinalizado em um nível de unidade de codificação, e o índice de MTS pode ser sinalizado imediatamente após o índice de LFNST ser sinalizado.
[010] Quando um tipo de árvore do bloco atual é um tipo de árvore única, o índice de LFNST pode ser analisado após a codificação residual para um bloco luma e um bloco croma do bloco atual ser realizada.
[011] Quando um tipo de árvore do bloco atual é um tipo de árvore dupla e um componente de croma é codificado, o índice de LFNST pode ser analisado após a codificação residual para um componente de Cb e um componente de Cr do bloco croma ser realizada.
[012] Quando o bloco atual é particionado em uma pluralidade de blocos de subpartição, o índice de LFNST pode ser analisado após a codificação residual para a pluralidade de blocos de subpartição ser realizada.
[013] Quando o bloco atual é particionado na pluralidade de blocos de subpartição, o índice de LFNST pode ser analisado independentemente de se os coeficientes de transformada existirem em uma região excluindo uma posição DC de cada uma da pluralidade de blocos de subpartição.
[014] A realização da codificação residual pode incluir: derivar uma primeira variável indicando se os coeficientes de transformada existem em uma região excluindo uma posição DC do bloco atual; e derivar uma segunda variável indicando se os coeficientes de transformada existem em uma segunda região excluindo uma primeira região superior esquerda do bloco atual ou os blocos de subpartição em que o bloco atual é particionado, e o índice de LFNST pode ser analisado quando os coeficientes de transformada existem na região excluindo a posição DC e os coeficientes de transformada não existem na segunda região.
[015] A realização da codificação residual pode incluir derivar uma terceira variável indicando se os coeficientes de transformada existem em uma região excluindo uma região 16 x 16 superior esquerda do bloco atual, e o índice de MTS pode ser analisado quando os coeficientes de transformada não existem na região excluindo a região 16 x 16.
[016] De acordo com uma outra modalidade da presente divulgação, é fornecido um método de codificação de imagem realizada por um aparelho de codificação. O método pode incluir: realizar uma operação de derivação de coeficiente de transformada de derivar coeficientes de transformada para um bloco atual aplicando pelo menos uma de uma LFNST ou uma MTS às amostras residuais e organizar os coeficientes de transformada de acordo com uma ordem de varredura predeterminada; codificar pelo menos um de um índice de LFNST indicando um núcleo de LFNST ou um índice de MTS indicando um núcleo de MTS; e construir e emitir informações de imagem de modo que o índice de LFNST e o índice de MTS são sinalizados em um nível de unidade de codificação e o índice de MTS é sinalizado imediatamente após o índice de LFNST ser sinalizado.
[017] De acordo com ainda uma outra modalidade da presente divulgação, pode ser fornecida um meio de armazenamento digital que armazena dados de imagem incluindo informações de imagem codificadas e um fluxo de bits gerado de acordo com um método de codificação de imagem realizado por um aparelho de codificação.
[018] De acordo com ainda uma outra modalidade da presente divulgação, pode ser fornecido um meio de armazenamento digital que armazena dados de imagem incluindo informações de imagem codificadas e um fluxo de bits para fazer com que um aparelho de decodificação realize o método de decodificação de imagem.
[019] De acordo com a presente divulgação, é possível aumentar a eficiência geral de compressão de imagem/vídeo.
[020] De acordo com a presente divulgação, é possível aumentar a eficiência em codificação de índice de transformada.
[021] Ainda um outro aspecto técnico da presente divulgação fornece um método e aparelho de codificação de imagem usando LFNST e MTS.
[022] Ainda um outro aspecto técnico da presente divulgação pode fornecer um método e aparelho de codificação de imagem para sinalização de índice de LFNST e índice de MTS.
[023] Os efeitos que podem ser obtidos através de exemplos específicos do presente relatório descritivo não se limitam aos efeitos listados acima. Por exemplo, vários efeitos técnicos que um versado na técnica relacionada pode entender ou derivar do presente relatório descritivo podem existir. Consequentemente, os efeitos específicos do presente relatório descritivo não estão limitados àqueles explicitamente descritos no mesmo e podem incluir vários efeitos que podem ser entendidos ou derivados das características técnicas do presente relatório descritivo.
BREVE DESCRIÇÃO DOS DESENHOS
[024] A Figura 1 é um diagrama que explica esquematicamente uma configuração de um aparelho de codificação de vídeo/imagem ao qual as modalidades da presente revelação são aplicáveis.
[025] A Figura 2 é um diagrama que explica esquematicamente uma configuração de um aparelho de decodificação de vídeo/imagem ao qual as modalidades da presente revelação são aplicáveis.
[026] A Figura 3 ilustra esquematicamente uma técnica de transformada múltipla de acordo com uma modalidade da presente revelação.
[027] A Figura 4 mostra exemplificativamente modos intradirecionais de 65 direções de predição.
[028] A Figura 5 é um diagrama que ilustra uma RST de acordo com uma modalidade da presente revelação.
[029] A Figura 6 é um diagrama que ilustra uma sequência de arranjos de dados de saída de uma transformada primária direta em um vetor unidimensional de acordo com um exemplo.
[030] A Figura 7 é um diagrama que ilustra uma sequência de arranjos de dados de saída de uma transformação secundária direta em um bloco bidimensional de acordo com um exemplo.
[031] A Figura 8 é um diagrama que ilustra um formato de bloco ao qual a LFNST é aplicada.
[032] A Figura 9 é um diagrama que ilustra uma disposição de dados de saída de uma LFNST direta de acordo com um exemplo e mostra um bloco no qual os dados de saída da LFNST direta estão arranjados de acordo com um formato de bloco.
[033] A Figura 10 mostra que o número de dados de saída para a LFNST direta é limitado a um máximo de 16 de acordo com um exemplo.
[034] A Figura 11 é um diagrama que ilustra o zeramento em um bloco ao qual a LFNST 4x4 é aplicada de acordo com um exemplo.
[035] A Figura 12 é um diagrama que ilustra o zeramento em um bloco ao qual a LFNST 8x8 é aplicada de acordo com um exemplo.
[036] A Figura 13 é um diagrama que ilustra o zeramento em um bloco ao qual a LFNST 8x8 é aplicada de acordo com outro exemplo.
[037] A Figura 14 é um diagrama que ilustra um exemplo de uma divisão de sub-bloco de um bloco de codificação.
[038] A Figura 15 é um diagrama que ilustra outro exemplo de uma divisão de sub-bloco de um bloco de codificação.
[039] A Figura 16 é um diagrama que ilustra a simetria entre um bloco Mx2 (Mx1) e um bloco 2xM (1xM) de acordo com um exemplo.
[040] A Figura 17 é um diagrama exemplificando um bloco 2xM transposto de acordo com um exemplo.
[041] A Figura 18 ilustra uma ordem de varredura para uma região 8x2 ou 2x8 de acordo com um exemplo.
[042] A Figura 19 é um diagrama para explicar um método de decodificação de uma imagem de acordo com um exemplo.
[043] A Figura 20 é um diagrama para explicar um método de codificação de uma imagem de acordo com um exemplo.
[044] A Figura 21 ilustra esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente divulgação é aplicável.
[045] A Figura 22 ilustra a estrutura de um sistema de streaming de conteúdo ao qual a presente divulgação é aplicada.
DESCRIÇÃO DE MODALIDADES EXEMPLIFICATIVAS
[046] Embora a presente revelação possa ser suscetível a várias modificações e inclua várias modalidades, suas modalidades específicas foram mostradas nos desenhos a título de exemplo e agora serão descritas em detalhes. No entanto, não há intenção de limitar a presente revelação às modalidades específicas reveladas neste documento. A terminologia usada neste documento destina-se apenas a descrever modalidades específicas e não se destina a limitar a ideia técnica da presente revelação. As formas singulares podem incluir as formas plurais, a menos que o contexto indique claramente o contrário. Os termos como "incluir" e "ter" destinam-se a indicar que existem recursos, números, etapas, operações, elementos, componentes ou combinações dos mesmos usados na descrição a seguir e, portanto, não devem ser entendidos como a possibilidade de existência ou adição de um ou mais recursos, números, etapas, operações, elementos, componentes ou combinações diferentes dos mesmos serem excluídos antecipadamente.
[047] Enquanto isso, cada componente nos desenhos descritos neste documento é ilustrado independentemente para conveniência da descrição quanto às funções características diferentes umas das outras e, no entanto, isso não significa que cada componente seja realizado por um hardware ou software separado. Por exemplo, quaisquer dois ou mais desses componentes podem ser combinados para formar um único componente e qualquer componente único pode ser dividido em vários componentes. As modalidades nas quais os componentes são combinados e/ou divididos pertencerão ao escopo do direito de patente da presente revelação, desde que não se afastem da essência da presente revelação.
[048] Doravante, as modalidades preferidas da presente revelação serão explicadas em mais detalhes ao fazer referência aos desenhos anexos. Além disso, os mesmos sinais de referência são usados para os mesmos componentes nos desenhos, e descrições repetidas para os mesmos componentes serão omitidas.
[049] Este documento refere-se à codificação de vídeo/imagem. Por exemplo, o método/exemplo revelado neste documento pode estar relacionado a um padrão VVC (Versatile Video Coding) (ITU-T Rec. H.266), um padrão de codificação de vídeo/imagem de próxima geração após VVC, ou outros padrões relacionados à codificação de vídeo (por exemplo, padrão HEVC (Codificação de Vídeo de Alta Eficiência) (ITU-T Rec. H.265), padrão EVC (codificação de vídeo essencial), padrão AVS2, etc.).
[050] Neste documento, várias modalidades relacionadas à codificação de vídeo/imagem podem ser fornecidas e, a menos que especificado em contrário, as modalidades podem ser combinadas entre si e executadas.
[051] Neste documento, um vídeo pode significar um conjunto de uma série de imagens ao longo do tempo. Geralmente uma gravura significa uma unidade que representa uma imagem em uma zona de tempo específica, e uma fatia/ladrilho é uma unidade que constitui uma parte da gravura. A fatia/ladrilho pode incluir uma ou mais unidades da árvore de codificação (CTUs). Uma gravura pode ser constituída por uma ou mais fatias/ladrilhos. Uma gravura pode ser constituída por um ou mais grupos de tile. Um grupo de tile pode incluir um ou mais tiles.
[052] Um pixel ou um pel pode significar uma menor unidade que constitui uma gravura (ou imagem). Além disso, o termo 'amostra' pode ser usado como um termo correspondente a um pixel. Uma amostra geralmente pode representar um pixel ou um valor de um pixel e pode representar apenas um valor de pixel/pixel de um componente de luma ou apenas um valor de pixel/pixel de um componente de croma. Alternativamente, a amostra pode referir-se a um valor de pixel no domínio espacial, ou quando este valor de pixel é convertido para o domínio de frequência, pode referir- se a um coeficiente de transformada no domínio de frequência.
[053] Uma unidade pode representar a unidade básica de processamento de imagem. A unidade pode incluir pelo menos uma região específica e informações relacionadas à região. Uma unidade pode incluir um bloco de luma e dois blocos de croma (por exemplo, cb, cr). A unidade e um termo como um bloco, uma área ou semelhante podem ser usados no lugar um do outro de acordo com as circunstâncias. Em um caso geral, um bloco M x N pode incluir um conjunto (ou uma matriz) de amostras (ou matrizes de amostras) ou coeficientes de transformada consistindo em M colunas e N fileiras.
[054] Neste documento, os sinais "/" e "," devem ser interpretados para indicar "e/ou". Por exemplo, a expressão "A/B" pode significar "A e/ou B". Além disso, "A, B" pode significar "A e/ou B". Além disso, "A/B/C" pode significar "pelo menos um dentre A, B e/ou C". Além disso, "A/B/C" pode significar "pelo menos um de A, B e/ou C".
[055] Além disso, no documento, o termo "ou" deve ser interpretado para indicar "e/ou". Por exemplo, a expressão "A ou B" pode incluir 1) apenas A, 2) apenas B e/ou 3) ambos A e B. Em outras palavras, o termo "ou" neste documento deve ser interpretado para indicar " adicional ou alternativamente”.
[056] Na presente revelação, "pelo menos um de A e B" pode significar "apenas A", "apenas B" ou "ambos A e B". Além disso, na presente revelação, a expressão "pelo menos um de A ou B" ou "pelo menos um de A e/ou B" pode ser interpretada como "pelo menos um de A e B".
[057] Além disso, na presente revelação, "pelo menos um de A, B e C" pode significar "apenas A", "apenas B", "apenas C" ou "qualquer combinação de A, B e C". Além disso, "pelo menos um de A, B ou C" ou "pelo menos um de A, B e/ou C" pode significar "pelo menos um de A, B e C".
[058] Além disso, um parêntese usado na presente revelação pode significar "por exemplo". Especificamente, quando indicado como "predição (intrapredição)", pode significar que "intrapredição" é proposta como um exemplo de "predição". Em outras palavras, a "predição"da presente revelação não se limita a "intrapredição", e a "intrapredição"pode ser proposta como um exemplo de "predição". Além disso, quando indicado como "predição (ou seja, intrapredição)", também pode significar que "intrapredição" é proposta como um exemplo de "predição".
[059] As características técnicas descritas individualmente em uma figura na presente revelação podem ser implementadas individualmente ou podem ser implementadas simultaneamente.
[060] A Figura 1 é um diagrama que ilustra esquematicamente uma configuração de um aparelho de codificação de vídeo/imagem ao qual a presente revelação é aplicável. Doravante, o que é referido como o aparelho de codificação de vídeo pode incluir um aparelho de codificação de imagem.
[061] Com referência à Figura 1, o aparelho de codificação 100 pode incluir e ser configurado com um particionador de imagem 110, um preditor 120, um processador residual 130, um codificador de entropia 140, um somador 150, um filtro 160 e uma memória 170. O preditor 120 pode incluir um interpreditor 121 e um preditor intra 122. O processador residual 130 pode incluir um transformador 132, um quantizador 133, um desquantizador 134, um transformador inverso 135. O processador residual 130 pode incluir ainda um subtrator 131. O somador 150 pode ser chamado de reconstrutor ou gerador de bloco reconstruído. O particionador de imagem 110, o preditor 120, o processador residual 130, o codificador de entropia 140, o somador 150 e o filtro 160, que foram descritos acima, podem ser constituídos por um ou mais componentes de hardware (por exemplo, chipsets de codificador ou processadores) de acordo com uma modalidade. Além disso, a memória 170 pode incluir um buffer de gravura decodificado (DPB) e pode ser constituída por um meio de armazenamento digital. O componente de hardware pode incluir ainda a memória 170 como um componente interno/externo.
[062] O particionador de imagem 110 pode particionar uma imagem de entrada (ou uma gravura ou um quadro) de entrada para o aparelho de codificação 100 em uma ou mais unidades de processamento. Como um exemplo, a unidade de processamento pode ser chamada de unidade de codificação (CU). Neste caso, a unidade de codificação pode ser particionada recursivamente, de acordo com a estrutura de árvore ternária de árvore binária Quad-tree (QTBTTT) a partir de uma unidade de árvore de codificação (CTU) ou uma unidade de codificação maior (LCU). Por exemplo, uma unidade de codificação pode ser particionada em uma pluralidade de unidades de codificação mais profundas com base na estrutura de árvore quádrupla, a estrutura de árvore binária e/ou a estrutura de árvore ternária. Neste caso, por exemplo, a estrutura de árvore quádrupla pode ser aplicada primeiro e a estrutura de árvore binária e/ou a estrutura ternária podem ser aplicadas posteriormente. Alternativamente, a estrutura de árvore binária pode ser aplicada primeiro. O procedimento de codificação de acordo com a presente revelação pode ser realizado com base na unidade de codificação final que não é mais particionada. Neste caso, com base na eficiência de codificação de acordo com as características da imagem ou semelhantes, LCU também pode ser diretamente usada como a unidade de codificação final ou opcionalmente, a unidade de codificação pode ser recursivamente particionada em unidades de codificação mais profundas, tal que uma unidade de codificação tendo um tamanho ideal possa ser usada como uma unidade de codificação final. No presente documento, o procedimento de codificação pode incluir um procedimento, tal como, predição, transformação ou reconstrução a ser descrito mais tarde. Como outro exemplo, a unidade de processamento pode incluir ainda uma unidade de predição (PU) ou uma unidade de transformação (TU). Neste caso, cada PU e TU pode ser dividida ou particionada da unidade de codificação final descrita acima. A PU pode ser uma unidade de predição de amostra e a TU pode ser uma unidade para induzir um coeficiente de transformada e/ou uma unidade para induzir um sinal residual de um coeficiente de transformada.
[063] O termo unidade pode ser usado intercambiavelmente com o termo, tal como um bloco ou uma área, em alguns casos. De modo geral, um bloco M x N pode representar um conjunto de amostras ou coeficientes de transformada consistindo em M colunas e N fileiras. A amostra pode geralmente representar um pixel ou um valor de um pixel e pode representar apenas um valor de pixel/pixel de um componente de luma, ou apenas um valor de pixel/pixel de um componente de croma. A amostra pode ser usada como um termo correspondente a um pixel ou a um pel de uma gravura (ou imagem).
[064] O aparelho de codificação 100 pode gerar um sinal residual (bloco residual, matriz de amostra residual) subtraindo uma saída de sinal predito (bloco predito, matriz de amostra de predição) do interpreditor 121 ou do preditor intra 122 do sinal de imagem de entrada (bloco original, matriz de amostra original), e o sinal residual gerado é transmitido para o transformador 132. Neste caso, como ilustrado, a unidade para subtrair o sinal predito (bloco predito, matriz de amostra de predição) do sinal de imagem de entrada (bloco original, matriz de amostra original) dentro de um codificador 100 pode ser chamado de subtrator 131. O preditor pode realizar a predição para um bloco a ser processado (doravante, referido como um bloco atual) e gerar um bloco predito incluindo amostras de predição do bloco atual. O preditor pode determinar se a intrapredição é aplicada ou a interpredição é aplicada em unidades do bloco atual ou a CU. O preditor pode gerar várias informações sobre predição, como informações de modo de predição, para transferir as informações geradas para o codificador de entropia 140, conforme descrito posteriormente na descrição de cada modo de predição. As informações sobre predição podem ser codificadas pelo codificador de entropia 140 e podem ser emitidas na forma de um fluxo de bits.
[065] O preditor intra 122 pode prever um bloco atual com referência às amostras dentro de uma gravura atual. As amostras referenciadas podem estar localizadas vizinhas ao bloco atual ou também podem estar localizadas longe do bloco atual de acordo com o modo de predição. Os modos de predição na intrapredição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O modo não direcional pode incluir, por exemplo, um modo DC ou um modo planar. O modo direcional pode incluir, por exemplo, 33 modos de predição direcionais ou 65 modos de predição direcionais de acordo com o grau de detalhe da direção de predição. No entanto, isso é ilustrativo e os modos de predição direcional que são mais ou menos do que o número acima podem ser usados de acordo com a configuração. O preditor intra 122 também pode determinar o modo de predição aplicado ao bloco atual usando o modo de predição aplicado ao bloco vizinho.
[066] O interpreditor 121 pode induzir um bloco predito do bloco atual com base em um bloco de referência (matriz de amostra de referência) especificado por um vetor de movimento em uma gravura de referência. Neste momento, a fim de diminuir a quantidade de informações de movimento transmitidas no modo de predição entre, as informações de movimento podem ser preditas em unidades de um bloco, um sub-bloco ou uma amostra com base na correlação das informações de movimento entre o bloco vizinho e o bloco atual. As informações de movimento podem incluir um vetor de movimento e um índice de gravura de referência. As informações de movimento podem incluir ainda informações de direção interpredição (predição L0, predição L1, predição Bi ou semelhantes). No caso da interpredição, o bloco vizinho pode incluir um bloco vizinho espacial existente na gravura atual e um bloco vizinho temporal existente na gravura de referência. A gravura de referência incluindo o bloco de referência e a gravura de referência incluindo o bloco vizinho temporal também podem ser iguais entre si e também podem ser diferentes uma da outra. O bloco vizinho temporal pode ser chamado de nome tal como um bloco de referência colocado, um CU colocado (colCU), ou semelhante, e a gravura de referência incluindo o bloco vizinho temporal também pode ser chamada de gravura colocada (colPic). Por exemplo, o interpreditor 121 pode configurar uma lista de candidatos de informações de movimento com base nos blocos vizinhos e gerar informações indicando qual candidato é usado para derivar o vetor de movimento e/ou o índice de gravura de referência do bloco atual. A interpredição pode ser realizada com base em vários modos de predição e, por exemplo, no caso de um modo de salto e um modo de mesclagem, o interpreditor 121 pode usar as informações de movimento do bloco vizinho como as informações de movimento do bloco atual. No caso do modo de salto, o sinal residual não pode ser transmitido ao contrário do modo de mesclagem. Um modo de predição de vetor de movimento (MVP) pode indicar o vetor de movimento do bloco atual usando o vetor de movimento do bloco vizinho como um preditor de vetor de movimento e sinalizando uma diferença de vetor de movimento.
[067] O preditor 120 pode gerar um sinal predito com base em vários métodos de predição a serem descritos posteriormente. Por exemplo, o preditor pode não apenas aplicar a intrapredição ou a interpredição para prever um bloco, mas também aplicar simultaneamente a intrapredição e a interpredição. Isso pode ser chamado de predição combinada inter e intra (CIIP). Além disso, o preditor pode ser baseado em um modo de predição de cópia intrabloco (IBC) ou em um modo de paleta para realizar a predição em um bloco. O modo de predição IBC ou modo de paleta pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou similar, como codificação de conteúdo de tela (SCC). O IBC basicamente realiza a predição em uma gravura atual, mas pode ser realizado de forma semelhante à interpredição, pois deriva um bloco de referência em uma gravura atual. Ou seja, o IBC pode usar pelo menos uma das técnicas de interpredição descritas neste documento. O modo de paleta pode ser considerado como um exemplo de codificação intra ou intrapredição. Quando o modo de paleta é aplicado, um valor de amostra em uma gravura pode ser sinalizado com base nas informações de um índice de paleta e uma tabela de paleta.
[068] O sinal de predito gerado através do preditor (incluindo o interpreditor 121 e/ou do preditor intra 122) pode ser usado para gerar um sinal reconstruído ou usado para gerar um sinal residual. O transformador 132 pode gerar coeficientes de transformada aplicando uma técnica de transformação ao sinal residual. Por exemplo, a técnica de transformação pode incluir pelo menos uma de uma transformada discreta de cosseno (DCT), uma transformada discreta de seno (DST), uma transformada de Karhunen-Loève (KLT), uma transformada com base em gráfico (GBT) ou uma transformada condicionalmente não linear (CNT). No presente documento, quando as informações de relação entre pixels são ilustradas como um gráfico, a GBT significa transformação obtida de um gráfico. A CNT refere-se à transformação obtida com base em um sinal de predição gerado usando todos os pixels previamente reconstruídos. Além disso, o processo de transformação pode ser aplicado a um bloco de pixel tendo o mesmo tamanho do quadrado e pode também ser aplicado ao bloco tendo tamanho variável em vez do quadrado.
[069] O quantizador 133 pode quantificar os coeficientes de transformada e transmiti-los para o codificador de entropia 140 e o codificador de entropia 140 pode codificar o sinal quantificado (informações sobre os coeficientes de transformada quantificados) e emitir o sinal codificado em um fluxo de bits. As informações sobre os coeficientes de transformada quantizados podem ser referidas como informações residuais. O quantizador 133 pode rearranjar os coeficientes de transformada quantificados do tipo bloco em uma forma de vetor unidimensional com base em uma ordem de varredura de coeficiente e gerar informações sobre os coeficientes de transformada quantificados com base nos coeficientes de transformada quantificados da forma de vetor unidimensional. O codificador de entropia 140 pode realizar vários métodos de codificação, tais como, por exemplo, Golomb exponencial, codificação de comprimento variável adaptável ao contexto (CAVLC), codificação aritmética binária adaptável ao contexto (CABAC) e semelhantes. O codificador de entropia 140 pode codificar informações necessárias para reconstrução de vídeo/imagem diferente de coeficientes de transformada quantizados (por exemplo, valores de elementos de sintaxe, etc.) juntos ou separadamente. As informações codificadas (por exemplo, informações de vídeo/imagem codificadas) podem ser transmitidas ou armazenadas em uma base de unidade de uma camada de abstração de rede (NAL) na forma de um fluxo de bits. As informações de vídeo/imagem podem ainda incluir informações sobre vários conjuntos de parâmetros, como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de gravura (PPS), um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de vídeo (VPS) ou semelhantes. Além disso, as informações de vídeo/imagem podem incluir ainda informações gerais de restrição. Na presente revelação, informações e/ou elementos de sintaxe que são transmitidos/sinalizados para o aparelho de decodificação do aparelho de codificação podem ser incluídos nas informações de vídeo/imagem. As informações de vídeo/imagem podem ser codificadas através do procedimento de codificação descrito acima e incluídas no fluxo de bits. O fluxo de bits pode ser transmitido através de uma rede ou armazenado em um meio de armazenamento digital. No presente documento, a rede pode incluir uma rede de transmissão, uma rede de comunicação e/ou similares, e o meio de armazenamento digital pode incluir várias mídias de armazenamento, tais como USB, SD, CD, DVD, Blu-ray, HDD, SSD e similares. Um transmissor (não mostrado) que transmite um sinal de saída do codificador de entropia 140 e/ou um armazenamento (não mostrado) que armazena o mesmo pode ser configurado como um elemento interno/externo do aparelho de codificação 200, ou o transmissor pode ser incluído em um codificador de entropia 140.
[070] Os coeficientes de transformada quantizados de saída do quantizador 133 podem ser usados para gerar um sinal de predição. Por exemplo, aplicando desquantização e transformada inversa aos coeficientes de transformada quantificados através do desquantizador 134 e do transformador inverso 135, o sinal residual (bloco residual ou amostras residuais) pode ser reconstruído. O somador 155 pode adicionar o sinal residual reconstruído a uma saída de sinal de predição do interpreditor 121 ou do preditor intra 122, de modo que um sinal reconstruído (gravura reconstruída, bloco reconstruído, matriz de amostra reconstruída) possa ser gerado. Quando não há resíduo para um bloco alvo de processamento, como no caso em que o modo de salto é aplicado, o bloco predito pode ser usado como um bloco reconstruído. O somador 150 pode ser chamado de reconstrutor ou gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para intrapredição de um próximo bloco alvo de processamento no bloco atual e, conforme descrito mais adiante, pode ser usado para interpredição de uma próxima gravura através de filtro.
[071] Enquanto isso, no processo de codificação e/ou reconstrução da gravura, o mapeamento de luma com escala de croma (LMCS) pode ser aplicado.
[072] O filtro 160 pode melhorar a qualidade de vídeo subjetiva/objetiva aplicando a filtragem ao sinal reconstruído. Por exemplo, o filtro 160 pode gerar uma gravura reconstruída modificada aplicando vários métodos de filtragem à gravura reconstruída e pode armazenar a gravura reconstruída modificada na memória 170, especificamente no DPB da memória 170. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de desbloqueio, desvio adaptativo de amostra, um filtro de circuito adaptativo, um filtro bilateral ou semelhante. Conforme discutido posteriormente na descrição de cada método de filtragem, o filtro 160 pode gerar várias informações relacionadas à filtragem e transmitir as informações geradas para o codificador de entropia 140. As informações sobre a filtragem podem ser codificadas no codificador de entropia 140 e emitidas na forma de fluxo de bits.
[073] A gravura reconstruída modificada que foi transmitida para a memória 170 pode ser usada como uma gravura de referência no interpreditor 121. Se a interpredição é aplicada pelo interpreditor, o aparelho de codificação pode evitar incompatibilidade de predição entre o aparelho de codificação 100 e um aparelho de decodificação e também pode aperfeiçoar a eficácia da codificação.
[074] O DPB de memória 170 pode armazenar a gravura reconstruída modificada para usá-la como uma gravura de referência no interpreditor 121. A memória 170 pode armazenar informações de movimento de um bloco no qual as informações de movimento na gravura atual são derivadas (ou codificadas) e/ou informações de movimento de blocos em uma imagem já reconstruída. As informações de movimento armazenadas podem ser transmitidas ao interpreditor 121 para serem utilizadas como informações de movimento de um bloco vizinho ou informações de movimento de um bloco vizinho temporal. A memória 170 pode armazenar amostras reconstruídas de blocos reconstruídos na gravura atual e transmiti-las ao preditor intra 122.
[075] A Figura 2 é um diagrama que ilustra esquematicamente uma configuração de um aparelho de decodificação de vídeo/imagem ao qual a presente revelação é aplicável.
[076] Com referência à Figura 2, o aparelho de decodificação de vídeo 200 pode incluir e ser configurado com um decodificador de entropia 210, um processador residual 220, um preditor 230, um somador 240, um filtro 250 e uma memória 260. O preditor 230 pode incluir um interpreditor 232 e um preditor intra 231. O processador residual 220 pode incluir um desquantizador 221 e um transformador inverso 222. O decodificador de entropia 210, o processador residual 220, o preditor 230, o somador 240 e o filtro 250, que foram descritos acima, podem ser configurados por um ou mais componentes de hardware (por exemplo, chipsets ou processadores decodificadores) de acordo com uma modalidade. Além disso, a memória 260 pode incluir um buffer de gravura decodificado (DPB) e pode ser configurada por um meio de armazenamento digital. O componente de hardware pode incluir ainda a memória 160 como um componente interno/externo.
[077] Quando um fluxo de bits incluindo informações de vídeo/imagem é inserido, o aparelho de decodificação 200 pode reconstruir uma imagem correspondente a um processo pelo qual as informações de vídeo/imagem foram processadas no aparelho de codificação da Figura 1. Por exemplo, o aparelho de decodificação 200 pode derivar unidades/blocos com base nas informações relativas à partição de bloco obtida do fluxo de bits. O aparelho de decodificação 200 pode realizar a decodificação usando uma unidade de processamento aplicada no aparelho de codificação. Portanto, a unidade de processamento de decodificação pode ser, por exemplo, uma unidade de codificação, que pode ser particionada ao longo da estrutura de árvore quádrupla, a estrutura de árvore binária e/ou a estrutura de árvore ternária de uma CTU ou uma LCU. Uma ou mais unidades de transformação podem ser derivadas da unidade de codificação. Além disso, o sinal de imagem reconstruído decodificado e emitido através do aparelho de decodificação 200 pode ser reproduzido através de um aparelho de reprodução.
[078] O aparelho de decodificação 200 pode receber um sinal de saída do aparelho de codificação da Figura 1 na forma de um fluxo de bits, e o sinal recebido pode ser decodificado através do decodificador de entropia 210. Por exemplo, o decodificador de entropia 210 pode derivar informações (por exemplo, informações de vídeo/imagem) necessárias para reconstrução de imagem (ou reconstrução de gravura). As informações de vídeo/imagem podem ainda incluir informações sobre vários conjuntos de parâmetros, como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de gravura (PPS), um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de vídeo (VPS). Além disso, as informações de vídeo/imagem podem incluir ainda informações gerais de restrição. O aparelho de decodificação pode decodificar uma gravura adicionalmente com base nas informações do conjunto de parâmetros e/ou nas informações gerais de restrição. Os elementos de sintaxe e/ou informações a serem sinalizados/recebidos, que serão descritos mais tarde neste documento, podem ser decodificados através do procedimento de decodificação e adquiridos do fluxo de bits. Por exemplo, o decodificador de entropia 210 pode decodificar informações no fluxo de bits com base em um método de codificação, como codificação Golomb exponencial, CAVLC, ou CABAC, e pode emitir um valor de um elemento de sintaxe necessário para reconstrução de imagem e valores quantizados de um coeficiente de transformada em relação a um resíduo. Mais especificamente, um método de decodificação de entropia CABAC pode receber um bin correspondente a cada elemento de sintaxe em um fluxo de bits, determinar um modelo de contexto usando informações de elemento de sintaxe alvo de decodificação e informações de decodificação de blocos alvo vizinhos e de decodificação, ou informações de símbolo/bin decodificado em uma etapa anterior, prever a probabilidade de geração de bin de acordo com o modelo de contexto determinado e realizar a decodificação aritmética do bin para gerar um símbolo correspondente a cada valor de elemento de sintaxe. No presente documento, o método de decodificação de entropia CABAC pode atualizar o modelo de contexto usando informações de um símbolo/bin decodificado para um modelo de contexto do próximo símbolo/bin após a determinação do modelo de contexto. Informações sobre predição entre as informações decodificadas no decodificador de entropia 210 podem ser fornecidas ao preditor (interpreditor 232 e preditor intra 231), e valores residuais, nos quais a decodificação da entropia é realizada no decodificador de entropia 210, e as informações de parâmetro associadas podem ser introduzidas no processador residual 220. O processador residual 220 pode derivar um sinal residual (bloco residual, amostras residuais, matriz de amostras residuais). Além disso, informações sobre filtragem entre informações decodificadas no decodificador de entropia 210 podem ser fornecidas ao filtro 250. Enquanto isso, um receptor (não mostrado) que recebe um sinal de saída do aparelho de codificação pode constituir ainda o aparelho de decodificação 200 como um elemento interno/externo, e o receptor pode ser um componente do decodificador de entropia 210. Enquanto isso, o aparelho de decodificação de acordo com a presente revelação pode ser chamado de aparelho de codificação de vídeo/imagem/ gravura, e o aparelho de decodificação podem ser classificados em um decodificador de informações (decodificador de vídeo/imagem/ gravura) e um decodificador de amostra (decodificador de amostra de vídeo/imagem/ gravura). O decodificador de informações pode incluir o decodificador de entropia 210 e o decodificador de amostra pode incluir pelo menos um dentre o desquantizador 221, o transformador inverso 222, o somador 240, o filtro 250, a memória 260, o interpreditor 232 e o preditor intra 231.
[079] O desquantizador 221 pode desquantizar coeficientes de transformada desquantizados de modo a emitir os coeficientes de transformada. O desquantizador 221 pode rearranjar os coeficientes de transformada quantificados na forma de um bloco bidimensional. Neste caso, o rearranjo pode ser realizado com base em uma ordem de varredura de coeficiente que foi realizada no aparelho de codificação. O desquantizador 221 pode realizar a desquantização nos coeficientes de transformada quantizados usando o parâmetro de quantização (por exemplo, informações de tamanho da etapa de quantização) e obter coeficientes de transformada.
[080] O desquantizador inverso 222 transforma inversamente os coeficientes de transformada para obter o sinal residual (bloco residual, matriz de amostra residual).
[081] O preditor 230 pode realizar predição no bloco atual e gerar um bloco predito incluindo amostras de predição para o bloco atual. O preditor pode determinar se a intrapredição ou interpredição é aplicada ao bloco atual com base nas informações na saída de predição do decodificador de entropia 210 e especificamente determinar um modo de intrapredição/inter.
[082] O preditor pode gerar um sinal de predição com base em vários métodos de predição a serem descritos mais tarde. Por exemplo, o preditor pode não apenas aplicar intrapredição ou interpredição para predição de um bloco e, também, pode aplicar intrapredição e interpredição ao mesmo tempo. Isso pode ser chamado de predição combinada inter e intra (CIIP). Além disso, o preditor pode se basear em um modo de predição de cópia intrabloco (IBC) ou em um modo de paleta para realizar a predição em um bloco. O modo de predição IBC ou modo de paleta pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou semelhante, como codificação de conteúdo de tela (SCC). Embora o IBC execute basicamente a predição em um bloco atual, ele pode ser realizado de maneira semelhante à interpredição, pois deriva um bloco de referência em um bloco atual. Ou seja, o IBC pode usar pelo menos uma das técnicas de interpredição descritas na presente revelação. O modo palete pode ser considerado como um exemplo da codificação intra ou intrapredição. Quando o modo palete é aplicado, as informações em uma tabela de palete ou índice de palete podem ser sinalizadas por serem incluídas nas informações de vídeo/imagem.
[083] O preditor intra 231 pode prever o bloco atual referindo-se às amostras na gravura atual. As referidas amostras podem estar localizadas na vizinhança ou afastadas do bloco atual de acordo com o modo de predição. Na intrapredição, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O preditor intra 231 pode determinar o modo de predição aplicado ao bloco atual usando o modo de predição aplicado ao bloco vizinho.
[084] O interpreditor 232 pode induzir um bloco predito do bloco atual com base em um bloco de referência (matriz de amostra de referência) especificado por um vetor de movimento em uma gravura de referência. Neste momento, a fim de reduzir a quantidade de informações de movimento transmitidas no modo de interpredição, as informações de movimento podem ser preditas em unidades de um bloco, sub-bloco ou amostra com base na correlação de informações de movimento entre o bloco vizinho e o bloco atual. As informações de movimento podem incluir um vetor de movimento e um índice de gravura de referência. As informações de movimento podem incluir ainda informações de direção de interpredição (predição L0, predição L1, predição Bi, etc.). No caso de interpredição, o bloco vizinho pode incluir um bloco vizinho espacial existente na gravura atual e um bloco vizinho temporal existente na gravura de referência. Por exemplo, o interpreditor 232 pode configurar uma lista de candidatos de informações de movimento com base em blocos vizinhos e derivar um vetor de movimento e/ou um índice de gravura de referência do bloco atual com base nas informações de seleção de candidatos recebidas. A interpredição pode ser realizada com base em vários modos de predição, e as informações sobre predição podem incluir informações que indicam um modo de interpredição do bloco atual.
[085] O somador 240 pode adicionar um sinal residual adquirido ao sinal predito (bloco predito, matriz de amostra de predição) emitido do preditor (incluindo o interpreditor 232 e/ou o preditor intra 231) para gerar o sinal reconstruído (gravura reconstruída, bloco reconstruído, matriz de amostra reconstruída). Como no caso em que o modo de salto é aplicado, se não existe resíduo para o bloco a ser processado, o bloco predito pode se usado como bloco reconstruído.
[086] O somador 240 pode ser chamado de reconstrutor ou gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para intrapredição de um próximo bloco alvo de processamento no bloco atual e, conforme descrito mais adiante, pode ser emitido através de filtragem ou ser usado para interpredição de uma próxima gravura.
[087] Enquanto isso, no processo de decodificação de gravura, o mapeamento de luma com escala de croma (LMCS) pode ser aplicado.
[088] O filtro 250 pode melhorar a qualidade de vídeo subjetiva/objetiva aplicando a filtragem ao sinal reconstruído. Por exemplo, o filtro 250 pode aplicar vários métodos de filtragem à gravura reconstruída para gerar uma gravura reconstruída modificada e armazenar a gravura reconstruída modificada na memória 260, especificamente, o DPB da memória 260. Vários métodos de filtragem podem incluir, por exemplo, uma filtragem de desbloqueio, um desvio adaptativo de amostra, um filtro de circuito adaptativo, um filtro bilateral e semelhantes.
[089] A gravura reconstruída (modificada) armazenada no DPB da memória 260 pode ser usada como uma gravura de referência no interpreditor 232. A memória 260 pode armazenar informações de movimento do bloco, no qual as informações de movimento dentro da gravura atual são derivadas (decodificadas) e/ou informações de movimento dos blocos dentro da gravura reconstruída anteriormente. As informações de movimento armazenadas podem ser transmitidas ao interpreditor 260 para serem utilizadas como informações de movimento de um bloco vizinho ou informações de movimento de um bloco vizinho temporal. A memória 260 pode armazenar amostras reconstruídas de blocos reconstruídos na gravura atual e transmiti-las ao preditor intra 231.
[090] No presente documento, modalidades exemplares descritas no filtro 160, no interpreditor 121 e no preditor intra 122 do aparelho de codificação 100 podem ser aplicadas igualmente ou para corresponder ao filtro 250, o interpreditor 232 e o preditor intra 231 do aparelho de decodificação 200, respectivamente.
[091] Conforme descrito acima, a predição é realizada para aumentar a eficiência de compactação na execução da codificação de vídeo. Através disso, um bloco predito incluindo amostras de predição para um bloco atual, que é um bloco alvo de codificação, pode ser gerado. No presente documento o bloco predito inclui amostras de predição em um domínio de espaço (ou domínio de pixel). O bloco predito pode ser derivado de modo idêntico no aparelho de codificação e no aparelho de decodificação, e o aparelho de codificação pode aumentar a eficiência de codificação de imagem sinalizando para o aparelho de decodificação não o valor da amostra original de um bloco original em si, mas as informações residuais (informação residual) entre o bloco original e o bloco predito. O aparelho de decodificação pode derivar um bloco residual incluindo amostras residuais com base nas informações residuais, gerar um bloco reconstruído incluindo amostras reconstruídas adicionando o bloco residual ao bloco predito e gerar uma gravura reconstruída incluindo blocos reconstruídos.
[092] As informações residuais podem ser geradas através de procedimentos de transformação e quantização. Por exemplo, o aparelho de codificação pode derivar um bloco residual entre o bloco original e o bloco predito, derivar coeficientes de transformada realizando um procedimento de transformação em amostras residuais (matriz de amostra residual) incluídas no bloco residual e derivar coeficientes de transformada quantificados realizando um procedimento de quantificação dos coeficientes de transformada, para que possa sinalizar as informações residuais associada ao aparelho de decodificação (através de um fluxo de bits). No presente documento as informações residuais podem incluir informações de valor, informações de posição, uma técnica de transformação, núcleo de transformada, um parâmetro de quantização ou semelhante dos coeficientes de transformada quantizados. O aparelho de decodificação pode realizar um procedimento de quantização/desquantização e derivar as amostras residuais (ou bloco de amostra residual), com base nas informações residuais. O aparelho de decodificação pode gerar um bloco reconstruído com base em um bloco predito e no bloco residual. O aparelho de codificação pode derivar um bloco residual por desquantização/transformada inversa de coeficientes de transformada quantificados para referência para interpredição de uma próxima gravura e pode gerar uma gravura reconstruída com base nisso.
[093] A Figura 3 ilustra esquematicamente uma técnica de transformada múltipla de acordo com uma modalidade da presente revelação.
[094] Com referência à Figura 3, um transformador pode corresponder ao transformador no aparelho de codificação da Figura 1, e um transformador inverso pode corresponder ao transformador inverso no aparelho de codificação da Figura 1 anterior, ou ao transformador inverso no aparelho de decodificação da Figura 2.
[095] O transformador pode derivar coeficientes de transformada (primária) realizando uma transformada primária com base em amostras residuais (matriz de amostra residual) em um bloco residual (S310). Essa transformada primária pode ser chamada de transformação de núcleo. No presente documento, a transformada primária pode ser baseada na seleção das transformadas múltiplas (MTS) e quando uma transformada múltipla é aplicada como a transformada primária, ela pode ser referida como uma transformada de múltiplos núcleos.
[096] A transformada de múltiplos núcleos pode representar um método de transformação adicionalmente usando transformada discreta de cosseno (DCT) tipo 2 e transformada discreta de seno (DST) tipo 7, DCT tipo 8 e/ou DST tipo 1. Ou seja, a transformada de múltiplos núcleos pode representar um método de transformação para transformar um sinal residual (ou bloco residual) de um domínio de espaço em coeficientes de transformada (ou coeficientes de transformada primária) de um domínio de frequência com base em uma pluralidade de núcleos de transformada selecionados entre o tipa DCT 2, o tipa DST 7, a DCT tipo 8 e a DST tipo 1. No presente documento, os coeficientes de transformada primária podem ser chamados de coeficientes de transformada temporários do ponto de vista do transformador.
[097] Em outras palavras, quando o método de transformação convencional é aplicado, os coeficientes de transformada podem ser gerados aplicando a transformação de um domínio de espaço para um domínio de frequência para um sinal residual (ou bloco residual) baseado na DCT tipo 2. Ao contrário disso, quando a transformada de múltiplos núcleos é aplicada, coeficientes de transformada (ou coeficientes de transformada primária) podem ser gerados aplicando a transformação de um domínio de espaço para um domínio de frequência para um sinal residual (ou bloco residual) com base na DCT tipo 2, a DST tipo 7, a DCT tipo 8 e/ou DST tipo 1. No presente documento, a DCT tipo 2, a DST tipo 7, a DCT tipo 8 e a DST tipo 1 podem ser chamadas de tipo de transformada, núcleo de transformada ou centro de transformada. Esses tipos de transformada DCT/DST podem ser definidos com base em funções básicas.
[098] Quando a transformada de múltiplos núcleos é realizada, um núcleo de transformada vertical e um núcleo de transformada horizontal para um bloco alvo podem ser selecionados entre os núcleos de transformada, uma transformada vertical pode ser realizada no bloco alvo com base no núcleo de transformada vertical e uma transformada horizontal A transformação pode ser executada no bloco alvo com base no núcleo de transformada horizontal. No presente documento, a transformada horizontal pode indicar uma transformação nos componentes horizontais do bloco alvo e a transformada vertical pode indicar uma transformação nos componentes verticais do bloco alvo. O núcleo de transformada vertical/núcleo de transformada horizontal pode ser determinado de forma adaptativa com base em um modo de predição e/ou um índice de transformação para o bloco alvo (CU ou sub-bloco) incluindo um bloco residual.
[099] Além disso, de acordo com um exemplo, se a transformada primária for realizada aplicando MTS, uma relação de mapeamento para núcleos de transformação pode ser definida ajustando funções de base específicas para valores predeterminados e combinando funções de base a serem aplicadas na transformada vertical ou na transformada horizontal. Por exemplo, quando o núcleo de transformada horizontal é expresso como trTypeHor e o núcleo de transformada de direção vertical é expresso como trTypeVer, um valor de trTypeHor ou trTypeVer de 0 pode ser definido como DCT2, um valor de trTypeHor ou trTypeVer de 1 pode ser definido como DST7 e um valor trTypeHor ou trTypeVer de 2 pode ser definido como DCT8.
[0100] Neste caso, a informação de índice MTS pode ser codificada e sinalizada para o aparelho de decodificação, de modo a indicar qualquer de uma pluralidade de conjuntos de núcleo de transformada. Por exemplo, um índice MTS de 0 pode indicar que os valores trTypeHor e trTypeVer são 0, um índice MTS de 1 pode indicar que os valores trTypeHor e trTypeVer são 1, um índice MTS de 2 pode indicar que o valor trTypeHor é 2 e o valor trTypeVer. for 1, um índice MTS de 3 pode indicar que o valor trTypeHor é 1 e o valor trTypeVer é 2, e um índice MTS de 4 pode indicar que os valores trTypeHor e trTypeVer são 2.
[0101] Em um exemplo, os conjuntos de núcleo de transformada de acordo com as informações de índice do MTS são ilustrados na tabela a seguir Tabela 1
[0102]O transformador pode derivar coeficientes de transformada modificados (secundários) realizando a transformada secundária com base nos coeficientes de transformada (primários) (S420). A transformada primária é uma transformada de um domínio espacial para um domínio de frequência, e a transformada secundária refere- se à transformada em uma expressão mais compressiva usando uma correlação existente entre os coeficientes de transformada (primários). A transformada secundária pode incluir uma transformada não separável. Nesse caso, a transformada secundária pode ser chamada de transformada secundária não separável (NSST) ou transformada secundária não separável dependente do modo (MDNSST). A transformada secundária não separável pode representar uma transformada que gera coeficientes de transformada modificados (ou coeficientes de transformada secundária) para um sinal residual por transformada secundária, com base em uma matriz de transformada não separável, coeficientes de transformada (primários) derivados através da transformada primária. Neste momento, a transformada vertical e a transformada horizontal não podem ser aplicadas separadamente (ou as transformadas horizontal e vertical podem não ser aplicadas independentemente) aos coeficientes de transformada (primários), mas as transformadas podem ser aplicadas de uma só vez com base no não separável matriz de transformada. Em outras palavras, a transformada secundária não separável pode representar um método de transformada no qual não é aplicado separadamente na direção vertical e na direção horizontal para os coeficientes de transformada (primários) e, por exemplo, sinais bidimensionais (coeficientes de transformada) são rearranjados para um sinal unidimensional através de uma certa direção determinada (por exemplo, direção da primeira linha ou direção da primeira coluna), e então os coeficientes de transformada modificados (ou coeficientes de transformada secundários) são gerados com base na matriz de transformada não separável. Por exemplo, de acordo com uma ordem de primeira linha, os blocos M x N são dispostos em uma linha na ordem de uma primeira linha, uma segunda linha, ... e uma enésima linha. De acordo com uma ordem de primeira coluna, os blocos M x N são dispostos em uma linha na ordem de uma primeira coluna, uma segunda coluna, . e uma enésima coluna. A transformada secundária não separável pode ser aplicada a uma região superior esquerda de um bloco configurado com coeficientes de transformada (primários) (daqui em diante, pode ser denominado como um bloco de coeficiente de transformada). Por exemplo, se a largura (W) e a altura (H) do bloco de coeficiente de transformada forem todas iguais ou maiores que 8, uma transformada secundária não separável 8 x 8 pode ser aplicada a uma região 8 x 8 superior esquerda do coeficiente de transformada bloquear. Além disso, se a largura (W) e a altura (H) do bloco de coeficiente de transformada forem todas iguais ou maiores que 4, e a largura (W) ou a altura (H) do bloco de coeficiente de transformada for menor que 8, então uma transformada secundária não separável 4 x 4 pode ser aplicada a uma região superior esquerda min(8,W) x min(8,H) do bloco de coeficiente de transformada. No entanto, a modalidade não está limitada a isso e, por exemplo, mesmo que apenas a condição de que a largura (W) ou altura (H) do bloco de coeficiente de transformada seja igual ou maior que 4 seja satisfeita, a transformada secundária não separável 4 x 4 pode ser aplicada à região superior esquerda min(8,W)xmin(8,H) do bloco de coeficiente de transformada.
[0103]Especificamente, por exemplo, se um bloco de entrada 4 x 4 for usado, a transformada secundária não separável pode ser realizada da seguinte maneira.
[0104]O bloco de entrada 4 x 4 X pode ser representado da seguinte forma. [Equação 1]
[0105]Se o X for representado na forma de um vetor, o vetor Xpode ser representado como abaixo. [Equação 2] X =
[0106]Em Equação 2, o vetor xum vetor unidimensional obtido pelo rearranjo do bloco bidimensional X da Equação 1 de acordo com a ordem de primeira linha.
[0107]Neste caso, a transformada não separável secundária pode ser calculada como abaixo. [Equação 3]
[0108]Nesta equação, Frepresenta um vetor de coeficiente de transformada e T representa uma matriz de transformada 16 x 16 (não separável).
[0109]Através da Equação 3 anterior, um vetor de coeficiente de transformada 16 x 1 F pode ser derivado, e o F pode ser derivado e pode ser reorganizado em um bloco 4 x 4 através de uma ordem de varredura (horizontal, vertical, diagonal e semelhantes). No entanto, o cálculo descrito acima é um exemplo, e a transformada hypercube-Givens (HyGT) ou semelhante pode ser usada para o cálculo da transformada secundária não separável a fim de reduzir a complexidade computacional da transformada secundária não separável.
[0110]Enquanto isso, na transformada secundária não separável, um núcleo de transformada (ou núcleo de transformada, tipo de transformada) pode ser selecionado para ser dependente do modo. Neste caso, o modo pode incluir o modo de intrapredição e/ou o modo de interpredição.
[0111]Conforme descrito acima, a transformada secundária não separável pode ser realizada com base em uma transformada 8 x 8 ou uma transformada 4 x 4 determinada com base na largura (W) e na altura (H) do bloco de coeficiente de transformada. A transformada 8 x 8 refere-se a uma transformada que é aplicável a uma região 8 x 8 incluída no bloco de coeficiente de transformada quando W e H são iguais ou maiores que 8, e a região 8 x 8 pode ser uma região 8 x 8 superior esquerda no bloco de coeficiente de transformada. Da mesma forma, a transformada 4 x 4 refere-se a uma transformada que é aplicável a uma região 4 x 4 incluída no bloco de coeficiente de transformada quando W e H são iguais ou maiores que 4, e a região 4 x 4 pode ser uma região 4 x 4 superior esquerda na transformada bloco de coeficientes. Por exemplo, uma matriz de núcleo de transformada 8 x 8 pode ser uma matriz de núcleo de transformada 64 x 64/16 x 64 e uma matriz de núcleo de transformada 4 x 4 pode ser uma matriz de 16 x 16/8 x 16.
[0112]Aqui, para selecionar um núcleo de transformada dependente do modo, dois núcleos de transformada secundária não separáveis por transformada definido para uma transformada secundária não separável podem ser configurados para a transformada 8 x 8 e a transformada 4 x 4, e não pode ser quatro conjuntos de transformada. Ou seja, quatro conjuntos de transformada podem ser configurados para a transformada 8 x 8 e quatro conjuntos de transformada podem ser configurados para a transformada 4 x 4. Neste caso, cada um dos quatro conjuntos de transformada para a transformada 8 x 8 pode incluir dois núcleos de transformada 8 x 8 e cada um dos quatro conjuntos de transformada para a transformada 4 x 4 pode incluir dois núcleos de transformada 4 x 4.
[0113]Entretanto, como o tamanho da transformada, isto é, o tamanho de uma região à qual a transformada é aplicada, pode ser, por exemplo, um tamanho diferente de 8 x 8 ou 4 x 4, o número de conjuntos pode seja n, e o número de núcleos de transformada em cada conjunto pode ser k.
[0114]O conjunto de transformada pode ser denominado como um conjunto de NSST ou um conjunto de LFNST. Um conjunto específico entre os conjuntos de transformada pode ser selecionado, por exemplo, com base no modo de intrapredição do bloco atual (CU ou sub-bloco). Uma transformada não separável de baixa frequência (LFNST) pode ser um exemplo de uma transformada não separável reduzida, que será descrita posteriormente e representa uma transformada não separável para um componente de baixa frequência.
[0115]Para referência, por exemplo, o modo de intrapredição pode incluir dois modos de intrapredição não direcionais (ou não angular) e 65 modos de intrapredição direcionais (ou angulares). Os modos de intrapredição não direcionais podem incluir um modo de intrapredição planar de N° 0 e um modo de intrapredição DC de N° 1, e os modos de intrapredição direcionais podem incluir 65 modos de intrapredição de N° 2 a 66. No entanto, este é um exemplo, e este documento pode ser aplicado mesmo quando o número de modos de intrapredição é diferente. Enquanto isso, em alguns casos, o modo de intrapredição No. 67 pode ser usado adicionalmente e o modo de intrapredição No. 67 pode representar um modo de modelo linear (LM).
[0116]A Figura 4 mostra exemplificativamente modos intra direcionais de 65 direções de predição.
[0117]Com referência à Figura 4, com base no modo de intrapredição 34 com uma direção de predição diagonal esquerda para cima, os modos de intrapredição podem ser divididos em modos de intrapredição com direcionalidade horizontal e modos de intrapredição com direcionalidade vertical. Na Figura 4, H e V denotam direcionalidade horizontal e direcionalidade vertical, respectivamente, e os números - 32 a 32 indicam deslocamentos em 1/32 unidades em uma posição da grade de amostra. Esses numerais podem representar um deslocamento para um valor de índice de modo. Os modos de intrapredição 2 a 33 têm a direcionalidade horizontal e os modos de intrapredição 34 a 66 têm a direcionalidade vertical. Estritamente falando, o modo de intrapredição 34 pode ser considerado como nem horizontal nem vertical, mas pode ser classificado como pertencente à direcionalidade horizontal na determinação de um conjunto de transformada de uma transformada secundária. Isso ocorre porque os dados de entrada são transpostos para serem usados para um modo de direção vertical simétrico com base no modo de intrapredição 34, e um método de alinhamento de dados de entrada para um modo horizontal é usado para o modo de intrapredição 34. Transpor dados de entrada significa que linhas e colunas de dados de bloco M x N bidimensionais são comutadas em dados N x M. O modo de intrapredição 18 e o modo de intrapredição 50 podem representar um modo de intrapredição horizontal e um modo de intrapredição vertical, respectivamente, e o modo de intrapredição 2 pode ser denominado como um modo de intrapredição diagonal ascendente direita porque o modo de intrapredição 2 tem um pixel de referência e realiza a predição na direção certa para cima. Da mesma forma, o modo de intrapredição 34 pode ser denominado como um modo de intrapredição diagonal descendente direita e o modo de intrapredição 66 pode ser denominado como um modo de intrapredição diagonal descendente esquerdo.
[0118]De acordo com um exemplo, os quatro conjuntos de transformada de acordo com o modo de intrapredição podem ser mapeados, por exemplo, conforme mostrado na tabela a seguir. Tabela 2
[0119]Conforme mostrado na Tabela 2, qualquer um dos quatro conjuntos de transformadas, isto é, lfnstTrSetIdx, pode ser mapeado para qualquer um dos quatro índices, isto é, de 0 a 3, de acordo com o modo de intrapredição.
[0120]Quando é determinado que um conjunto específico é usado para a transformada não separável, um dos núcleos de transformada k no conjunto específico pode ser selecionado por meio de um índice de transformada secundária não separável. Um aparelho de codificação pode derivar um índice de transformada secundária não separável indicando um núcleo de transformada específico com base em uma verificação de distorção de taxa (RD) e pode sinalizar o índice de transformada secundária não separável para um aparelho de decodificação. O aparelho de decodificação pode selecionar um dos núcleos de transformada k no conjunto específico com base no índice de transformada secundária não separável. Por exemplo, o valor de índice de LFNST 0 pode se referir a um primeiro núcleo de transformada secundária não separável, o valor de índice de LFNST 1 pode se referir a um segundo núcleo de transformada secundária não separável e o valor de índice de LFNST 2 pode se referir a uma terceira transformada secundária não separável núcleo. Alternativamente, o valor de índice de LFNST 0 pode indicar que a primeira transformada secundária não separável não é aplicada ao bloco de destino, e os valores de índice de LFNST 1 a 3 podem indicar os três núcleos de transformada.
[0121]O transformador pode realizar a transformada secundária não separável com base nos núcleos de transformada selecionados e pode obter coeficientes de transformada modificados (secundários). Conforme descrito acima, os coeficientes de transformada modificados podem ser derivados como coeficientes de transformada quantificados através do quantizador e podem ser codificados e sinalizados para o aparelho de decodificação e transferidos para o desquantizador/transformador inverso no aparelho de codificação.
[0122]Enquanto isso, conforme descrito acima, se a transformada secundária for omitida, os coeficientes de transformada (primários), que são uma saída da transformada primária (separável), podem ser derivados como coeficientes de transformada quantificados através do quantizador conforme descrito acima, e podem ser codificado e sinalizado para o aparelho de decodificação e transferido para o desquantizador/transformador inverso no aparelho de codificação.
[0123]O transformador inverso pode realizar uma série de procedimentos na ordem inversa daquela em que foram realizados no transformador acima descrito. O transformador inverso pode receber coeficientes de transformador (desquantizados) e derivar coeficientes de transformada (primários) realizando uma transformada secundária (inversa) (S450), e pode obter um bloco residual (amostras residuais) realizando uma transformada primária (inversa) no coeficientes de transformada (primários) (S460). Neste contexto, os coeficientes de transformada primária podem ser chamados de coeficientes de transformada modificados do ponto de vista do transformador inverso. Conforme descrito acima, o aparelho de codificação e o aparelho de decodificação podem gerar o bloco reconstruído com base no bloco residual e no bloco predito e podem gerar a gravura reconstruída com base no bloco reconstruído.
[0124]O aparelho de decodificação pode incluir ainda um determinante de aplicação de transformada inversa secundária (ou um elemento para determinar se deve aplicar uma transformada inversa secundária) e um determinante de transformada inversa secundária (ou um elemento para determinar uma transformada inversa secundária). O determinante de aplicação de transformada inversa secundária pode determinar se deve aplicar uma transformada inversa secundária. Por exemplo, a transformada inversa secundária pode ser uma NSST, uma RST ou uma LFNST e o determinante de aplicação de transformada inversa secundária pode determinar se deve aplicar a transformada inversa secundária com base em um sinalizador de transformada secundária obtido analisando o fluxo de bits. Em outro exemplo, o determinante de aplicação de transformada inversa secundária pode determinar se deve aplicar a transformada inversa secundária com base em um coeficiente de transformada de um bloco residual.
[0125]O determinante de transformada inversa secundária pode determinar uma transformada inversa secundária. Neste caso, o determinante de transformada inversa secundária pode determinar a transformada inversa secundária aplicada ao bloco atual com base em um conjunto de transformada de LFNST (NSST ou RST) especificado de acordo com um modo de intrapredição. Em uma modalidade, um método de determinação de transformada secundária pode ser determinado dependendo de um método de determinação de transformada primária. Várias combinações de transformadas primárias e transformadas secundárias podem ser determinadas de acordo com o modo de intrapredição. Além disso, em um exemplo, o determinante de transformada inversa secundária pode determinar uma região à qual uma transformada inversa secundária é aplicada com base no tamanho do bloco atual.
[0126]Enquanto isso, como descrito acima, se a transformada secundária (inversa) for omitida, os coeficientes de transformada (desquantizados) podem ser recebidos, a transformada inversa primária (separável) pode ser realizada e o bloco residual (amostras residuais) pode ser obtido. Conforme descrito acima, o aparelho de codificação e o aparelho de decodificação podem gerar o bloco reconstruído com base no bloco residual e no bloco predito e podem gerar a gravura reconstruída com base no bloco reconstruído.
[0127]Enquanto isso, na presente divulgação, uma transformada secundária reduzida (RST) na qual o tamanho de uma matriz de transformada (núcleo) é reduzido pode ser aplicada no conceito de NSST para reduzir a quantidade de computação e memória necessária para a transformada secundária não separável.
[0128]Enquanto isso, o núcleo de transformada, a matriz de transformada e o coeficiente que constitui a matriz de núcleo de transformada, isto é, o coeficiente de núcleo ou o coeficiente de matriz, descritos na presente divulgação, podem ser expressos em 8 bits. Isso pode ser uma condição para implementação no aparelho de decodificação e no aparelho de codificação e pode reduzir a quantidade de memória necessária para armazenar o núcleo de transformada com uma degradação de desempenho que pode ser razoavelmente acomodada em comparação com os 9 bits ou 10 bits existentes. Além disso, a expressão da matriz do núcleo em 8 bits pode permitir que um pequeno multiplicador seja usado e pode ser mais adequado para instruções de dados múltiplos de instrução única (SIMD) usadas para implementação de software ideal.
[0129]No presente relatório descritivo, o termo “RST” pode significar uma transformada que é realizada em amostras residuais para um bloco alvo com base em uma matriz de transformada cujo tamanho é reduzido de acordo com um fator reduzido. No caso de realizar a transformada reduzida , a quantidade de computação necessária para a transformada pode ser reduzida devido a uma redução no tamanho da matriz de transformada. Ou seja, a RST pode ser usado para resolver o problema de complexidade computacional que ocorre na transformada não separável ou na transformada de um bloco de grande porte.
[0130]RST pode ser denominada como vários termos, tais como transformada reduzida, transformada secundária reduzida, transformada de redução, transformada simplificada, transformada simples e semelhantes, e o nome que RST pode ser denominado como não está limitado aos listados exemplos. Alternativamente, uma vez que a RST é realizada principalmente em uma região de baixa frequência incluindo um coeficiente diferente de zero em um bloco de transformada, ela pode ser denominada como uma Transformada Não Separável de Baixa Frequência (LFNST). O índice de transformada pode ser denominado como um índice de LFNST.
[0131]Enquanto isso, quando a transformada inversa secundária é realizada com base em RST, o transformador inverso 135 do aparelho de codificação 100 e o transformador inverso 222 do aparelho de decodificação 200 podem incluir um transformador secundário inverso reduzido que deriva coeficientes de transformada modificados com base na RST inverso dos coeficientes de transformada e um transformador primário inverso que deriva amostras residuais para o bloco alvo com base na transformada primária inversa dos coeficientes de transformada modificados. A transformada primária inversa refere-se à transformada inversa da transformada primária aplicada ao resíduo. Na presente divulgação, derivar um coeficiente de transformada com base em uma transformada pode referir-se a derivar um coeficiente de transformada aplicando a transformada.
[0132]A Figura 5 é um diagrama que ilustra uma RST de acordo com uma modalidade da presente divulgação.
[0133]Na presente divulgação, um “bloco alvo” pode referir-se a um bloco atual a ser codificado, um bloco residual, ou um bloco de transformada.
[0134]Na RST de acordo com um exemplo, um vetor N-dimensional pode ser mapeado para um vetor R-dimensional localizado em outro espaço, de modo que a matriz de transformada reduzida possa ser determinada, onde R é menor que N. N pode significar o quadrado do comprimento de um lado de um bloco ao qual a transformada é aplicada, ou o número total de coeficientes de transformada correspondentes a um bloco ao qual a transformada é aplicada, e o fator reduzido pode significar um valor R/N. O fator reduzido pode ser denominado como um fator reduzido, fator de redução, fator simplificado, fator simples ou outros vários termos. Enquanto isso, R pode ser denominado como um coeficiente reduzido, mas de acordo com as circunstâncias, o fator reduzido pode significar R. Além disso, de acordo com as circunstâncias, o fator reduzido pode significar o valor N/R.
[0135]Em um exemplo, o fator reduzido ou o coeficiente reduzido podem ser sinalizados através de um fluxo de bits, mas o exemplo não se limita a isso. Por exemplo, um valor predefinido para o fator reduzido ou o coeficiente reduzido pode ser armazenado em cada aparelho de codificação 100 e aparelho de decodificação 200 e, neste caso, o fator reduzido ou o coeficiente reduzido podem não ser sinalizados separadamente.
[0136]O tamanho da matriz de transformada reduzida de acordo com um exemplo pode ser R x N menor que N x N, o tamanho de uma matriz de transformada convencional e pode ser definido como na Equação 4 abaixo. Equação 4
[0137]A matriz T no bloco de Transformada Reduzida mostrado na Figura 5(a) pode significar a matriz TRxN da Equação 4. Conforme mostrado na Figura 5(a), quando a matriz de transformada reduzida TRxN é multiplicada por amostras residuais para o bloco alvo, os coeficientes de transformada para o bloco alvo podem ser derivados.
[0138]Em um exemplo, se o tamanho do bloco ao qual a transformada é aplicada for 8 x 8 e R = 16 (ou seja, R/N = 16/64 = 1/4), então o RST de acordo com a Figura 5(a) pode ser expresso como uma operação de matriz conforme mostrado na Equação 5 abaixo. Neste caso, o cálculo de memória e multiplicação pode ser reduzido para aproximadamente 1/4 pelo fator reduzido.
[0139]Na presente divulgação, uma operação de matriz pode ser entendida como uma operação de multiplicação de um vetor coluna por uma matriz, disposta à esquerda do vetor coluna, para obter um vetor coluna. Equação 5
[0140]Na Equação 5, r1 a r64 podem representar amostras residuais para o bloco alvo e podem ser especificamente coeficientes de transformada gerados pela aplicação de uma transformada primária. Como resultado do cálculo da Equação 5, os coeficientes de transformada ci para o bloco alvo podem ser derivados e um processo de derivação de ci pode ser como na Equação 6.
[0141]Como resultado do cálculo da Equação 6, os coeficientes de transformada c1 a cR para o bloco alvo podem ser derivados. Ou seja, quando R = 16, os coeficientes de transformada c1 a c16 para o bloco alvo podem ser derivados. Se, em vez de RST, uma transformada regular for aplicada e uma matriz de transformada de tamanho 64 x 64 (N x N) for multiplicada para amostras residuais de tamanho 64 x 1 (N x 1), apenas 16 (R) coeficientes de transformada serão derivados para o bloco de destino porque RST foi aplicado, embora 64 (N) coeficientes de transformada sejam derivados para o bloco alvo. Uma vez que o número total de coeficientes de transformada para o bloco alvo é reduzido de N para R, a quantidade de dados transmitidos pelo aparelho de codificação 100 para o aparelho de decodificação 200 diminui, de modo que a eficiência de transmissão entre o aparelho de codificação 100 e o aparelho de decodificação 200 pode ser melhorado.
[0142]Quando considerado do ponto de vista do tamanho da matriz de transformada, o tamanho da matriz de transformada regular é 64 x 64 (N x N), mas o tamanho da matriz de transformada reduzida é reduzido para 16 x 64 (R x N), então o uso de memória no caso de realizar a RST pode ser reduzida por uma razão R/N quando comparado com o caso de realizar a transformada regular. Além disso, quando comparado ao número de cálculos de multiplicação N x N no caso de utilização da matriz transformada regular, o uso da matriz transformada reduzida pode reduzir o número de cálculos de multiplicação pela razão R/N (R x N).
[0143]Em um exemplo, o transformador 132 do aparelho de codificação 100 pode derivar coeficientes de transformada para o bloco alvo realizando a transformada primária e a transformada secundária baseada em RST em amostras residuais para o bloco alvo. Estes coeficientes de transformada podem ser transferidos para o transformador inverso do aparelho de decodificação 200 e o transformador inverso 222 do aparelho de decodificação 200 pode derivar os coeficientes de transformada modificados com base na transformada secundária inversa reduzida (RST) para os coeficientes de transformada e podem derivar amostras residuais para o bloco alvo com base na transformada primária inversa para os coeficientes de transformada modificados.
[0144]O tamanho da matriz de RST inversa TRxN de acordo com um exemplo é N x R menor que o tamanho N x N da matriz de transformada inversa regular e está em uma relação de transposição com a matriz de transformada reduzida TRxN mostrada na Equação 4.
[0145]A matriz Tt no Inv Reduzido. Bloco de transformada mostrado na Figura 5(b) pode significar a matriz de RST inversa TRxNT (o T sobrescrito significa transposição). Quando a matriz de RST inversa TRxNTé multiplicada pelos coeficientes de transformada para o bloco alvo como mostrado na Figura 5(b), os coeficientes de transformada modificados para o bloco alvo ou as amostras residuais para o bloco atual podem ser derivados. A matriz de RST inversa TRxNT pode ser expressa como (TRxNT)NxR.
[0146]Mais especificamente, quando a RST inversa é aplicada como a transformada inversa secundária, os coeficientes de transformada modificados para o bloco alvo podem ser derivados quando a matriz de RST inversa TRxNT multiplicada pelos coeficientes de transformada para o bloco alvo. Enquanto isso, a RST inversa pode ser aplicada como a transformada primária inversa e, neste caso, as amostras residuais para o bloco alvo podem ser derivadas quando a matriz de RST inversa TRxNTé multiplicada pelos coeficientes de transformada para o bloco alvo.
[0147]Em um exemplo, se o tamanho do bloco ao qual a transformada inversa é aplicada for 8 x 8 e R = 16 (ou seja, R/N = 16/64 = 1/4), então a RST de acordo com a Figura 5(b) pode ser expressa como uma operação de matriz conforme mostrado na Equação 7 abaixo. Equação 7
[0148]Na Equação 7, c1 a c16 podem representar os coeficientes de transformada para o bloco alvo. Como resultado do cálculo da Equação 7, ri representando os coeficientes de transformada modificados para o bloco alvo ou as amostras residuais para o bloco alvo podem ser derivados e o processo de derivação de ri pode ser como na Equação 8.
[0149]Como resultado do cálculo da Equação 8, r1 a rN representando os coeficientes de transformada modificados para o bloco alvo ou as amostras residuais para o bloco alvo podem ser derivadas. Quando considerado do ponto de vista do tamanho da matriz de transformada inversa, o tamanho da matriz de transformada inversa regular é 64 x 64 (N x N), mas o tamanho da matriz de transformada inversa reduzida é reduzido para 64 x 16 (R x N), então o uso de memória em um caso de realizar a RST inversa pode ser reduzida por uma razão R/N quando comparado com um caso de realizar a transformada inversa regular. Além disso, quando comparado ao número de cálculos de multiplicação N x N em um caso de uso da matriz de transformada inversa regular, o uso da matriz de transformada inversa reduzida pode reduzir o número de cálculos de multiplicação pela razão R/N (N x R).
[0150]Uma configuração de conjunto de transformada mostrada na Tabela 2 também pode ser aplicada a uma RST 8 x 8. Ou seja, a RST 8 x 8 pode ser aplicada de acordo com um conjunto de transformadas na Tabela 2. Como um conjunto de transformadas inclui duas ou três transformadas (núcleos) de acordo com um modo de intrapredição, ele pode ser configurado para selecionar um de até quatro transformadas incluindo aquela em um caso em que nenhuma transformada secundária é aplicada. Em uma transformada em que nenhuma transformada secundária é aplicada, pode-se considerar a aplicação de uma matriz de identidade. Assumindo que os índices 0, 1, 2 e 3 são atribuídos respectivamente às quatro transformadas (por exemplo, o índice 0 pode ser alocado para um caso onde uma matriz identidade é aplicada, isto é, um caso onde nenhuma transformada secundária é aplicada), um índice de transformada ou um índice de LFNST como um elemento de sintaxe pode ser sinalizado para cada bloco de coeficiente de transformada, designando assim uma transformada a ser aplicada. Ou seja, para um bloco 8 x 8 superior esquerdo, através do índice de transformada, é possível designar uma RST 8 x 8 em uma configuração de RST, ou designar um lfnst 8 x 8 quando a LFNST for aplicada. O lfnst 8 x 8 e a RST 8 x 8 referem-se a transformadas aplicáveis a uma região 8 x 8 incluída no bloco de coeficiente de transformada quando W e H do bloco alvo a ser transformado são iguais ou maiores que 8, e a região 8 x 8 pode ser uma região 8 x 8 superior esquerda no bloco de coeficiente de transformada. Da mesma forma, um lfnst 4 x 4 e uma RST 4 x 4 referem-se a transformadas aplicáveis a uma região 4 x 4 incluída no bloco de coeficiente de transformada quando W e H do bloco alvo são iguais ou maiores que 4, e a região 4 x 4 pode ser uma região 4 x 4 superior esquerda no bloco de coeficiente de transformada.
[0151]De acordo com uma modalidade da presente divulgação, para uma transformada em um processo de codificação, apenas 48 pedaços de dados podem ser selecionados e uma matriz de núcleo de transformada máxima de 16 x 48 pode ser aplicada a ela, em vez de aplicar uma transformada de 16 x 64 matriz do núcleo para 64 pedaços de dados formando uma região de 8 x 8. Aqui, “máximo” significa que m tem um valor máximo de 16 em uma matriz de núcleo de transformada m x 48 para gerar m coeficientes. Ou seja, quando uma RST é realizada aplicando uma matriz de núcleo de transformada m x 48 (m < 16) a uma região 8 x 8, 48 dados são inseridos e os coeficientes m são gerados. Quando m é 16, 48 dados são inseridos e 16 coeficientes são gerados. Ou seja, assumindo que 48 dados formam um vetor 48 x 1, uma matriz 16 x 48 e um vetor 48 x 1 são multiplicados sequencialmente, gerando assim um vetor 16 x 1. Aqui, os 48 pedaços de dados que formam a região 8 x 8 podem ser dispostos adequadamente, formando assim o vetor 48 x 1. Por exemplo, um vetor 48 x 1 pode ser construído com base em 48 pedaços de dados que constituem uma região excluindo a região 4 x 4 inferior direita entre as regiões 8 x 8. Aqui, quando uma operação de matriz é realizada aplicando uma matriz de núcleo de transformada máxima de 16 x 48, 16 coeficientes de transformada modificados são gerados e os 16 coeficientes de transformada modificados podem ser dispostos em uma região 4 x 4 superior esquerda de acordo com uma ordem de varredura, e uma região 4 x 4 superior direita e uma região 4 x 4 inferior esquerda podem ser preenchidas com zeros.
[0152]Para uma transformada inversa em um processo de decodificação, a matriz transposta da matriz de núcleo de transformada anterior pode ser usada. Ou seja, quando uma RST inversa ou LFNST é realizada no processo de transformada inversa realizado pelo aparelho de decodificação, os dados de coeficiente de entrada aos quais a RST inversa é aplicada são configurados em um vetor unidimensional de acordo com uma ordem de disposição predeterminada e um modificado vetor de coeficiente obtido pela multiplicação do vetor unidimensional e uma matriz de RST inversa correspondente à esquerda do vetor unidimensional pode ser disposto em um bloco bidimensional de acordo com uma ordem de disposição predeterminada.
[0153]Em resumo, no processo de transformada, quando uma RST ou LFNST é aplicada a uma região 8 x 8, uma operação de matriz de 48 coeficientes de transformada nas regiões superior esquerda, superior direita e inferior esquerda das regiões 8 x 8 excluindo a região inferior direita entre os coeficientes de transformada na região de 8 x 8 e uma matriz de núcleo de transformada de 16 x 48. Para a operação de matriz, os 48 coeficientes de transformada são inseridos em uma matriz unidimensional. Quando a operação de matriz é realizada, 16 coeficientes de transformada modificados são derivados e os coeficientes de transformada modificados podem ser dispostos na região superior esquerda da região 8 x 8.
[0154]Pelo contrário, no processo de transformada inversa, quando uma RST ou LFNST inversa é aplicada a uma região de 8 x 8, 16 coeficientes de transformada correspondendo a uma região superior esquerda da região de 8 x 8 entre os coeficientes de transformada na região 8 x 8 pode ser inserida em uma matriz unidimensional de acordo com uma ordem de varredura e pode ser submetida a uma operação de matriz com uma matriz de núcleo de transformada de 48 x 16. Ou seja, a operação de matriz pode ser expressa como (48 x 16 matriz) * (16 x 1 vetor de coeficiente de transformada) = (48 x 1 vetor de coeficiente de transformada modificado). Aqui, um vetor n x 1 pode ser interpretado como tendo o mesmo significado que uma matriz n x 1 e, portanto, pode ser expresso como um vetor de coluna n x 1. Além disso, *denota multiplicação de matrizes. Quando a operação de matriz é realizada, 48 coeficientes de transformada modificados podem ser derivados e os 48 coeficientes de transformada modificados podem ser dispostos nas regiões superior esquerda, superior direita e inferior esquerda da região 8 x 8 excluindo uma região inferior direita.
[0155]Quando uma transformada inversa secundária é baseada em uma RST, o transformador inverso 135 do aparelho de codificação 100 e o transformador inverso 222 do aparelho de decodificação 200 podem incluir um transformador secundário inverso reduzido para derivar coeficientes de transformada modificados com base em uma RST inversa em coeficientes de transformada e um transformador primário inverso para derivar amostras residuais para o bloco alvo com base em uma transformada primária inversa nos coeficientes de transformada modificados. A transformada primária inversa refere-se à transformada inversa de uma transformada primária aplicada a um resíduo. Na presente divulgação, derivar um coeficiente de transformada com base em uma transformada pode referir-se a derivar o coeficiente de transformada aplicando a transformada.
[0156]A transformada não separada descrita acima, a LFNST, será descrita em detalhes a seguir. A LFNST pode incluir uma transformada direta pelo aparelho de codificação e uma transformada inversa pelo aparelho de decodificação.
[0157]O aparelho de codificação recebe um resultado (ou parte de um resultado) derivado após a aplicação de uma transformada primária (núcleo) como entrada e aplica uma transformada secundária direta (transformada secundária). Equação 9
[0158]Na Equação 9, x e y são entradas e saídas da transformada secundária, respectivamente, e G é uma matriz que representa a transformada secundária, e os vetores da base da transformada são compostos de vetores de coluna. No caso de uma LFNST inversa, quando a dimensão da matriz de transformada G é expressa como [número de linhas x número de colunas], no caso de uma LFNST direta, a transposição da matriz G passa a ser a dimensão de GT.
[0159]Para a LFNST inversa, as dimensões da matriz G são [48 x 16], [48 x 8], [16 x 16], [16 x 8], e a matriz [48 x 8] e a [16] x 8] são matrizes parciais que amostraram 8 vetores de base de transformada da esquerda da matriz [48 x 16] e da matriz [16 x 16], respectivamente.
[0160]Por outro lado, para a LFNST direta, as dimensões da matriz GT são [16 x 48], [8 x 48], [16 x 16], [8 x 16], e o [8 x 48] matriz e a matriz [8 x 16] são matrizes parciais obtidas pela amostragem de 8 vetores de base de transformada do topo da matriz [16 x 48] e da matriz [16 x 16], respectivamente.
[0161]Portanto, no caso da LFNST direta, um vetor [48 x 1] ou [16 x 1] é possível como uma entrada x, e um vetor [16 x 1] ou um vetor [8 x 1] é possível como uma saída y. Na codificação e decodificação de vídeo, a saída da transformada primária direta são dados bidimensionais (2D), então para construir o vetor [48 x 1] ou o vetor [16 x 1] como a entrada x, um vetor unidimensional deve ser construído organizando adequadamente os dados 2D que são a saída da transformada direta.
[0162]A Figura 6 é um diagrama que ilustra uma sequência de arranjo de dados de saída de uma transformada primária direta em um vetor unidimensional de acordo com um exemplo. Os diagramas da esquerda de (a) e (b) da Figura 6 mostram a sequência para a construção de um vetor [48 x 1] e os diagramas corretos de (a) e (b) da Figura 6 mostra a sequência para construir um vetor [16 x 1]. No caso da LFNST, um vetor unidimensional x pode ser obtido organizando sequencialmente os dados 2D na mesma ordem que em (a) e (b) da Figura 6.
[0163]A direção de arranjo dos dados de saída da transformada primária direta pode ser determinada de acordo com um modo de intrapredição do bloco atual. Por exemplo, quando o modo de intrapredição do bloco atual está na direção horizontal em relação à direção diagonal, os dados de saída da transformada primária direta podem ser dispostos na ordem de (a) da Figura 6, e quando o modo de intrapredição do bloco atual está na direção vertical em relação à direção diagonal, os dados de saída da transformada primária direta podem ser dispostos na ordem de (b) da Figura 6.
[0164]De acordo com um exemplo, uma ordem de arranjo diferente das ordens de arranjo de (a) e (b) Figura 6 pode ser aplicado, e para derivar o mesmo resultado (vetor y) como quando as ordens de arranjo de (a) e (b) Figura 6 for aplicado, os vetores de coluna da matriz G podem ser rearranjados de acordo com a ordem de arranjo. Ou seja, é possível rearranjar os vetores coluna de G de forma que cada elemento que constitui o vetor x seja sempre multiplicado pelo mesmo vetor base da transformada.
[0165]Uma vez que a saída y derivada através da Equação 9 é um vetor unidimensional, quando dados bidimensionais são necessários como dados de entrada no processo de uso do resultado da transformada secundária direta como entrada, por exemplo, no processo de realizar quantização ou codificação residual, o vetor y de saída da Equação 9 deve ser adequadamente organizado como dados 2D novamente.
[0166]A Figura 7 é um diagrama que ilustra uma sequência de arranjo de dados de saída de uma transformada secundária direta em um bloco bidimensional de acordo com um exemplo.
[0167]No caso da LFNST, os valores de saída podem ser dispostos em um bloco 2D de acordo com uma ordem de varredura predeterminada. (a) da Figura 7 mostra que quando a saída y é um vetor [16 x 1], os valores de saída são dispostos em 16 posições do bloco 2D de acordo com uma ordem de varredura diagonal. (b) da Figura 7 mostra que quando a saída y é um vetor [8 x 1], os valores de saída são dispostos em 8 posições do bloco 2D de acordo com a ordem de varredura diagonal, e as 8 posições restantes são preenchidas com zeros. X em (b) da Figura 7 indica que está preenchido com zero.
[0168]De acordo com outro exemplo, uma vez que a ordem em que o vetor de saída y é processado na execução da quantização ou codificação residual pode ser predefinida, o vetor de saída y não pode ser disposto no bloco 2D como mostrado na Figura 7. No entanto, no caso da codificação residual, a codificação de dados pode ser realizada em unidades de bloco 2D (por exemplo, 4 x 4) como CG (Grupo de Coeficientes), e neste caso, os dados são organizados de acordo com uma ordem específica como em a ordem de varredura diagonal da Figura 7.
[0169]Enquanto isso, o aparelho de decodificação pode configurar o vetor de entrada unidimensional y organizando a saída de dados bidimensionais através de um processo de desquantização ou semelhante de acordo com uma ordem de varredura predefinida para a transformada inversa. O vetor de entrada y pode ser emitido como o vetor de saída x pela seguinte equação. Equação 10
[0170]No caso da LFNST inversa, um vetor de saída x pode ser derivado multiplicando um vetor de entrada y, que é um vetor [16 x 1] ou um vetor [8 x 1], por uma matriz G. Para a LFNST inversa, o vetor de saída x pode ser um vetor [48 x 1] ou um vetor [16 x 1].
[0171]O vetor de saída x é disposto em um bloco bidimensional de acordo com a ordem mostrada na Figura 6 e é organizado como dados bidimensionais, e esses dados bidimensionais tornam-se dados de entrada (ou uma parte dos dados de entrada) da transformada primária inversa.
[0172]Consequentemente, a transformada secundária inversa é o oposto do processo de transformada secundária direta como um todo, e no caso da transformada inversa, diferentemente da direção direta, a transformada secundária inversa é aplicada primeiro e, em seguida, a primária inversa transformada é aplicada.
[0173]Na LFNST inversa, uma das 8 [48 x 16] matrizes e 8 [16 x 16] matrizes podem ser selecionadas como a matriz de transformada G. Se deve aplicar a matriz [48 x 16] ou a [16 x 16]] depende do tamanho e forma do bloco.
[0174]Além disso, 8 matrizes podem ser derivadas de quatro conjuntos de transformadas conforme mostrado na Tabela 2 acima, e cada conjunto de transformadas pode consistir em duas matrizes. Qual o conjunto de transformadas a ser usado entre os 4 conjuntos de transformadas é determinado de acordo com o modo de intrapredição e, mais especificamente, o conjunto de transformadas é determinado com base no valor do modo de intrapredição estendido considerando a intrapredição de grande angular (WAIP). Qual matriz selecionar entre as duas matrizes que constituem o conjunto de transformada selecionado é derivada por meio de sinalização de índice. Mais especificamente, 0, 1 e 2 são possíveis como o valor de índice transmitido, 0 pode indicar que a LFNST não é aplicada e 1 e 2 podem indicar qualquer uma das duas matrizes de transformada que constituem um conjunto de transformada selecionado com base no modo valor de intrapredição.
[0175]Enquanto isso, como descrito acima, qual matriz de transformada da matriz [48 x 16] e da matriz [16 x 16] é aplicada à LFNST é determinada pelo tamanho e forma do bloco alvo de transformada.
[0176]A Figura 8 é um diagrama que ilustra um formato de bloco ao qual a LFNST é aplicada. (a) da Figura 8 mostra blocos 4 x 4, (b) mostra blocos 4 x 8 e 8 x 4, (c) mostra blocos 4 x N ou N x 4 em que N é 16 ou mais, (d) mostra blocos 8 x 8, (e) mostra blocos M x N onde M > 8, N > 8, e N > 8 ou M > 8.
[0177]Em Figura 8, blocos com bordas grossas indicam regiões nas quais a LFNST é aplicada. Para os blocos das Figuras 10 (a) e (b), a LFNST é aplicada à região 4 x 4 superior esquerda e para o bloco da Figura 8 (c), a LFNST é aplicada individualmente, as duas regiões 4 x 4 superiores esquerdas são dispostas continuamente. Em (a), (b) e (c) da Figura 8, uma vez que a LFNST é aplicada em unidades de regiões 4 x 4, esta LFNST será doravante denominada “LFNST 4 x 4”. Com base na dimensão da matriz para G, uma matriz [16 x 16] ou [16 x 8] pode ser aplicada.
[0178]Mais especificamente, a matriz [16 x 8] é aplicada ao bloco 4 x 4 (4 x 4 TU ou 4 x 4 CU) da Figura 8 (a) e a matriz [16 x 16] é aplicada aos blocos em (b) e (c) da Figura 8. Isto é para ajustar a complexidade computacional para o pior caso para 8 multiplicações por amostra.
[0179]Com relação a (d) e (e) da Figura 8, a LFNST é aplicada à região 8 x 8 superior esquerda e esta LFNST é doravante denominada como “LFNST 8 x 8”. Como matriz de transformada correspondente, pode ser aplicada uma matriz [48 x 16] ou uma matriz [48 x 8]. No caso da LFNST direta, uma vez que o vetor [48 x 1] (vetor x na Equação 9) é inserido como dados de entrada, todos os valores de amostra da região 8 x 8 superior esquerda não são usados como valores de entrada da LFNST direto. Ou seja, como pode ser visto na ordem da esquerda da Figura 6 (a) ou a ordem da esquerda da Figura 6 (b), o vetor [48 x 1] pode ser construído com base em amostras pertencentes aos 3 blocos 4 x 4 restantes, deixando o bloco 4 x 4 inferior direito como está.
[0180]A matriz [48 x 8] pode ser aplicada a um bloco 8 x 8 (8 x 8 TU ou 8 x 8 CU) na Figura 8 (d), e a matriz [48 x 16] pode ser aplicada ao bloco 8 x 8 na Figura 8(e). Isso também serve para ajustar a complexidade computacional para o pior caso para 8 multiplicações por amostra.
[0181]Dependendo da forma do bloco, quando a LFNST direta correspondente (LFNST 4 x 4 ou LFNST 8 x 8) é aplicado, 8 ou 16 dados de saída (vetor y na Equação 9, vetor [8 x 1] ou [16 x 1]) é gerado. No LFNST direto, o número de dados de saída é igual ou menor que o número de dados de entrada devido às características da matriz GT.
[0182]A Figura 9 é um diagrama que ilustra um arranjo de dados de saída de uma LFNST direta de acordo com um exemplo, e mostra um bloco em que dados de saída da LFNST direta são dispostos de acordo com um formato de bloco.
[0183]A área sombreada na parte superior esquerda do bloco mostrado na Figura 9 corresponde à área onde os dados de saída da LFNST direta estão localizados, as posições marcadas com 0 indicam amostras preenchidas com valores 0, e a área restante representa regiões que não são alteradas pela LFNST direta. Na área não alterada pela LFNST, os dados de saída da transformada primária direta permanecem inalterados.
[0184]Como descrito acima, uma vez que a dimensão da matriz de transformada aplicada varia de acordo com a forma do bloco, o número de dados de saída também varia. Como a Figura 9, os dados de saída da LFNST direta podem não preencher completamente o bloco 4 x 4 superior esquerdo. No caso de (a) e (d) da Figura 9 , uma matriz [16 x 8] e uma matriz [48 x 8] são aplicadas ao bloco indicado por uma linha grossa ou uma região parcial dentro do bloco, respectivamente, e um vetor [8 x 1] como saída do LFNST para frente é gerado. Ou seja, de acordo com a ordem de varredura mostrada em (b) da Figura 7, apenas 8 dados de saída podem ser preenchidos como mostrado em (a) e (d) da Figura 9 e 0 podem ser preenchidos nas 8 posições restantes. No caso do bloco aplicado LFNST da Figura 8 (d), como mostrado na Figura 9(d), dois blocos 4 x 4 superiores direitos e inferiores esquerdos adjacentes ao bloco 4 x 4 superior esquerdo também são preenchidos com valores 0.
[0185]Conforme descrito acima, basicamente, ao sinalizar o índice de LFNST, especifica-se se deve ser aplicado a LFNST e a matriz de transformada a ser aplicada. Como mostrado a Figura 9, quando a LFNST é aplicada, uma vez que o número de dados de saída da LFNST direta pode ser igual ou menor que o número de dados de entrada, uma região preenchida com um valor zero ocorre como segue.
[0186]1) Como mostrado em (a) da Figura 9, amostras da 8a posição e posteriores na ordem de varredura no bloco 4 x 4 superior esquerdo, isto é, amostras da 9a à 16a.
[0187]2) Conforme mostrado em (d) e (e) da Figura 9, quando a matriz [48 x 16] ou a matriz [48 x 8] é aplicada, dois blocos 4 x 4 adjacentes ao bloco 4 x 4 superior esquerdo ou o segundo e terceiro blocos 4 x 4 na ordem de varredura.
[0188]Portanto, se existirem dados diferentes de zero verificando as áreas 1) e 2), é certo que a LFNST não é aplicada, de modo que a sinalização do índice de LFNST correspondente pode ser omitida.
[0189]De acordo com um exemplo, por exemplo, no caso da LFNST adotada no padrão VVC, uma vez que a sinalização do índice de LFNST é realizada após a codificação residual, o aparelho de codificação pode saber se existe o dado diferente de zero (significativo coeficientes) para todas as posições dentro do bloco de TU ou CU através da codificação residual. Consequentemente, o aparelho de codificação pode determinar se deve realizar sinalização no índice de LFNST com base na existência dos dados diferentes de zero e o aparelho de decodificação pode determinar se o índice de LFNST é analisado. Quando os dados diferentes de zero não existem na área designada em 1) e 2) acima, é realizada a sinalização do índice de LFNST.
[0190]Uma vez que um código unário truncado é aplicado como um método de binarização para o índice de LFNST, o índice de LFNST consiste em até dois bins, e 0, 10 e 11 são atribuídos como códigos binários para possíveis valores de índice de LFNST de 0, 1 , e 2, respectivamente. No caso da LFNST atualmente adotada para VVC, uma codificação de CABAC baseada em contexto é aplicada ao primeiro compartimento (codificação regular) e uma codificação de desvio é aplicada ao segundo compartimento. O número total de contextos para o primeiro bin é 2, quando (DCT-2, DCT-2) é aplicado como um par de transformada primária para as direções horizontal e vertical, e um componente de luma e um componente de croma são codificados em um tipo de árvore dupla, um contexto é alocado e outro contexto se aplica aos casos restantes. A codificação do índice de LFNST é mostrada em uma tabela como segue. Tabela 3
[0191]Entretanto, para a LFNST adotada, os seguintes métodos de simplificação podem ser aplicados.
[0192](i) De acordo com um exemplo, o número de dados de saída para a LFNST direta pode ser limitado a um máximo de 16.
[0193]No caso de (c) da Figura 8, a LFNST 4 x 4 pode ser aplicado a duas regiões 4 x 4 adjacentes à parte superior esquerda, respectivamente, e neste caso, um máximo de 32 dados de saída de LFNST podem ser gerados quando o número de dados de saída para LFNST direta é limitado a um máximo de 16, no caso de blocos 4 x N/N x 4 (N > 16) (TU ou CU), a LFNST 4 x 4 é aplicada apenas a uma região 4 x 4 superior esquerda, a LFNST pode ser aplicada apenas uma vez a todos os blocos da Figura 8. Com isso, a implementação da codificação de imagem pode ser simplificada.
[0194]A Figura 10 mostra que o número de dados de saída para a LFNST direta é limitado a um máximo de 16 de acordo com um exemplo. Como a Figura 10, quando a LFNST é aplicada à região 4 x 4 mais superior esquerda em um bloco 4 x N ou N x 4 no qual N é 16 ou mais, os dados de saída da LFNST direta se tornam 16 peças.
[0195](ii) De acordo com um exemplo, o zero-out pode ser adicionalmente aplicado a uma região à qual a LFNST não é aplicada. Neste documento, o zero-out pode significar o preenchimento de valores de todas as posições pertencentes a uma determinada região com valor 0. Ou seja, o zero-out pode ser aplicado a uma região que não é alterada devido à LFNST e mantém a resultado da transformada primária direta. Conforme descrito acima, uma vez que a LFNST é dividida em LFNST 4 x 4 e LFNST 8 x 8, o zero-out pode ser dividido em dois tipos ((ii)-(A) e (ii)-(B)) como segue.
[0196](ii)-(A) Quando a LFNST 4 x 4 é aplicada, uma região à qual a LFNST 4 x 4 não é aplicada pode ser zerada. A Figura 11 é um diagrama que ilustra o zero- out em um bloco ao qual a LFNST 4 x 4 é aplicada de acordo com um exemplo.
[0197]Como mostrado na Figura 11, em relação a um bloco ao qual a LFNST 4 x 4 é aplicada, isto é, para todos os blocos em (a), (b) e (c) da Figura 9, toda a região à qual a LFNST não é aplicada pode ser preenchida com zeros.
[0198]Por outro lado, (d) da Figura 11 mostra que quando o valor máximo do número de dados de saída da LFNST direta é limitado a 16 como mostrado na Figura 10, o zero-out é realizado nos blocos restantes aos quais a LFNST 4 x 4 não é aplicada.
[0199](ii)-(B) Quando a LFNST 8 x 8 é aplicada, uma região à qual a LFNST 8 x 8 não é aplicada pode ser zerada. A Figura 12 é um diagrama que ilustra o zero- out em um bloco ao qual a LFNST 8 x 8 é aplicada de acordo com um exemplo.
[0200]Como mostrado na Figura 12, em relação a um bloco ao qual a LFNST 8 x 8 é aplicada, isto é, para todos os blocos em (d) e (e) da Figura 9, toda a região à qual a LFNST não é aplicada pode ser preenchida com zeros.
[0201](iii) Devido ao zero-out apresentado em (ii) acima, a área preenchida com zeros pode não ser a mesma quando a LFNST for aplicada. Assim, é possível verificar se os dados diferentes de zero existem de acordo com o zero-out proposto em (ii) em uma área mais ampla do que o caso da LFNST da Figura 9.
[0202]Por exemplo, quando (ii)-(B) é aplicado, após verificar se os dados diferentes de zero existem onde a área preenchida com valores zero em (d) e (e) da Figura 9 além da área preenchida com 0 adicionalmente na Figura 12, a sinalização para o índice de LFNST pode ser realizada apenas quando os dados diferentes de zero não existem.
[0203]Certamente, mesmo que o zero-out proposto em (ii) seja aplicado, é possível verificar se os dados diferentes de zero existem da mesma forma que a sinalização do índice de LFNST existente. Ou seja, após verificar se os dados diferentes de zero existem no bloco preenchido com zeros na Figura 9, a sinalização do índice de LFNST pode ser aplicada. Neste caso, o aparelho de codificação realiza apenas a saída do zero e o aparelho de decodificação não assume a saída do zero, isto é, verificando apenas se os dados diferentes de zero existem apenas na área explicitamente marcada como 0 na Figura 9, pode realizar a análise do índice de LFNST.
[0204]Alternativamente, de acordo com um outro exemplo, o zero-out pode ser realizada como mostrado na Figura 13. A Figura 13 é um diagrama que ilustra o zero-out em um bloco ao qual a LFNST 8 x 8 é aplicada de acordo com um outro exemplo.
[0205]Como mostrado nas Figuras 11 e 12, o zero-out pode ser aplicado a todas as regiões diferentes da região à qual a LFNST é aplicada, ou o zero-out pode ser aplicado apenas a uma região parcial como mostrado na Figura 13. O zero-out é aplicado apenas a regiões diferentes da região 8 x 8 superior esquerda da Figura 13, o zero-out não pode ser aplicado ao bloco 4 x 4 inferior direito dentro da região 8 x 8 superior esquerda.
[0206]Várias modalidades nas quais são aplicadas combinações dos métodos de simplificação ((i), (ii)-(A), (ii)-(B), (iii)) para a LFNST podem ser derivadas. Obviamente, as combinações dos métodos de simplificação acima não estão limitadas à modalidade a seguir e qualquer combinação pode ser aplicada à LFNST. Modalidade
[0207]- Limitar o número de dados de saída para LFNST direta a um máximo de 16 ^ (i)
[0208]- Quando a LFNST 4 x 4 é aplicada, todas as áreas nas quais LFNST 4 x 4 não é aplicada são zero-out ^ (ii)-(A)
[0209]- Quando a LFNST 8 x 8 é aplicada, todas as áreas nas quais LFNST 8 x 8 não é aplicada são zeradas ^ (ii)-(B)
[0210]- Depois de verificar se os dados diferentes de zero existem também a área existente preenchida com valor zero e a área preenchida com zeros devido a zero-outs adicionais ((ii)-(A), (ii)-(B)), o índice de LFNST é sinalizado apenas quando o dado diferente de zero não existe ^ (iii)
[0211]No caso de Modalidade, quando a LFNST é aplicada, uma área na qual os dados de saída diferentes de zero podem existir é limitada ao interior da área 4 x 4 superior esquerda. Mais detalhadamente, no caso da Figura 11 (a) e Figura 12 (a), a 8a posição na ordem de varredura é a última posição onde podem existir dados diferentes de zero. No caso da Figura 11 (b) e (c) e Figura 12 (b), a 16a posição na ordem de varredura (ou seja, a posição da borda inferior direita do bloco 4 x 4 superior esquerdo) é a última posição onde podem existir dados diferentes de 0.
[0212]Portanto, quando a LFNST é aplicada, após verificar se os dados diferentes de zero existem em uma posição onde o processo de codificação residual não é permitido (em uma posição além da última posição), pode-se determinar se o índice de LFNST é sinalizado.
[0213]No caso do método zero-out proposto em (ii), uma vez que o número de dados finalmente gerados quando a transformada primária e a LFNST são aplicadas, a quantidade de computação necessária para realizar todo o processo de transformada pode ser reduzida. Ou seja, quando a LFNST é aplicada, uma vez que o zero-out é aplicado aos dados de saída da transformada primária direta existentes em uma região na qual a LFNST não é aplicada, não há necessidade de gerar dados para a região que se torna zero-out durante realizando a transformada primária direta. Assim, é possível reduzir a quantidade de computação necessária para gerar os dados correspondentes. Os efeitos adicionais do método de zero-out proposto em (ii) são resumidos a seguir.
[0214]Primeiro, como descrito acima, a quantidade de computação necessária para realizar todo o processo de transformada é reduzida.
[0215]Em particular, quando (ii)-(B) é aplicado, a quantidade de cálculo para o pior caso é reduzida, de modo que o processo de transformada pode ser aligeirado. Em outras palavras, em geral, uma grande quantidade de computação é necessária para realizar uma transformada primária de grande porte. Ao aplicar (ii)-(B), o número de dados derivados como resultado da execução da LFNST direta pode ser reduzido para 16 ou menos. Além disso, à medida que o tamanho do bloco inteiro (TU ou CU) aumenta, o efeito de reduzir a quantidade de operação de transformada aumenta ainda mais.
[0216]Em segundo lugar, a quantidade de computação necessária para todo o processo de transformada pode ser reduzida, reduzindo assim o consumo de energia necessário para realizar a transformada.
[0217]Terceiro, a latência envolvida no processo de transformada é reduzida.
[0218]A transformada secundária, como a LFNST, adiciona uma quantidade computacional à transformada primária existente, aumentando assim o tempo de atraso geral envolvido na execução da transformada. Em particular, no caso de intrapredição, uma vez que os dados reconstruídos de blocos vizinhos são usados no processo de predição, durante a codificação, um aumento na latência devido a uma transformada secundária leva a um aumento na latência até a reconstrução. Isso pode levar a um aumento na latência geral da codificação de intrapredição.
[0219]No entanto, se o zero-out sugerido em (ii) for aplicado, o tempo de atraso para realizar a transformada primária pode ser bastante reduzido quando a LFNST é aplicada, o tempo de atraso para a transformada inteira é mantido ou reduzido, de modo que o aparelho de codificação pode ser implementado de forma mais simples.
[0220]Enquanto isso, na intrapredição convencional, um bloco alvo de codificação é considerado como uma unidade de codificação, e a codificação é realizada sem partição do mesmo. No entanto, a codificação de ISP (Intra Sub- Partições) refere-se à realização da codificação de intrapredição com o bloco alvo de codificação sendo particionado em uma direção horizontal ou vertical. Neste caso, um bloco reconstruído pode ser gerado realizando codificação/decodificação em unidades de blocos particionados, e o bloco reconstruído pode ser usado como um bloco de referência do próximo bloco particionado. De acordo com um exemplo, na codificação de ISP, um bloco de codificação pode ser particionado em dois ou quatro sub-blocos e ser codificado, e na ISP, a intrapredição é realizada em um sub-bloco referindo-se ao valor de pixel reconstruído de um sub-bloco localizado adjacente ao lado esquerdo ou superior do mesmo. Doravante, o termo "codificação"pode ser usado como um conceito incluindo tanto a codificação realizada pelo aparelho de codificação quanto a decodificação realizada pelo aparelho de decodificação.
[0221]Tabela 4 mostra o número de sub-blocos particionado de acordo com tamanhos de bloco quando ISP é aplicada, e sub-partições particionadas de acordo com ISP podem ser denominadas como blocos de transformada (TUs). Tabela 4
[0222]O ISP particiona um bloco previsto como luma intra em dois ou quatro sub-particionamentos na direção vertical ou horizontal de acordo com o tamanho do bloco. Por exemplo, o tamanho mínimo do bloco ao qual o ISP pode ser aplicado é 4 x 8 ou 8 x 4. Se o tamanho do bloco for maior que 4 x 8 ou 8 x 4, o bloco será particionado em quatro sub-particionamentos.
[0223]As Figuras 14 e 15 mostram um exemplo de um sub-bloco no qual um bloco de codificação é particionado e, mais especificamente, a Figura 14 é um exemplo de partição para um caso em que um bloco de codificação (largura (W) X altura (H)) é um bloco 4 x 8 ou um bloco 8 x 4, e a Figura 15 mostra um exemplo de partição para um caso em que um bloco de codificação não é um bloco 4 x 8, nem um bloco 8 x 4, nem um bloco 4 x 4.
[0224]Quando o ISP é aplicado, os sub-blocos são codificados sequencialmente de acordo com o tipo de partição, como, horizontal ou verticalmente, da esquerda para a direita, ou de cima para baixo, e a codificação para o próximo sub- bloco pode ser realizada após a realização de um processo de restauração por meio de transformada inversa e intrapredição para um sub-bloco. Para o sub-bloco mais à esquerda ou mais alto, como em um método de intrapredição convencional, o pixel reconstruído do bloco de codificação que já foi codificado é referido. Além disso, se o sub-bloco anterior não for adjacente a cada lado de um sub-bloco interno que o segue, para derivar pixels de referência adjacentes a um lado correspondente, como no método de intrapredição convencional, o pixel reconstruído de um já bloco de codificação adjacente codificado é referido.
[0225]No modo de codificação de ISP, todos os sub-blocos podem ser codificados com o mesmo modo de intrapredição, e um sinalizador indicando se deve ou não usar a codificação de ISP e um sinalizador indicando em qual direção (horizontal ou vertical) a partição deve ser realizada pode ser sinalizada. Como nas Figuras 14 e 15, o número de sub-blocos pode ser ajustado para 2 ou 4 dependendo da forma do bloco, e quando o tamanho (largura x altura) de um sub-bloco for menor que 16, a partição pode não ser permitida para o sub-blocos correspondentes, nem a aplicação da própria codificação do ISP pode ser restringida.
[0226]Enquanto isso, no caso do modo de predição de ISP, uma unidade de codificação é particionada em dois ou quatro blocos de partição, isto é, sub-blocos, e predito, e o mesmo modo de intrapredição é aplicado aos dois ou quatro blocos assim blocos de partição particionados.
[0227]Como descrito acima, tanto uma direção horizontal (se uma unidade de codificação M x N com um comprimento horizontal e um comprimento vertical de M e N, respectivamente, é dividida na direção horizontal, ela é dividida em blocos M x (N/2) quando dividido em dois, e em blocos M x (N/4) quando dividido em quatro) e uma direção vertical (se a unidade de codificação M x N for dividida na direção vertical, ela será dividida em blocos (M/2)xN quando dividida em dois, e divididos em (M/4)xN blocos quando divididos em quatro) são possíveis como direção de partição. Quando particionados na direção horizontal, os blocos de partição são codificados em uma ordem de cima para baixo e, quando particionados na direção vertical, os blocos de partição são codificados em uma ordem da esquerda para a direita. O bloco de partição atualmente codificado pode ser previsto por referência aos valores de pixel reconstruídos do bloco de partição superior (esquerdo) no caso da partição de direção horizontal (vertical).
[0228]A transformada pode ser aplicada ao sinal residual gerado pelo método de predição de ISP em unidades de blocos de partição. A tecnologia de MTS (Seleção de Transformada Múltipla) baseada na combinação DST-7/DCT-8, bem como a DCT- 2 existente, pode ser aplicada à transformada primária (transformada de núcleo ou transformada primária) com base na direção direta e uma LFNST (Transformada Não Separável de Baixa Frequência) pode ser aplicada a um coeficiente de transformada gerado de acordo com a transformada primária para gerar um coeficiente de transformada modificado final.
[0229]Isto é, LFNST pode também ser aplicada a blocos de partição divididos pela aplicação do modo de predição de ISP, e o mesmo modo de intrapredição é aplicado aos blocos de partição divididos conforme descrito acima. Por conseguinte, ao selecionar o conjunto de LFNST derivado com base no modo de intrapredição, o conjunto de LFNST derivado pode ser aplicado a todos os blocos de partição. Ou seja, o mesmo modo de intrapredição é aplicado a todos os blocos de partição e, portanto, o mesmo conjunto de LFNST pode ser aplicado a todos os blocos de partição.
[0230]Enquanto isso, de acordo com um exemplo, a LFNST pode ser aplicada apenas para transformar blocos com comprimento horizontal e vertical de 4 ou mais. Portanto, quando o comprimento horizontal ou vertical do bloco de partição particionado de acordo com o método de predição de ISP for menor que 4, a LFNST não será aplicada e o índice de LFNST não será sinalizado. Além disso, quando a LFNST é aplicada a cada bloco de partição, o bloco de partição correspondente pode ser considerado como um bloco de transformada. Obviamente, quando o método de predição de ISP não é aplicado, a LFNST pode ser aplicada ao bloco de codificação.
[0231]A aplicação da LFNST a cada bloco de partição é descrita em detalhes a seguir.
[0232]De acordo com um exemplo, depois de aplicar a LFNST direta a um bloco de partição individual, e depois de deixar apenas até 16 coeficientes (8 ou 16) na região 4 x 4 superior esquerda de acordo com a ordem de varredura do coeficiente de transformada, zero-out de preencher todas as posições e regiões restantes com um valor de 0 pode ser aplicado.
[0233]Alternativamente, de acordo com um exemplo, quando o comprimento de um lado do bloco de partição é 4, a LFNST é aplicada apenas à região 4 x 4 superior esquerda, e quando o comprimento de todos os lados do bloco de partição, isto é, a largura e a altura, são 8 ou mais, a LFNST pode ser aplicada aos 48 coeficientes restantes, exceto para uma região 4 x 4 inferior direita em uma região 8 x 8 superior esquerda.
[0234]Alternativamente, de acordo com um exemplo, a fim de ajustar a complexidade computacional do pior caso para 8 multiplicações por amostra, quando cada bloco de partição é 4 x 4 ou 8 x 8, apenas 8 coeficientes de transformada podem ser emitidos após a aplicação da LFNST direta. Ou seja, se o bloco de partição for 4 x 4, uma matriz 8 x 16 pode ser aplicada como matriz de transformada, e se o bloco de partição for 8 x 8, uma matriz 8 x 48 pode ser aplicada como matriz de transformada.
[0235]Enquanto isso, no padrão VVC atual, a sinalização do índice de LFNST é realizada em unidades de unidades de codificação. Consequentemente, quando o modo de predição de ISP é usado e a LFNST é aplicada a todos os blocos de partição, então o mesmo valor de índice de LFNST pode ser aplicado aos blocos de partição correspondentes. Isto é, quando o valor do índice de LFNST é transmitido uma vez ao nível da unidade de codificação, o índice de LFNST correspondente pode ser aplicado a todos os blocos de partição na unidade de codificação. Conforme descrito acima, o valor do índice de LFNST pode ter valores de 0, 1 e 2, 0 indica um caso em que a LFNST não é aplicada e 1 e 2 indicam duas matrizes de transformada presentes em um conjunto de LFNST quando a LFNST é aplicada.
[0236]Conforme descrito acima, o conjunto de LFNST é determinado pelo modo de intrapredição, e uma vez que todos os blocos de partição na unidade de codificação são previstos no mesmo modo de intrapredição no caso do modo de predição de ISP, os blocos de partição podem se referir a o mesmo conjunto de LFNST.
[0237]Como outro exemplo, a sinalização do índice de LFNST ainda é realizada em unidades de unidades de codificação, mas no caso do modo de predição de ISP, sem determinar se deve ou não aplicar a LFNST uniformemente a todos os blocos de partição, se deve aplicar o valor do índice de LFNST sinalizado no nível da unidade de codificação para cada bloco de partição ou para não aplicar LFNST pode ser determinada através de uma condição separada. Aqui, a condição separada pode ser sinalizada na forma de um sinalizador para cada bloco de partição através do fluxo de bits, e quando o valor do sinalizador é 1, o valor do índice de LFNST sinalizado no nível da unidade de codificação pode ser aplicado e quando o valor do sinalizador é 0, a LFNST não pode ser aplicada.
[0238]Enquanto isso, na unidade de codificação à qual o modo de ISP é aplicado, um exemplo de aplicação da LFNST quando o comprimento de um lado do bloco de partição é menor que 4 é discutido a seguir.
[0239]Primeiro, quando o tamanho do bloco de partição é N x 2 (2 x N), a LFNST pode ser aplicada à região superior esquerda M x 2 (2 x M) (aqui, M < N). Por exemplo, quando M = 8, a região superior esquerda correspondente torna-se 8 x 2 (2 x 8 ) e, portanto, a região na qual existem 16 sinais residuais pode ser a entrada da LFNST direta e a matriz de transformada direta Rx16 (R < 16) pode ser aplicada.
[0240]Aqui, a matriz de LFNST direta pode não ser a matriz incluída no padrão VVC atual, mas uma matriz adicional separada. Além disso, para ajuste de complexidade do pior caso, uma matriz 8 x 16 obtida por amostragem apenas dos vetores de 8 linhas superiores da matriz 16 x 16 pode ser usada para a transformada. O método de ajuste de complexidade será descrito em detalhes posteriormente.
[0241]Em segundo lugar, quando o tamanho do bloco de partição é N x 1 (1 x N), a LFNST pode ser aplicada à região superior esquerda M x 1 (1 x M) (aqui, M < N). Por exemplo, quando M = 16, a região superior esquerda correspondente torna- se 16 x 1 (1 x 16) e, portanto, a região na qual existem 16 sinais residuais pode ser a entrada da matriz de transformada direta de LFNST e R x 16 (R < 16) pode ser aplicada.
[0242]Aqui, a matriz de LFNST direta correspondente pode não ser a matriz incluída no padrão VVC atual, mas uma matriz adicional separada. Além disso, para ajuste de complexidade do pior caso, uma matriz 8 x 16 obtida por amostragem apenas dos vetores de 8 linhas superiores da matriz 16 x 16 pode ser usada para a transformada. O método de ajuste de complexidade será descrito em detalhes posteriormente.
[0243]A primeira modalidade e a segunda modalidade podem ser aplicadas simultaneamente, ou qualquer uma das duas modalidades pode ser aplicada. Em particular, no caso da segunda modalidade, uma vez que a transformada unidimensional é considerada na LFNST, observou-se através de experimentos que a melhoria do desempenho de compressão que poderia ser obtida a partir da LFNST existente não era relativamente grande em comparação com o índice de LFNST custo de sinalização. No entanto, no caso da primeira modalidade, observou-se uma melhora no desempenho de compressão semelhante ao obtido da LFNST convencional, isto é, no caso do ISP, pode-se verificar através de experimentos que a aplicação da LFNST para 2 x N e N x 2 contribui ao desempenho de compressão real.
[0244]Na LFNST no VVC atual, é aplicada a simetria entre os modos de intrapredição. O mesmo conjunto de LFNST é aplicado aos dois modos direcionais centrados no modo 34 (predição na direção diagonal inferior direita de 45 graus) e, por exemplo, o mesmo conjunto de LFNST é aplicado ao modo 18 (modo de predição de direção horizontal) e modo 50 (modo de predição de direção vertical). No entanto, nos modos 35 a 66, quando a LFNST direta é aplicada, os dados de entrada são transpostos e, em seguida, a LFNST é aplicada.
[0245]Enquanto isso, o VVC suporta um modo de Intrapredição de Grande Angular (WAIP), e o conjunto de LFNST é derivado com base no modo de intrapredição modificado em consideração ao modo de WAIP. Para os modos estendidos pelo WAIP, o conjunto de LFNST também é determinado utilizando a simetria como no modo geral de direção de intrapredição. Por exemplo, o modo -1 é simétrico com o modo 67, portanto, o mesmo conjunto de LFNST é aplicado e o modo -14 é simétrico com o modo 80, portanto, o mesmo conjunto de LFNST é aplicado. Os modos 67 a 80 aplicam a transformada de LFNST após a transposição dos dados de entrada antes de aplicar a LFNST direta.
[0246]No caso da LFNST aplicada ao bloco superior esquerdo M x 2 (M x 1), a simetria descrita acima da LFNST não pode ser aplicada, porque o bloco ao qual a LFNST é aplicada não é quadrado. Portanto, em vez de aplicar a simetria baseada na modo de intrapredição como na LFNST da Tabela 2, pode ser aplicada a simetria entre o bloco M x 2 (M x 1) e o bloco 2 x M (1 x M).
[0247]A Figura 16 é um diagrama que ilustra simetria entre um bloco M x 2 (M x 1) e um bloco 2 x M (1 x M) de acordo com um exemplo.
[0248]Conforme mostrado na Figura 16, o modo 2 no bloco M x 2 (M x 1) pode ser considerado simétrico com o modo 66 no bloco 2 x M (1 x M) e, portanto, o mesmo conjunto de LFNST pode ser aplicado ao bloco 2 x M (1 x M) bloco e o bloco M x 2 (M x 1).
[0249]Neste momento, para aplicar o conjunto de LFNST, que foi aplicado ao bloco M x 2 (M x 1), ao bloco 2 x M (1 x M), o conjunto de LFNST é selecionado com base no modo 2 em vez do modo 66. Ou seja, antes de aplicar a LFNST direta, é possível aplicar a LFNST após a transposição dos dados de entrada do bloco 2 x M (1 x M).
[0250]A Figura 17 é um diagrama que ilustra um exemplo de transposição de um bloco 2 x M de acordo com um exemplo.
[0251]A Figura 17A é um diagrama que ilustra que a LFNST pode ser aplicada lendo os dados de entrada em uma primeira ordem de coluna em relação a um bloco de 2 x M, e a Figura 17B é um diagrama que ilustra que a LFNST é aplicada lendo os dados de entrada em ordem de primeira linha em relação a um bloco M x 2 (M x 1). O método de aplicação da LFNST ao bloco superior esquerdo M x 2 (M x 1) ou 2 x M (M x 1) é resumido como segue.
[0252]1. Em primeiro lugar, como mostrado nas Figuras 17A e 17B, os dados de entrada são dispostos para construir um vetor de entrada da LFNST direta. Por exemplo, referindo-se à Figura 16, para o bloco M x 2 previsto no modo 2, a ordem na Figura 17(b) é seguido, e para um bloco de 2 x M previsto no modo 66, após organizar os dados de entrada de acordo com a ordem da Figura 17(a), a LFNST definida para o modo 2 pode ser aplicado.
[0253]2. Para o bloco M x 2 (M x 1), o conjunto de LFNST é determinado com base no modo de intrapredição modificado em consideração ao WAIP. Conforme descrito acima, uma relação de mapeamento predeterminada é estabelecida entre o modo de intrapredição e o conjunto de LFNST e pode ser representada por uma tabela de mapeamento conforme mostrado na Tabela 2.
[0254]Para um bloco de 2 x M (1 x M), após obter um modo simétrico em relação ao modo de predição (modo 34 no caso do padrão VVC) em uma direção diagonal de 45 graus para baixo a partir do modo de intrapredição modificado em consideração ao WAIP, o conjunto de LFNST é determinado com base no modo simétrico correspondente e na tabela de mapeamento. Um modo simétrico (y) em relação ao modo 34 pode ser derivado através da seguinte equação. A tabela de mapeamento é descrita em mais detalhes abaixo. Equação 11
[0255]3. Quando a LFNST direta é aplicada, o coeficiente de transformada pode ser derivado multiplicando os dados de entrada preparados através do processo 1 pelo núcleo de LFNST. O núcleo de LFNST pode ser selecionado do conjunto de LFNST determinado no processo 2 e um índice de LFNST de predeterminado.
[0256]Por exemplo, se M = 8 e uma matriz 16 x 16 é aplicada como o núcleo de LFNST, então 16 coeficientes de transformada podem ser gerados multiplicando a matriz por 16 dados de entrada. Os coeficientes de transformada gerados podem ser dispostos na região superior esquerda 8 x 2 ou 2 x 8 de acordo com a ordem de varredura usada no padrão VVC.
[0257]A Figura 18 mostra uma ordem de varredura para um região 8 x 2 ou 2 x 8 de acordo com um exemplo.
[0258]Todas as regiões, exceto a região superior esquerda 8 x 2 ou 2 x 8, podem ser preenchidas com valores zero (zero-out) ou o coeficiente de transformada existente ao qual a transformada primária foi aplicada pode ser mantido como está. O índice de LFNST predeterminado pode ser um dos valores de índice de LFNST (0, 1, 2) tentados ao calcular o custo RD enquanto altera o valor do índice de LFNST no processo de codificação.
[0259]Para uma configuração que traz a complexidade computacional do pior caso abaixo de um certo nível (por exemplo, 8 multiplicações/amostra), por exemplo, depois de gerar apenas oito coeficientes de transformada multiplicando uma matriz 8 x 16 obtida tomando apenas as oito linhas superiores da 16 x 16, os oito coeficientes de transformada podem ser dispostos de acordo com a ordem de varredura mostrada na Figura 18, e zero-out também pode ser aplicado às regiões de coeficiente restantes. O ajuste de complexidade para o pior caso será descrito mais adiante.
[0260]4. Ao aplicar a LFNST inversa, um número predeterminado (por exemplo, 16) de coeficientes de transformada é definido como um vetor de entrada e após selecionar o núcleo de LFNST (por exemplo, matriz 16 x 16) derivado do conjunto de LFNST obtido do processo 2 e o índice de LFNST analisado, o vetor de saída pode ser derivado multiplicando o núcleo de LFNST e o vetor de entrada.
[0261]No caso de um bloco M x 2 (M x 1), o vetor de saída pode ser disposto de acordo com a ordem de primeira linha como mostrado na Figura 17B, e no caso de um bloco 2 x M (1 x M), o vetor de saída pode ser disposto de acordo com a primeira ordem da coluna, conforme mostrado na Figura 17A.
[0262]Para a área restante, exceto para a área onde o vetor de saída correspondente está disposto na região superior esquerda M x 2 (M x 1) ou 2 x M (M x 2), e para uma região diferente da região superior esquerda M x 2 (M x 1) ou 2 x M (M x 2) no bloco de partição, todos eles podem ser configurados para serem preenchidos com valores zero (zero-out) ou para manter o coeficiente de transformada reconstruído através de processos de codificação e desquantização residual como está.
[0263]Como no n° 3, ao construir o vetor de entrada, os dados de entrada podem ser dispostos de acordo com a ordem de varredura da Figura 18, e um vetor de entrada pode ser construído com o número reduzido de dados de entrada (por exemplo, 8 em vez de 16) para ajustar a complexidade computacional para o pior caso a um certo nível ou menos.
[0264]Por exemplo, ao usar 8 dados de entrada e quando M = 8, apenas a matriz 16 x 8 esquerda pode ser retirada da matriz 16 x 16 correspondente e multiplicada, obtendo-se assim 16 dados de saída. O ajuste de complexidade para o pior caso será descrito mais adiante.
[0265]Enquanto a modalidade acima apresenta um caso em que a simetria é aplicada entre um bloco M x 2 (M x 1) e um bloco 2 x M (1xM) ao aplicar LFNST, diferentes conjuntos de LFNST podem ser aplicados às duas formas de bloco, respectivamente, de acordo com outro exemplo.
[0266]A seguir, vários exemplos da configuração do conjunto de LFNST para o modo de ISP e o método de mapeamento usando o modo de intrapredição serão descritos.
[0267]No caso do modo de ISP, a configuração do conjunto de LFNST pode ser diferente daquela do conjunto de LFNST existente. Em outras palavras, núcleos diferentes dos núcleos de LFNST existentes podem ser aplicados e uma tabela de mapeamento diferente da tabela de mapeamento entre o índice de modo de intrapredição aplicado ao padrão VVC atual e o conjunto de LFNST pode ser aplicada. A tabela de mapeamento aplicada ao padrão VVC atual pode ser mostrada na Tabela 2.
[0268]Na Tabela 2, o valor preModeIntra significa um valor de modo de intrapredição alterado em consideração ao WAIP, e o valor lfnstTrSetIdx é um valor de índice que indica um conjunto de LFNST específico. Cada conjunto de LFNST é configurado com dois núcleos de LFNST.
[0269]Quando o modo de predição de ISP é aplicado, e quando o comprimento horizontal e o comprimento vertical de cada bloco de partição são iguais ou maiores que 4, os mesmos núcleos que os núcleos de LFNST aplicados no padrão VVC atual podem ser aplicados, e a tabela de mapeamento também pode ser aplicada como está. Claro, também é possível aplicar uma tabela de mapeamento diferente e diferentes núcleos de LFNST do padrão VVC atual.
[0270]Quando o modo de predição de ISP é aplicado, e quando o comprimento horizontal ou o comprimento vertical de cada bloco de partição é menor que 4, uma tabela de mapeamento diferente e núcleos de LFNST diferentes do padrão VVC atual podem ser aplicados. Doravante, as Tabelas 5 a 7 mostram tabelas de mapeamento entre um valor do modo de intrapredição (valor do modo de intrapredição alterado em consideração ao WAIP) e um conjunto de LFNST, que pode ser aplicado a um bloco M x 2 (M x 1) ou a um bloco 2 x M (1 x M).
[0271]A primeira tabela de mapeamento da Tabela 5 inclui sete conjuntos de LFNST, e a tabela de mapeamento da Tabela 6 inclui quatro conjuntos de LFNST e a tabela de mapeamento da Tabela 7 inclui dois conjuntos de LFNST. Como outro exemplo, quando configurado com um conjunto de LFNST, o valor lfnstTrSetIdx pode ser fixado em 0 em relação ao valor preModeIntra.
[0272]A seguir, será descrito um método para manter a complexidade computacional para o pior caso quando a LFNST é aplicada ao modo de ISP.
[0273]No caso do modo de ISP, para manter o número de multiplicações por amostra (ou por coeficiente, ou por posição) em um determinado valor ou menos quando a LFNST é aplicada, a aplicação da LFNST pode ser restrita. Dependendo do tamanho do bloco de partição, o número de multiplicações por amostra (ou por coeficiente, ou por posição) pode ser mantido em 8 ou menos aplicando LFNST como segue.
[0274]1. Quando o comprimento horizontal e o comprimento vertical do bloco de partição são iguais ou superiores a 4, pode ser aplicado o mesmo método que o método de ajuste de complexidade de cálculo para o pior caso para LFNST no padrão VVC atual.
[0275]Ou seja, quando o bloco de partição é um bloco 4 x 4, em vez de uma matriz 16 x 16, no sentido direto, uma matriz 8 x 16 obtida por amostragem das 8 primeiras linhas de uma matriz 16 x 16 pode ser aplicada, e no sentido inverso, uma matriz 16 x 8 obtida por amostragem das 8 colunas esquerdas de uma matriz 16 x 16 pode ser aplicada. Além disso, quando o bloco de partição é um bloco 8 x 8, na direção para frente, em vez de uma matriz 16 x 48, pode ser aplicada uma matriz 8 x 48 obtida por amostragem das 8 primeiras linhas de uma matriz 16 x 48 e na direção inversa, em vez de uma matriz 48 x 16 matriz, uma matriz 48 x 8 obtida por amostragem das 8 colunas esquerdas de uma matriz 48 x 16 pode ser aplicada.
[0276]No caso de um bloco 4 x N ou N x 4 (N > 4), quando a transformada direta é realizada, 16 coeficientes gerados após a aplicação de uma matriz 16x16 apenas no bloco 4 x 4 superior esquerdo são dispostos na região 4 x 4 superior esquerda, e as outras regiões podem ser preenchidas com valores 0. Além disso, ao realizar a transformada inversa, 16 coeficientes localizados no bloco 4 x 4 superior esquerdo podem ser dispostos na ordem de varredura para configurar um vetor de entrada e, em seguida, 16 dados de saída podem ser gerados multiplicando a matriz 16 x 16. Os dados de saída gerados podem ser organizados na região 4 x 4 superior esquerda e as regiões restantes, exceto a região 4 x 4 superior esquerda, podem ser preenchidas com zeros.
[0277]Em No caso de um bloco 8 x N ou N x 8 (N > 8), quando a transformada direta é realizada, 16 coeficientes gerados após a aplicação da matriz 16 x 48 apenas para a região ROI no bloco 8 x 8 superior esquerdo (regiões restantes excluindo o bloco 4 x 4 inferior direito do bloco 8 x 8 superior esquerdo) pode ser organizado na área 4 x 4 superior esquerda e as outras regiões podem ser preenchidas com valores 0. Além disso, ao realizar a transformada inversa, 16 coeficientes localizados no bloco 4 x 4 superior esquerdo podem ser dispostos na ordem de varredura para configurar um vetor de entrada e, em seguida, 48 dados de saída podem ser gerados multiplicando a matriz 48 x 16. Os dados de saída gerados podem ser preenchidos na região ROI e as outras regiões podem ser preenchidas com valores 0.
[0278]2. Quando o tamanho do bloco de partição é N x 2 ou 2 x N e a LFNST é aplicada à região superior esquerda M x 2 ou 2 x M (M < N), uma matriz à qual a amostragem foi aplicada de acordo com o valor N pode ser aplicado.
[0279]Quando M = 8, para um bloco de partição de N = 8, isto é, um bloco 8 x 2 ou 2 x 8, no caso de transformada direta, em vez de uma matriz 16 x 16, uma matriz 8 x 16 obtida por amostragem das 8 primeiras linhas de uma matriz 16 x 16 pode ser aplicada e, no caso da transformada inversa, em vez de uma matriz 16 x 16, pode ser aplicada uma matriz 16 x 8 obtida por amostragem das 8 colunas esquerdas de uma matriz 16 x 16.
[0280]Quando N é maior que 8, no caso de transformada direta, 16 dados de saída gerados após a aplicação da matriz 16 x 16 ao bloco 8 x 2 ou 2 x 8 superior esquerdo podem ser organizados no bloco 8 x 2 ou 2 x 8 superior esquerdo, e as regiões restantes podem ser preenchidas com 0 valores. Ao realizar a transformada inversa, 16 coeficientes localizados no bloco 8 x 2 ou 2 x 8 superior esquerdo podem ser organizados na ordem de varredura para configurar um vetor de entrada e, em seguida, 16 dados de saída podem ser gerados multiplicando a matriz 16 x 16. Os dados de saída gerados podem ser organizados no bloco 8 x 2 ou 2 x 8 superior esquerdo e todas as regiões restantes podem ser preenchidas com valores 0.
[0281]3. Quando o tamanho do bloco de partição é N x 1 ou 1 x N e a LFNST é aplicada à região superior esquerda M x 1 ou 1 x M (M < N), uma matriz à qual a amostragem foi aplicada de acordo com o valor N pode ser aplicado.
[0282]Quando M = 16, para um bloco de partição de N = 16, isto é, um bloco 16 x 1 ou 1 x 16, no caso de transformada direta, em vez de uma matriz 16 x 16, uma matriz 8 x 16 obtida por amostragem das 8 primeiras linhas de uma matriz 16 x 16 pode ser aplicada e, no caso da transformada inversa, em vez de uma matriz 16 x 16, pode ser aplicada uma matriz 16 x 8 obtida por amostragem das 8 colunas esquerdas de uma matriz 16 x 16.
[0283]Quando N é maior que 16, no caso de transformada direta, 16 dados de saída gerados após a aplicação da matriz 16 x 16 ao bloco 16 x 1 ou 1 x 16 superior esquerdo podem ser organizados no bloco 16 x 1 ou 1 x 16 superior esquerdo, e o regiões restantes podem ser preenchidas com 0 valores. Ao realizar a transformada inversa, 16 coeficientes localizados no bloco 16 x 1 ou 1 x 16 superior esquerdo podem ser organizados na ordem de varredura para configurar um vetor de entrada e, em seguida, 16 dados de saída podem ser gerados multiplicando a matriz 16 x 16. Os dados de saída gerados podem ser organizados no bloco superior esquerdo 16 x 1 ou 1 x 16, e todas as regiões restantes podem ser preenchidas com valores 0.
[0284]Como outro exemplo, a fim de manter o número de multiplicações por amostra (ou por coeficiente, ou por posição) em um determinado valor ou menos, o número de multiplicações por amostra (ou por coeficiente, ou por posição) com base no tamanho da unidade de codificação de ISP em vez do tamanho do bloco de partição ISP pode ser mantido em 8 ou menos. Se houver apenas um bloco entre os blocos de partição de ISP, que satisfaça a condição sob a qual a LFNST é aplicada, o cálculo de complexidade para o pior caso de LFNST pode ser aplicado com base no tamanho da unidade de codificação correspondente, em vez do tamanho do bloco de partição . Por exemplo, quando um bloco de codificação luma para uma determinada unidade de codificação é particionado em 4 blocos de partição de tamanho 4 x 4 e codificado pelo ISP, e quando não existe coeficiente de transformada diferente de zero para dois blocos de partição entre eles, os outros dois blocos de partição podem ser configurado respectivamente para gerar 16 coeficientes de transformada em vez de 8 (com base no codificador).
[0285]A seguir, será descrito um método de sinalização do índice de LFNST no caso do modo de ISP.
[0286]Conforme descrito acima, o índice de LFNST pode ter valores de 0, 1 e 2, onde 0 indica que a LFNST não é aplicada e 1 e 2 respectivamente indicam uma das duas matrizes de núcleo de LFNST incluídas no conjunto de LFNST selecionado. A LFNST é aplicada com base na matriz do núcleo de LFNST selecionada pelo índice de LFNST. Um método de transmissão do índice de LFNST no padrão VVC atual será descrito a seguir.
[0287]1. Um índice de LFNST pode ser transmitido uma vez para cada unidade de codificação (CU) e, no caso de uma árvore dupla, índices de LFNST individuais podem ser sinalizados para um bloco de luma e um bloco de croma, respectivamente.
[0288]2. Quando o índice de LFNST não é sinalizado, o valor do índice de LFNST é inferido como um valor padrão de 0. O caso em que o valor do índice de LFNST é inferido como 0 é o seguinte.
[0289]A. No caso de um modo em que nenhuma transformada é aplicada (por exemplo, salto de transformada, BDPCM, codificação sem perdas, etc.)
[0290]B. Quando a transformada primária não for DCT-2 (DST7 ou DCT8), ou seja, quando a transformada na direção horizontal ou a transformada na direção vertical não for DCT-2.
[0291]C. Quando o comprimento horizontal ou o comprimento vertical para o bloco de luma da unidade de codificação excede o tamanho da transformada de luma máxima transformável, por exemplo, quando o tamanho da transformada de luma máxima transformável é 64, e quando o tamanho para o bloco luma do bloco de codificação é igual a 128 x 16, a LFNST não pode ser aplicada.
[0292]No caso da árvore dupla, determina-se se o tamanho da transformada de luma máxima é ou não excedido para cada unidade de codificação para o componente de luma e a unidade de codificação para o componente de croma. Ou seja, verifica-se para o bloco luma se o tamanho da transformada máxima transformável luma é excedido, e verifica-se para o bloco croma se o comprimento horizontal/vertical do bloco luma correspondente para o formato de cor e o tamanho da transformada luma transformável máxima excede o tamanho são excedidos. Por exemplo, quando o formato de cor é 4:2:0, o comprimento horizontal/vertical do bloco de luma correspondente é o dobro do bloco de croma correspondente e o tamanho de transformada do bloco de luma correspondente é o dobro do bloco de croma correspondente. Como outro exemplo, quando o formato de cor é 4:4:4, o comprimento horizontal/vertical e o tamanho de transformada e do bloco de luma correspondente são os mesmos do bloco de croma correspondente.
[0293]Uma transformada de 64 comprimentos ou uma transformada de 32 comprimentos pode significar uma transformada aplicada à largura ou altura com um comprimento de 64 ou 32, respectivamente, e "tamanho da transformada" pode significar 64 ou 32 como o comprimento correspondente.
[0294]No caso de uma única árvore, após verificar se um comprimento horizontal ou um comprimento vertical de um bloco de luma excede o tamanho máximo do bloco de transformada de luma transformável, se exceder, a sinalização do índice de LFNST pode ser omitida.
[0295]D. O índice de LFNST pode ser transmitido apenas quando o comprimento horizontal e o comprimento vertical da unidade de codificação são iguais ou superiores a 4.
[0296]No caso de uma árvore dupla, o índice de LFNST pode ser sinalizado apenas quando os comprimentos horizontal e vertical de um componente correspondente (isto é, um componente de luma ou croma) são iguais ou superiores a 4.
[0297]No caso de uma única árvore, o índice de LFNST pode ser sinalizado quando os comprimentos horizontal e vertical para o componente de luma são iguais ou superiores a 4.
[0298]E. Se a posição do último coeficiente diferente de zero não for uma posição DC (posição superior esquerda do bloco), e se a posição do último coeficiente diferente de zero não for uma posição DC, no caso de um bloco luma de um tipo de árvore dupla, o índice de LFNST é transmitido. No caso de um bloco de croma do tipo árvore dupla, se qualquer uma das posições do último coeficiente diferente de zero para Cb e a posição do último coeficiente diferente de zero para Cr não for uma posição DC, o índice de LNFST correspondente é transmitido.
[0299]No caso do tipo de árvore simples, se a posição do último coeficiente diferente de zero de qualquer um dos componentes luma, componente de Cb e componente Cr não for a posição DC, o índice de LFNST é transmitido.
[0300]Aqui, se um valor de sinalizador de bloco codificado (CBF) indicando se existe ou não um coeficiente de transformada para um bloco de transformada é 0, a posição do último coeficiente diferente de zero para o bloco de transformada correspondente não é verificada para determinar se o índice de LFNST é ou não sinalizado. Ou seja, quando o valor de CBF correspondente for 0, uma vez que nenhuma transformada é aplicada ao bloco correspondente, a posição do último coeficiente diferente de zero pode não ser considerada na verificação da condição de sinalização do índice de LFNST.
[0301]Por exemplo, 1) no caso de um tipo de árvore dupla e um componente de luma, se o valor de CBF correspondente for 0, o índice de LFNST não é sinalizado, 2) no caso de um tipo de árvore dupla e componente de croma, se o valor de CBF para Cb for 0 e o valor de CBF para Cr for 1, apenas a posição do último coeficiente diferente de zero para Cr é verificada e o índice de LFNST correspondente é transmitido, 3) no caso de um único tipo de árvore, a posição do último coeficiente diferente de zero é verificada apenas para componentes com valor de CBF de 1 para cada um de luma, Cb e Cr.
[0302]F. Quando for confirmado que o coeficiente de transformada existe em uma posição diferente de uma posição onde o coeficiente de transformada de LFNST pode existir, a sinalização do índice de LFNST pode ser omitida. No caso de um bloco de transformada 4 x 4 e um bloco de transformada 8 x 8, os coeficientes de transformada de LFNST podem existir em oito posições da posição DC de acordo com a ordem de varredura do coeficiente de transformada no padrão VVC, e as posições restantes são preenchidas com zeros. Além disso, quando o bloco de transformada 4 x 4 e o bloco de transformada 8 x 8 não são, os coeficientes de transformada de LFNST podem existir em dezesseis posições da posição DC de acordo com a ordem de varredura do coeficiente de transformada no padrão VVC, e as posições restantes são preenchidas com zeros.
[0303]Assim, se os coeficientes de transformada diferente de zero existirem na região que deve ser preenchida com o valor zero após o progresso da codificação residual, a sinalização do índice de LFNST pode ser omitida.
[0304]Enquanto isso, o modo de ISP também pode ser aplicado apenas ao bloco luma, ou pode ser aplicado tanto ao bloco luma quanto ao bloco croma. Conforme descrito acima, quando a predição de ISP é aplicada, a unidade de codificação correspondente pode ser dividida em dois ou quatro blocos de partição e predição, e uma transformada pode ser aplicada a cada um dos blocos de partição. Portanto, também ao determinar uma condição para sinalizar o índice de LFNST em unidades de unidades de codificação, é necessário levar em consideração o fato de que a LFNST pode ser aplicada aos respectivos blocos de partição. Além disso, quando o modo de predição de ISP é aplicado apenas a um componente específico (por exemplo, um bloco luma), o índice de LFNST deve ser sinalizado considerando o fato de que apenas o componente é dividido em blocos de partição. Os métodos de sinalização de índice de LFNST disponíveis no modo de ISP são resumidos a seguir.
[0305]1. Um índice de LFNST pode ser transmitido uma vez para cada unidade de codificação (CU) e, no caso de uma árvore dupla, índices de LFNST individuais podem ser sinalizados para um bloco de luma e um bloco de croma, respectivamente.
[0306]2. Quando o índice de LFNST não é sinalizado, o valor do índice de LFNST é inferido como um valor padrão de 0. O caso em que o valor do índice de LFNST é inferido como 0 é o seguinte.
[0307]A. No caso de um modo em que nenhuma transformada é aplicada (por exemplo, salto de transformada, BDPCM, codificação sem perdas, etc.)
[0308]B. Quando o comprimento horizontal ou o comprimento vertical para o bloco de luma da unidade de codificação excede o tamanho da transformada de luma máxima tansformável, por exemplo, quando o tamanho da transformada de luma máxima transformável é 64, e quando o tamanho para o bloco luma do bloco de codificação é igual a 128 x 16, a LFNST não pode ser aplicada.
[0309]Sinalizar ou não o índice de LFNST pode ser determinado com base no tamanho do bloco de partição em vez da unidade de codificação. Ou seja, se o comprimento horizontal ou vertical do bloco de partição para o bloco de luma correspondente exceder o tamanho da transformada de luma máxima transformável, a sinalização do índice de LFNST pode ser omitida e o valor do índice de LFNST pode ser inferido como 0.
[0310]No caso da árvore dupla, é determinado se o tamanho da transformada luma máxima é ou não excedido para cada unidade de codificação ou bloco de partição para o componente de luma e a unidade de codificação ou bloco de partição para o componente croma. Ou seja, se os comprimentos horizontal e vertical da unidade de codificação ou bloco de partição para luma são comparados com o tamanho máximo da transformada luma, respectivamente, e pelo menos um deles é maior que o tamanho máximo da transformada luma, a LFNST não é aplicada, e no caso de uma unidade de codificação ou bloco de partição para croma, o comprimento horizontal/vertical do bloco de luma correspondente para o formato de cor e o tamanho da transformada de luma transformável máxima são comparados. Por exemplo, quando o formato de cor é 4:2:0, o comprimento horizontal/vertical do bloco de luma correspondente é o dobro do bloco de croma correspondente e o tamanho de transformada do bloco de luma correspondente é o dobro do bloco de croma correspondente. Como outro exemplo, quando o formato de cor é 4:4:4, o comprimento horizontal/vertical e o tamanho de transformada e do bloco de luma correspondente são os mesmos do bloco de croma correspondente.
[0311]No caso de uma única árvore, após verificar se um comprimento horizontal ou um comprimento vertical para um bloco de luma (unidade de codificação ou bloco de partição) excede o tamanho máximo do bloco de transformada de luma transformável, se exceder, a sinalização do índice de LFNST pode ser omitida.
[0312]C. Se a LFNST incluída no padrão VVC atual for aplicado, o índice de LFNST poderá ser transmitido somente quando o comprimento horizontal e o comprimento vertical do bloco de partição forem iguais ou maiores que 4.
[0313]Se a LFNST para o bloco 2 x M (1 x M) ou M x 2 (M x 1) for aplicado além da LFNST incluído no padrão VVC atual, o índice de LFNST poderá ser transmitido somente quando o tamanho do bloco de partição for igual ou maior que um bloco 2 x M (1 x M) ou M x 2 (M x 1). Aqui, a expressão “o bloco P x Q é igual ou maior que o bloco R x S” significa que P > R e Q > S.
[0314]Em resumo, o índice de LFNST pode ser transmitido somente quando o bloco de partição é igual ou maior que o tamanho mínimo ao qual a LFNST é aplicável. No caso de uma árvore dupla, o índice de LFNST pode ser sinalizado somente quando o bloco de partição para o componente de luma ou croma for igual ou maior que o tamanho mínimo ao qual a LFNST é aplicável. No caso de uma única árvore, o índice de LFNST pode ser sinalizado somente quando o bloco de partição para o componente de luma for igual ou maior que o tamanho mínimo ao qual a LFNST é aplicável.
[0315]Neste documento, a expressão "o bloco M x N é maior ou igual ao bloco K x L" significa que M é maior ou igual a K e N é maior ou igual a L. A expressão "o bloco M x N é maior que o bloco K x L" significa que M é maior ou igual a K e N é maior ou igual a L, e que M é maior que K ou N é maior que L. A expressão "o bloco M x N menor ou igual ao bloco K x L" significa que M é menor ou igual a K e N é menor ou igual a L, enquanto a expressão "o bloco M x N é menor que o bloco K x L" significa que M é menor ou igual a K e N é menor ou igual a L, e que M é menor que K ou N é menor que L.
[0316]D. Se a posição do último coeficiente diferente de zero não for uma posição DC (posição superior esquerda do bloco), e se a posição do último coeficiente diferente de zero não for uma posição DC em qualquer um dos todos os blocos de partição No caso de um bloco luma do tipo árvore dupla, o índice de LFNST é transmitido. No caso de um tipo de árvore dupla e um bloco de croma, se pelo menos uma das posições do último coeficiente diferente de zero de todos os blocos de partição para Cb (se o modo de ISP não for aplicado ao componente de croma, o número de partição blocos é considerado um) e a posição do último coeficiente diferente de zero de todos os blocos de partição para Cr (se o modo de ISP não for aplicado ao componente croma, o número de blocos de partição é considerado um) não é uma Posição DC, o índice de LNFST correspondente pode ser transmitido.
[0317]No caso do tipo de árvore simples, se a posição do último coeficiente diferente de zero de qualquer um de todos os blocos de partição para o componente de luma, o componente de Cb e o componente Cr não for a posição DC, o índice de LFNST correspondente pode ser transmitido.
[0318]Aqui, se o valor do sinalizador de bloco codificado (CBF) indicando se existe um coeficiente de transformada para cada bloco de partição for 0, a posição do último coeficiente diferente de zero para o bloco de partição correspondente não é verificada para determinar se o índice de LFNST é ou não sinalizado. Ou seja, quando o valor de CBF correspondente é 0, uma vez que nenhuma transformada é aplicada ao bloco correspondente, a posição do último coeficiente diferente de zero para o bloco de partição correspondente não é considerada na verificação da condição de sinalização do índice de LFNST.
[0319]Por exemplo, 1) no caso de um tipo de árvore dupla e um componente de luma, se o valor de CBF correspondente para cada bloco de partição for 0, o bloco de partição é excluído ao determinar se deve ou não sinalizar o índice de LFNST, 2 ) no caso de um tipo de árvore dupla e um componente de croma, se o valor de CBF para Cb for 0 e o valor de CBF para Cr for 1 para cada bloco de partição, apenas a posição do último coeficiente diferente de zero para Cr é verificada para determinar se deve ou não sinalizar o índice de LFNST, 3) no caso do tipo de árvore simples, é possível determinar se deve ou não sinalizar o índice de LFNST verificando a posição do último coeficiente diferente de zero apenas para blocos com valor de CBF de 1 para todos os blocos de partição do componente de luma, do componente de Cb e do componente Cr.
[0320]No caso do modo de ISP, as informações de imagem também podem ser configuradas para que a posição do último coeficiente diferente de zero não seja verificada, e uma forma de realização da mesma é a seguinte.
[0321]i. No caso do modo de ISP, a sinalização do índice de LFNST pode ser permitida sem verificar a posição do último coeficiente diferente de zero tanto para o bloco luma quanto para o bloco croma. Ou seja, mesmo que a posição do último coeficiente diferente de zero para todos os blocos de partição seja a posição DC ou o valor de CBF correspondente seja 0, a sinalização do índice de LFNST pode ser permitida.
[0322]ii. No caso do modo de ISP, pode ser omitida a verificação da posição do último coeficiente diferente de zero apenas para o bloco luma, e no caso do bloco croma, a verificação da posição do último coeficiente diferente de zero pode ser realizado da maneira acima descrita. Por exemplo, no caso de um tipo de árvore dupla e um bloco luma, a sinalização do índice de LFNST é permitida sem verificar a posição do último coeficiente diferente de zero, e no caso de um tipo de árvore dupla e um bloco croma, seja ou não é sinalizado um índice de LFNST correspondente pode ser determinado verificando se existe ou não uma posição DC para a posição do último coeficiente diferente de zero da maneira descrita acima.
[0323]iii. No caso do modo de ISP e do tipo de árvore simples, o método i ou ii pode ser aplicado. Ou seja, no caso do modo de ISP e quando o número i é aplicado ao tipo de árvore simples, é possível omitir a verificação da posição do último coeficiente diferente de zero tanto para o bloco luma quanto para o bloco croma e permitir a sinalização de índice de LFNST. Alternativamente, aplicando a seção ii, para os blocos de partição para o componente de luma, a verificação da posição do último coeficiente diferente de zero é omitida, e para os blocos de partição para o componente croma (se ISP não for aplicado para o componente croma, o número de blocos de partição pode ser considerado como 1), a posição do último coeficiente diferente de zero é verificada da maneira descrita acima, determinando assim se deve ou não sinalizar o índice de LFNST.
[0324]E. Quando for confirmado que o coeficiente de transformada existe em uma posição diferente de uma posição onde o coeficiente de transformada de LFNST pode existir mesmo para um bloco de partição entre todos os blocos de partição, a sinalização do índice de LFNST pode ser omitida.
[0325]Por exemplo, no caso de um bloco de partição 4 x 4 e um bloco de partição 8 x 8, os coeficientes de transformada de LFNST podem existir em oito posições da posição DC de acordo com a ordem de varredura do coeficiente de transformada no padrão VVC, e as posições restantes são preenchidas com zeros. Além disso, se for igual ou maior que 4 x 4 e não for um bloco de partição 4 x 4 nem um bloco de partição 8 x 8, os coeficientes de transformada de LFNST podem existir em 16 posições da posição DC de acordo com a ordem de varredura do coeficiente de transformada no padrão VVC, e todos as posições restantes são preenchidas com zeros.
[0326]Assim, se os coeficientes de transformada diferente de zero existirem na região que deve ser preenchida com o valor zero após o progresso da codificação residual, a sinalização do índice de LFNST pode ser omitida.
[0327]Se a LFNST puder ser aplicada mesmo quando o bloco de partição for 2 x M (1 x M) ou M x 2 (M x 1), uma região na qual os coeficientes de transformada de LFNST podem ser localizados pode ser designada como segue. Se uma região diferente da região onde os coeficientes de transformada podem ser localizados pode ser preenchida com 0, e se existe um coeficiente de transformada diferente de zero na região que deve ser preenchida com 0 quando se assume que LFNST é aplicado, o índice de LFNST sinalização pode ser omitida.
[0328]i. Se a LFNST pode ser aplicada a um bloco 2 x M ou M x 2 e M = 8, apenas 8 coeficientes de transformada de LFNST podem ser gerados para um bloco de partição 2 x 8 ou 8 x 2. Quando os coeficientes de transformada estão dispostos na ordem de varredura como mostrado na Figura 18, 8 coeficientes de transformada são dispostos na ordem de varredura a partir da posição DC, e as 8 posições restantes podem ser preenchidas com zeros.
[0329]Para um bloco de partição 2 x N ou N x 2 (N > 8), 16 coeficientes de transformada de LFNST podem ser gerados e quando os coeficientes de transformada estão dispostos na ordem de varredura conforme mostrado na Figura 18, 16 coeficientes de transformada são dispostos na ordem de varredura a partir da posição DC, e a região restante pode ser preenchida com zeros. Ou seja, em um bloco de partição 2 x N ou N x 2 (N > 8), uma região diferente do bloco 2 x 8 ou 8 x 2 superior esquerdo pode ser preenchida com zeros. Mesmo para um bloco de partição 2 x 8 ou 8 x 2, podem ser gerados 16 coeficientes de transformada em vez de 8 coeficientes de transformada de LFNST e, neste caso, não ocorre uma região que deve ser preenchida com zeros. Conforme descrito acima, quando a LFNST é aplicada e quando é detectado que existe um coeficiente de transformada diferente de zero em uma região determinada a ser preenchida com 0 em pelo menos um bloco de partição, a sinalização do índice de LFNST pode ser omitida e o índice de LFNST pode ser inferido como 0.
[0330]ii Se a LFNST pode ser aplicada a um bloco 1 x M ou M x 1 e M = 16, apenas 8 coeficientes de transformada de LFNST podem ser gerados para um bloco de partição 1 x 16 ou 16 x 1. Quando os coeficientes de transformada estão dispostos na ordem de varredura da esquerda para a direita ou de cima para baixo, 8 coeficientes de transformada são dispostos na ordem de varredura correspondente da posição DC e as 8 posições restantes podem ser preenchidas com zeros.
[0331]Para um bloco de partição 1 x N ou N x 1 (N > 16), 16 coeficientes de transformada de LFNST podem ser gerados e, quando os coeficientes de transformada são organizados na ordem de varredura da esquerda para a direita ou de cima para baixo, 16 coeficientes de transformada são dispostos na ordem de varredura correspondente a partir da posição DC, e a região restante pode ser preenchida com zeros. Ou seja, em um bloco de partição 1 x N ou N x 1 (N > 16), uma região diferente do bloco 1 x 16 ou 16 x 1 superior esquerdo pode ser preenchida com zeros.
[0332]Mesmo para um bloco de partição 1 x 16 ou 16 x 1, podem ser gerados 16 coeficientes de transformada em vez de 8 coeficientes de transformada de LFNST e, neste caso, não ocorre uma região que deve ser preenchida com zeros. Conforme descrito acima, quando a LFNST é aplicada e quando é detectado que existe um coeficiente de transformada diferente de zero em uma região determinada a ser preenchida com 0 em pelo menos um bloco de partição, a sinalização do índice de LFNST pode ser omitida e o índice de LFNST pode ser inferido como 0.
[0333]Enquanto isso, no caso do modo de ISP, a condição de comprimento é visualizada independentemente para a direção horizontal e a direção vertical, e DST- 7 é aplicada em vez de DCT-2 sem sinalização para o índice de MTS. É determinado se o comprimento horizontal ou vertical é maior ou igual a 4 e menor ou igual a 16, e um núcleo de transformada primária é determinado de acordo com o resultado da determinação. Assim, no caso do modo de ISP, quando a LFNST pode ser aplicada, é possível a seguinte configuração de combinação de transformada.
[0334]1. Quando o índice de LFNST é 0 (incluindo o caso em que o índice de LFNST é inferido como 0), a condição de decisão de transformada primária no momento do ISP incluído no padrão VVC atual pode ser seguida. Em outras palavras, pode-se verificar se a condição de comprimento (ser igual ou maior que 4 ou igual ou menor que 16) é satisfeita independentemente para as direções horizontal e vertical, respectivamente, e se for satisfeita, DST- 7 pode ser aplicada em vez de DCT-2 para transformada primária, enquanto, se não for satisfeita, DCT-2 pode ser aplicada.
[0335]2. Para um caso em que o índice de LFNST é maior que 0, as duas configurações a seguir podem ser possíveis como uma transformada primária.
[0336]A. DCT-2 pode ser aplicada nas direções horizontal e vertical.
[0337]B. A condição de decisão de transformada primária no momento do ISP incluído no padrão VVC atual pode ser seguida. Em outras palavras, pode-se verificar se a condição de comprimento (sendo igual ou maior que 4 ou igual ou menor que 16) é satisfeita independentemente para as direções horizontal e vertical, respectivamente, e se for satisfeita, DST- 7 pode ser aplicada em vez de DCT-2, enquanto, se não for satisfeito, DCT-2 pode ser aplicada.
[0338]No modo de ISP, as informações de imagem podem ser configuradas de forma que o índice de LFNST seja transmitido para cada bloco de partição em vez de para cada unidade de codificação. Neste caso, no método de sinalização de índice de LFNST descrito acima, pode-se considerar que apenas um bloco de partição existe em uma unidade na qual o índice de LFNST é transmitido e pode ser determinado se deve ou não sinalizar o índice de LFNST.
[0339]Enquanto isso, a ordem de sinalização do índice de LFNST e do índice MTS será descrita abaixo.
[0340]De acordo com um exemplo, o índice de LFNST sinalizado na codificação residual pode ser codificado após a posição de codificação para a última posição do coeficiente diferente de zero, e o índice de MTS pode ser codificado imediatamente após o índice de LFNST. No caso desta configuração, o índice de LFNST pode ser sinalizado para cada unidade de transformada. Alternativamente, mesmo se não sinalizado na codificação residual, o índice de LFNST pode ser codificado após a codificação para a última posição significativa do coeficiente, e o índice de MTS pode ser codificado após o índice de LFNST.
[0341]A sintaxe da codificação residual de acordo com um exemplo é a seguinte. Tabela 8
[0342]Os significados das principais variáveis mostradas na Tabela 8 são os seguintes.
[0343]1. cbWidth, cbHeight: a largura e a altura do bloco de codificação atual
[0344]2. log2TbWidth, log2TbHeight: o valor de log de base-2 para a largura e altura do bloco de transformada atual, pode ser reduzido, refletindo o zero-out, para uma região superior esquerda na qual um coeficiente diferente de zero pode existir.
[0345]3. sps_lfnst_enabled_flag: um sinalizador indicando se a LFNST está habilitada ou não, se o valor do sinalizador for 0, indica que a LFNST não está habilitada, e se o valor do sinalizador for 1, indica que a LFNST está habilitada. É definido no conjunto de parâmetros de sequência (SPS).
[0346]4. CuPredMode[chType][x0][y0]: um modo de predição correspondente à variável chType e à posição (x0, y0), chType pode ter valores de 0 e 1, em que 0 indica um componente de luma e 1 indica um componente de croma. A posição (x0, y0) indica uma posição na gravura, e MODE_INTRA (intrapredição) e MODE_INTER (interpredição) são possíveis como um valor de CuPredMode[chType][x0][y0].
[0347]5. IntraSubPartitionsSplit[x0][y0]: o conteúdo da posição (x0, y0) é o mesmo do n° 4. Indica qual partição ISP na posição (x0, y0) é aplicada, ISP_NO_SPLIT indica que a unidade de codificação correspondente à posição (x0, y0) não seja dividida em blocos de partição.
[0348]6. intra_mip_flag[x0][y0]: o conteúdo da posição (x0, y0) é o mesmo do n° 4 acima. O intra_mip_flag é um sinalizador que indica se um modo de predição de intrapredição baseado em matriz (MIP) é aplicado ou não. Se o valor do sinalizador for 0, indica que o MIP não está habilitado e, se o valor do sinalizador for 1, indica que o MIP está habilitado.
[0349]7. cIdx: o valor de 0 indica luma, e o valores de 1 e 2 indica Cb e Cr que são respectivamente componentes de croma.
[0350]8. treeType: indica árvore única e árvore dupla, etc. (SINGLE_TREE: árvore única, DUAL_TREE_LUMA: árvore dupla para componente de luma, DUAL_TREE_CHROMA: árvore dupla para componente de croma)
[0351]9. tu_cbf_cb[x0][y0]: o conteúdo da posição (x0, y0) é o mesmo do n° 4. Indica o sinalizador de bloco codificado (CBF) para o componente de Cb. Se seu valor for 0, significa que nenhum coeficiente diferente de zero está presente na unidade de transformada correspondente para o componente de Cb, e se seu valor for 1, indica que coeficientes diferentes de zero estão presentes na unidade de transformada correspondente para o componente de Cb.
[0352]10. lastSubBlock: Indica uma posição na ordem de varredura de um sub-bloco (Grupo de Coeficientes (CG)) no qual está localizado o último coeficiente diferente de zero. 0 indica um sub-bloco no qual está incluído o componente de DC e, no caso de ser maior que 0, não é um sub-bloco no qual está incluído o componente de DC.
[0353]11. lastScanPos: Indica a posição onde o último coeficiente significativo está na ordem de varredura dentro de um sub-bloco. Se um sub-bloco incluir 16 posições, são possíveis valores de 0 a 15.
[0354]12. lfnst_idx[x0][y0]: Elemento de sintaxe de índice de LFNST a ser analisado. Se não for analisado, é inferido como um valor de 0. Ou seja, o valor padrão é definido como 0, indicando que a LFNST não é aplicada.
[0355]13. LastSignificantCoeffX, LastSignificantCoeffY: Indicam as coordenadas x e y onde se encontra o último coeficiente significativo no bloco de transformada. A coordenada x começa em 0 e aumenta da esquerda para a direita, e a coordenada y começa em 0 e aumenta de cima para baixo. Se os valores de ambas as variáveis forem 0, significa que o último coeficiente significativo está localizado em DC.
[0356]14. cu_sbt_flag: Um sinalizador que indica se a transformada de sub- bloco (SBT) incluída no padrão VVC atual está habilitada. Se o valor do sinalizador for 0, indica que a SBT não está habilitada, e se o valor do sinalizador for 1, indica que a SBT está habilitada.
[0357]15.sps_explicit_mts_inter_enabled_flag, sps_explicit_mts_intra_enabled_flag: Sinalizadores que indicam se a MTS explícita é aplicado ou não a inter CU e intra CU, respectivamente. Se um valor de sinalizador correspondente for 0, isso indica que a MTS não está habilitada para uma inter CU ou intra CU e se o valor de sinalizador correspondente for 1, indica que a MTS está habilitada.
[0358]16. tu_mts_idx[x0][y0]: Elemento de sintaxe de índice de MTS a ser analisado. Se não for analisado, é inferido como um valor de 0. Ou seja, o valor padrão é definido como 0, indicando que a DCT-2 está habilitada para as direções horizontal e vertical.
[0359]Conforme mostrado na Tabela 8, no caso de uma única árvore, é possível determinar se deve ou não sinalizar o índice de LFNST usando apenas a última condição de posição do coeficiente significativo para luma. Ou seja, se a posição do último coeficiente significativo não for DC e o último coeficiente significativo existir no sub-bloco superior esquerdo (CG), por exemplo, um bloco 4 x 4, então o índice de LFNST é sinalizado. Neste caso, no caso do bloco de transformada 4 x 4 e do bloco de transformada 8 x 8, o índice de LFNST é sinalizado apenas quando o último coeficiente significativo existe nas posições 0 a 7 no sub-bloco superior esquerdo.
[0360]No caso da árvore dupla, o índice de LFNST é sinalizado independentemente de cada um de luma e croma, e no caso de croma, o índice de LFNST pode ser sinalizado aplicando a última condição de posição do coeficiente significativo apenas ao componente de Cb. A condição correspondente não pode ser verificada para o componente de Cr, e se o valor de CBF para Cb for 0, o índice de LFNST pode ser sinalizado aplicando a última condição de posição do coeficiente significativo ao componente de Cr.
[0361]‘Min(log2TbWidth, log2TbHeight) >= 2’ de Tabela 8 pode ser expresso como “Min(tbWidth, tbHeight) >= 4”, e ‘Min(log2TbWidth, log2TbHeight) >= 4’ pode ser expresso como “Min(tbWidth, tbHeight) >= 16”.
[0362]Na tabela 8, log2ZoTbWidth e log2ZoTbHeight significam valores de log cuja largura e altura base são 2 (base-2) para a região superior esquerda onde o último coeficiente significativo pode existir por zero-out, respectivamente.
[0363]Como mostrado na Tabela 8, os valores log2ZoTbWidth e log2ZoTbHeight podem ser atualizados em dois locais. O primeiro é antes do índice de MTS ou valor do índice de LFNST ser analisado, e o segundo é depois que o índice de MTS é analisado.
[0364]A primeira atualização é antes que o valor do índice de MTS (tu_mts_idx[x0][y0]) seja analisado, então log2ZoTbWidth e log2ZoTbHeight podem ser definidos independentemente do valor do índice de MTS.
[0365]Depois que o índice de MTS é analisado, log2ZoTbWidth e log2ZoTbHeigh são definidos para um índice de MTS maior que 0 (combinação DST- 7/DCT-8). Quando a DST-7/DCT-8 é aplicada independentemente em cada uma das direções horizontal e vertical na transformada primária, pode haver até 16 coeficientes significativos por linha ou coluna em cada direção. Ou seja, após a aplicação de DST- 7/DCT-8 com um comprimento de 32 ou superior, até 16 coeficientes de transformada podem ser derivados para cada linha ou coluna da esquerda ou do topo. Assim, em um bloco 2D, quando a DST-7/DCT-8 é aplicada tanto na direção horizontal quanto na direção vertical, coeficientes significativos podem existir em uma região superior esquerda de apenas 16 x 16.
[0366]Além disso, quando a DCT-2 é independentemente aplicada em cada uma das direções horizontal e vertical na transformada primária atual, pode haver até 32 coeficientes significativos por linha ou coluna em cada direção. Ou seja, ao aplicar DCT-2 com um comprimento de 64 ou superior, até 32 coeficientes de transformada podem ser derivados para cada linha ou coluna da esquerda ou da parte superior. Assim, em um bloco 2D, quando a DCT-2 é aplicada tanto na direção horizontal quanto na direção vertical, coeficientes significativos podem existir em uma região 32 x 32superior esquerda.
[0367]Além disso, quando a DST-7/DCT-8 é aplicada em um lado e a DCT-2 é aplicada no outro lado nas direções horizontal e vertical, 16 coeficientes significativos podem existir na direção anterior e 32 coeficientes significativos pode existir na última direção. Por exemplo, no caso de um bloco de transformada 64 x 8, se a DCT-2 for aplicada na direção horizontal e a DST-7 for aplicada na direção vertical (pode ocorrer em uma situação em que a MTS implícita é aplicada), um coeficiente significativo pode existem em até uma região 32 x 8 superior esquerda.
[0368]Se, como mostrado na Tabela 8, log2ZoTbWidth e log2ZoTbHeight são atualizados em dois locais, ou seja, antes da análise do índice MTS, os intervalos de last_sig_coeff_x_prefix e last_sig_coeff_y_prefix podem ser determinados por log2ZoTbWidth e log2ZoTbHeight conforme mostrado na tabela abaixo. Tabela 9 7.4.9.11 Semântica de codificação residual last_sig_coefí_x_prefix especifica o prefixo de [posição da coluna do coeficiente hist significativo na ordem de varredura dentro de um bloco de transformada. Os valores de last_sig_cocff_x_prefix devem estar no intervalo de 0 a (logZZoTb Width « I}— 1. inclusive. Quando last_sig_coc[f_x_prefix não está presente, é inferido como 0. Iast_sig_coeff_y_prefix especifica o prefixo da. posição da linha do último coeficiente significativo na ordem de varredura dentro de um bloco de transformada. Os valores de last_sig_coeff_y_prefix devem estar no intervalo de 0 a [logSZoTbHeight« 1 )-1. inclusive. Quando last_sig_coeffj’_prefix não está presente, é inferido como 0.
[0369]Além disso, neste caso, os valores máximos de last_sig_coeff_x_prefix e last_sig_coeff_y_prefix podem ser definidos refletindo os valores log2ZoTbWidth e log2ZoTbHeight no processo de binarização para last_sig_coeff_x_prefix e last_sig_coeff_y_prefix. Tabela 10
[0370]De acordo com um exemplo, em um caso onde o modo de ISP e a LFNST são aplicados, quando a sinalização da Tabela 8 é aplicada, o texto de especificação pode ser configurado conforme mostrado na Tabela 11. Comparado com a Tabela 8, a condição de sinalização do índice de LFNST somente em um caso excluindo o modo de ISP (IntraSubPartitionsSplit[x0][y0] = = ISP_NO_SPLIT na Tabela 8) é excluído.
[0371]Em uma única árvore, quando um índice de LFNST transmitido para um componente de luma (cIdx = 0) é reutilizado para um componente croma, um índice de LFNST transmitido para um primeiro bloco de partição de ISP no qual existe um coeficiente significativo pode ser aplicado a um bloco de transformada de croma. Alternativamente, mesmo em uma única árvore, um índice de LFNST pode ser sinalizado para um componente de croma separadamente daquele para um componente de luma. Uma descrição das variáveis na Tabela 11 é a mesma da Tabela 8. Tabela 11
[0372]De acordo com outro exemplo, na Tabela 11, quando o último coeficiente significativo pode ser localizado apenas em uma posição de DC para todos os blocos de partição no ISP, uma condição para analisar um índice de LFNST pode ser alterada da seguinte maneira. Tabela 12
[0373]De acordo com um exemplo, o índice de LFNST e/ou o índice de MTS pode ser sinalizado em um nível de unidade de codificação. Como descrito acima, o índice de LFNST pode ter três valores de 0, 1, e 2, onde 0 indica que a LFNST não é aplicada, e 1 e 2 respectivamente indicam um primeiro candidato e um segundo candidato de dois candidatos de núcleo de LFNST incluídos em um conjunto de LFNST selecionado. O índice de LFNST é codificado através de binarização unária truncada e os valores de 0, 1 e 2 podem ser codificados como cadeias bin de 0, 10 e 11, respectivamente.
[0374]De acordo com um exemplo, a LFNST pode ser aplicada apenas quando DCT-2 é aplicada tanto na direção horizontal quanto na direção vertical na transformada primária. Portanto, se o índice de MTS for sinalizado após sinalizar o índice de LFNST, o índice de MTS pode ser sinalizado apenas quando o índice de LFNST é 0, e transformada primária pode ser realizada aplicando DCT-2 na direção horizontal e na direção vertical sem sinalização do índice de MTS quando o índice de LFNST não é 0.
[0375]O índice de MTS pode ter valores de 0, 1, 2, 3, e 4, onde 0, 1, 2, 3, e 4 pode indicar que DCT-2/DCT-2, DST-7/DST-7, DCT-8/DST-7, DST-7/DCT-8, DCT- 8/DCT-8 são aplicadas nas direções horizontal e vertical, respectivamente. Além disso, o índice MTS pode ser codificado por meio de binarização unitária truncada e os valores de 0, 1, 2, 3 e 4 podem ser codificados como sequências bin de 0, 10, 110, 1110 e 1111, respectivamente.
[0376]A sinalização do índice de LFNST em um nível de unidade de codificação pode ser indicada conforme mostrado na tabela a seguir. O índice de LFNST pode ser sinalizado na última parte de uma tabela de sintaxe de unidade de codificação. Tabela 13
[0377]Uma variável LfnstDcOnly e uma variável LfnstZeroOutSigCoeffFlag na Tabela 13 podem ser definidas conforme mostrado abaixo na Tabela 16.
[0378]A variável LfnstDcOnly é igual a 1 quando todos os últimos coeficientes significativos estão localizados em posições de DC (posições superior esquerda) para blocos de transformada com um sinalizador de bloco codificado (CBF, igual a 0 se houver pelo menos um coeficiente significativo em um bloco correspondente, e é igual a 0 caso contrário) de 1, e é igual a 0 caso contrário. Especificamente, em um caso de luma de árvore dupla, a posição do último coeficiente significativo é verificada em relação a um bloco de transformada de luma e, em um caso de croma de árvore dupla, a posição do último coeficiente significativo é verificada em relação a um bloco de transformada para Cb e um bloco de transformada para Cr. No caso de uma única árvore, a posição do último coeficiente significativo pode ser verificada em relação ao bloco de transformada para luma, Cb e Cr.
[0379]A variável LfnstZeroOutSigCoeffFlag é igual a 0 se houver um coeficiente significativo em uma posição de zero-out quando a LFNST é aplicada, e é igual a 1 caso contrário.
[0380]lfnst_idx[x0][y0] incluído na Tabela 13 e tabelas subsequentes indica um índice de LFNST para uma unidade de codificação correspondente e tu_mts_idx[x0][y0] indica um índice de MTS para a unidade de codificação correspondente.
[0381]De acordo com um exemplo, para codificar o índice de MTS consecutivamente após o índice de LFNST no nível da unidade de codificação, uma tabela de sintaxe da unidade de codificação pode ser configurada conforme mostrado na Tabela 14. Tabela 14
[0383]Comparando a Tabela 14 com a Tabela 13, uma condição para verificar se o valor de tu_mts_idx[x0][y0] é 0 (ou seja, verificar se DCT-2 é aplicada na direção horizontal e na direção vertical) em uma condição para sinalização lfnst_idx[x0][y0] é alterado para uma condição para verificar se o valor de transform_skip_flag[x0][y0] é 0 (!transform_skip_flag[x0][y0]). transform_skip_flag[x0][y0] indica se a unidade de codificação está codificada no modo de salto de transformada no qual uma transformada é ignorada e o sinalizador é sinalizado antes do índice de MTS e do índice de LFNST. Ou seja, como lfnst_idx[x0][y0] é sinalizado antes que o valor de tu_mtx_idx[x0][y0] seja sinalizado, apenas a condição para o valor de transform_skip_flag[x0][y0] pode ser verificada.
[0384]Como mostrado na Tabela 14, uma pluralidade de condições é verificada ao codificar tu_mts_idx[x0][y0], e tu_mts_idx[x0][y0] é sinalizado somente quando o valor de lfnst_idx[x0][y0] é 0 como descrito acima.
[0385]tu_cbf_luma[x0][y0] é um sinalizador que indica se existe um coeficiente significativo para um componente de luma, e cbWidth e cbHeight indicam a largura e altura da unidade de codificação para o componente de luma, respectivamente.
[0386]Na Tabela 14, ( IntraSubPartitionsSplit[ x0 ][ y0 ] = = ISP_NO_SPLIT ) indica que o modo de ISP não é aplicado e ( !cu_sbt_flag ) indica que nenhuma SBT é aplicada.
[0387]De acordo com Tabela 14, quando a largura e a altura da unidade de codificação para o componente luma são 32 ou menos, tu_mts_idx[x0][y0] é sinalizado, isto é, se uma MTS é aplicada é determinada pela largura e altura da unidade de codificação para o componente de luma.
[0388]De acordo com outro exemplo, quando o bloco de transformada (TU) ocorre (por exemplo, quando um tamanho máximo de transformada é definido como 32, uma unidade de codificação de 64 x 64 é dividida em quatro blocos de transformada de 32 x 32 e codificada), o índice de MTS pode ser sinalizado com base no tamanho de cada bloco de transformada. Por exemplo, quando a largura e a altura de um bloco de transformada são 32 ou menos, o mesmo valor de índice de MTS pode ser aplicado a todos os blocos de transformada em uma unidade de codificação, aplicando assim a mesma transformada primária. Além disso, quando o bloco de transformada ocorre lado a lado, o valor de tu_cbf_luma[x0][y0] na Tabela 14 pode ser um valor de CBF para um bloco de transformada superior esquerdo ou pode ser definido como 1 quando um valor de CBF para mesmo um bloco de transformada de todos os blocos de transformada é 1.
[0389]De acordo com um exemplo, quando o modo de ISP é aplicado ao bloco atual, a LFNST pode ser aplicada, caso este em que a Tabela 14 pode ser alterada como mostrado na Tabela 15
[0390]Conforme mostrado na Tabela 15, mesmo no modo de ISP, (IntraSubPartitionsSplitType ! = ISP_NO_SPLIT) lfnst_idx[ x0 ][ y0 ] pode ser configurado para ser sinalizado e o mesmo valor de índice de LFNST pode ser aplicado a todos os blocos de partição de ISP.
[0391]Além disso, como mostrado na Tabela 15, uma vez que tu_mts_idx[x0][y0] pode ser sinalizado apenas em um modo excluindo o modo de ISP, uma parte de codificação de índice de MTS é a mesma da Tabela 14.
[0392]Conforme mostrado na Tabela 14 e na Tabela 15, quando o índice de MTS é sinalizado imediatamente após o índice de LFNST, as informações sobre a transformada primária não podem ser conhecidas ao realizar a codificação residual. Ou seja, o índice de MTS é sinalizado após a codificação residual. Consequentemente, em uma parte de codificação residual, uma parte na qual uma zeragem é realizada deixando apenas 16 coeficientes para DST-7 ou DCT-8 com um comprimento de 32 pode ser alterada conforme mostrado abaixo na Tabela 16. Tabela 16
[0393]Conforme mostrado na Tabela 16, em um processo de determinação de log2ZoTbWidth e log2ZoTbHeight (onde log2ZoTbWidth e log2ZoTbHeight respectivamente denotam os valores de log de base 2 da largura e altura de uma região superior esquerda remanescente após a zeragem ser executada) , a verificação do valor de tu_mts_idx[ x0 ][ y0 ] pode ser omitida.
[0394]A binarização de last_sig_coeff_x_prefix e last_sig_coeff_y_prefix na Tabela 16 pode ser determinada com base em log2ZoTbWidth e log2ZoTbHeight conforme mostrado na Tabela 10.
[0395]Além disso, conforme mostrado na Tabela 16, uma condição de verificação de sps_mts_enable_flag pode ser adicionada ao determinar log2ZoTbWidth e log2ZoTbHeight na codificação residual.
[0396]TR na Tabela 10 indica um método de binarização Rice truncado, e a última informação de coeficiente significativo pode ser binarizada com base em cMax e cRiceParam definidos na Tabela 10 de acordo com um método descrito na tabela a seguir. Tabela 17
[0397]Em um outro exemplo, uma tabela de sintaxe de unidade de codificação e uma tabela de sintaxe de codificação residual são as seguintes. Tabela 18 Tabela 19
[0398]Na Tabela 18, MtsZeroOutSigCoeffFlag é inicialmente definido como 1, e esse valor pode ser alterado na codificação residual na Tabela 19. O valor de uma variável MtsZeroOutSigCoeffFlag é alterado de 1 para 0 quando existe um coeficiente significativo em uma região ( LastSignificantCoeffX > 15 | | LastSignificantCoeffY > 15 ) para ser preenchido com 0s por um zero-out, caso em que o índice MTS não é sinalizado conforme mostrado na Tabela 19.
[0399]De acordo com um exemplo, uma parte de codificação de índice de MTS na Tabela 18 pode ser alterada conforme mostrado na tabela a seguir. Tabela 20
[0400]Ao contrário da Tabela 18, uma variável MtsZeroOutSigCoeffFlag na Tabela 20 é inicializada em 0 em vez de 1 (MtsZeroOutSigCoeffFlag = 0). O valor da variável MtsZeroOutSigCoeffFlag é mantido como 0 quando existe um coeficiente significativo em uma região ( LastSignificantCoeffX > 15 | | LastSignificantCoeffY > 15 ) a ser preenchida com 0s por um zero-out, caso em que o índice MTS não é sinalizado.
[0401]Os desenhos a seguir foram preparados para explicar um exemplo específico do presente relatório descritivo. Uma vez que os nomes de dispositivos específicos descritos nos desenhos ou os nomes de sinais/mensagens/campos específicos são apresentados a título de exemplo, as características técnicas do presente relatório descritivo não estão limitadas aos nomes específicos usados nos desenhos seguintes.
[0402]A Figura 19 é um fluxograma que mostra operação de um aparelho de decodificação de vídeo de acordo com uma modalidade do presente documento.
[0403]Cada etapa divulgada na Figura 19 é baseado em alguns dos conteúdos descritos acima nas Figuras 2 a 18. Portanto, uma explicação para o conteúdo específico duplicado com o conteúdo descrito acima nas Figuras 2 a 18 serão omitidos ou feitos brevemente.
[0404]De acordo com uma modalidade, o aparelho de decodificação 200 pode realizar codificação residual com base em informação residual recebida de um fluxo de bits, e especificamente pode analisar a informação residual recebida em um nível de codificação residual e pode organizar coeficientes de transformada para um bloco atual de acordo com um ordem de varredura predeterminada (S1910).
[0405]O aparelho de decodificação 200 pode decodificar informação em coeficientes de transformada quantizados para o bloco atual do fluxo de bits, e pode derivar os coeficientes de transformada quantizados para o bloco alvo com base na informação sobre os coeficientes de transformada quantizados para o bloco atual. A informação sobre os coeficientes de transformada quantizados para o bloco alvo pode ser incorporada em um conjunto de parâmetros de sequência (SPS) ou um cabeçalho de fatia e pode incluir pelo menos uma das informações sobre se a transformada reduzida (RST) é aplicada ou não, informações sobre o fator reduzido, informações sobre um tamanho mínimo de transformada para o qual a transformada reduzida é aplicadas, informações sobre um tamanho máximo de transformada ao qual a transformada reduzida é aplicada e Informações sobre o índice de transformada indicando qualquer um dos tamanhos de transformada inversa simplificada e matriz de núcleo de transformada incluída no conjunto de transformada.
[0406]Além disso, o aparelho de decodificação pode ainda receber informações sobre o modo de intrapredição para o bloco atual e informações sobre se o ISP é aplicado ou não ao bloco atual. O aparelho de decodificação pode derivar se o bloco atual é ou não dividido em um número predeterminado de blocos de transformada de subpartição, recebendo e analisando informações de sinalizador indicando se deve ou não aplicar a codificação de ISP ou o modo de ISP. Aqui, o bloco atual pode ser um bloco de codificação. Além disso, o aparelho de decodificação pode derivar o tamanho e o número de blocos de subpartição divididos através de informações de bandeira indicando em qual direção o bloco atual será dividido.
[0407]O aparelho de decodificação 200 pode derivar os coeficientes de transformada desquantizando a informação residual no bloco atual, isto é, os coeficientes de transformada quantizados, e pode organizar os coeficientes de transformada derivados de acordo com a ordem de varredura predeterminada.
[0408]Mais especificamente, os coeficientes de transformada derivados podem ser organizados de acordo com a ordem de varredura diagonal reversa em unidades de blocos 4 x 4, e os coeficientes de transformada dentro do bloco 4 x 4 também podem ser organizados de acordo com a ordem de varredura diagonal reversa. Ou seja, os coeficientes de transformada nos quais a desquantização foi realizada podem ser organizados de acordo com uma ordem de varredura reversa aplicada em um codec de vídeo, como em VVC ou HEVC.
[0409]Um coeficiente de transformada derivado com base nesta informação residual pode ser um coeficiente de transformada desquantizado conforme descrito acima e também pode ser um coeficiente de transformada quantificado. Ou seja, o coeficiente de transformada pode ser qualquer dado capaz de verificar se é ou não um dado diferente de zero no bloco atual independentemente de estar ou não quantizado.
[0410]O aparelho de decodificação pode derivar amostras residuais aplicando uma transformada inversa aos coeficientes de transformada quantizados.
[0411]Como descrito acima, o aparelho de decodificação pode derivar amostras residuais aplicando LFNST, que é uma transformada não separável, ou MTS, que é uma transformada separável, e tais transformações podem ser realizadas com base no índice de LFNST indicando o núcleo de LFNST, ou seja, a matriz de LFNST e o índice de MTS indicando o núcleo de MTS, respectivamente.
[0412]O aparelho de decodificação pode receber e analisar pelo menos um do índice de LFNST ou o índice de MTS em um nível de unidade de codificação, e pode analisar o índice de LFNST indicando a núcleo de LFNST antes de, isto é, imediatamente antes de, o índice de MTS indicando o núcleo de MTS (S1920).
[0413]O índice de MTS pode ser analisado de acordo com uma condição específica para o índice de LFNST, por exemplo, quando o índice de LFNST é 0.
[0414]O nível de codificação residual pode incluir sintaxe para a última informação de posição de coeficiente significativo, e o índice de LFNST pode ser analisado após a última informação de posição de coeficiente significativo ser analisada.
[0415]De acordo com um exemplo, quando o bloco atual é um bloco luma e o índice de LFNST é 0, o índice de MTS pode ser analisado. Isto é, quando o bloco atual é um bloco luma, e se o índice de LFNST é maior do que 0, o índice de MTS não pode ser analisado.
[0416]De acordo com um exemplo, quando o tipo de árvore do bloco atual é uma árvore dupla, o índice de LFNST para cada um do bloco luma e do bloco croma pode ser analisado.
[0417]Enquanto isso, na derivação do coeficiente de transformada, a largura e a altura para a região superior esquerda na qual o último coeficiente significativo pode existir no bloco atual por zero-out podem ser derivadas, e a largura e a altura para a região superior esquerda pode ser derivada antes de analisar o índice de MTS.
[0418]Enquanto isso, a posição do último coeficiente significativo pode ser derivado pela largura e altura para a região superior esquerda, e as informações de posição do último coeficiente significativo podem ser binarizadas com base na largura e altura para a região superior esquerda.
[0419]Alternativamente, de acordo com um exemplo, quando o tipo de árvore do bloco atual é um tipo de árvore única, o aparelho de decodificação pode realizar codificação residual no bloco luma e o bloco croma do bloco atual e pode então analisar o índice de LFNST.
[0420]Quando o índice de LFNST é analisado no nível da unidade de codificação após realizar a codificação residual não em um nível de bloco de transformada ou no nível de codificação residual, o índice de LFNST reflete as posições dos coeficientes de transformada completos para o bloco luma e o bloco croma e pode ser recebida informação de zero-out implicada no processo de transformada em vez de informação de coeficiente de transformada no bloco de luma ou no bloco de croma.
[0421]Quando o tipo de árvore do bloco atual é um tipo de árvore dupla e o componente de croma é codificado, o aparelho de decodificação pode realizar codificação residual em um componente de Cb e um componente de Cr do bloco croma e pode então analisar o índice de LFNST.
[0422]Quando o índice de LFNST é analisado no nível da unidade de codificação após realizar a codificação residual não no nível do bloco de transformada ou no nível de codificação residual, o índice de LFNST reflete as posições dos coeficientes de transformada completos para o componente de Cb e o componente de Cr do bloco de croma e as informações de zero-out implicadas no processo de transformada, em vez de informações de coeficiente de transformada em qualquer um dos componentes de Cb e do componente de Cr do bloco de croma, podem ser recebidas.
[0423]Quando o bloco atual é particionado em uma pluralidade de blocos de subpartição, o aparelho de decodificação pode realizar codificação residual na pluralidade de blocos de subpartição e pode então analisar o índice de LFNST.
[0424]Da mesma forma que a descrição acima, quando o índice de LFNST é analisado no nível da unidade de codificação após realizar a codificação residual não no nível do bloco de transformada ou no nível de codificação residual, o índice de LFNST reflete as posições dos coeficientes de transformada completos para todos os sub-blocos de partição e informações de zero-out implicadas no processo de transformada em vez de informações de coeficiente de transformada em alguns ou em blocos de subpartição individuais podem ser recebidos.
[0425]De acordo com um exemplo, quando o bloco atual é particionado na pluralidade de blocos de subpartição, o índice de LFNST pode ser analisado independentemente de se existe um coeficiente de transformada em uma região excluindo uma posição DC de cada uma da pluralidade de blocos de subpartição. Isto é, se o último coeficiente significativo puder ser localizado apenas na posição DC para todos os blocos de subpartição quando o ISP for aplicado ao bloco atual, a sinalização do índice de LFNST pode ser permitida.
[0426]Em um processo de codificação residual, o aparelho de decodificação pode derivar uma primeira variável indicando se existe um coeficiente de transformada em uma região excluindo uma posição DC do bloco atual, e pode derivar uma segunda variável indicando se existe um coeficiente de transformada em uma segunda região excluindo uma primeira região superior esquerda do bloco atual ou um bloco de subpartição em que o bloco atual é particionado.
[0427]O aparelho de decodificação pode analisar o índice de LFNST quando existe um coeficiente de transformada na região excluindo a posição DC e não existe um coeficiente de transformada na segunda região.
[0428]Especificamente, de modo a determinar se o índice de LFNST deve ser analisado, o aparelho de decodificação pode derivar a primeira variável indicando se o coeficiente de transformada, isto é, um coeficiente significativo, existe na região excluindo a posição DC do bloco atual.
[0429]A primeira variável pode ser uma variável LfnstDcOnly que pode ser derivada no processo de codificação residual. A primeira variável pode ser derivada como 0 quando o índice de um sub-bloco incluindo o último coeficiente significativo no bloco atual é 0 e a posição do último coeficiente significativo no sub-bloco é maior que 0, e o índice de LFNST pode ser analisado quando o a primeira variável é 0. Um sub- bloco refere-se a um bloco 4 x 4 usado como unidade de codificação na codificação residual e também pode ser denominado como um grupo de coeficientes (CG). Um índice de sub-bloco de 0 indica um sub-bloco 4 x 4 superior esquerdo.
[0430]A primeira variável pode ser inicialmente definida como 1, e pode ser mantida como 1 ou pode ser alterada para 0 dependendo se existe um coeficiente significativo na região excluindo a posição DC.
[0431]A variável LfnstDcOnly indica se existe um coeficiente diferente de zero em uma posição de componente não DC para pelo menos um bloco de transformada dentro de uma unidade de codificação, pode ser 0 quando existe um coeficiente diferente de zero em uma posição de componente não DC para pelo menos um bloco de transformada dentro de uma unidade de codificação, e pode ser 1 quando não existe um coeficiente diferente de zero em uma posição de componente não DC para todos os blocos de transformada dentro de uma unidade de codificação.
[0432]O aparelho de decodificação pode derivar a segunda variável indicando se existe um coeficiente significativo na segunda região excluindo a primeira região superior esquerda do bloco atual, verificando assim se foi realizado um zero-out na segunda área.
[0433]A segunda variável pode ser uma variável LfnstZeroOutSigCoeffFlag que pode indicar que um zero-out é realizado quando a LFNST é aplicada. A segunda variável pode ser inicialmente definida como 1, e pode ser alterada para 0 quando existe um coeficiente significativo na segunda região.
[0434]A variável LfnstZeroOutSigCoeffFlag pode ser derivada como 0 quando o índice de um sub-bloco no qual existe o último coeficiente diferente de zero for maior que 0 e a largura e a altura de um bloco de transformada for igual ou maior que 4 ou quando a posição do último coeficiente diferente de zero no sub-bloco no qual o último coeficiente diferente de zero existe é maior que 7 e o tamanho do bloco de transformada é 4 x 4 ou 8 x 8. Um sub-bloco refere-se a um 4 x 4 bloco usado como uma unidade de codificação na codificação residual e também pode ser denominado como um grupo de coeficientes (CG). Um índice de sub-bloco de 0 indica um sub- bloco 4 x 4 superior esquerdo.
[0435]Isto é, quando um coeficiente diferente de zero é derivado em uma região excluindo a região superior esquerda onde um coeficiente de transformada de LFNST pode existir no bloco de transformada, ou um coeficiente diferente de zero existe fora uma oitava posição em uma ordem de varredura para o bloco 4 x 4 e o bloco 8 x 8, a variável LfnstZeroOutSigCoeffFlag é set to 0.
[0436]De acordo com um exemplo, quando ISP é aplicado à unidade de codificação, se for identificado que existe um coeficiente de transformada em uma posição excluindo uma posição onde o coeficiente de transformada de LFNST pode existir mesmo para um bloco de subpartição entre todos os sub- blocos de partição, sinalizando que o índice de LFNST pode ser omitido. Ou seja, quando um zero-out não é realizado em um bloco de subpartição e existe um coeficiente significativo na segunda região, o índice de LFNST não é sinalizado.
[0437]A primeira região pode ser derivada com base no tamanho do bloco atual.
[0438]Por exemplo, quando o tamanho do bloco atual é 4 x 4 ou 8 x 8, a primeira região pode ser da parte superior esquerda do bloco atual até uma oitava posição de amostra em uma direção de varredura. Quando o bloco atual é particionado e o tamanho de um bloco de subpartição é 4 x 4 ou 8 x 8, a primeira região pode ser do canto superior esquerdo do bloco de subpartição até uma oitava posição de amostra na direção de varredura.
[0439]Quando o tamanho do bloco atual é 4 x 4 ou 8 x 8, oito pedaços de dados são emitidos através de um LFNST direto e, portanto, os oitavos coeficientes de transformada recebidos pelo aparelho de decodificação podem ser organizados a partir do canto superior esquerdo do bloco atual para a oitava posição de amostra na direção de varredura como mostrado em (a) da Figura 11 e (a) da Figura 12.
[0440]Quando o tamanho do bloco atual não é 4 x 4 ou 8 x 8, a primeira região pode ser uma região 4 x 4 superior esquerda do bloco atual. Quando o tamanho do bloco atual não é 4 x 4 ou 8 x 8, 16 peças de dados são emitidos através da LFNST direta e, portanto, 16 coeficientes de transformada recebidos pelo aparelho de decodificação podem ser organizados em uma região 4 x 4 superior esquerda do bloco atual como mostrado em (b) a (d) da Figura 11 e (b) da Figura 12.
[0441]Os coeficientes de transformada que podem ser dispostos na primeira região podem ser dispostos de acordo com uma direção de varredura diagonal como mostrado na Figura 7.
[0442]Conforme descrito acima, quando o bloco atual é particionado nos blocos de subpartição, se nenhum coeficiente de transformada existir em todas as segundas regiões individuais para a pluralidade de blocos de subpartição, o aparelho de decodificação pode analisar o índice de LFNST. Quando existe um coeficiente de transformada na segunda região para qualquer bloco de subpartição, o índice de LFNST não é analisado.
[0443]Como descrito acima, a LFNST pode ser aplicada to um bloco de subpartição tendo uma largura e uma altura de 4 ou maior, e o índice de LFNST para o bloco atual que é o bloco de codificação pode ser aplicado à pluralidade de blocos de subpartição.
[0444]Uma vez que o zero-out refletido LFNST (incluindo todos os zero-out implicados na aplicação da LFNST) é aplicado ao bloco de subpartição como está, a primeira região é igualmente aplicada ao bloco de subpartição. Ou seja, quando o bloco de subpartição particionado é um bloco de 4 x 4 ou um bloco de 8 x 8, a LFNST pode ser aplicada do canto superior esquerdo do bloco de subpartição para um oitavo coeficiente de transformada na direção de varredura, e quando o bloco de subpartição não é um bloco de 4 x 4 ou um bloco de 8 x 8, a LFNST pode ser aplicada para transformar coeficientes em uma região 4 x 4 superior esquerda do bloco de subpartição.
[0445]Além disso, no processo de codificação residual, o aparelho de decodificação pode derivar uma terceira variável indicando se existe um coeficiente de transformada em uma região excluindo uma região 16 x 16 superior esquerda do bloco atual e pode analisar o índice de MTS quando nenhum coeficiente de transformada existe na região excluindo a região 16 x 16.
[0446]A terceira variável pode ser uma variável MtsZeroOutSigCoeffFlag que pode indicar que um zero-out é realizado quando uma MTS é aplicada. A variável MtsZeroOutSigCoeffFlag indica se existe um coeficiente de transformada em uma região superior esquerda onde o último coeficiente significativo pode existir pelo zero- out depois de realizar a MTS, isto é, a região excluindo a região 16 x 16 superior esquerda, e o valor da terceira variável pode ser inicialmente definida como 1 e pode ser alterado de 1 a 0 quando existe um coeficiente de transformada na região excluindo a região 16 x 16 superior esquerda. Quando o valor da terceira variável é 0, o índice de MTS não é sinalizado.
[0447]O aparelho de decodificação pode derivar amostras residuais aplicando pelo menos uma da LFNST realizada com base no índice de LFNST ou na MTS realizada com base no índice de MTS (S1930).
[0448]Subsequentemente, o aparelho de decodificação 200 pode gerar amostras reconstruídas com base nas amostras residuais para o bloco atual e amostras de predição para o bloco atual (S1940).
[0449]Os desenhos a seguir foram preparados para explicar um exemplo específico do presente relatório descritivo. Uma vez que os nomes de dispositivos específicos descritos nos desenhos ou os nomes de sinais/mensagens/campos específicos são apresentados a título de exemplo, os recursos técnicos do presente relatório descritivo não estão limitadas aos nomes específicos usados nos desenhos seguintes.
[0450]A Figura 20 é um fluxograma que mostra operação de um aparelho de codificação de vídeo de acordo com uma modalidade do presente documento.
[0451]Cada etapa divulgada na Figura 20 é baseado em alguns dos conteúdos descritos acima nas Figuras 3 a 18. Portanto, uma explicação para o conteúdo específico duplicado com o conteúdo descrito acima nas Figuras 1, e 3 a 18 serão omitidos ou feitos brevemente.
[0452]O aparelho de codificação 100 de acordo com uma modalidade pode derivar a amostra de predição para o bloco atual com base no modo de intrapredição aplicado ao bloco atual (S2010).
[0453]O aparelho de codificação pode realizar a predição para cada bloco de transformada de subpartição no caso em que o ISP é aplicado ao bloco atual.
[0454]O aparelho de codificação pode determinar se deve ou não aplicar a codificação de ISP ou o modo de ISP ao bloco atual, ou seja, o bloco de codificação, e de acordo com o resultado da determinação, é possível determinar em qual direção o bloco atual está a ser dividido e derivar o tamanho e o número de sub-blocos a serem divididos.
[0455]O aparelho de codificação 100 pode derivar amostras residuais para o bloco atual com base nas amostras de predição (S2020).
[0456]O aparelho de codificação 100 pode derivar coeficientes de transformada para o bloco atual aplicando pelo menos uma de uma LFNST ou uma MTS para as amostras residuais e pode organizar os coeficientes de transformada de acordo com uma ordem de varredura predeterminada (S2030).
[0457]A transformada primária pode ser realizada através de uma pluralidade de núcleos de transformada, como MTS e, neste caso, o núcleo de transformada pode ser selecionado com base no modo de intrapredição.
[0458]Também, o aparelho de codificação 100 pode determinar se deve ou não realizar transformada secundária ou transformada não separável, especificamente LFNST, em coeficientes de transformada para o bloco atual e pode aplicar LFNST a coeficientes de transformada para derivar coeficientes de transformada modificados.
[0459]A LFNST é uma transformada não separável que aplica a transformada sem separar os coeficientes em uma direção específica, ao contrário da transformada primária que separa e transforma na direção vertical ou horizontal, coeficientes que são alvos de transformada. Essa transformada não separável pode ser uma transformada não separável de baixa frequência que aplica a transformada apenas a uma região de baixa frequência em vez de todo o bloco alvo que é um alvo de transformada.
[0460]Quando o ISP é aplicado ao bloco atual, o aparelho de codificação pode determinar se a LFNST pode ou não ser aplicada à altura e largura do bloco de subpartição dividido.
[0461]O aparelho de codificação pode determinar se a LFNST pode ou não ser aplicada à altura e largura do bloco de subpartição dividido. Neste caso, o aparelho de decodificação pode analisar o índice de LFNST quando a altura e a largura do bloco de subpartição forem iguais ou maiores que 4.
[0462]O aparelho de codificação pode codificar pelo menos um do índice de LFNST indicando a núcleo de LFNST e o índice de MTS indicando o núcleo de MTS (S2040).
[0463]O índice de MTS pode ser codificado de acordo com uma condição específica para o índice de LFNST, por exemplo, quando o índice de LFNST é 0.
[0464]De acordo com um exemplo, quando o bloco atual é um bloco luma e o índice de LFNST indica 0, o aparelho de codificação pode codificar o índice de MTS.
[0465]De acordo com um exemplo, quando o tipo de árvore do bloco atual é uma árvore dupla, o aparelho de codificação pode codificar o índice de LFNST para cada um do bloco luma e do bloco croma.
[0466]De acordo com um exemplo, quando o coeficiente de transformada é derivado, o aparelho de codificação pode derivar a largura e a altura para a região superior esquerda na qual o último coeficiente significativo pode existir no bloco atual por zero-out pode derivar o último posição do coeficiente significativo com base na largura e altura para a região superior esquerda e pode binarizar as últimas informações de posição do coeficiente significativo.
[0467]De acordo com um exemplo, a largura e a altura para a região superior esquerda podem ser derivadas antes da sinalização do índice de MTS.
[0468]Alternativamente, de acordo com um exemplo, quando o tipo de árvore do bloco atual é um tipo de árvore única, o aparelho de codificação pode derivar todos os coeficientes de transformada para o bloco luma e o bloco croma do bloco atual e pode então codificar o índice de LFNST em um nível de unidade de codificação.
[0469]Quando o índice de LFNST é codificado no nível de unidade de codificação depois de derivar todos os coeficientes de transformada não em um nível de bloco de transformada ou no nível de codificação residual, o índice de LFNST reflete as posições dos coeficientes de transformada completos para o bloco luma e o croma pode ser codificada informação de bloco e zero-out implicada no processo de transformada em vez de informação de coeficiente de transformada no bloco de luma ou no bloco de croma.
[0470]Quando o tipo de árvore do bloco atual é um tipo de árvore dupla e o componente de croma é codificado, o aparelho de codificação pode derivar todos coeficientes de transformada um componente de Cb e um componente de Cr do bloco croma e pode então codificar o índice de LFNST no nível de unidade de codificação.
[0471]Quando o índice de LFNST é codificado no nível da unidade de codificação após derivar todos os coeficientes de transformada que não estão no nível do bloco de transformada ou no nível de codificação residual, o índice de LFNST reflete as posições dos coeficientes de transformada completos para o componente de Cb e o componente de Cr do bloco de croma e informações de zero-out implicadas no processo de transformada em vez de informações de coeficiente de transformada em qualquer um do componente de Cb e o componente de Cr do bloco de croma podem ser codificados.
[0472]Quando o bloco atual é particionado em uma pluralidade de blocos de subpartição, o aparelho de codificação pode derivar todos os coeficientes de transformada para a pluralidade de blocos de subpartição e pode então codificar o índice de LFNST no nível de unidade de codificação.
[0473]Da mesma forma que a descrição acima, quando o índice de LFNST é analisado no nível da unidade de codificação após conduzir todos os coeficientes de transformada que não estão no nível do bloco de transformada ou no nível de codificação residual, o índice de LFNST reflete as posições dos coeficientes de transformada completos para todos os blocos de subpartição e informações de zero- out implicadas no processo de transformada, em vez de informações de coeficiente de transformada em alguns ou blocos de subpartição individuais, podem ser codificados.
[0474]Quando o bloco atual é particionado na pluralidade de blocos de subpartição, o aparelho de codificação pode codificar o índice de LFNST e independentemente de se existe um coeficiente de transformada em uma região excluindo uma posição DC de cada uma da pluralidade de blocos de subpartição. Isto é, se o último coeficiente significativo puder ser localizado apenas na posição DC para todos os blocos de subpartição quando o ISP for aplicado ao bloco atual, a sinalização do índice de LFNST poderá ser permitida.
[0475]Em um processo de derivar os coeficientes de transformada, o aparelho de codificação pode derivar uma primeira variável indicando se existe um coeficiente de transformada em uma região excluindo uma posição DC do bloco atual e uma segunda variável indicando se existe um coeficiente de transformada em uma segunda região excluindo uma primeira região superior esquerda do bloco atual ou um bloco de subpartição em que o bloco atual é particionado.
[0476]O aparelho de codificação pode codificar o índice de LFNST quando existe um coeficiente de transformada na região excluindo a posição DC e não existe um coeficiente de transformada na segunda região.
[0477]Especificamente, a primeira variável pode ser uma variável LfnstDcOnly e pode ser derivada como 0 quando o índice de um sub-bloco incluindo o último coeficiente significativo no bloco atual é 0 e a posição do último coeficiente significativo no sub-bloco é maior do que 0, e o índice de LFNST pode ser codificado quando a primeira variável é 0.
[0478]A primeira variável pode ser inicialmente definida como 1, e pode ser mantida como 1 ou pode ser alterada para 0 dependendo se existe um coeficiente significativo na região excluindo a posição DC.
[0479]A variável LfnstDcOnly indica se existe um coeficiente diferente de zero em uma posição de componente não DC para pelo menos um bloco de transformada dentro de uma unidade de codificação, pode ser 0 quando existe um coeficiente diferente de zero em uma posição de componente não DC para pelo menos um bloco de transformada dentro de uma unidade de codificação, e pode ser 1 quando não existe um coeficiente diferente de zero em uma posição de componente não DC para todos os blocos de transformada dentro de uma unidade de codificação.
[0480]O aparelho de codificação pode zerar a segunda região do bloco atual onde não existem coeficientes de transformada modificados após realizar a LFNST, e pode derivar a segunda variável indicando se existe o se coeficiente de transformada na segunda região.
[0481]Como mostrado na Figura 11 e na Figura 12, a região restante do bloco atual onde não existem coeficientes de transformada modificados pode ser zerada. Devido a este zero-out, é possível reduzir a quantidade de computação necessária para realizar todo o processo de transformada e reduzir a quantidade de operação necessária para todo o processo de transformada, reduzindo assim o consumo de energia necessário para realizar a transformada. Além disso, a latência implicada no processo de transformada pode ser reduzida, aumentando assim a eficiência da codificação da imagem.
[0482]A segunda variável pode ser uma variável LfnstZeroOutSigCoeffFlag que pode indicar que um zero-out é realizado quando a LFNST é aplicada. A segunda variável pode ser inicialmente definida como 1, e pode ser alterada para 0 quando existe um coeficiente significativo na segunda região.
[0483]A variável LfnstZeroOutSigCoeffFlag pode ser derivada como 0 quando o índice de um sub-bloco no qual existe o último coeficiente diferente de zero for maior que 0 e a largura e a altura de um bloco de transformada for igual ou maior que 4 ou quando a posição do último coeficiente diferente de zero no sub-bloco no qual o último coeficiente diferente de zero existe é maior que 7 e o tamanho do bloco de transformada é 4 x 4 ou 8 x 8.
[0484]Isto é, quando um coeficiente diferente de zero é derivado em uma região excluindo a região superior esquerda onde um coeficiente de transformada de LFNST pode existir no bloco de transformada, ou um coeficiente diferente de zero existe fora uma oitava posição em uma ordem de varredura para o bloco 4 x 4 e o bloco 8 x 8, a variável LfnstZeroOutSigCoeffFlag é definida como 0.
[0485]Uma descrição da primeira região e uma descrição do zero-out no caso em que o ISP é aplicado são substancialmente as mesmas descritas no método de decodificação e, portanto, uma descrição redundante será omitida.
[0486]De acordo com um exemplo, o aparelho de codificação pode realizar o zero-out quando a MTS é aplicada em uma transformada primária do bloco atual. O aparelho de codificação pode realizar o zero-out de preenchimento de uma região excluindo uma região 16 x 16 superior esquerda do bloco atual ou do bloco de subpartição com 0s e pode codificar o índice de MTS de acordo com uma terceira variável indicando se existe um coeficiente de transformada em uma região de zero- out.
[0487]A terceira variável pode ser uma variável MtsZeroOutSigCoeffFlag que pode indicar que um zero-out é realizado quando uma MTS é aplicada. A variável MtsZeroOutSigCoeffFlag indica se existe um coeficiente de transformada em uma região superior esquerda onde o último coeficiente significativo pode existir pelo zero- out após realizar a MTS, isto é, a região excluindo a região 16 x 16 superior esquerda, e o valor da terceira variável pode ser inicialmente definida como 1 e pode ser alterada de 1 para 0 quando existe um coeficiente de transformada na região excluindo a região 16 x 16 superior esquerda. Quando o valor da terceira variável é 0, o índice de MTS não é codificado e sinalizado.
[0488]O aparelho de codificação pode construir e emitir informações de imagem de modo que pelo menos um do índice de LFNST e o índice de MTS é sinalizado no nível de unidade de codificação e o índice de MTS é sinalizado imediatamente após o índice de LFNST ser sinalizado (S2050).
[0489]Adicionalmente, o aparelho de codificação pode derivar os coeficientes de transformada quantizados realizando quantização com base no coeficiente de transformada ou coeficientes de transformada modificados para o bloco atual, e pode codificar e emitir informações de imagem incluindo informações nos coeficientes de transformada quantizados.
[0490]O aparelho de codificação pode gerar informações residuais, incluindo informações sobre coeficientes de transformada quantizados. A informação residual pode incluir o elemento de informação/sintaxe relacionado à transformada descrito acima. O aparelho de codificação pode codificar informações de imagem/vídeo incluindo as informações residuais e pode emitir as informações de imagem/vídeo codificadas na forma de um fluxo de bits.
[0491]Mais especificamente, o aparelho de codificação pode gerar informações sobre os coeficientes de transformada quantizados e pode codificar informações sobre os coeficientes de transformada quantizados gerados.
[0492]Na presente divulgação, pelo menos um dentre quantização/desquantização e/ou transformada/transformada inversa pode ser omitido. Quando a quantificação/desquantização é omitida, um coeficiente de transformada quantificado pode ser denominado como um coeficiente de transformada. Quando a transformada/transformada inversa é omitida, o coeficiente de transformada pode ser denominado como um coeficiente ou um coeficiente residual, ou ainda pode ser denominado como um coeficiente de transformada para consistência de expressão.
[0493]Além disso, na presente divulgação, um coeficiente de transformada quantizado e um coeficiente de transformada pode ser denominado como um coeficiente de transformada e um coeficiente de transformada escalonado, respectivamente. Neste caso, a informação residual pode incluir informação em um(s) coeficiente(s) transformada, e a informação no(s) coeficiente(s) transformada pode ser sinalizada através de um sintaxe de codificação residual. Coeficientes de transformada podem ser derivados com base na informação residual (ou informação no(s) coeficiente(s) transformada), e coeficientes de transformada escalonados podem ser derivados através de transformada inversa (escalonamento) dos coeficientes de transformada. Amostras residuais podem ser derivadas com base na transformada inversa (transformada) dos coeficientes de transformada escalonados. Esses detalhes também podem ser aplicados/expressos em outras partes da presente divulgação.
[0494]Nas modalidades descritas acima, os métodos são explicados com base em fluxogramas por meio de uma série de etapas ou blocos, mas a presente divulgação não se limita à ordem das etapas e uma determinada etapa pode ser realizada em ordem ou etapa diferente da descrita acima, ou concomitantemente com outra etapa. Além disso, pode ser entendido por uma pessoa versada na técnica que as etapas mostradas em um fluxograma não são exclusivas e que outra etapa pode ser incorporada ou uma ou mais etapas do fluxograma podem ser removidas sem afetar o escopo do presente divulgação.
[0495]Os métodos descritos acima de acordo com a presente divulgação podem ser implementados como uma forma de software e um aparelho de codificação e/ou aparelho de decodificação de acordo com a divulgação pode ser incluído em um dispositivo para processamento de imagem, tal como uma TV, um computador, um smartphone, um decodificador, um dispositivo de exibição ou semelhante.
[0496]Quando as modalidades na presente divulgação são incorporadas por software, os métodos descritos acima podem ser incorporados como módulos (processos, funções ou semelhantes) para executar as funções descritas acima. Os módulos podem ser armazenados em uma memória e podem ser executados por um processador. A memória pode estar dentro ou fora do processador e pode ser conectada ao processador de várias maneiras bem conhecidas. O processador pode incluir um circuito integrado específico de aplicativo (ASIC), outro chipset, circuito lógico e/ou um dispositivo de processamento de dados. A memória pode incluir uma memória somente leitura (ROM), uma memória de acesso aleatório (RAM), uma memória flash, um cartão de memória, um meio de armazenamento e/ou outro dispositivo de armazenamento. Ou seja, as modalidades descritas na presente divulgação podem ser incorporadas e executadas em um processador, um microprocessador, um controlador ou um chip. Por exemplo, as unidades de função mostradas em cada desenho podem ser incorporadas e executadas em um computador, um processador, um microprocessador, um controlador ou um chip.
[0497]Além disso, o aparelho de decodificação e o aparelho de codificação ao qual a presente divulgação é aplicada, podem ser incluídos em um transceptor de transmissão multimídia, um terminal de comunicação móvel, um dispositivo de vídeo de cinema em casa, um dispositivo de vídeo de cinema digital, uma câmera de vigilância, um dispositivo de bate-papo por vídeo, um dispositivo de comunicação em tempo real, como comunicação de vídeo, um dispositivo móvel de streaming, um meio de armazenamento, uma câmera de vídeo, um dispositivo de fornecimento de serviço de vídeo sob demanda (VoD), um dispositivo de vídeo over the top (OTT), um dispositivo de fornecimento de serviço de Internet, um dispositivo de vídeo tridimensional (3D), um dispositivo de vídeo de telefonia de vídeo e um dispositivo de vídeo médico e pode ser usado para processar um sinal de vídeo ou um sinal de dados. Por exemplo, o dispositivo de vídeo over the top (OTT) pode incluir um console de jogos, um Blu-ray player, uma TV com acesso à Internet, um sistema de home theater, um smartphone, um Tablet PC, um gravador de vídeo digital (DVR) e o Como.
[0498]Além disso, o método de processamento ao qual a presente divulgação é aplicada pode ser produzido na forma de um programa executado por um computador e armazenado em uma mídia de gravação legível por computador. Os dados de multimídia com uma estrutura de dados de acordo com a presente divulgação também podem ser armazenados em uma mídia de gravação legível por computador. O meio de gravação legível por computador inclui todos os tipos de dispositivos de armazenamento e dispositivos de armazenamento distribuído nos quais os dados legíveis por computador são armazenados. A mídia de gravação legível por computador pode incluir, por exemplo, um disco Blu-ray (BD), um barramento serial universal (USB), uma ROM, uma PROM, uma EPROM, uma EEPROM, uma RAM, um CD-ROM, uma fita magnética, um disquete e um dispositivo óptico de armazenamento de dados. Além disso, o meio de gravação legível por computador inclui mídia incorporada na forma de uma onda portadora (por exemplo, transmissão pela Internet). Além disso, um fluxo de bits gerado pelo método de codificação pode ser armazenado em um meio de gravação legível por computador ou transmitido através de uma rede de comunicação com ou sem fio. Adicionalmente, as modalidades da presente divulgação podem ser incorporadas como um produto de programa de computador por códigos de programa e os códigos de programa podem ser executados em um computador pelas modalidades da presente divulgação. Os códigos de programa podem ser armazenados em um suporte legível por computador.
[0499]A Figura 21 ilustra esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente divulgação é aplicável.
[0500]Com referência à Figura 21, o sistema de codificação de vídeo/imagem pode incluir um primeiro dispositivo (dispositivo de origem) e um segundo dispositivo (dispositivo de recepção). O dispositivo de origem pode fornecer informações ou dados de vídeo/imagem codificados na forma de um arquivo ou streaming para o dispositivo de recepção por meio de um meio de armazenamento digital ou rede.
[0501]O dispositivo de origem pode incluir uma fonte de vídeo, um aparelho de codificação e um transmissor. O dispositivo de recepção pode incluir um receptor, um aparelho de decodificação e um renderizador. O aparelho de codificação pode ser chamado de aparelho de codificação de vídeo/imagem, e o aparelho de decodificação pode ser chamado de aparelho de decodificação de vídeo/imagem. O transmissor pode ser incluído no aparelho de codificação. O receptor pode ser incluído no aparelho de decodificação. O renderizador pode incluir uma exibição e a exibição pode ser configurada como um dispositivo separado ou um componente externo.
[0502]A fonte de vídeo pode obter um vídeo/imagem através de um processo de captura, síntese ou geração de um vídeo/imagem. A fonte de vídeo pode incluir um dispositivo de captura de vídeo/imagem e/ou um dispositivo de geração de vídeo/imagem. O dispositivo de captura de vídeo/imagem pode incluir, por exemplo, uma ou mais câmeras, arquivos de vídeo/imagem incluindo vídeo/imagens capturados anteriormente ou semelhantes. O dispositivo de geração de vídeo/imagem pode incluir, por exemplo, um computador, um tablet e um smartphone e pode (eletronicamente) gerar um vídeo/imagem. Por exemplo, um vídeo/imagem virtual pode ser gerado por meio de um computador ou semelhante. Neste caso, o processo de captura de vídeo/imagem pode ser substituído por um processo de geração de dados relacionados.
[0503]O aparelho de codificação pode codificar um vídeo/imagem de entrada. O aparelho de codificação pode realizar uma série de procedimentos, como predição, transformada e quantização para compressão e eficiência de codificação. Os dados codificados (informações de vídeo/imagem codificadas) podem ser emitidos na forma de um fluxo de bits.
[0504]O transmissor pode transmitir a informação de vídeo/imagem codificada ou saída de dados na forma de um fluxo de bits para o receptor do dispositivo de recepção através de um meio de armazenamento digital ou uma rede na forma de um arquivo ou fluxo. O meio de armazenamento digital pode incluir vários meios de armazenamento, como USB, SD, CD, DVD, Blu-ray, HDD, SSD e semelhantes. O transmissor pode incluir um elemento para gerar um arquivo de mídia através de um formato de arquivo predeterminado e pode incluir um elemento para transmissão através de uma rede de transmissão/comunicação. O receptor pode receber/extrair o fluxo de bits e transmitir o fluxo de bits recebido/extraído para o aparelho de decodificação.
[0505]O aparelho de decodificação pode decodificar um vídeo/imagem realizando uma série de procedimentos como desquantização, transformada inversa, predição, e semelhantes correspondentes à operação do aparelho de codificação.
[0506]O renderizador pode renderizar o vídeo/imagem decodificado. O vídeo/imagem renderizado pode ser exibido através da tela.
[0507]A Figura 22 ilustra a estrutura de um sistema de streaming de conteúdo ao qual a presente divulgação é aplicada.
[0508]Além disso, o sistema de streaming de conteúdo ao qual a presente divulgação é aplicada pode incluir em grande parte um servidor de codificação, um servidor de streaming, um servidor web, um armazenamento de mídia, um equipamento de usuário e um dispositivo de entrada multimídia.
[0509]O servidor de codificação funciona para compactar em dados digitais o conteúdo de entrada dos dispositivos de entrada multimídia, como o smartphone, a câmera, a camcoder e semelhantes, para gerar um fluxo de bits e transmiti-lo ao servidor de streaming. Como outro exemplo, em um caso em que o dispositivo de entrada multimídia, como o telefone inteligente, a câmera, a câmera de vídeo ou semelhante, gera diretamente um fluxo de bits, o servidor de codificação pode ser omitido. O fluxo de bits pode ser gerado por um método de codificação ou um método de geração de fluxo de bits ao qual a presente divulgação é aplicada. E o servidor de streaming pode armazenar o fluxo de bits temporariamente durante um processo para transmitir ou receber o fluxo de bits.
[0510]O servidor de streaming transmite dados multimídia para o equipamento do usuário com base na solicitação de um usuário através do servidor web, que funciona como um instrumento que informa ao usuário qual serviço existe. Quando o usuário solicita um serviço que o usuário deseja, o servidor web transfere a solicitação para o servidor de streaming e o servidor de streaming transmite dados multimídia ao usuário. Nesse sentido, o sistema de streaming de conteúdo pode incluir um servidor de controle separado e, neste caso, o servidor de controle funciona para controlar comandos/respostas entre os respectivos equipamentos no sistema de streaming de conteúdo.
[0511]O servidor de streaming pode receber conteúdos do armazenamento de mídia e/ou do servidor de codificação. Por exemplo, caso o conteúdo seja recebido do servidor de codificação, o conteúdo pode ser recebido em tempo real. Nesse caso, o servidor de streaming pode armazenar o fluxo de bits por um período de tempo predeterminado para fornecer o serviço de streaming sem problemas.
[0512]Por exemplo, o equipamento do utilizador pode incluir um telefone móvel, um smartphone, um computador portátil, um terminal de transmissão digital, um assistente digital pessoal (PDA), um leitor multimídia portátil (PMP), um sistema de navegação, um PC slate, um tablet PC, um ultrabook, um dispositivo vestível (por exemplo, um terminal tipo relógio (relógio inteligente), um terminal tipo vidro (vidro inteligente), um monitor de cabeça montada (HMD)), uma TV digital, um computador desktop, uma sinalização digital ou semelhante. Cada um dos servidores do sistema de streaming de conteúdo pode ser operado como um servidor distribuído e, neste caso, os dados recebidos por cada servidor podem ser processados de forma distribuída.
[0513]As reivindicações divulgadas neste documento podem ser combinadas de várias maneiras. Por exemplo, os recursos técnicos das reivindicações do método da presente divulgação podem ser combinados para serem implementadas ou executadas em um aparelho e os recursos técnicos das reivindicações do aparelho podem ser combinadas para serem implementadas ou executadas em um método. Além disso, os recursos técnicos das reivindicações do método e das reivindicações do aparelho podem ser combinados para serem implementadas ou executadas em um aparelho, e os recursos técnicos das reivindicações do método e reivindicações do aparelho podem ser combinadas para serem implementadas ou executadas em um método.

Claims (15)

1. Aparelho de decodificação para decodificação de imagem, o aparelho de decodificação CARACTERIZADO pelo fato de que compreende: uma memória; e pelo menos um processador conectado à memória, o pelo menos um processador configurado para: realizar codificação residual de organizar coeficientes de transformada para um bloco atual de acordo com uma ordem de varredura predeterminada analisando informação residual recebida em um nível de codificação residual; derivar amostras residuais aplicando pelo menos uma de uma LFNST ou uma MTS aos coeficientes de transformada; e gerar uma gravura reconstruída com base nas amostras residuais, em que a LFNST é realizada com base em um índice de LFNST relacionado a um núcleo de LFNST, em que a MTS é realizada com base em um índice de MTS relacionado a um núcleo de MTS, em que o índice de LFNST e o índice de MTS são sinalizados em um nível de unidade de codificação, e em que o índice de MTS é sinalizado imediatamente após o índice de LFNST ser sinalizado.
2. Aparelho de decodificação, de acordo com a reivindicação 1 CARACTERIZADO pelo fato de que, com base em um tipo de árvore do bloco atual sendo um tipo de árvore única (single-tree), o índice de LFNST é analisado após a codificação residual para um bloco luma e um bloco croma do bloco atual ser realizada.
3. Aparelho de decodificação, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, com base em um tipo de árvore do bloco atual sendo um tipo de árvore dupla (dual-tree) e um componente de croma sendo codificado, o índice de LFNST é analisado após a codificação residual para um componente de Cb e um componente de Cr do bloco croma é realizada.
4. Aparelho de decodificação, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que, com base no bloco atual sendo particionado em uma pluralidade de blocos de subpartição, o índice de LFNST é analisado após a codificação residual para a pluralidade de blocos de subpartição é realizada.
5. Aparelho de decodificação, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que, com base no bloco atual é particionado na pluralidade de blocos de subpartição, o índice de LFNST é analisado independentemente de se os coeficientes de transformada existirem em uma região excluindo uma posição DC de cada uma da pluralidade de blocos de subpartição.
6. Aparelho de decodificação, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o pelo menos um processador é adicionalmente configurado para: derivar uma primeira variável relacionada a se os coeficientes de transformada existem em uma região excluindo uma posição DC do bloco atual; e derivar uma segunda variável relacionada a se os coeficientes de transformada existem em uma segunda região excluindo uma primeira região superior esquerda do bloco atual ou os blocos de subpartição nos quais o bloco atual é particionado, e em que o índice de LFNST é analisado quando os coeficientes de transformada existem na região excluindo a posição DC e os coeficientes de transformada não existem na segunda região.
7. Aparelho de decodificação, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o pelo menos um processador é adicionalmente configurado para derivar uma terceira variável relacionada a se os coeficientes de transformada existem em uma região excluindo uma região 16 x 16 superior esquerda do bloco atual, e em que o índice de MTS é analisado com base nos coeficientes de transformada não existindo na região excluindo a região 16 x 16.
8. Aparelho de codificação para codificação de imagem, o aparelho de codificação CARACTERIZADO pelo fato de que compreende: uma memória; e pelo menos um processador conectado a memória, o pelo menos um processador configurado para: derivar amostras de predição para um bloco atual; derivar amostras residuais para o bloco atual com base nas amostras de predição; realizar uma operação de derivação de coeficiente de transformada de derivar coeficientes de transformada para o bloco atual aplicando pelo menos uma dentre uma LFNST ou uma MTS às amostras residuais e organizar os coeficientes de transformada de acordo com uma ordem de varredura predeterminada; codificar pelo menos um dentre um índice de LFNST relacionado a um núcleo de LFNST ou um índice de MTS relacionado a um núcleo de MTS; e construir e emitir informações de imagem de modo que o índice de LFNST e o índice de MTS são sinalizados em um nível de unidade de codificação e o índice de MTS é sinalizado imediatamente após o índice de LFNST ser sinalizado.
9. Aparelho de codificação, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que, com base em um tipo de árvore do bloco atual sendo um tipo de árvore única, o índice de LFNST é codificado após a operação de derivação de coeficiente de transformada para um bloco luma e um bloco croma do bloco atual é realizada.
10. Aparelho de codificação, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que, com base em um tipo de árvore do bloco atual sendo um tipo de árvore dupla (dual-tree) e um componente de croma sendo codificado, o índice de LFNST é codificado após a operação de derivação de coeficiente de transformada para um componente de Cb e um componente de Cr do bloco croma é realizada.
11. Aparelho de codificação, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que, com base no bloco atual sendo particionado em uma pluralidade de blocos de subpartição, o índice de LFNST é codificado após a operação de derivação de coeficiente de transformada para a pluralidade de blocos de subpartição é realizada.
12. Aparelho de codificação, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que, com base no bloco atual sendo particionado na pluralidade de blocos de subpartição, o índice de LFNST é codificado independentemente de se os coeficientes de transformada existirem em uma região excluindo uma posição DC de cada um dos blocos de subpartição.
13. Aparelho de codificação, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o pelo menos um processador é adicionalmente configurado para: derivar uma primeira variável relacionada a se os coeficientes de transformada existem em uma região excluindo uma posição DC do bloco atual; e derivar uma segunda variável relacionada a se os coeficientes de transformada existem em uma segunda região excluindo uma primeira região superior esquerda do bloco atual ou os blocos de subpartição nos quais o bloco atual é particionado, e em que o índice de LFNST é codificado quando os coeficientes de transformada existem na região excluindo a posição DC e os coeficientes de transformada não existem na segunda região.
14. Aparelho de codificação, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o pelo menos um processador é adicionalmente configurado para derivar uma terceira variável relacionada a se os coeficientes de transformada existem em uma região excluindo uma região 16 x 16 superior esquerda do bloco atual, e em que o índice de MTS é codificado quando os coeficientes de transformada não existem na região excluindo a região 16 x 16.
15. Aparelho para transmissão de dados para uma imagem, CARACTERIZADO pelo fato de que compreende: pelo menos um processador configurado para obter um fluxo de bits da informação de imagem, em que a informação de imagem é gerada pela derivação de amostras de predição para um bloco atual; derivar amostras residuais para o bloco atual com base nas amostras de predição; realizar uma operação de derivação de coeficiente de transformada de derivar coeficientes de transformada para o bloco atual aplicando pelo menos uma dentre uma LFNST ou uma MTS às amostras residuais e organizar os coeficientes de transformada de acordo com uma ordem de varredura predeterminada; codificar pelo menos um de um índice de LFNST relacionado a um núcleo de LFNST ou um índice de MTS relacionado a um núcleo de MTS; e construir e emitir a informação de imagem de modo que o índice de LFNST e o índice de MTS sejam sinalizados em um nível de unidade de codificação e o índice de MTS seja sinalizado imediatamente após o índice de LFNST ser sinalizado; e um transmissor configurado para transmitir os dados que compreendem o fluxo de bits da informação de imagem.
BR122023020352-6A 2019-10-04 2020-10-05 Aparelho de decodificação/codificação para decodificação/codificação de imagem e aparelho para transmissão de dados para uma imagem BR122023020352A2 (pt)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201962911185P 2019-10-04 2019-10-04
US62/911,185 2019-10-04
US201962911951P 2019-10-07 2019-10-07
US62/911,951 2019-10-07
PCT/KR2020/013459 WO2021066598A1 (ko) 2019-10-04 2020-10-05 변환에 기반한 영상 코딩 방법 및 그 장치
BR112022006368A BR112022006368A2 (pt) 2019-10-04 2020-10-05 Método de codificação com base em transformada, e aparelho para o mesmo

Publications (1)

Publication Number Publication Date
BR122023020352A2 true BR122023020352A2 (pt) 2024-02-27

Family

ID=75338424

Family Applications (1)

Application Number Title Priority Date Filing Date
BR122023020352-6A BR122023020352A2 (pt) 2019-10-04 2020-10-05 Aparelho de decodificação/codificação para decodificação/codificação de imagem e aparelho para transmissão de dados para uma imagem

Country Status (10)

Country Link
US (2) US11516484B2 (pt)
EP (1) EP4017010A4 (pt)
JP (2) JP7436645B2 (pt)
KR (1) KR20220050967A (pt)
CN (4) CN116600115A (pt)
AU (2) AU2020360013B2 (pt)
BR (1) BR122023020352A2 (pt)
CA (1) CA3156849A1 (pt)
MX (1) MX2022003998A (pt)
WO (1) WO2021066598A1 (pt)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021052804A1 (en) * 2019-09-16 2021-03-25 Interdigital Vc Holdings France, Sas Secondary transform for fast video encoder
EP4024870A4 (en) * 2019-09-21 2022-11-02 LG Electronics Inc. TRANSFORMATION-BASED IMAGE CODING METHOD AND APPARATUS THEREOF
US20220353504A1 (en) * 2019-09-23 2022-11-03 Lg Electronics Inc. Image coding method based on transform, and device therefor
US20210321137A1 (en) * 2020-03-30 2021-10-14 Qualcomm Incorporated Low-frequency non-separable transform index signaling in video coding
WO2023080691A1 (ko) * 2021-11-03 2023-05-11 주식회사 윌러스표준기술연구소 비디오 신호 처리 방법 및 이를 위한 장치
WO2024011370A1 (zh) * 2022-07-11 2024-01-18 Oppo广东移动通信有限公司 视频图像处理方法及装置、编解码器、码流、存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140018873A (ko) * 2011-04-07 2014-02-13 엘지전자 주식회사 영상 정보 부호화 방법 및 복호화 방법
FI2869557T3 (fi) * 2012-06-29 2023-11-02 Electronics & Telecommunications Res Inst Menetelmä ja laite kuvien koodaamiseksi/dekoodaamiseksi
US10491922B2 (en) * 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
WO2018049594A1 (en) * 2016-09-14 2018-03-22 Mediatek Inc. Methods of encoder decision for quad-tree plus binary tree structure
US10880564B2 (en) * 2016-10-01 2020-12-29 Qualcomm Incorporated Transform selection for video coding
US10567801B2 (en) * 2018-03-07 2020-02-18 Tencent America LLC Method and apparatus for video coding with primary and secondary transforms
US11323705B2 (en) * 2018-03-09 2022-05-03 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus using sample filtering
KR101997604B1 (ko) * 2019-01-22 2019-07-08 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
WO2020211777A1 (en) * 2019-04-16 2020-10-22 Mediatek Inc. Methods and apparatuses for coding video data with secondary transform
GB2585030A (en) * 2019-06-25 2020-12-30 British Broadcasting Corp Method of signalling in a video codec

Also Published As

Publication number Publication date
WO2021066598A1 (ko) 2021-04-08
JP7436645B2 (ja) 2024-02-21
AU2024203027A1 (en) 2024-05-23
CN114731436B (zh) 2023-06-16
KR20220050967A (ko) 2022-04-25
CN116418982A (zh) 2023-07-11
AU2020360013A1 (en) 2022-05-26
CA3156849A1 (en) 2021-04-08
AU2020360013B2 (en) 2024-02-08
EP4017010A1 (en) 2022-06-22
JP2022550867A (ja) 2022-12-05
EP4017010A4 (en) 2022-11-16
MX2022003998A (es) 2022-04-26
CN114731436A (zh) 2022-07-08
CN116437085A (zh) 2023-07-14
US11516484B2 (en) 2022-11-29
US20220217364A1 (en) 2022-07-07
US20230049623A1 (en) 2023-02-16
CN116600115A (zh) 2023-08-15
JP2024036659A (ja) 2024-03-15

Similar Documents

Publication Publication Date Title
BR122021012456A2 (pt) Método de decodificação de uma imagem realizado por um aparelho de decodificação, método de codificação de uma imagem realizado por um aparelho de codificação, aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e mídia de armazenamento digital legível por computador não transitória
BR112021002604A2 (pt) método de predição inter baseado no vetor de movimento baseado em histórico e dispositivo do mesmo
BR122023020352A2 (pt) Aparelho de decodificação/codificação para decodificação/codificação de imagem e aparelho para transmissão de dados para uma imagem
BR122021011274A2 (pt) Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem e mídias de armazenamento não transitória legíveis por computador
BR122021011813A2 (pt) Método de decodificação de imagens através de um aparelho de decodificação, método de codificação de imagens através de um aparelho de codificação e mídia de armazenamento legível por computador não transitória
BR122021019719B1 (pt) Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação, aparelho de decodificação/codificação para decodificação/codificação de imagem, método e aparelho de transmissão de dados que compreende um fluxo de bits para uma imagem e mídia de armazenamento digital legível por computador não transitória
JP7223208B2 (ja) 変換に基づく映像コーディング方法及びその装置
KR20220050966A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
BR112021012505B1 (pt) Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação e mídia de armazenamento não transitória legível por computador
JP2023053018A (ja) 変換に基づく映像コーディング方法及びその装置
KR20220042209A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
BR122023020425A2 (pt) Aparelho de decodificação/ codificação para decodificação/codificação de imagens e aparelho para transmissão de dados para uma imagem
RU2806283C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
BR122023022608A2 (pt) Aparelho de decodificação para decodificação de imagens, aparelho de codificação de imagem para codificação de imagens e aparelho para transmissão de dados para uma informação de imagem
RU2803457C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2793775C1 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2803184C1 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2795932C1 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2811986C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2812248C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
BR122022006273B1 (pt) Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem
BR112021010422B1 (pt) Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação de imagem e meio de armazenamento legível por computador não transitório
BR122022006263B1 (pt) Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem
BR112021010422A2 (pt) Método de codificação de imagem baseado em transformada secundária e dispositivo para o mesmo
BR122022005515B1 (pt) Método de decodificação/codificação de imagem realizado por um aparelho de decodificação/codificação, método de transmissão de dados para uma imagem , aparelho de d ecodificação / codificação para decodificação/codificação de imagem, aparelho de transmissão para transmissão de dados para uma imagem e mídia de armazenamento não transitória legível por computador

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]