BR112021010422B1 - 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 - Google Patents

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 Download PDF

Info

Publication number
BR112021010422B1
BR112021010422B1 BR112021010422-4A BR112021010422A BR112021010422B1 BR 112021010422 B1 BR112021010422 B1 BR 112021010422B1 BR 112021010422 A BR112021010422 A BR 112021010422A BR 112021010422 B1 BR112021010422 B1 BR 112021010422B1
Authority
BR
Brazil
Prior art keywords
transform
index
information
syntax element
equal
Prior art date
Application number
BR112021010422-4A
Other languages
English (en)
Other versions
BR112021010422A2 (pt
Inventor
Moonmo KOO
Jaehyun Lim
Seunghwan Kim
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 PCT/KR2019/017104 external-priority patent/WO2020116961A1/ko
Publication of BR112021010422A2 publication Critical patent/BR112021010422A2/pt
Publication of BR112021010422B1 publication Critical patent/BR112021010422B1/pt

Links

Abstract

MÉTODO DE CODIFICAÇÃO DE IMAGEM BASEADO EM TRANSFORMADA SECUNDÁRIA E DISPOSITIVO PARA O MESMO. Um método de decodificação de imagem de acordo com o presente documento compreende as etapas de: derivar coeficientes de transformada através da quantização inversa com base em coeficientes de transformada quantizados para um bloco alvo; derivar coeficientes de transformada modificados com base em uma transformada secundária reduzida inversa (RST) para os coeficientes de transformada; e gerar uma figuração de restauração com base nas amostras residuais para o bloco alvo, com base em uma transformada primária inversa para os coeficientes de transformada modificados, em que a RST inversa é realizada com base em: conjuntos de transformadas determinados por uma relação de mapeamento de acordo com um modo de intrapredição aplicado ao bloco alvo; e uma matriz de kernel de transformada selecionada dentre duas matrizes de kernel de transformada incluídas em cada um dos conjuntos de transformadas, e é realizada com base em: se a RST inversa é aplicada; e um índice de transformada para indicar qualquer uma das matrizes de kernel de transformada incluídas nos conjuntos de transformadas.

Description

CAMPO DA TÉCNICA
[001]A presente revelação se refere, de modo geral, a uma tecnologia de codificação de imagem e, mais particularmente, a um método de codificação de imagem baseado em uma transformada em um sistema de codificação de imagem e um aparelho para o mesmo.
ANTECEDENTES
[002]Atualmente, a demanda por imagens/vídeos de alta resolução e alta qualidade, tais como imagens/vídeos de ultra-alta definição (UHD) 4K, 8K ou mais vem aumentando em vários campos. À medida que os dados de imagem/vídeo se tornam de resolução mais alta e qualidade mais alta, 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 com o uso de um meio, tal como uma linha de banda larga com fio/sem fio convencional ou dados de imagem/vídeo são armazenados com o uso de um meio de armazenamento existente, o custo de transmissão e o custo de armazenamento dos mesmos são aumentados.
[003]Ademais, atualmente, o interesse e a demanda por mídia imersiva, tal como conteúdo ou holograma de realidade virtual (VR), realidade artificial (AR), ou similares estão aumentando, e a difusão de imagens/vídeos que têm recursos de imagem diferentes daqueles das imagens reais, tal como uma imagem de jogo está aumentando.
[004]Consequentemente, há uma necessidade de uma técnica de compactação de imagem/vídeo altamente eficiente para compactar e transmitir ou armazenar e reproduzir informações de imagens/vídeos de alta resolução e alta qualidade tendo vários recursos, conforme descrito acima.
SUMÁRIO
[005]Um aspecto da técnica da presente revelação é fornecer um método e um aparelho para aumentar a eficiência de codificação de imagem.
[006]Outro aspecto da presente revelação é fornecer um método e um aparelho para aumentar a eficiência de transformada.
[007]Ainda outro aspecto da técnica da presente revelação é fornecer um método e um aparelho para aumentar a eficiência de uma transformada secundária através da codificação de um índice de transformada.
[008]Ainda outro aspecto da técnica da presente revelação é fornecer um método de codificação de imagem e um aparelho de codificação de imagem que se baseiam na transformada secundária reduzida (RST).
[009]Ainda outro aspecto da técnica da presente revelação é fornecer um método de codificação de imagem e um aparelho de codificação de imagem que se baseiam em um conjunto de transformadas e são capazes de aumentar a eficiência de codificação.
[010]De acordo com uma modalidade da presente revelação, é fornecido um método de decodificação de imagem realizado por um aparelho de decodificação. O método pode incluir: derivar coeficientes de transformada quantizados para um bloco alvo a partir de um fluxo de bits; derivar coeficientes de transformada através da desquantização com base nos coeficientes de transformada quantizados para o bloco alvo; derivar coeficientes de transformada modificados com base em uma transformada secundária reduzida inversa (RST) para os coeficientes de transformada; derivar amostras residuais para o bloco alvo com base em uma transformada primária inversa para os coeficientes de transformada modificados; e gerar uma foto reconstruída com base nas amostras residuais para o bloco alvo, em que a RST inversa pode ser realizada com base em um conjunto de transformadas determinado com base em uma relação de mapeamento de acordo com um modo de intrapredição aplicado ao bloco alvo e uma matriz de núcleo de transformada selecionada dentre duas matrizes de núcleo de transformada incluídas em cada um dos conjuntos de transformadas, e pode ser realizada com base em um índice de transformada relacionado a se a RST inversa é aplicada e uma das matrizes de núcleo de transformada incluídas no conjunto de transformadas.
[011]De acordo com outra modalidade da presente revelação, é fornecido um aparelho de decodificação para realizar decodificação de imagem. O aparelho de decodificação pode incluir: um decodificador de entropia para derivar informações sobre predição e coeficientes de transformada quantizados para um bloco alvo a partir de um fluxo de bits; um preditor para gerar uma amostra de predição para o bloco alvo com base nas informações sobre predição; um desquantizador para derivar coeficientes de transformada através da desquantização com base nos coeficientes de transformada quantizados para o bloco alvo; um transformador inverso para incluir um transformada secundária reduzida inversa (RST) que deriva coeficientes de transformada modificados com base na RST inversa dos coeficientes de transformada e uma transformada primária inversa que deriva amostras residuais para o bloco alvo com base na primeira transformada inversa dos coeficientes de transformada modificados; e um somador para gerar amostras reconstruídas com base nas amostras residuais e nas amostras de predição, em que a RST inversa pode ser realizada com base em um conjunto de transformadas determinado com base em uma relação de mapeamento de acordo com um modo de intrapredição aplicado ao bloco alvo e uma matriz de núcleo de transformada selecionada dentre duas matrizes de núcleo de transformada incluídas em cada um dos conjuntos de transformadas, e pode ser realizada com base em um índice de transformada que indica se a RST inversa é aplicada e uma das matrizes de núcleo de transformada incluída no conjunto de transformadas.
[012]De acordo com ainda outra modalidade da presente revelação, é fornecido um método de codificação de imagem realizado por um aparelho de codificação. O método pode incluir: derivar amostras de predição com base em um modo de intrapredição aplicado a um bloco alvo; derivar amostras residuais para o bloco alvo com base na amostra de predição; derivar coeficientes de transformada para o bloco alvo com base em uma transformada primária para as amostras residuais; derivar coeficientes de transformada modificados com base em uma transformada secundária reduzida (RST) dos coeficientes de transformada, sendo que a RST inversa é realizada com base em um conjunto de transformadas determinado com base em uma relação de mapeamento de acordo com o modo de intrapredição aplicado ao bloco alvo e uma matriz de núcleo de transformada selecionada dentre duas matrizes de núcleo de transformada incluídas em cada um dos conjuntos de transformadas; derivar coeficientes de transformada quantizados realizando-se a quantização com base nos coeficientes de transformada modificados; e gerar um índice de transformada que indica se a RST inversa é aplicada e uma das matrizes de núcleo de transformada incluída no conjunto de transformadas.
[013]De acordo com ainda outra modalidade da presente revelação, pode ser fornecido um meio de armazenamento digital que armazena dados de imagem que incluem informações de imagem codificada geradas de acordo com um método de codificação de imagem realizado por um aparelho de codificação.
[014]De acordo com ainda outra modalidade da presente revelação, é fornecido um meio de armazenamento digital que armazena dados de imagem que incluem informações de imagem codificada para fazer com que um aparelho de decodificação realize o método de decodificação de imagem.
[015]De acordo com a presente revelação, é possível aumentar a eficiência de compactação de imagem/vídeo geral.
[016]De acordo com a presente revelação, é possível aumentar a eficiência de uma transformada secundária através da codificação de um índice de transformada.
[017]De acordo com a presente revelação, é possível aumentar a eficiência de codificação de imagem realizando-se a codificação de imagem com base em um conjunto de transformadas.
BREVE DESCRIÇÃO DOS DESENHOS
[018]A Figura 1 ilustra esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente revelação é aplicável.
[019]A Figura 2 é 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.
[020]A Figura 3 é 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.
[021]A Figura 4 ilustra esquematicamente uma técnica de múltiplas transformadas, de acordo com uma modalidade da presente revelação.
[022]A Figura 5 ilustra intramodos direcionais de 65 direções de predição.
[023]A Figura 6 é um diagrama que ilustra uma RST, de acordo com uma modalidade da presente revelação.
[024]A Figura 7 é um diagrama que ilustra uma ordem de varredura de coeficiente de transformada, de acordo com uma modalidade da presente revelação.
[025]A Figura 8 é um fluxograma que ilustra um processo de RST inversa, de acordo com uma modalidade da presente revelação.
[026]A Figura 9 é um fluxograma que ilustra uma operação de um aparelho de decodificação de vídeo, de acordo com uma modalidade da presente revelação.
[027]A Figura 10 é um fluxograma de controle que ilustra uma RST inversa,de acordo com uma modalidade da presente revelação.
[028]A Figura 11 é um fluxograma que ilustra uma operação de um aparelho de codificação de vídeo, de acordo com uma modalidade da presente revelação.
[029]A Figura 12 é um fluxograma de controle que ilustra uma RST, de acordo com uma modalidade da presente revelação.
[030]A Figura 13 ilustra a estrutura de um sistema de transmissão contínua de conteúdo ao qual a presente revelação é aplicada.
DESCRIÇÃO DAS MODALIDADES EXEMPLIFICATIVAS
[031]Embora a presente revelação possa ser suscetível a várias modificações e incluir várias modalidades, as modalidades específicas da mesma foram mostradas nos desenhos a título de exemplo e serão agora descritas em detalhes. Entretanto, isso não se destina a limitar a presente revelação às modalidades específicas reveladas no presente documento. A terminologia usada no presente documento serve para o propósito de descrever apenas as 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 de outro modo. Os termos, tais como “incluir” e “ter” se destinam a indicar que existem recursos, números, etapas, operações, elementos, componentes ou combinações dos mesmos usados na seguinte descrição e, desse modo, não devem ser entendidos como que a possibilidade de existência ou adição de um ou mais recursos, números, etapas, operações, elementos, componentes diferentes, ou combinações dos mesmos é excluída antecipadamente.
[032]Entretanto, cada componente nos desenhos descritos no presente documento é ilustrado independentemente por uma questão de conveniência da descrição quanto às funções características diferentes entre si e, entretanto, isso não significa que cada componente é realizado por um hardware ou software separado. Por exemplo, quaisquer dois ou mais desses componentes podem ser combinados para formar um componente único, e qualquer componente pode ser dividido em múltiplos componentes. As modalidades nos quais os componentes são combinados e/ou divididos irão pertencer ao escopo do direito de patente da presente revelação desde que eles não se afastem da essência da presente revelação.
[033]Doravante, as modalidades preferenciais da presente revelação serão explicadas em mais detalhes com 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.
[034]Este documento se refere a uma codificação de vídeo/imagem. Por exemplo, o método/exemplo revelado neste documento pode se referir a um padrão VVC (Codificação de Vídeo Versátil) (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.).
[035]Neste documento, pode ser fornecida uma variedade de modalidades relacionadas à codificação de vídeo/imagem, e, a menos que especificado ao contrário, as modalidades podem ser combinadas entre si e serem realizadas.
[036]Neste documento, um vídeo pode significar um conjunto de uma série de imagens ao longo do tempo. Geralmente, uma foto 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 foto. A fatia/ladrilho pode incluir uma ou mais unidades de árvore de codificação (CTUs). Uma foto pode ser constituída por uma ou mais fatias/ladrilhos. Uma foto pode ser constituída por um ou mais grupos de ladrilhos. Um grupo de ladrilhos pode incluir um ou mais ladrilhos.
[037]Um pixel ou pel pode significar a menor unidade que constitui uma foto (ou imagem). Ademais, uma “amostra” pode ser usada como um termo que corresponde a um pixel. Uma amostra pode representar geralmente um pixel ou um valor de um pixel, e pode representar apenas um pixel/valor de pixel de um componente luma ou apenas um pixel/valor de pixel de um componente croma. Alternativamente, a amostra pode se referir a um valor de pixel no domínio espacial, ou quando esse valor de pixel é convertido no domínio de frequência, o mesmo pode se referir a um coeficiente de transformada no domínio de frequência.
[038]Uma unidade pode representar a unidade básica de processamento de imagem. A unidade pode incluir pelo menos uma dentre uma região específica e informações relacionadas à região. Uma unidade pode incluir um bloco luma e dois blocos croma (por exemplo, cb, cr). A unidade e um termo, tal como um bloco, uma área ou similares 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 um arranjo) de amostras (ou arranjos de amostras) ou coeficientes de transformada que consistem em colunas M e fileiras N.
[039]Neste documento, o termo "/" e "," devem ser interpretados de modo a indicar "e/ou". Por exemplo, a expressão "A/B" pode significar "A e/ou B". Ademais, "A, B" pode significar "A e/ou B". Ademais, “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 dentre A, B, e/ou C".
[040]Ademais, no documento, o termo "ou" deve ser interpretado de modo a indicar "e/ou". Por exemplo, a expressão "A ou B" pode incluir 1) apenas A, 2) apenas B, e/ou 3) tanto A como B. Em outras palavras, o termo "ou" neste documento deve ser interpretado de modo a indicar "adicional ou alternativamente".
[041]A Figura 1 ilustra esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual a presente revelação é aplicável.
[042]Com referência à Figura 1, 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 entregar informações ou dados de vídeo/imagem codificados sob a forma de um arquivo ou transmissão contínua para o dispositivo de recepção através de um meio de armazenamento digital ou rede.
[043]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 um aparelho de codificação de vídeo/imagem, e o aparelho de decodificação pode ser chamado de um 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 um visor, e o visor pode ser configurado como um dispositivo separado ou um componente externo.
[044]A fonte de vídeo pode obter um vídeo/imagem através de um processo de captura, sintetização 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ídeos/imagens anteriormente capturados ou similares. O dispositivo de geração de vídeo/imagem pode incluir, por exemplo, um computador, um tablet e um smartphone, e pode gerar (eletronicamente) um vídeo/imagem. Por exemplo, um vídeo/imagem virtual pode ser gerado através de um computador ou similares. Nesse caso, o processo de captura de vídeo/imagem pode ser substituído por um processo de geração de dados relacionados.
[045]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, tais como predição, transformação e quantização para eficiência de compactação e codificação. Os dados codificados (informações de vídeo/imagem codificadas) podem ser emitidos sob a forma de um fluxo de bits.
[046]O transmissor pode transmitir as informações ou dados vídeo/imagem codificados sob a 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 sob a forma de um arquivo ou transmissão contínua. O meio de armazenamento digital pode incluir vários meios de armazenamento, tais como USB, SD, CD, DVD, Blu-ray, HDD, SSD, e similares. 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 difusã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.
[047]O aparelho de decodificação pode decodificar um vídeo/imagem realizando-se uma série de procedimentos, tais como desquantização, transformação inversa, predição, e similares, que correspondem à operação do aparelho de codificação.
[048]O renderizador pode renderizar o vídeo/imagem decodificado. O vídeo/imagem renderizado pode ser exibido através do visor.
[049]A Figura 2 é 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 é denominado como o aparelho de codificação de vídeo pode incluir um aparelho de codificação de imagem.
[050]Com referência à Figura 2, o aparelho de codificação 200 pode incluir um particionador de imagem 210, um preditor 220, um processador residual 230, um codificador de entropia 240, um somador 250, um filtro 260 e uma memória 270. O preditor 220 pode incluir um interpreditor 221 e um intrapreditor 222. O processador residual 230 pode incluir um transformador 232, um quantizador 233, um desquantizador 234 um transformador inverso 235. O processador residual 230 pode incluir adicionalmente um subtrator 231. O somador 250 pode ser chamado de um reconstrutor ou gerador de bloco reconstruído. O particionador de imagem 210, o preditor 220, o processador residual 230, o codificador de entropia 240, o somador 250 e o filtro 260, que foram descritos acima, podem ser constituídos por um ou mais componentes de hardware (por exemplo, conjunto de chips ou processadores de codificador), de acordo com uma modalidade. Ademais, a memória 270 pode incluir um armazenamento temporário de foto decodificada (DPB), e pode ser constituída por um meio de armazenamento digital. O componente de hardware pode incluir adicionalmente a memória 270 como um componente interno/externo.
[051]O particionador de imagem 210 pode particionar uma imagem de entrada (ou uma imagem ou um quadro) inserida no aparelho de codificação 200 em uma ou mais unidades de processamento. Como um exemplo, a unidade de processamento pode ser denominada uma unidade de codificação (CU). Nesse caso, começando com uma unidade de árvore de codificação (CTU) ou a maior unidade de codificação (LCU), a unidade de codificação pode ser recursivamente particionada de acordo com a estrutura de árvore quaternária-árvore binária-árvore ternária (QTBTTT). Por exemplo, uma unidade de codificação pode ser dividida em uma pluralidade de unidades de codificação de uma profundidade mais profunda com base na estrutura de árvore quaternária, na estrutura de árvore binária e/ou na estrutura de árvore ternária. Nesse caso, por exemplo, a estrutura de árvore quaternária pode ser aplicada primeiro e a estrutura de árvore binária e/ou a estrutura de árvore ternária pode ser aplicada 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 é adicionalmente particionada. Nesse caso, a unidade de codificação máxima pode ser usada diretamente como uma unidade de codificação final com base na eficiência de codificação, de acordo com a característica de imagem. Alternativamente, a unidade de codificação pode ser recursivamente particionada em unidades de codificação de uma profundidade mais profunda, conforme necessário, de modo que a unidade de codificação de um tamanho ideal possa ser usada como uma unidade de codificação final. Aqui, o procedimento de codificação pode incluir procedimentos, tais como predição, transformação e reconstrução, que serão descritos posteriormente. Como outro exemplo, a unidade de processamento pode incluir adicionalmente uma unidade de predição (PU) ou uma unidade de transformada (TU). Nesse caso, a unidade de predição e a unidade de transformada podem ser divididas ou particionadas a partir da unidade de codificação final descrita acima. A unidade de predição pode ser uma unidade de predição de amostra, e a unidade de transformada pode ser uma unidade para derivar um coeficiente de transformada e/ou uma unidade para derivar um sinal residual de um coeficiente de transformada.
[052]A unidade e um termo, tal como um bloco, uma área ou similares podem ser usados no lugar um do outro, de acordo com as circunstâncias. Em um caso geral, um bloco M x N pode representar um conjunto de amostras ou coeficientes de transformada que consistem em colunas M e fileiras N. A amostra pode representar geralmente um pixel ou um valor de um pixel, e pode representar apenas um pixel/valor de pixel de um componente luma ou apenas um pixel/valor de pixel de um componente croma. A amostra pode ser usada como um termo que corresponde a um pixel ou um pel de uma foto (ou imagem).
[053]O subtrator 231 subtrai um sinal de predição (bloco predito, arranjo de amostra de predição) emitido a partir do interpreditor 221 ou do intrapreditor 222 a partir de um sinal de imagem de entrada (bloco original, arranjo de amostra original) para gerar um sinal residual (bloco residual, arranjo de amostra residual), e o sinal residual gerado é transmitido para o transformador 232. Nesse caso, conforme mostrado, uma unidade que subtrai o sinal de predição (bloco predito, arranjo de amostra de predição) do sinal de imagem de entrada (bloco original, arranjo de amostra original) no codificador 200 pode ser chamada de subtrator 231. O preditor 110 pode realizar predição em um bloco alvo de processamento (doravante chamado de “bloco atual”), e pode gerar um bloco predito que inclui amostras de predição para o bloco atual. O preditor pode determinar se a intrapredição ou interpredição é aplicada em um bloco atual ou base de CU. Conforme discutido posteriormente na descrição de cada modo de predição, o preditor pode gerar várias informações relacionadas à predição, tais como informações de modo de predição, e transmitir as informações geradas para o codificador de entropia 240. As informações sobre a predição podem ser codificadas no codificador de entropia 240 e emitidas sob a forma de um fluxo de bits.
[054]O intrapreditor 222 pode predizer o bloco atual referindo-se a amostras na foto atual. As amostras citadas podem se situar no vizinho do bloco atual ou afastado do mesmo, 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. Os modos não direcionais podem incluir, por exemplo, um modo DC e um modo planar. O modo direcional pode incluir, por exemplo, 33 modos de predição direcional ou 65 modos de predição direcional, de acordo com o grau de detalhes da direção de predição. Entretanto, isso é meramente um exemplo, e mais ou menos modos de predição direcional podem ser usados dependendo de uma configuração. O intrapreditor 222 pode determinar o modo de predição a ser aplicado ao bloco atual com o uso do modo de predição aplicado ao bloco vizinho.
[055]O interpreditor 221 pode derivar um bloco predito para o bloco atual com base em um bloco de referência (arranjo de amostra de referência) especificado por um vetor de movimento em uma foto de referência. Nesse 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 um bloco, sub-bloco ou base de 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 foto de referência. As informações de movimento podem incluir adicionalmente 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 que existe na foto atual e um bloco vizinho temporal que existe na foto de referência. A foto de referência que inclui o bloco de referência e a foto de referência que inclui o bloco vizinho temporal podem ser iguais ou diferentes uma da outra. O bloco vizinho temporal pode ser chamado de um bloco de referência colocalizado, uma CU colocalizada (colCU), e similares, e a foto de referência que inclui o bloco vizinho temporal pode ser chamada de uma foto colocalizada (colPic). Por exemplo, o interpreditor 221 pode configurar uma lista de candidatos de informações de movimento com base nos blocos vizinhos e gerar informações que indicam que o candidato é usado para derivar um vetor de movimento e/ou um índice de foto de referência do bloco atual. A interpredição pode ser realizada com base em vários modos de predição. Por exemplo, no caso de um modo de salto e um modo de mesclagem, o interpreditor 221 pode usar informações de movimento do bloco vizinho como informações de movimento do bloco atual. No modo de salto, diferente do modo de mesclagem, o sinal residual pode não ser transmitido. No caso do modo de predição de informações de movimento (predição de vetor de movimento, MVP), o vetor de movimento do bloco vizinho pode ser usado como um preditor de vetor de movimento e o vetor de movimento do bloco atual pode ser indicado sinalizando-se uma diferença de vetor de movimento.
[056]O preditor 220 pode gerar um sinal de predição com base em vários métodos de predição. Por exemplo, o preditor pode aplicar intrapredição ou interpredição para predição em um bloco, e também pode aplicar intrapredição e interpredição ao mesmo tempo. Isso pode ser chamado de inter e intrapredição combinada (CIIP). Ademais, o preditor pode se basear em uma cópia intrabloco (IBC) modo de predição, ou um modo de paleta a fim de 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 similares, tal como codificação de conteúdo de tela (SCC). Embora a IBC realize basicamente a predição em um bloco atual, a mesma pode ser realizada de modo similar à interpredição pelo fato de que a mesma deriva de um bloco de referência em um bloco atual. Ou seja, a IBC pode usar pelo menos uma das técnicas de interpredição descritas na presente revelação.
[057]O sinal de predição gerado através do interpreditor 221 e/ou o intrapreditor 222 pode ser usado para gerar um sinal reconstruído ou para gerar um sinal residual. O transformador 232 pode gerar coeficientes de transformada aplicando-se uma técnica de transformada ao sinal residual. Por exemplo, a técnica de transforma pode incluir pelo menos uma dentre uma transformada de cosseno discreta (DCT), uma transformada de seno discreta (DST), uma transformada de Karhunen-Loève (KLT), uma transformada baseada em gráfico (GBT) ou uma transformada condicionalmente não linear (CNT). Aqui, a GBT significa a transformada obtida a partir de um gráfico quando informações de relação entre pixels são representadas pelo gráfico. A CNT se refere à transformada obtida com base em um sinal de predição gerado com o uso de todos os pixels anteriormente reconstruídos. Além disso, o processo de transformada pode ser aplicado aos blocos de pixel quadrados que têm o mesmo tamanho ou pode ser aplicado aos blocos que têm um tamanho variável em vez do quadrado.
[058]O quantizador 233 pode quantizar os coeficientes de transformada e transmitir os mesmos para o codificador de entropia 240, e o codificador de entropia 240 pode codificar o sinal quantizado (informações sobre os coeficientes de transformada quantizados) e emitir o sinal codificado em um fluxo de bits. As informações sobre os coeficientes de transformada quantizados podem ser chamadas de informações residuais. O quantizador 233 pode reorganizar os coeficientes de transformada quantizados do tipo bloco em uma forma vetor unidimensional com base em uma ordem de varredura de coeficiente, e gerar informações sobre os coeficientes de transformada quantizados com base nos coeficientes de transformada quantizados da forma de vetor unidimensional. O codificador de entropia 240 pode realizar vários métodos de codificação, tais como, por exemplo, uma codificação exponencial de Golomb, uma codificação de comprimento variável adaptável ao contexto (CAVLC), codificação aritmética binária adaptável ao contexto (CABAC), e similares. O codificador de entropia 240 pode codificar informações necessárias para reconstrução de vídeo/imagem diferente dos coeficientes de transformada quantizados (por exemplo, valores de elementos de sintaxe, etc.) em conjunto 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) sob a forma de um fluxo de bits. As informações de vídeo/imagem podem incluir adicionalmente informações sobre vários conjuntos de parâmetros, tal como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de foto (PPS), um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de vídeo (VPS) ou similares. Ademais, as informações de vídeo/imagem podem incluir adicionalmente informações de restrição gerais. Na presente revelação, informações e/ou elementos de sintaxe que são transmitidos/sinalizados para o aparelho de decodificação a partir do aparelho de codificação podem ser incluídas nas informações de vídeo/imagem. As informações de vídeo/imagem podem ser codificadas através do procedimento de codificado 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. Aqui, a rede pode incluir uma rede de difusã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 emitido a partir do codificador de entropia 240 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 no codificador de entropia 240.
[059]Os coeficientes de transformada quantizados emitidos a partir do quantizador 233 podem ser usados para gerar um sinal de predição. Por exemplo, aplicando-se a desquantização e transformada inversa aos coeficientes de transformada quantizados através do desquantizador 234 e do transformador inverso 235, o sinal residual (bloco residual ou amostras residuais) pode ser reconstruído. O somador 155 adiciona o sinal residual reconstruído a um sinal de predição emitido a partir do interpreditor 221 ou do intrapreditor 222, de modo que um sinal reconstruído (foto reconstruída, bloco reconstruído, arranjo de amostra reconstruída) possa ser gerado. quando não há residual para um bloco alvo de processamento como em um caso em que o modo de salto é aplicado, o bloco predito pode ser usado como um bloco reconstruído. O somador 250 pode ser chamado de um reconstrutor ou um 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 posteriormente, pode ser usado para interpredição de uma próxima foto através de filtragem.
[060]Entretanto, no processo de codificação e/ou reconstrução de foto, o mapeamento de luma com escalonamento de croma (LMCS) pode ser aplicado.
[061]O filtro 260 pode aprimorar a qualidade de vídeo subjetiva/objetiva aplicando-se a filtragem ao sinal reconstruído. Por exemplo, o filtro 260 pode gerar uma foto reconstruída modificada aplicando-se vários métodos de filtragem à foto reconstruída, e pode armazenar a foto reconstruída modificada na memória 270, especificamente no DPB da memória 270. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de desblocagem, deslocamento adaptativo de amostra, um filtro de malha adaptativo, um filtro bilateral ou similares. Conforme discutido posteriormente na descrição de cada método de filtragem, o filtro 260 pode gerar várias informações relacionadas à filtragem, e transmitir as informações geradas para o codificador de entropia 240. As informações sobre a filtragem podem ser codificadas no codificador de entropia 240 e emitidas sob a forma de um fluxo de bits.
[062]A foto reconstruída modificada que foi transmitida para a memória 270 pode ser usada como uma foto de referência no interpreditor 221. Através disso, o aparelho de codificação pode evitar a incompatibilidade de predição no aparelho de codificação 100 e em um aparelho de decodificação quando a interpredição é aplicada, e também pode aprimorar a eficiência de codificação.
[063]A memória 270 DPB pode armazenar a foto reconstruída modificada a fim de usar a mesma como uma foto de referência no interpreditor 221. A memória 270 pode armazenar informações de movimento de um bloco na foto atual, a partir da qual as informações de movimento foram derivadas (ou codificadas) e/ou informações de movimento de blocos em uma foto já reconstruída. As informações de movimento armazenadas podem ser transmitidas para o interpreditor 221 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 270 pode armazenar amostras reconstruídas de blocos reconstruídos na foto atual, e transmitir as mesmas para o intrapreditor 222.
[064]A Figura 3 é 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.
[065]Com referência à Figura 3, o aparelho de decodificação de vídeo 300 pode incluir um decodificador de entropia 310, um processador residual 320, um preditor 330, um somador 340, um filtro 350 e uma memória 360. O preditor 330 pode incluir um interpreditor 331 e um intrapreditor 332. O processador residual 320 pode incluir um desquantizador 321 e um transformador inverso 321. O decodificador de entropia 310, o processador residual 320, o preditor 330, o somador 340 e o filtro 350, que foram descritos acima, podem ser constituídos por um ou mais componentes de hardware (por exemplo, conjunto de chips ou processadores de decodificador), de acordo com uma modalidade. Ademais, a memória 360 pode incluir um armazenamento temporário de foto decodificada (DPB), e pode ser constituída por um meio de armazenamento digital. O componente de hardware pode incluir adicionalmente a memória 360 como um componente interno/externo.
[066]Quando um fluxo de bits que inclui informações de vídeo/imagem é inserido, o aparelho de decodificação 300 pode reconstruir uma imagem de modo correspondente a um processo pelo qual as informações de vídeo/imagem foram processadas no aparelho de codificação da Figura 2. Por exemplo, o aparelho de decodificação 300 pode derivar unidades/blocos com base nas informações relacionadas à partição de bloco obtida a partir do fluxo de bits. O aparelho de decodificação 300 pode realizar a decodificação com o uso de 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 quaternária, da estrutura de árvore binária e/ou da estrutura de árvore ternária a partir de uma unidade de árvore de codificação ou uma maior unidade de codificação. Uma ou mais unidades de transformada podem ser derivadas da unidade de codificação. E, o sinal de imagem reconstruído decodificado e emitido através do aparelho de decodificação 300 pode ser reproduzido através de um reprodutor.
[067]O aparelho de decodificação 300 pode receber um sinal emitido a partir do aparelho de codificação da Figura 2, sob a forma de um fluxo de bits, e o sinal recebido pode ser decodificado através do decodificador de entropia 310. Por exemplo, o decodificador de entropia 310 pode analisar o fluxo de bits para derivar informações (por exemplo, informações de vídeo/imagem) necessárias para reconstrução de imagem (ou reconstrução de foto). As informações de vídeo/imagem podem incluir adicionalmente informações sobre vários conjuntos de parâmetros, tal como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de foto (PPS), um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de vídeo (VPS) ou similares. Ademais, as informações de vídeo/imagem podem incluir adicionalmente informações de restrição gerais. O aparelho de decodificação pode decodificar uma foto adicionalmente com base nas informações sobre o conjunto de parâmetros e/ou as informações de restrição gerais. Na presente revelação, as informações e/ou elementos de sintaxe sinalizados e/ou recebidos, que serão descritos posteriormente, podem ser decodificados através do procedimento de decodificação e ser obtidos a partir do fluxo de bits. Por exemplo, o decodificador de entropia 310 pode decodificar informações no fluxo de bits com base em um método de codificação, tal como codificação exponencial de Golomb, CAVLC, CABAC, ou similares, 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 que se refere a um residual. Mais especificamente, um método de decodificação de entropia CABAC pode receber um bin que corresponde a cada elemento de sintaxe em um fluxo de bits, determinar um modelo de contexto com o uso de informações de elemento de sintaxe alvo de decodificação de blocos alvo de decodificação e vizinhos ou informações de símbolo/bin decodificado em uma etapa anterior, predizer 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 que corresponde a cada valor de elemento de sintaxe. Aqui, o método de decodificação de entropia CABAC pode atualizar o modelo de contexto com o uso de 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. As informações sobre predição entre informações decodificadas no decodificador de entropia 310 podem ser fornecidas para o preditor (interpreditor 332 e intrapreditor 331), e valores residuais, ou seja, coeficientes de transformada quantizados, nos quais a decodificação de entropia foi realizada no decodificador de entropia 310, e informações de parâmetro associadas podem ser inseridos no processador residual 320. O processador residual 320 pode derivar um sinal residual (bloco residual, amostras residuais, arranjo de amostra residual). Ademais, as informações sobre filtragem entre informações decodificadas no decodificador de entropia 310 podem ser fornecidas para o filtro 350. Entretanto, um receptor (não mostrado) que recebe um sinal emitido a partir do aparelho de codificação pode constituir adicionalmente o aparelho de decodificação 300 como um elemento interno/externo, e o receptor pode ser um componente do decodificador de entropia 310. Entretanto, o aparelho de decodificação, de acordo com a presente revelação, pode ser chamado de um aparelho de codificação vídeo/imagem/foto, e o aparelho de decodificação pode ser classificado em um decodificador de informações (decodificador de informações de vídeo/imagem/foto) e um decodificador de amostra (decodificador de amostra de vídeo/imagem/foto). O decodificador de informações pode incluir o decodificador de entropia 310, e o decodificador de amostra pode incluir pelo menos um dentre o desquantizador 321, o transformador inverso 322, o somador 340, o filtro 350, a memória 360, o interpreditor 332 e o intrapreditor 331.
[068]O desquantizador 321 pode emitir coeficientes de transformada desquantizando-se os coeficientes de transformada quantizados. O desquantizador 321 pode reorganizar os coeficientes de transformada quantizados sob a forma de um bloco bidimensional. Nesse caso, a reorganização pode realizar a reorganização com base em uma ordem de varredura de coeficiente que foi realizada no aparelho de codificação. O desquantizador 321 pode realizar a desquantização nos coeficientes de transformada quantizados com o uso do parâmetro de quantização (por exemplo, informações de tamanho de etapa de quantização), e obter coeficientes de transformada.
[069]O desquantizador 322 obtém um sinal residual (bloco residual, arranjo de amostra residual) por transformação inversa dos coeficientes de transformada.
[070]O preditor pode realizar predição em um bloco atual, e gerar um bloco predito que inclui 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 sobre predição emitidas a partir do decodificador de entropia 310, e pode determinar especificamente um modo de intra/interpredição.
[071]O preditor pode gerar um sinal de predição com base em vários métodos de predição. Por exemplo, o preditor pode aplicar intrapredição ou interpredição para predição em um bloco, e também pode aplicar intrapredição e interpredição ao mesmo tempo. Isso pode ser chamado de inter e intrapredição combinada (CIIP). Além disso, o preditor pode realizar a cópia intrabloco (IBC) para predição em um bloco. A cópia intrabloco pode ser usada para codificação de imagem/vídeo de conteúdo de um jogo ou similares, tal como codificação de conteúdo de tela (SCC). Embora a IBC realize basicamente a predição em um bloco atual, a mesma pode ser realizada de modo similar à interpredição pelo fato de que a mesma deriva de um bloco de referência em um bloco atual. Ou seja, a IBC pode usar pelo menos uma das técnicas de interpredição descritas na presente revelação.
[072]O intrapreditor 331 pode predizer o bloco atual referindo-se às amostras na foto atual. As amostras citadas podem se situar no vizinho do bloco atual ou afastado do mesmo, 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 intrapreditor 331 pode determinar o modo de predição a ser aplicado ao bloco atual com o uso do modo de predição aplicado ao bloco vizinho.
[073]O interpreditor 332 pode derivar um bloco predito para o bloco atual com base em um bloco de referência (arranjo de amostra de referência) especificado por um vetor de movimento em uma foto de referência. Nesse 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 um bloco, sub-bloco ou base de 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 foto de referência. As informações de movimento podem incluir adicionalmente 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 que existe na foto atual e um bloco vizinho temporal que existe na foto de referência. Por exemplo, o interpreditor 332 pode configurar uma lista de candidatos de informações de movimento com base nos blocos vizinhos, e derivar um vetor de movimento e/ou um índice de foto 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 para o bloco atual.
[074]O somador 340 pode gerar um sinal reconstruído (foto reconstruída, bloco reconstruído, arranjo de amostra reconstruída) adicionando-se o sinal residual obtido ao sinal de predição (bloco predito, arranjo de amostra de predição) emitido a partir do preditor 330. quando não há residual para um bloco alvo de processamento como em um caso em que o modo de salto é aplicado, o bloco predito pode ser usado como um bloco reconstruído.
[075]O somador 340 pode ser chamado de um reconstrutor ou um 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 posteriormente, pode ser emitido através de filtragem ou ser usado para interpredição de uma próxima imagem.
[076]Entretanto, non processo de decodificação de foto, o mapeamento de luma com escalonamento de croma (LMCS) pode ser aplicado.
[077]O filtro 350 pode aprimorar a qualidade de vídeo subjetiva/objetiva aplicando-se a filtragem ao sinal reconstruído. Por exemplo, o filtro 350 pode gerar uma foto reconstruída modificada aplicando-se vários métodos de filtragem à foto reconstruída, e pode transmitir a foto reconstruída modificada na memória 360, especificamente no DPB da memória 360. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de desblocagem, deslocamento adaptativo de amostra, um filtro de malha adaptativo, um filtro bilateral ou similares.
[078]A foto reconstruída (modificada) que foi armazenada no DPB da memória 360 pode ser usado como uma foto de referência no interpreditor 332. A memória 360 pode armazenar informações de movimento de um bloco na foto atual, a partir da qual as informações de movimento foram derivadas (ou decodificadas) e/ou informações de movimento de blocos em uma foto já reconstruída. As informações de movimento armazenadas podem ser transmitidas para o 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 360 pode armazenar amostras reconstruídas de blocos reconstruídos na imagem atual, e transmitir as mesmas para o intrapreditor 331.
[079]Neste relatório descritivo, os exemplos descritos sobre o preditor 330, o desquantizador 321, o transformador inverso 322 e o filtro 350 do aparelho de decodificação 300 podem ser aplicados de modo similar ou correspondente ao preditor 220, ao desquantizador 234, ao transformador inverso 235 e ao filtro 260 do aparelho de codificação 200, respectivamente.
[080]Conforme descrito acima, a predição é realizada a fim de aumentar a eficiência de compactação na realização de codificação de vídeo. Através disso, um bloco predito que inclui amostras de predição para um bloco atual, que é um bloco alvo de codificação, pode ser gerado. Aqui, 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-se para o aparelho de decodificação não o valor de amostra original de um bloco original em si, mas informações sobre o residual (informações residuais) entre o bloco original e o bloco predito. O aparelho de decodificação pode derivar um bloco residual que inclui amostras residuais com base nas informações residuais, gerar um bloco reconstruído que inclui amostras reconstruídas adicionando-se o bloco residual ao bloco predito, e gerar uma foto reconstruída que inclui blocos reconstruídos.
[081]As informações residuais podem ser geradas através de procedimentos de transformada 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-se um procedimento de transformada nas amostras residuais (arranjo de amostra residual) incluídas no bloco residual, e derivar coeficientes de transformada quantizados realizando-se um procedimento de quantização nos coeficientes de transformada, de modo que possa sinalizar informações residuais associadas ao aparelho de decodificação (através de um fluxo de bits). Aqui, as informações residuais podem incluir informações de valor, informações de posição, uma técnica de transformada, núcleo de transformada, um parâmetro de quantização ou similares 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 através da desquantização/transformação inversa de coeficientes de transformada quantizados para referência para interpredição de uma próxima imagem, e pode gerar uma foto reconstruída com base nisso.
[082]A Figura 4 ilustra esquematicamente uma técnica de múltiplas transformadas, de acordo com uma modalidade da presente revelação.
[083]Com referência à Figura 4, um transformador pode corresponder ao transformador no aparelho de codificação da Figura 2 anteriormente mencionada, e um transformador inverso pode corresponder ao transformador inverso no aparelho de codificação da Figura 2 anteriormente mencionada, ou ao transformador inverso no aparelho de decodificação da Figura 3.
[084]O transformador pode derivar coeficientes de transformada (primária) ao realizar uma transformada primária com base em amostras residuais (arranjo de amostra residual) em um bloco residual (S410). Essa transformada primária pode ser denominada como uma transformada de núcleo. No presente documento, a transformada primária pode se basear na seleção de múltiplas transformadas (MTS), e quando uma transformada múltipla for aplicada como a transformada primária, a mesma pode ser denominada como uma transformada de múltiplos núcleos.
[085]A transformada de múltiplos núcleos pode representar um método de transformação adicional com o uso de transformada de cosseno discreta (DCT) tipo 2 e transformada de seno discreta (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 transformada de transformação de 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 dentre a DCT tipo 2, a DST tipo 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 a partir do ponto de vista do transformador.
[086]Em outras palavras, quando o método de transformada convencional é aplicado, os coeficientes de transformada podem ser gerados aplicando-se a transformada a partir de um domínio de espaço a um domínio de frequência para um sinal residual (ou bloco residual) com base 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-se a transformada a partir de domínio de espaço a um domínio de frequência para um sinal residual (ou bloco residual) com base na DCT tipo 2, na DST tipo 7, na 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 um tipo de transformada, núcleo de transformada ou núcleo de transformada.
[087]Para referência, os tipos de transformada DCT/DST podem ser definidos com base nas funções de base, e as funções de base podem ser representadas na Tabela a seguir.[Tabela 1]
[088]Se a transformada de múltiplos núcleos for realizada, então um núcleo de transformada vertical e um núcleo de transformada horizontal para um bloco alvo podem ser selecionados dentre os núcleos de transformada, uma transformada vertical para o bloco alvo pode ser realizada com base no núcleo de transformada vertical, e uma transformada horizontal para o bloco alvo pode ser realizada com base no núcleo de transformada horizontal. Aqui, a transformada horizontal pode representar uma transformada para componentes horizontais do bloco alvo, e a transformada vertical pode representar uma transformada para os componentes verticais do bloco alvo. O núcleo de transformada vertical/núcleo de transformada horizontal pode ser adaptativamente determinado com base em um modo de predição e/ou um índice de transformada de um bloco alvo (CU ou sub-bloco) que inclui um bloco residual.
[089]Ademais, de acordo com um exemplo, se a transformada primária for realizada aplicando-se a MTS, uma relação de mapeamento para núcleos de transformada pode ser definido ajustando-se as funções de base específicas a 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 trTypeHor ou trTypeVer de 0 pode ser definido como DCT2, um valor trTypeHor ou trTypeVer de 1 pode ser definido como DST7, e um valor trTypeHor ou trTypeVer de 2 pode ser definido como DCT8.
[090]Nesse caso, as informações de índice MTS podem ser codificadas e sinalizadas para o aparelho de decodificação para indicar qualquer um dentre uma pluralidade de conjuntos de núcleo de transformada. Por exemplo, um índice MTS de 0 pode indicar que tanto valores trTypeHor como trTypeVer são 0, um índice MTS de 1 pode indicar que tanto valores trTypeHor como trTypeVer são 1, um índice MTS de 2 pode indicar que o valor trTypeHor é 2 e o valor trTypeVer é 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 tanto valores trTypeHor como trTypeVer são 2.
[091]O transformador pode derivar coeficientes de transformada modificados (secundária) realizando-se a transformada secundária com base nos coeficientes de transformada (primária) (S420). A transformada primária é uma transformada a partir de um domínio espacial a um domínio de frequência, e a transformada secundária se refere à transformação em uma expressão mais compressiva com o uso de uma correlação existente entre coeficientes de transformada (primária). A transformada secundária pode incluir uma transformada não separável. Nesse caso, a transformada secundária pode ser chamada de uma a transformada secundária não separável (NSST) ou uma transformada secundária não separável dependente de 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 transformação secundária, com base em uma matriz de transformada não separável, coeficientes de transformada (primária) derivados através da transformada primária. Nesse momento, a transformada vertical e a transformada horizontal não podem ser aplicadas separadamente (ou as transformadas horizontal e vertical não podem ser aplicadas independentemente) aos coeficientes de transformada (primária), porém as transformadas podem ser aplicadas de uma vez com base na matriz de transformada não separável. Em outras palavras, a transformada secundária não separável pode representar um método de transformada no qual os componentes vertical e horizontal dos coeficientes de transformada (primária) não são separados e, por exemplo, dois sinais bidimensionais (coeficientes de transformada) são reorganizados em um sinal unidimensional através de uma certa direção determinada (por exemplo, direção de primeira fileira ou direção de primeira coluna) e, então coeficientes de transformada modificados (ou coeficientes de transformada secundária) são gerados com base na matriz de transformada não separável. Por exemplo, de acordo com uma ordem de primeira fileira, os blocos M x N são dispostos em uma linha em uma ordem de uma primeira fileira, uma segunda fileira, ..., e uma Nésima fileira. De acordo com uma ordem de primeira coluna, blocos M x N são dispostos em uma linha em uma ordem de uma primeira coluna, uma segunda coluna, ., e uma Nésima coluna. A transformada secundária não separável pode ser aplicada a uma região esquerda superior de um bloco configurado com coeficientes de transformada (primária) (doravante, pode ser chamado de um bloco de coeficiente de transformada). Por exemplo, se a largura (W) e a altura (H) do bloco de coeficiente de transformada forem iguais ou maiores que 8, uma transformada secundária não separável 8x8 pode ser aplicada a uma região 8x8 esquerda superior do bloco de coeficiente de transformada. Ademais, se a largura (W) e a altura (H) do bloco de coeficiente de transformada forem 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 4x4 pode ser aplicada a uma região esquerda superior min(8,W) x min(8,H) do bloco de coeficiente de transformada. Entretanto, a modalidade não se limita a isso e, por exemplo, mesmo se apenas a condição de que a largura (W) ou altura (H) do bloco de coeficiente de transformada seja igual ou maior que 4 for satisfeita, a transformada secundária não separável 4x4 pode ser aplicada à região esquerda superior min(8,W)xmin(8,H) do bloco de coeficiente de transformada.
[092]Especificamente, por exemplo, se um bloco de entrada 4x4 for usado, a transformada secundária não separável pode ser realizada da seguinte forma.
[093]O bloco de entrada 4x4 X pode ser representado da seguinte forma.[Equação 1]
[094]Se X é representado sob a forma de um vetor, o vetor pode ser representado conforme abaixo.[Equação 2]
[095]Na Equação 2, o vetor é um vetor unidimensional obtido reorganizando-se o bloco bidimensional X da Equação 1, de acordo com a ordem de primeira fileira.
[096]Nesse caso, a transformada não separável secundária pode ser calculada conforme abaixo.[Equação 3]
[097]Nessa equação, representa um vetor de coeficiente de transformada, e T representa uma matriz de transformada (não separável) 16x16.
[098]Através da Equação 3 anteriormente mencionada, um vetor de coeficiente de transformada 16x1 pode ser derivado, e pode ser reorganizado em um bloco 4x4 através de uma ordem de varredura (horizontal, vertical, diagonal e similares). Entretanto, o cálculo descrito acima é um exemplo, e a transformada de hipercubo-Givens (HyGT) ou similares 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.
[099]Entretanto, 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 de modo. Nesse caso, o modo pode incluir o modo de intrapredição e/ou o modo de interpredição.
[0100]Conforme descrito acima, a transformada secundária não separável pode ser realizada com base em uma transformada 8x8 ou uma transformada 4x4 determinada com base na largura (W) e na altura (H) do bloco de coeficiente de transformada. A transformada 8x8 se refere a uma transformada que é aplicável a uma região 8x8 incluída no bloco de coeficiente de transformada quando tanto W como H são iguais ou maiores que 8, e a região 8x8 pode ser uma região 8x8 esquerda superior no bloco de coeficiente de transformada. De modo similar, a transformada 4x4 se refere a uma transformada que é aplicável a uma região 4x4 incluída no bloco de coeficiente de transformada quando tanto W como H são iguais ou maiores que 4, e a região 4x4 pode ser uma região 4x4 esquerda superior no bloco de coeficiente de transformada. . Por exemplo, uma matriz de núcleo de transformada 8x8 pode ser uma matriz 64x64/16x64, e uma matriz de núcleo de transformada 4x4 pode ser uma matriz 16x16/8x16.
[0101]Aqui, para selecionar um núcleo de transformada baseado em modo, três núcleos de transformada secundária não separável podem ser configuradas por conjunto de transformadas para a transformada secundária não separável tanto para a transformada 8x8 como a transformada 4x4, e pode haver 35 conjuntos de transformadas. Ou seja, 35 conjuntos de transformadas podem ser configurados para a transformada 8x8, e 35 conjuntos de transformadas podem ser configurados para a transformada 4x4. Nesse caso, três núcleos de transformada 8x8 podem ser incluídos em cada um dos 35 conjuntos de transformadas para a transformada 8x8, e três núcleos de transformada 4x4 podem ser incluídos em cada um dos 35 conjuntos de transformadas para a transformada 4x4. Os tamanhos das transformadas, os números de conjuntos e os números de núcleos de transformada em cada conjunto mencionado acima são meramente para ilustração. Em vez disso, um tamanho diferente de 8x8 ou 4x4 pode ser usado, n conjuntos podem ser configurados e k núcleos de transformada podem ser incluídos em cada conjunto.
[0102]O conjunto de transformadas pode ser chamado de um conjunto de NSST, e o núcleo de transformada no conjunto de NSST pode ser chamado de um núcleo de NSST. A seleção de um conjunto específico dentre os conjuntos de transformadas pode ser realizada, por exemplo, com base no modo de intrapredição do bloco alvo (CU ou sub-bloco).
[0103]Para referência, como um exemplo, o modo de intrapredição pode incluir dois modos de intrapredição não direcional (ou não angular) e 65 modos de intrapredição direcional (ou angular). Os modos de intrapredição não direcional podem incluir um modo de intrapredição planar n° 0, e um modo de intrapredição DC n° 1, e os modos de intrapredição direcional podem incluir 65 modos de intrapredição entre um modo de intrapredição n° 2 e um modo de intrapredição n° 66. Entretanto, esse é um exemplo, e a presente revelação pode ser aplicada a um caso em que há um número diferente de modos de intrapredição. Entretanto, de acordo com as circunstâncias, um modo de intrapredição n° 67 pode ser adicionalmente usado, e o modo de intrapredição n° 67 pode representar um modo de modelo linear (LM).
[0104]A Figura 5 ilustra intramodos direcionais de 65 direções de predição.
[0105]Com referência à Figura 5, com base no modo de intrapredição n° 34 que tem uma direção de predição diagonal ascendente esquerda, no modo de intrapredição que tem uma direcionalidade horizontal e o modo de intrapredição que tem direcionalidade vertical pode ser classificado. H e V da Figura 5 significam direcionalidade horizontal e direcionalidade vertical, respectivamente, e os números - 32 a 32 indicam deslocamentos em 1/32 unidades na posição de grade amostra. Isso pode representar um deslocamento para o valor de índice de modo. Os modos de intrapredição n° 2 a 33 têm a direcionalidade horizontal, e os modos de intrapredição n° 34 a 66 têm a direcionalidade vertical. Entretanto, estritamente falando, o modo de intrapredição n° 34 pode ser considerado como sendo nem horizontal nem vertical, porém pode ser classificado como pertencendo à direcionalidade horizontal em termos de determinação do conjunto de transformadas da transformada secundária. Isso se deve ao fato de que os dados de entrada são transpostos para serem usados para o modo de direção vertical simétrico com base no modo de intrapredição n° 34, e o método de alinhamento de dados de entrada para o modo horizontal é usado para o modo de intrapredição n° 34. A transposição de dados de entrada significa que as fileiras e colunas dos dados de bloco bidimensional MxN são comutados em dados NxM. O modo de intrapredição n° 18 e o modo de intrapredição n° 50 podem representar um modo de intrapredição horizontal e um modo de intrapredição vertical, respectivamente, e o modo de intrapredição n° 2 pode ser chamado de um modo de intrapredição diagonal ascendente direito devido ao fato de que tem um pixel de referência esquerdo e prediz em uma direção ascendente direita. Da mesma maneira, o modo de intrapredição n° 34 pode ser chamado de um modo de intrapredição diagonal descendente direito, e o modo de intrapredição n° 66 pode ser chamado de um modo de intrapredição diagonal descendente esquerdo.
[0106]Nesse caso, o mapeamento entre os 35 conjuntos de transformadas e os modos de intrapredição podem ser, por exemplo, representados como na tabela a seguir. Para referência, se um modo LM for aplicado a um bloco alvo, a transformada secundária não pode aplicada ao bloco alvo.[Tabela 2]
[0107]Entretanto, se um conjunto específico for determinado para ser usado, um dos k núcleos de transformada no conjunto específico pode ser selecionado através do índice de transformada secundária não separável. O aparelho de codificação pode derivar um índice de transformada secundária não separável que indica um núcleo de transformada específico com base na verificação de distorção de taxa (RD), e pode sinalizar o índice de transformada secundária não separável para o aparelho de decodificação. O aparelho de decodificação pode selecionar um dentre k núcleos de transformada no conjunto específico com base no índice de transformada secundária não separável. Por exemplo, o valor de índice NSST 0 pode indicar um primeiro núcleo de transformada secundária não separável, o valor de índice NSST 1 pode indicar um segundo núcleo de transformada secundária não separável, e o valor de índice NSST 2 pode indicar um terceiro núcleo de transformada secundária não separável. Alternativamente, o valor de índice NSST 0 pode indicar que a primeira transformada secundária não separável não é aplicada a um bloco alvo, e os valores de índice NSST 1 a 3 podem indicar os três núcleos de transformada.
[0108]Referindo-se novamente à Figura 4, 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ária). Conforme descrito acima, os coeficientes de transformada modificados podem ser derivados como coeficientes de transformada quantizados 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.
[0109]Entretanto, conforme descrito acima, se a transformada secundária for omitida, coeficientes de transformada (primária), que são uma saída da transformada primária (separável), podem ser derivados como coeficientes de transformada quantizados através do quantizador conforme descrito acima, e podem ser codificados e sinalizados para o aparelho de decodificação e transferidos para o desquantizador/transformador inverso no aparelho de codificação.
[0110]O transformador inverso pode realizar uma série de procedimentos na ordem inversa àquela na qual eles foram realizados no transformador descrito acima. O transformador inverso pode receber coeficientes de transformador (desquantizados), e derivar coeficientes de transformada (primária) realizando-se uma transformada secundária (inversa) (S450), e pode obter um bloco residual (amostras residuais) realizando-se a transformada primária (inversa) nos coeficientes de transformada (primária) (S460). Nessa conexão, os coeficientes de transformada primária podem ser chamados de coeficientes de transformada modificados a partir 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 foto reconstruída com base no bloco reconstruído.
[0111]O aparelho de decodificação pode incluir adicionalmente um determinador de aplicação de transformada inversa secundária (ou um elemento para determinar se deve aplicar uma transformada inversa secundária) e um determinador de transformada inversa secundária (ou um elemento para determinar uma transformada inversa secundária). O determinador 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 ou uma RST, e o determinador 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 pela análise do fluxo de bits. Em outro exemplo, o determinador 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.
[0112]O determinador de transformada inversa secundária pode determinar uma transformada inversa secundária. Nesse caso, o determinador de transformada inversa secundária pode determinar a transformada inversa secundária aplicada ao bloco atual com base em um conjunto de transformadas 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. Ademais, em um exemplo, o determinador de transformada inversa secundária pode determinar uma região na qual uma transformada inversa secundária é aplicada com base no tamanho do bloco atual.
[0113]Entretanto, conforme descrito acima, se a transformada secundária (inversa) for omitida, 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 foto reconstruída com base no bloco reconstruído.
[0114]Entretanto, na presente revelaçã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 a fim de reduzir a quantidade de computação e memória necessária para a transformada secundária não separável.
[0115]Entretanto, o núcleo de transformada, a matriz de transformada e o coeficiente que constitui a matriz de núcleo de transformada, ou seja, o coeficiente de núcleo ou o coeficiente de matriz, descrito na presente revelação podem ser expressos em 8 bits. Essa 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 de núcleo em 8 bits permitir que um pequeno multiplicador seja usado, e pode ser mais adequada para instruções de dados múltiplos de instrução única (SIMD) usadas para implementação de software ideal.
[0116]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 transformada pode ser reduzida devido a uma redução no tamanho da matriz de transformada. Ou seja, a RST pode ser usada para resolver o problema de complexidade computacional que ocorre na transformada não separável ou na transformada de um bloco de um tamanho grande.
[0117]A RST pode ser chamada de vários termos, tal como transformada reduzida, transformada secundária reduzida, transformada de redução, transformada simplificada, transformada simples, e similares, e o nome que a RST pode ser chamada não se limita aos exemplos listados. Alternativamente, uma vez que a RST é realizada principalmente em uma região de baixa frequência que inclui um coeficiente diferente de zero em um bloco de transformada, pode ser denominada como uma Transformada Não Separável de Baixa Frequência (LFNST).
[0118]Entretanto, quando a transformada inversa secundária é realizada com base na RST, o transformador inverso 235 do aparelho de codificação 200 e o transformador inverso 322 do aparelho de decodificação 300 podem incluir uma transformada secundária reduzida inversa que deriva coeficientes de transformada modificados com base na RST inversa dos coeficientes de transformada, e uma transformada primária inversa 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 se refere à transformada inversa da transformada primária aplicada ao residual. Na presente revelação, a derivação de um coeficiente de transformada com base em uma transformada pode se referir à derivação de um coeficiente de transformada aplicando-se a transformada.
[0119]A Figura 6 é um diagrama que ilustra uma RST, de acordo com uma modalidade da presente revelação.
[0120]No presente relatório descritivo, o termo "bloco alvo" pode significar um bloco atual ou um bloco residual no qual a codificação é realizada.
[0121]Na RST, de acordo com um exemplo, um vetor N-dimensional pode ser mapeado para um vetor R-dimensional situado em outro espaço, de modo que a matriz de transformada reduzida possa ser determinada, em que 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 que corresponde 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. Entretanto, R pode ser denominado como um coeficiente reduzido, porém de acordo com as circunstâncias, o fator reduzido pode significar R. Ademais, de acordo com as circunstâncias, o fator reduzido pode significar o valor N/R.
[0122]Em um exemplo, o fator reduzido ou o coeficiente reduzido pode ser sinalizado através de um fluxo de bits, porém 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 um dentre o aparelho de codificação 200 e o aparelho de decodificação 300 e, nesse caso, o fator reduzido ou o coeficiente reduzido não pode ser sinalizado separadamente.
[0123]O tamanho da matriz de transformada reduzida, de acordo com um exemplo pode ser RxN menor que N x N, o tamanho de uma matriz de transformada convencional, e pode ser definido como na Equação abaixo.[Equação 4]
[0124]A matriz T no bloco de Transformada Reduzido mostrada na Figura 6A pode significar a matriz TRxN da Equação 4. Conforme mostrado na Figura 6A, quando a matriz de transformada reduzida TRxN é multiplicada pelas amostras residuais para o bloco alvo, coeficientes de transformada para o bloco alvo podem ser derivados.
[0125]Em um exemplo, se o tamanho do bloco ao qual a transformada é aplicada for 8x8 e R =16 (isto é, R/N = 16/64 = 1/4), então a RST de acordo com Figura 6A pode ser expressa como uma operação de matriz conforme mostrado na Equação 5 abaixo. Nesse caso, o cálculo de memória e multiplicação pode ser reduzido para aproximadamente 1/4 pelo fator reduzido. [Equação 5]
[0126]Na Equação 5, r1 a r64 podem representar amostras residuais para o bloco alvo e podem ser coeficientes de transformada especificamente gerados aplicando-se uma transformada primária. Como resultado do cálculo da Equação 5, 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.[Equação 6]
[0127]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, 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 64x64 (N x N) for multiplicada pelas amostras residuais de tamanho 64x1 (Nx1), então apenas 16 (R) coeficientes de transformada são derivados para o bloco alvo devido ao fato de que a RST foi aplicada, 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 é reduzida de N para R, a quantidade de dados transmitidos pelo aparelho de codificação 200 para o aparelho de decodificação 300 diminui, então a eficiência de transmissão entre o aparelho de codificação 200 e o aparelho de decodificação 300 pode ser aprimorada.
[0128]Quando considerado do ponto de vista do tamanho da matriz de transformada, o tamanho da matriz de transformada regular é 64x64 (N x N), porém o tamanho da matriz de transformada reduzida é reduzido para 16x64 (RxN), então o uso de memória em um caso de realização da RST pode ser reduzido por uma razão R/N quando comparado com um caso de realização da transformada 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 regular, o uso da matriz de transformada reduzida pode reduzir o número de cálculos de multiplicação pela razão R/N (RxN).
[0129]Em um exemplo, o transformador 232 do aparelho de codificação 200 pode derivar coeficientes de transformada para o bloco alvo realizando-se a transformada primária e a transformada secundária baseada em RST nas amostras residuais para o bloco alvo. Esses coeficientes de transformada podem ser transferidos para o transformador inverso do aparelho de decodificação 300, e o transformador inverso 322 do aparelho de decodificação 300 pode derivar os coeficientes de transformada modificados com base na transformada secundária reduzida inversa (RST) para os coeficientes de transformada, e pode derivar amostras residuais para o bloco alvo com base na transformada primária inversa para os coeficientes de transformada modificados.
[0130]O tamanho da matriz RST inversa TNxR de acordo com um exemplo é NxR menor que o tamanho N x N da matriz de transformada inversa regular, e é uma relação de transposição com a matriz de transformada reduzida TRxN mostrada na Equação 4.
[0131]A matriz Tt no bloco de Transformada Inv. Reduzida mostrado na Figura 6B pode significar a matriz RST inversa TRxNT (o sobrescrito T significa transpor). Quando a matriz RST inversa TRxNT é multiplicada pelos coeficientes de transformada para o bloco alvo conforme mostrado na Figura 6B, os coeficientes de transformada modificados para o bloco alvo ou as amostras residuais para o bloco alvo podem ser derivados. A matriz RST inversa TRxNT pode ser expressa como (TRxNT)NxR.
[0132]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 RST inversa TRxNT é multiplicada pelos coeficientes de transformada para o bloco alvo. Entretanto, a RST inversa pode ser aplicada como a transformada primária inversa e, nesse caso, as amostras residuais para o bloco alvo podem ser derivadas quando a matriz RST inversa TRxNT é multiplicada pelos coeficientes de transformada para o bloco alvo.
[0133]Em um exemplo, se o tamanho do bloco ao qual a transformada inversa é aplicada for 8x8 e R =16 (isto é, R/N = 16/64 = 1/4), então a RST de acordo com Figura 6B pode ser expressa como uma operação de matriz conforme mostrado na Equação 7 abaixo. [Equação 7]
[0134]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, rj que representa 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 rj pode ser como no Equação 8.[Equação 8]
[0135]Como resultado do cálculo da Equação 8, r1 a rN que representam os coeficientes de transformada modificados para o bloco alvo ou as amostras residuais para o bloco alvo podem ser derivados. Quando considerado do ponto de vista do tamanho da matriz de transformada inversa, o tamanho da matriz de transformada inversa regular é 64x64 (NxN), porém o tamanho da matriz de transformada inversa reduzida é reduzido para 64x16 (RxN), então o uso de memória em um caso de realização da inversa RST pode ser reduzido por uma razão R/N quando comparado com um caso de realização da 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 (NxR).
[0136]Uma configuração de conjunto de transformadas mostrada na Tabela 2 também pode ser aplicada a uma RST 8x8. Ou seja, a RST 8x8 pode ser aplicada de acordo com um conjunto de transformadas na Tabela 2. Uma vez que o conjunto de transformadas inclui duas ou três transformadas (núcleos) de acordo com um modo de intrapredição, o mesmo pode ser configurado para selecionar até quatro transformadas incluindo aquelas em um caso em que nenhuma transformada secundária é aplicada. Em uma transformada em que nenhuma transformada secundária é aplicada, pode-se considerar aplicar uma matriz de identidade. Presumindo que os índices 0, 1, 2 e 3 sejam respectivamente atribuídos a quatro transformadas (por exemplo, o índice 0 pode ser alocado em um caso em que uma matriz de identidade é aplicada, ou seja, um caso em que nenhuma transformada secundária é aplicada), um índice NSST como um elemento de sintaxe pode ser sinalizado para cada bloco de coeficiente de transformada designando, desse modo que uma transformada seja aplicada. Ou seja, através do índice NSST, é possível designar uma NSST 8x8 para um bloco 8x8 esquerdo superior e designar uma RST 8x8 em uma configuração de RST. A NSST 8x8 e a RST 8x8 se referem a transformadas aplicáveis a uma região 8x8 incluída no bloco de coeficiente de transformada quando tanto W como H do bloco alvo a ser transformado são iguais ou maiores que 8, e a região 8x8 pode ser uma região 8x8 esquerda superior no bloco de coeficiente de transformada. De modo similar, uma NSST 4x4 e uma RST 4x4 se referem a transformadas aplicáveis a uma região 4x4 incluída no bloco de coeficiente de transformada quando tanto W como H do bloco alvo são iguais ou maiores que 4, e a região 4x4 pode ser uma região 4x4 esquerda superior no bloco de coeficiente de transformada.
[0137]Se a RST 8x8 (direta) ilustrada na Equação 4 for aplicada, 16 coeficientes de transformada válidos são gerados. Desse modo, se considera que 64 dados de entrada que formam a região 8x8 são reduzidos para 16 dados de saída, e apenas 1/4 da região é preenchido com coeficientes de transformada válidos a partir da perspectiva de uma região bidimensional. Consequentemente, os 16 dados de saída obtidos aplicando-se a RST 8x8 podem preencher a região esquerda superior (coeficientes de transformada 1 a 16) do bloco conforme mostrado na Figura 7.
[0138]A Figura 7 é um diagrama que ilustra uma ordem de varredura de coeficiente de transformada, de acordo com uma modalidade da presente revelação. Conforme descrito acima, quando a ordem de varredura direta começa a partir de um primeiro coeficiente de transformada, a varredura reversa pode ser realizada em direções e ordens indicadas pelas setas mostradas na Figura 7 de 64° a 17° coeficientes de transformada na ordem de varredura direta.
[0139]Na Figura 7, uma região 4x4 esquerda superior é uma região de interesse (ROI) preenchida com coeficientes de transformada válidos, e a região restante está vazia. A região vazia pode ser preenchida com 0 por padrão.
[0140]Ou seja, quando uma RST 8x8 com uma matriz de transformada direta 16x64 é aplicada à região 8x8, coeficientes de transformada de saída podem ser dispostos na região 4x4 esquerda superior, e a região em que nenhum coeficiente de transformada de saída existe pode ser preenchida com 0 (do 64° ao 17° coeficientes de transformada) de acordo com a ordem de varredura da Figura 7.
[0141]Se um coeficiente de transformada válido diferente de zero for encontrado fora da ROI da Figura 7, é certo que a RST 8x8 não foi aplicada e, desse modo a codificação de índice NSST pode ser omitida. Pelo contrário, se um coeficiente de transformada diferente de zero não for encontrado fora da ROI da Figura 7 (por exemplo, se um coeficiente de transformada for definido como 0 em uma região diferente da ROI em um caso em que a RST 8x8 é aplicada), a RST 8x8 provavelmente foi aplicada e, desse modo a codificação de índice NSST pode ser realizada. Essa codificação de índice NSST condicional pode ser realizada após um processo de codificação residual devido ao fato de que é necessário verificar a presença ou ausência de um coeficiente de transformada diferente de zero.
[0142]A presente revelação revela métodos para otimizar um projeto e uma associação de uma RST que pode ser aplicada a um bloco 4x4 a partir de uma estrutura RST descrita nessa modalidade. Alguns conceitos podem ser aplicados não apenas a uma RST 4x4, mas também a uma RST 8x8 ou outros tipos de transformadas.
[0143]A Figura 8 é um fluxograma que ilustra um processo de RST inversa, de acordo com uma modalidade da presente revelação.
[0144]Cada operação revelada na Figura 8 pode ser realizada pelo aparelho de decodificação 300 ilustrado na Figura 3. Especificamente, S800 pode ser realizada pelo desquantizador 321 ilustrado na Figura 3, e S810 e S820 podem ser realizadas pelo transformador inverso 322 ilustrado na Figura 3. Portanto, uma descrição dos detalhes específicos sobrepostos àqueles explicados acima com referência à Figura 3 será omitida ou será feita de maneira resumida. Na presente revelação, uma RST pode ser aplicada a uma transformada em uma direção direta, e uma RST inversa pode significar uma transformada aplicada a uma direção inversa.
[0145]Em uma modalidade, as operações específicas de acordo com a RST inversa podem ser diferentes das operações específicas de acordo com a RST apenas, pelo fato de que suas ordens de operação são opostas uma à outra, e as operações específicas de acordo com a RST inversa podem ser substancialmente similares às operações específicas de acordo com a RST. Consequentemente, uma pessoa versada na técnica entenderá prontamente que as descrições de S800 a S820 para a RST inversa descrita abaixo podem ser aplicadas à RST da mesma maneira ou similar.
[0146]O aparelho de decodificação 300, de acordo com uma modalidade, pode derivar os coeficientes de transformada realizando-se a desquantização nos coeficientes de transformada quantizados para o bloco alvo (S800).
[0147]O aparelho de decodificação 300 pode determinar se deve aplicar uma transformada secundária inversa após uma transformada primária inversa e antes da transformada secundária inversa. Por exemplo, a transformada secundária inversa pode ser uma NSST ou uma RST. Por exemplo, o aparelho de decodificação pode determinar se deve aplicar a transformada secundária inversa com base em um sinalizador de transformada secundária analisado a partir de um fluxo de bits. Em outro exemplo, o aparelho de decodificação pode determinar se deve aplicar a transformada secundária inversa com base em um coeficiente de transformada de um bloco residual.
[0148]O aparelho de decodificação 300 pode determinar uma transformada secundária inversa. Nesse caso, o aparelho de decodificação 300 pode determinar a transformada inversa secundária aplicada ao bloco atual com base em um conjunto de transformadas 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. Por exemplo, pode ser determinado aplicar uma RST ou LFNST apenas quando a DCT-2 for aplicada como um núcleo de transformada na transformada primária. Alternativamente, várias combinações de transformadas primárias e transformadas secundárias podem ser determinadas de acordo com o modo de intrapredição.
[0149]Ademais, em um exemplo, o aparelho de decodificação 300 pode determinar uma região na qual a transformada secundária inversa é aplicada com base no tamanho do bloco atual antes de determinar a transformada secundária inversa.
[0150]O aparelho de decodificação 300, de acordo com uma modalidade, pode selecionar um núcleo de transformada (S810). Mais especificamente, o aparelho de decodificação 300 pode selecionar o núcleo de transformada com base pelo menos em uma das informações sobre um índice de transformada, uma largura e altura de uma região na qual a transformada é aplicada, um modo de intrapredição usado na decodificação de imagem e um componente de cor do bloco alvo. Entretanto, o exemplo não se limita a isso e, por exemplo, o núcleo de transformada pode ser predefinido, e informações separadas para selecionar o núcleo de transformada não podem ser sinalizadas.
[0151]Em um exemplo, informações sobre o componente de cor do bloco alvo podem ser indicadas através de CIdx. Se o bloco alvo for um bloco luma, CIdx pode indicar 0, e se o bloco alvo for um bloco croma, por exemplo, um bloco Cb ou um bloco Cr, então CIdx pode indicar um valor diferente de zero (por exemplo, 1).
[0152]O aparelho de decodificação 300, de acordo com uma modalidade, pode aplicar a RST inversa aos coeficientes de transformada com base no núcleo de transformada selecionado e no fator reduzido (S820).
[0153]Doravante, é proposto um método para determinar um conjunto de NSST secundária, ou seja, um conjunto de transformadas secundárias ou um conjunto de transformadas, em vista de um modo de intrapredição e o tamanho de um bloco, de acordo com uma modalidade da presente revelação.
[0154]Em uma modalidade, um conjunto para um bloco de transformada atual pode ser configurado com base no modo de intrapredição descrito acima aplicando, desse modo um conjunto de transformadas que inclui núcleos de transformada que têm vários tamanhos para o bloco de transformada. Os conjuntos de transformada na Tabela 3 são expressos usando 0 a 3 como na Tabela 4.[Tabela 3][Tabela 4]
[0155]Os índices 0, 2, 18 e 34 ilustrados na Tabela 3 correspondem a 0, 1, 2 e 3 na Tabela 4, respectivamente. Na Tabela 3 e na Tabela 4, apenas quatro conjuntos de transformadas são usados em vez de 35 conjuntos de transformadas, reduzindo desse modo significativamente o espaço de memória.
[0156]Vários números de matrizes de núcleo de transformada que podem ser incluídos em cada conjunto de transformadas podem ser definidos conforme mostrado nas Tabelas a seguir.[Tabela 5][Tabela 6] [Tabela 7]
[0157]De acordo com a Tabela 5, dois núcleos de transformada disponíveis são usados para cada conjunto de transformadas e, consequentemente, um índice de transformada se situa na faixa de 0 a 2.
[0158]De acordo com a Tabela 6, dois núcleos de transformada disponíveis são usados para o conjunto de transformadas 0, ou seja, um conjunto de transformadas, de acordo com um modo DC e um modo planar dentre os modos de intrapredição, e um núcleo de transformada é usado para cada um dos conjuntos de transformadas restantes. Aqui, um índice de transformada disponível para o conjunto de transformadas 1 se situa na faixa de 0 a 2, e um índice de transformada para os conjuntos de transformadas restante 1 a 3 se situa na faixa de 0 a 1.
[0159]De acordo com a Tabela 7, um núcleo de transformada disponível é usado para cada conjunto de transformadas e, consequentemente, um índice de transformada se situa na faixa de 0 a 1.
[0160]No mapeamento de conjunto de transformadas da Tabela 3, um total de quatro conjuntos de transformadas pode ser usado, e os quatro conjuntos de transformadas podem ser reorganizados para serem distinguidos por índices 0, 1, 2 e 3, conforme mostrado na Tabela 4. A Tabela 8 e a Tabela 9 ilustram quatro conjuntos de transformadas disponíveis para a transformada secundária, em que a Tabela 8 apresenta matrizes de núcleo de transformada aplicáveis a um bloco 8x8, e a Tabela 9 apresenta matrizes de núcleo de transformada aplicáveis a um bloco 4x4. A Tabela 8 e a Tabela 9 incluem duas matrizes de núcleo de transformada por conjunto de transformadas, e duas matrizes de núcleo de transformada podem ser aplicadas a todos os modos de intrapredição, conforme mostrado na Tabela 5.
[0161]Todas as matrizes de núcleo de transformada ilustrativas mostradas na Tabela 8 são matrizes de núcleo de transformada multiplicadas por 128 como um valor de escalonamento. Em um arranjo g_aiNsst8x8[N1][N2][16][64] presente em arranjos de matriz da Tabela 8, N1 indica o número de conjuntos de transformadas (N1 é 4 ou 35, distinguido pelo índice 0, 1,..., e N1-1), N2 indica o número (1 ou 2) de matrizes de núcleo de transformada incluídos em cada conjunto de transformadas, e [16][64] indica uma transformada secundária reduzida 16x64 (RST).
[0162]Conforme mostrado na Tabela 3 e na Tabela 4, quando um conjunto de transformadas inclui uma matriz de núcleo de transformada, uma primeira matriz de núcleo de transformada ou uma segunda matriz de núcleo de transformada pode ser usada para o conjunto de transformadas na Tabela 8.
[0163]Embora 16 coeficientes de transformada sejam emitidos quando a RST é aplicada, apenas m coeficientes de transformada podem ser emitidos quando apenas uma porção mx64 de uma matriz 16x64 é aplicada. Por exemplo, quando apenas oito coeficientes de transformada são emitidos definindo-se m=8 e multiplicando apenas uma matriz 8x64 a partir do topo, é possível reduzir a quantidade computacional pela metade. Para reduzir a quantidade computacional no pior caso, uma matriz 8x64 pode ser aplicada a uma unidade de transformada 8x8 (TU).
[0164]Todas as matrizes de núcleo de transformada ilustrativas mostradas na Tabela 9 aplicáveis a uma região 4x4 são matrizes de núcleo de transformada multiplicadas por 128 como um valor de escalonamento. Em um arranjo g_aiNsst4x4[N1][N2][16][64] presente em arranjos de matriz da Tabela 9, N1 indica o número de conjuntos de transformadas (N1 é 4 ou 35, distinguido pelo índice 0, 1,..., e N1-1), N2 indica o número (1 ou 2) de matrizes de núcleo de transformada incluídos em cada conjunto de transformadas, e [16][16] indica uma transformada 16x16.
[0165]Conforme mostrado na Tabela 3 e na Tabela 4, quando um conjunto de transformadas inclui uma matriz de núcleo de transformada, uma primeira matriz de núcleo de transformada ou uma segunda matriz de núcleo de transformada pode ser usada para o conjunto de transformadas na Tabela 9.
[0166]Como na RST 8x8, apenas m coeficientes de transformada podem ser emitidos quando apenas uma porção mx16 de uma matriz 16x16 é aplicada. Por exemplo, quando apenas oito coeficientes de transformada são emitidos definindo-se m=8 e multiplicando apenas uma matriz 8x16 a partir do topo, é possível reduzir a quantidade computacional pela metade. Para reduzir a quantidade computacional no pior caso, uma matriz 8x16 pode ser aplicada a uma unidade de transformada 4x4 (TU).
[0167]Basicamente, as matrizes de núcleo de transformada aplicáveis a uma região 4x4, apresentada na Tabela 9, podem ser aplicadas a uma TU 4x4, uma TU 4xM e uma TU Mx4 (M> 4, a TU 4xM e a TU Mx4 podem ser divididas em regiões 4x4, às quais cada matriz de núcleo de transformada designada pode ser aplicada, ou as matrizes de núcleo de transformada podem ser aplicadas apenas a uma região 4x8 ou 8x4 esquerda superior máxima) ou podem ser aplicadas apenas a uma região 4x4 esquerda superior. Se a transformada secundária for configurada para ser aplicada apenas à região 4x4 esquerda superior, as matrizes de núcleo de transformada aplicáveis a uma região 8x8, mostrada na Tabela 8, podem ser desnecessárias.
[0168]As seguintes modalidades podem ser propostas a fim de reduzir a quantidade computacional em um pior caso. Doravante, uma matriz que incluir M fileiras e N colunas é expressa como uma matriz MxN, e a matriz MxN se refere a uma matriz de transformada aplicada em uma transformada direta, ou seja, quando o aparelho de codificação realiza uma transformada (RST). Consequentemente, na transformada inversa (RST inversa) realizada pelo aparelho de decodificação, uma matriz NxM obtida pela transposição da matriz MxN pode ser usada.
[0169]1) Em um caso de um bloco (por exemplo, uma unidade de transformada) que tem uma largura de W e uma altura de H em que W>8 e H>8, uma matriz de núcleo de transformada aplicável a uma região 8x8 é aplicada a uma região 8x8 esquerda superior do bloco. Em um caso em que W=8 e H=8, apenas uma porção 8 x 64 de uma matriz 16x64 pode ser aplicada. Ou seja, oito coeficientes de transformada podem ser gerados.
[0170]2) Em um caso de um bloco (por exemplo, uma unidade de transformada) que tem uma largura de W e uma altura de H em que uma dentre W e H é menor que 8, ou seja, uma dentre W e H é 4, uma matriz de núcleo de transformada aplicável a uma região 4x4 é aplicada a uma região esquerda superior do bloco. Em um caso em que W=4 e H=4, apenas uma porção 8x16 de uma matriz 16x16 pode ser aplicada, em cujo caso oito coeficientes de transformada são gerados.
[0171]Se (W, H)=(4, 8) ou (8, 4), uma transformada secundária é aplicada apenas à região 4x4 esquerda superior. Se W ou H for menor que 8, ou seja, se uma dentre W e H for igual a ou maior que 16 e a outra for 4, a transformada secundária é aplicada apenas a dois blocos 4x4 esquerdos superiores. Ou seja, apenas uma região 4x8 ou 8x4 esquerda superior pode ser dividida em dois blocos 4x4, e uma matriz de núcleo de transformada designada pode ser aplicada aos mesmos.
[0172]3) Em um caso de um bloco (por exemplo, uma unidade de transformada) que tem uma largura W e uma altura H, em que tanto W como H são 4, uma transformada secundária não pode ser aplicada.
[0173]4) Em um caso de um bloco (por exemplo, uma unidade de transformada) que tem uma largura W e uma altura H, o número de coeficientes gerados aplicando-se uma transformada secundária pode ser mantido como 1/4 ou menos da área da unidade de transformada (isto é, o número total de pixels incluídos na unidade de transformada = WxH). Por exemplo, quando tanto W como H forem 4, uma matriz 4x16 superior de uma matriz 16x16 pode ser aplicada de modo que quatro coeficientes de transformada sejam gerados.
[0174]Presumindo que uma transformada secundária seja aplicada apenas a uma região 8 x 8 esquerda superior de toda a unidade de transformada (TU), oito coeficientes ou menos precisam ser gerados para uma unidade de transformada 4x8 ou uma unidade de transformada 8x4 e, desse modo uma matriz 8x16 superior de uma matriz 16x16 pode ser aplicada a uma região 4x4 esquerda superior. Até uma matriz 16 x 64 pode ser aplicada a uma unidade de transformada 8x8 (até 16 coeficientes podem ser gerados). Em uma unidade de transformada 4xN ou Nx4 (N>16), uma matriz 16x16 pode ser aplicada a um bloco 4x4 esquerdo superior, ou uma matriz 8x16 superior da matriz 16x16 pode ser aplicada a dois blocos 4x4 esquerdos superiores. De modo similar, em uma unidade de transformada 4x8 ou unidade de transformada 8x4, oito coeficientes de transformada podem ser gerados aplicando-se uma matriz 4x16 superior da matriz 16x16 aos dois blocos 4x4 esquerdos superiores.
[0175]5) O tamanho máximo de uma transformada secundária aplicada a uma região 4x4 pode ser limitado a 8x16. Nesse caso, a quantidade de uma memória necessária para armazenar matrizes de núcleo de transformada aplicadas à região 4x4 pode ser reduzida pela metade em comparação com aquela de uma matriz 16x16.
[0176]Por exemplo, em todas as matrizes de núcleo de transformada mostradas na Tabela 9, o tamanho máximo pode ser limitado a 8x16 extraindo-se apenas uma matriz 8x16 superior de cada matriz 16x16, e um sistema de codificação de imagem real pode ser implementado para armazenar apenas matrizes 8x16 das matrizes de núcleo de transformada.
[0177]Se o tamanho de transformada aplicável máximo for 8x16 e o número máximo de multiplicações necessárias para gerar um coeficiente for limitado a 8, uma matriz de até 8x16 pode ser aplicada a um bloco 4x4, e uma matriz de até 8x16 pode ser aplicada a cada um dentre até dois blocos 4x4 esquerdos superiores incluídos em um bloco 4xN ou um bloco Nx4 (N>8, N=2n, n>3). Por exemplo, uma matriz 8 x 16 pode ser armazenada para um bloco 4 x 4 esquerdo superior em um bloco 4 x N ou um bloco N x 4 (N>8, N=2n, n>3).
[0178]De acordo com uma modalidade, ao codificar um índice especificando uma transformada secundária a ser aplicada a um componente de luma, especificamente, quando um conjunto de transformadas inclui duas matrizes de núcleo de transformada, é necessário especificar se deve aplicar a transformada secundária e qual matriz de núcleo de transformada aplicar na transformada secundária. Por exemplo, quando nenhuma transformada secundária é aplicada, um índice de transformada pode ser codificado como 0, e quando a transformada secundária é aplicada, índices de transformada para dois conjuntos de transformadas podem ser codificados como 1 e 2, respectivamente.
[0179]Nesse caso, ao codificar o índice de transformada, a codificação unária truncada pode ser usada. Por exemplo, códigos binários de 0, 10 e 11 podem ser respectivamente alocados em índices de transformada 0, 1 e 2 codificando, desse modo, os índices de transformada.
[0180]Além disso, ao codificar o índice de transformada por codificação unária truncada, contextos CABAC diferentes podem ser atribuídos a cada bin. Ao codificar os índices de transformada 0, 10 e 11 no exemplo acima, dois contextos CABAC podem ser usados.
[0181]Ao codificar um índice de transformada que especifica uma transformada secundária a ser aplicada a um componente de croma, especificamente, quando um conjunto de transformadas inclui duas matrizes de núcleo de transformada, é necessário especificar se deve aplicar a transformada secundária e qual matriz de núcleo de transformada aplicar na transformada secundária, de modo similar, a quando codifica o índice de transformada da transformada secundária para o componente de luma. Por exemplo, quando nenhuma transformada secundária é aplicada, um índice de transformada pode ser codificado como 0, e quando a transformada secundária é aplicada, índices de transformada para dois conjuntos de transformadas podem ser codificados como 1 e 2, respectivamente.
[0182]Nesse caso, ao codificar o índice de transformada, a codificação unária truncada pode ser usada. Por exemplo, códigos binários de 0, 10 e 11 podem ser respectivamente alocados em índices de transformada 0, 1 e 2 codificando, desse modo, os índices de transformada.
[0183]Além disso, ao codificar o índice de transformada por codificação unária truncada, contextos CABAC diferentes podem ser atribuídos a cada bin. Ao codificar os índices de transformada 0, 10 e 11 no exemplo acima, dois contextos CABAC podem ser usados.
[0184]De acordo com uma modalidade, um conjunto de contextos CABAC diferentes pode ser alocado de acordo com um modo de intrapredição croma. Por exemplo, quando os modos de intrapredição croma são divididos em modos não direcionais, tal como um modo planar ou um modo DC, e outros modos direcionais (isto é, divididos em dois grupos), um conjunto de contextos CABAC correspondentes (incluindo dois contextos) podem ser alocados para cada grupos ao codificar 0, 10 e 11 no exemplo acima.
[0185]Quando os modos de intrapredição croma são divididos em uma pluralidade de grupos e um conjunto de contextos CABAC correspondente é alocado, é necessário descobrir um valor de modo de intrapredição croma antes de codificar o índice de transformada de uma transformada secundária. Entretanto, em um modo direto croma (DM), uma vez que um valor de modo de intrapredição luma é usado como está, também é necessário descobrir um valor de modo de intrapredição para um componente de luma. Portanto, ao codificar informações sobre um componente de croma, pode ocorrer dependência de dados nas informações de componente de luma. Desse modo, no DM croma, ao codificar o índice de transformada da transformada secundária sem ter informações sobre o modo de intrapredição, a dependência de dados pode ser removida por mapeamento para um grupo específico. Por exemplo, se o modo de intrapredição croma for o DM croma, o índice de transformada pode ser codificado com o uso de um conjunto de contextos CABAC correspondentes presumindo que o modo planejador ou o modo DC, ou um conjunto de contextos CABAC correspondentes possa ser aplicado presumindo outros modos direcionais.
[0186]A Figura 9 é um fluxograma que ilustra uma operação de um aparelho de decodificação de vídeo, de acordo com uma modalidade da presente revelação.
[0187]Cada operação ilustrada na Figura 9 pode ser realizada pelo aparelho de decodificação 300 ilustrado na Figura 3. Especificamente, S910 pode ser realizada pelo decodificador de entropia 310 ilustrado na Figura 3, S920 pode ser realizada pelo desquantizador 321 ilustrado na Figura 3, S930 e S940 podem ser realizadas pelo transformador inverso 322 ilustrado na Figura 3, e S950 pode ser realizada pelo somador 340 ilustrado na Figura 3. As operações, de acordo com S910 a S950 se baseiam alguns dos detalhes anteriormente mencionados explicados com referência à Figura 4 a Figura 8. Portanto, uma descrição dos detalhes específicos sobrepostos àqueles explicados acima com referência à Figura 3 a Figura 8 será omitida ou será feita de maneira resumida.
[0188]O aparelho de decodificação 300, de acordo com uma modalidade, pode derivar coeficientes de transformada quantizados para um bloco alvo a partir de um fluxo de bits (S910). Especificamente, o aparelho de decodificação 300 pode decodificar informações sobre os coeficientes de transformada quantizados para o bloco alvo a partir do fluxo de bits e pode derivar os coeficientes de transformada quantizados para o bloco alvo com base nas informações sobre os coeficientes de transformada quantizados para o bloco alvo. As informações sobre os coeficientes de transformada quantizados para o bloco alvo podem ser incluídas 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 uma transformada reduzida (RST) é aplicada, informações sobre um fator reduzido, informações sobre um tamanho de transformada mínimo ao qual a RST é aplicada, informações sobre um tamanho de transformada máximo ao qual a RST é aplicada, informações sobre um tamanho de transformada inversa reduzido, e informações sobre um índice de transformada que indicam qualquer uma das matrizes de núcleo de transformada incluídas em um conjunto de transformadas.
[0189]O aparelho de decodificação 300, de acordo com uma modalidade, pode derivar coeficientes de transformada desquantizando-se os coeficientes de transformada quantizados para o bloco alvo (S920).
[0190]O aparelho de decodificação 300 de acordo com uma modalidade pode derivar coeficientes de transformada modificados com base em uma transformada secundária reduzida inversa (RST) dos coeficientes de transformada (S930).
[0191]Em um exemplo, a RST inversa pode ser realizada com base em uma matriz de transformada RST inversa, e a matriz de transformada RST inversa pode ser uma matriz não quadrada na qual o número de colunas é menor que o número de fileiras.
[0192]Em uma modalidade, S930 pode incluir decodificar um índice de transformada, determinar se uma condição para aplicar uma RST inversa é satisfeita com base no índice de transformada, selecionar uma matriz de núcleo de transformada, e aplicar a RST inversa aos coeficientes de transformada com base na matriz de núcleo de transformada selecionada e/ou no fator reduzido quando a condição para aplicar a RST inversa é satisfeita. Nesse caso, o tamanho de uma matriz de transformada inversa reduzida pode ser determinado com base no fator reduzido.
[0193]O aparelho de decodificação 300, de acordo com uma modalidade, pode derivar amostras residuais para o bloco alvo com base em uma transformada inversa dos coeficientes de transformada modificados (S940).
[0194]O aparelho de decodificação 300 pode realizar uma transformada primária inversa nos coeficientes de transformada modificados para o bloco alvo, em cujo caso uma transformada inversa reduzida pode ser aplicada ou uma transformada separável convencional pode ser usada como a transformada primária inversa.
[0195]O aparelho de decodificação 300, de acordo com uma modalidade, pode gerar amostras reconstruídas com base nas amostras residuais para o bloco alvo e amostras de predição para o bloco alvo (S950).
[0196]Com referência à S930, pode ser identificado que as amostras residuais para o bloco alvo são derivadas com base na RST inversa dos coeficientes de transformada para o bloco alvo. A partir da perspectiva do tamanho da matriz de transformada inversa, uma vez que o tamanho de uma matriz de transformada inversa regular é N x N, mas o tamanho da matriz RST inversa é reduzido para N x R, é possível reduzir o uso de memória em um caso de realização da RST inversa por uma razão R/N em comparação com àquela em um caso de realização de uma transformada regular. Ademais, o uso da matriz RST inversa pode reduzir o número de multiplicações (N x R) pela razão R/N, em comparação com o número de multiplicações N x N em um caso de uso da matriz de transformada inversa regular. Além disso, uma vez que apenas coeficientes de transformada R precisam ser decodificados quando a RST inversa é aplicada, o número total de coeficientes de transformada para o bloco alvo pode ser reduzido de N para R, em comparação com aquele em caso em que N coeficientes de transformada precisam ser decodificados quando uma transformada inversa regular é aplicada aumentando, desse modo a eficiência de decodificação. Ou seja, de acordo com S930, a eficiência de transformada (inversa) e a eficiência de decodificação do aparelho de decodificação 300 podem ser aumentadas através da RST inversa.
[0197]A Figura 10 é um fluxograma de controle que ilustra uma RST inversa, de acordo com uma modalidade da presente revelação.
[0198]O aparelho de decodificação 300 recebe informações sobre um índice de transformada e um modo de intrapredição a partir de um fluxo de bits (S1000).
[0199]Essas informações são recebias como informações de sintaxe, e as informações de sintaxe são recebidas como uma cadeia de bins incluindo 0 e 1.
[0200]O decodificador de entropia 310 pode derivar informações de binarização sobre um elemento de sintaxe para o índice de transformada.
[0201]Essa operação está gerando um conjunto de candidatos para um valor binário que o elemento de sintaxe do índice de transformada recebido pode ter. De acordo com essa modalidade, o elemento de sintaxe para o índice de transformada pode ser binarizado por codificação unária truncada.
[0202]O elemento de sintaxe para o índice de transformada, de acordo com essa modalidade, pode indicar se uma RST inversa é aplicada e uma das matrizes de núcleo de transformada incluídas em um conjunto de transformadas. Quando o conjunto de transformadas inclui duas matrizes de núcleo de transformada, o elemento de sintaxe para o índice de transformada pode ter três valores.
[0203]Ou seja, de acordo com uma modalidade, o valor do elemento de sintaxe para o índice de transformada pode incluir 0 que indica que a RST inversa não é aplicada a um bloco alvo, 1 que indica uma primeira matriz de núcleo de transformada das matrizes de núcleo de transformada, e 2 que indica uma segunda matriz de núcleo de transformada das matrizes de núcleo de transformada.
[0204]Nesse caso, os três valores do elemento de sintaxe para o índice de transformada podem ser codificados em 0, 10 e 11, respectivamente, de acordo com a codificação unária truncada. Ou seja, o valor do elemento de sintaxe de 0 pode ser binarizado em '0', o valor do elemento de sintaxe de 1 pode ser binarizado em '10', e o valor do elemento de sintaxe de 2 pode ser binarizado em '11'.
[0205]O decodificador de entropia 310 pode derivar informações de contexto, ou seja, um modelo de contexto, na cadeia de bins do índice de transformada (S1010) e pode decodificar bins da cadeia de bins do elemento de sintaxe com base nas informações de contexto (S1020).
[0206]Ou seja, o decodificador de entropia 310 recebe a cadeia de bins binarizada por codificação unária truncada e decodifica o elemento de sintaxe para o índice de transformada através do conjunto de candidatos para o valor binário.
[0207]De acordo com essa modalidade, diferentes informações de contexto, ou seja, diferentes modelos de probabilidade, podem ser aplicados a dois bins do índice de transformada, respectivamente. Ou seja, todos os dois bins do índice de transformada podem ser decodificados por um método de contexto, em vez de por um método de desvio, em que um primeiro bin dentre os bins do elemento de sintaxe para o índice de transformada podem ser decodificado com base nas primeiras informações de contexto, e um segundo bin dentre os bins do elemento de sintaxe para o índice de transformada pode ser decodificado com base nas segundas informações de contexto.
[0208]O valor do elemento de sintaxe para o índice de transformada aplicado ao bloco alvo entre valores binários que o elemento de sintaxe para o índice de transformada pode ter, pode ser derivado por essa decodificação baseada em informações de contexto (S1030).
[0209]Ou seja, qual dentre os índices de transformada de 0, 1 e 2 é aplicado ao bloco alvo atual pode ser derivado.
[0210]O transformador inverso 322 do aparelho de decodificação 300 determina um conjunto de transformadas com base em uma relação de mapeamento de acordo com o modo de intrapredição aplicado ao bloco alvo (S1040) e pode realizar uma RST inversa com base no conjunto de transformadas e no valor do elemento de sintaxe para o índice de transformada (S1050).
[0211]Conforme descrito acima, uma pluralidade de conjuntos de transformadas pode ser determinada de acordo com um modo de intrapredição de um bloco de transformada a ser transformado, e uma RST pode ser realizada com base em qualquer uma das matrizes de núcleo de transformada incluídas em um conjunto de transformadas indicado por um índice de transformada.
[0212]A Figura 11 é um fluxograma que ilustra uma operação de um aparelho de codificação de vídeo, de acordo com uma modalidade da presente revelação.
[0213]Cada operação ilustrada na Figura 11 pode ser realizada pelo aparelho de codificação 200 ilustrado na Figura 2. Especificamente, S1110 pode ser realizada pelo preditor 220 ilustrado na Figura 2, S1120 pode ser realizada pelo subtrator 231 ilustrado na Figura 2, S1130 e S1140 podem ser realizadas pelo transformador 232 ilustrado na Figura 2, e S1150 pode ser realizada pelo quantizador 233 e o codificador de entropia 240 ilustrado na Figura 2. As operações de acordo com S1110 a S1150 se baseiam em alguns dos conteúdos descritos na Figura 4 a Figura 8. Portanto, uma descrição dos detalhes específicos sobrepostos àqueles explicados acima com referência à Figura 4 a Figura 8 será omitida ou será feita de maneira resumida.
[0214]O aparelho de codificação 200, de acordo com uma modalidade, pode derivar amostras de predição com base em um modo de intrapredição aplicado a um bloco alvo (S1110).
[0215]O aparelho de codificação 200, de acordo com uma modalidade pode derivar amostras residuais para o bloco alvo (S1120).
[0216]O aparelho de codificação 200, de acordo com uma modalidade pode derivar coeficientes de transformada para o bloco alvo com base na transformada primária da amostra residual (S1130). A transformada primária pode ser realizada através uma pluralidade de núcleos de transformada, e os núcleos de transformada podem ser selecionados com base no modo de intrapredição.
[0217]O aparelho de decodificação 300 pode realizar uma transformada secundária, especificamente uma NSST, nos coeficientes de transformada para o bloco alvo, em cujo caso a NSST pode ser realizada com base em uma transformada reduzida (RST) ou sem se basear na RST. Quando a NSST é realizada com base na transformada reduzida, uma operação de acordo com S1140 pode ser realizada.
[0218]O aparelho de codificação 200, de acordo com uma modalidade, pode derivar coeficientes de transformada modificados para o bloco alvo com base na RST dos coeficientes de transformada (S1140). Em um exemplo, a RST pode ser realizada com base em uma matriz de transformada reduzida ou uma matriz de núcleo de transformada, e a matriz de transformada reduzida pode ser uma matriz não quadrada na qual o número de fileiras é menor que o número de colunas.
[0219]Em uma modalidade, S1140 pode incluir determinar se uma condição para aplicar a RST é satisfeita, gerar e codificar o índice de transformada com base na determinação, selecionar um núcleo de transformada, e aplicar a RST às amostras residuais com base na matriz de núcleo de transformada selecionada e/ou um fator reduzido quando a condição para aplicar a RST for satisfeita. Nesse caso, o tamanho da matriz de núcleo de transformada reduzida pode ser determinado com base no fator reduzido.
[0220]O aparelho de codificação 200, de acordo com uma modalidade, pode derivar coeficientes de transformada quantizados realizando-se a quantização com base nos coeficientes de transformada modificados para o bloco alvo e pode codificar informações sobre os coeficientes de transformada quantizados (S1150).
[0221]Especificamente, o aparelho de codificação 200 pode gerar as informações sobre os coeficientes de transformada quantizados e pode codificar as informações geradas sobre os coeficientes de transformada quantizados.
[0222]Em um exemplo, as informações sobre os coeficientes de transformada quantizados podem incluir pelo menos uma dentre informações sobre se a RST é aplicada, informações sobre o fator reduzido, informações sobre um tamanho de transformada mínimo ao qual a RST é aplicada e informações sobre um tamanho de transformada máximo ao qual a RST é aplicada.
[0223]Com referência à S1140, pode ser identificado que os coeficientes de transformada para o bloco alvo são derivados com base na RST das amostras residuais. A partir da perspectiva do tamanho da matriz de núcleo de transformada, uma vez que o tamanho de uma matriz de núcleo de transformada regular é N x N, porém o tamanho da matriz de transformada reduzida é reduzido para R x N, é possível reduzir o uso de memória em um caso de realização da RST por uma razão R/N em comparação com àquela em um caso de realização de uma transformada regular. Ademais, o uso da matriz de núcleo de transformada reduzida pode reduzir o número de multiplicações (R x N) pela razão R/N, em comparação com o número de multiplicações N x N em um caso de uso da matriz de núcleo de transformada regular. Além disso, uma vez que apenas os coeficientes de transformada R são derivados quando a RST é aplicada, o número total de coeficientes de transformada para o bloco alvo pode ser reduzido de N para R, em comparação com aquele em um caso em que N coeficientes de transformada são derivados quando uma transformada regular é aplicada reduzindo, desse modo a quantidade de dados transmitidos pelo aparelho de codificação 200 para o aparelho de decodificação 300. Ou seja, de acordo com S1140, a eficiência de transformada e a eficiência de codificação do aparelho de codificação 320 podem ser aumentadas através da RST.
[0224]A Figura 12 é um fluxograma de controle que ilustra uma RST, de acordo com uma modalidade da presente revelação.
[0225]Primeiro, o aparelho de codificação 200 pode determinar um conjunto de transformadas com base em uma relação de mapeamento, de acordo com um modo de intrapredição aplicado a um bloco alvo (S1200).
[0226]O transformador 232 pode derivar um coeficiente de transformada realizando-se uma RST com base em qualquer uma das matrizes de núcleo de transformada incluídas no conjunto de transformadas (S1210).
[0227]Nessa modalidade, o coeficiente de transformada pode ser um coeficiente de transformada modificado que resulta de uma transformada primária e, então uma transformada secundária, e duas matrizes de núcleo de transformada podem ser incluídas em cada conjunto de transformadas.
[0228]Quando a RST é realizada, as informações sobre a RST podem ser codificadas pelo codificador de entropia 240.
[0229]O codificador de entropia 240 pode derivar o valor de um elemento de sintaxe de um índice de transformada que indica qualquer uma das matrizes de núcleo de transformada incluídas no conjunto de transformadas (S1220).
[0230]O elemento de sintaxe para o índice de transformada, de acordo com essa modalidade, pode indicar se uma ) RST inversa é aplicada e qualquer uma das matrizes de núcleo de transformada incluídas no conjunto de transformadas. Quando o conjunto de transformadas inclui duas matrizes de núcleo de transformada, o elemento de sintaxe para o índice de transformada pode ter três valores.
[0231]De acordo com uma modalidade, o valor do elemento de sintaxe para o índice de transformada pode ser derivado como 0 que indica que a RST (inversa) não é aplicada a um bloco alvo, como 1 que indica uma primeira matriz de núcleo de transformada das matrizes de núcleo de transformada, ou como 2 que indica uma segunda matriz de núcleo de transformada das matrizes de núcleo de transformada.
[0232]O codificador de entropia 240 pode binarizar o valor derivado do elemento de sintaxe para o índice de transformada (S1230).
[0233]O codificador de entropia 240 pode binarizar os três valores do elemento de sintaxe para o índice de transformada em 0, 10 e 11 de acordo com a codificação unária truncada. Ou seja, o valor do elemento de sintaxe de 0 pode ser binarizado em '0', o valor do elemento de sintaxe de 1 pode ser binarizado em '10', e o valor do elemento de sintaxe de 2 pode ser binarizado em '11', e o codificador de entropia 240 pode binarizar o elemento de sintaxe derivado para o índice de transformada em um dentre '0', '10’ e '11'.
[0234]O codificador de entropia 240 pode derivar informações de contexto, ou seja, um modelo de contexto, em uma cadeia de bins do índice de transformada (S1240) e pode codificar bins da cadeia de bins do elemento de sintaxe com base nas informações de contexto (S1250).
[0235]De acordo com essa modalidade, diferentes informações de contexto podem ser aplicadas a dois bins do índice de transformada, respectivamente. Ou seja, todos os dois bins do índice de transformada podem ser codificados por um método de contexto, em vez de um método de desvio, em que um primeiro bin dos bins do elemento de sintaxe para o índice de transformada pode ser decodificado com base nas primeiras informações de contexto, e um segundo bin dos bins do elemento de sintaxe para o índice de transformada pode ser decodificado com base nas segundas informações de contexto.
[0236]A cadeia de bins codificada do elemento de sintaxe pode ser emitida como um fluxo de bits para o aparelho de decodificação 300 ou para o exterior.
[0237]Nas modalidades descritas acima, os métodos são explicados com base em fluxogramas por meio de uma série de etapas ou blocos, porém a presente revelação não se limita à ordem das etapas, e uma determinada etapa pode ser realizada na ordem ou etapa diferente daquela descrita acima ou simultaneamente com outra etapa. Ademais, pode ser compreendido por uma pessoa de habilidade comum 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 da presente revelação.
[0238]Os métodos descritos acima, de acordo com a presente revelaçã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 revelação, podem estar incluídos em um dispositivo para processamento de imagem, tal como uma TV, um computador, um smartphone, um decodificador de sinais, um dispositivo de exibição ou similares.
[0239]Quando as modalidades na presente revelação são incorporadas por software, os métodos descritos acima podem ser incorporados como módulos (processos, funções ou similares) para realizar 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 se situar dentro ou fora do processador e pode ser conectada ao processador de várias maneiras conhecidas. O processador pode incluir um circuito integrado de aplicação específica (ASIC), outro conjunto de chips, circuito lógico e/ou um dispositivo de processamento de dados. A memória pode incluir uma memória somente de 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 equivalente. Ou seja, as modalidades descritas na presente revelação podem ser incorporadas e realizadas em um processador, um microprocessador, um controlador ou um chip. Por exemplo, unidades de função mostradas em cada desenho podem ser incorporadas e realizadas em um computador, um processador, um microprocessador, um controlador ou um chip.
[0240]Ademais, o aparelho de decodificação e o aparelho de codificação aos quais a presente revelação é aplicada, podem ser incluídos em um transceptor de difusão de 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 chat vídeo, um dispositivo de comunicação em tempo real, tal como comunicação de vídeo, um dispositivo de difusão móvel, 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 transmissão contínua de Internet, um dispositivo de vídeo tridimensional (3D), um dispositivo de videotelefonia e um dispositivo de vídeo médico e podem ser usados 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 reprodutor de Blu-ray, uma TV com acesso à Internet, um sistema de home theater, um smartphone, um PC do tipo Tablet, um gravador de vídeo digital (DVR) e similares.
[0241]Além disso, o método de processamento ao qual a presente revelação é aplicada, pode ser produzido sob a forma de um programa executado por um computador, e ser armazenado em um meio de gravação legível por computador. Os dados de multimídia que têm uma estrutura de dados, de acordo com a presente revelação, também podem ser armazenados em um meio 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ídos nos quais os dados legíveis por computador são armazenados. O meio 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 de armazenamento de dados óptico. Ademais, o meio de gravação legível por computador inclui mídia incorporada sob a forma de uma onda portadora (por exemplo, transmissão através da 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 fio ou sem fio. Adicionalmente, as modalidades da presente revelação podem ser incorporadas como um produto de programa de computador por códigos de programa, e os código de programa podem ser executados em um computador pelas modalidades da presente revelação. Os códigos de programa podem ser armazenados em uma portadora legível por computador.
[0242]A Figura 13 ilustra a estrutura de um sistema de transmissão contínua de conteúdos ao qual a presente revelação é aplicada.
[0243]Ademais, o sistema de transmissão contínua de conteúdos ao qual a presente revelação é aplicado pode incluir amplamente um servidor de codificação, um servidor de transmissão contínua, um servidor web, um armazenamento de mídia, um equipamento de usuário e um dispositivo de entrada de multimídia.
[0244]O servidor de codificação funciona para compactar os dados digitais à entrada de conteúdos a partir dos dispositivos de entrada de multimídia, tais como smartphone, câmera, câmera de vídeo e similares, para gerar um fluxo de bits e para transmitir o mesmo para o servidor de transmissão contínua. Como outro exemplo, em um caso em que o dispositivo de entrada de multimídia, tal como, smartphone, câmera, câmera de vídeo ou similares, 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 revelação é aplicada. E o servidor de transmissão contínua pode armazenar o fluxo de bits temporariamente durante um processo para transmitir ou receber o fluxo de bits.
[0245]O servidor de transmissão contínua transmite dados multimídia para o equipamento de usuário com base em uma solicitação do usuário através do servidor da 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 transmissão contínua, e o servidor de transmissão contínua transmite dados de multimídia para o usuário. Nesse aspecto, o sistema de transmissão contínua de conteúdos pode incluir um servidor de controle separado e, nesse caso, o servidor de controle funciona para controlar comandos/respostas entre respectivos equipamentos no sistema de transmissão contínua de conteúdos.
[0246]O servidor de transmissão contínua pode receber conteúdo do armazenamento de mídia e/ou do servidor de codificação. Por exemplo, em um caso em os conteúdos são recebidos a partir do servidor de codificação, os conteúdos podem ser recebidos em tempo real. Nesse caso, o servidor de transmissão contínua pode armazenar o fluxo de bits por um período de tempo predeterminado para fornecer o serviço de transmissão contínua sem problemas.
[0247]Por exemplo, o equipamento de usuário pode incluir um telefone celular, um smartphone, um computador do tipo laptop, um terminal de difusão digital, um assistente digital pessoal (PDA), um reprodutor de multimídia portátil (PMP), uma navegação, um slate PC, um PC do tipo tablet, um ultrabook, um dispositivo vestível (por exemplo, um terminal do tipo relógio (relógio de pulso inteligente), um terminal do tipo óculos (óculos inteligentes), um dispositivo montado na cabeça (HMD)), uma TV digital, um computador desktop, uma sinalização digital ou similares. Cada um dos servidores no sistema de transmissão contínua de conteúdos pode ser operado como um servidor distribuído e, nesse caso, os dados recebidos por cada servidor podem ser processados de maneira distribuída.

Claims (11)

1. Método de decodificação de imagem realizado por um aparelho de decodificação, CARACTERIZADO pelo fato de que o método compreende: derivar coeficientes de transformada quantizados para um bloco alvo a partir de um fluxo de bits; derivar coeficientes de transformada através de desquantização com base nos coeficientes de transformada quantizados para o bloco alvo; derivar coeficientes de transformada modificados com base em uma transformada secundária inversa para os coeficientes de transformada; derivar amostras residuais para o bloco alvo com base em uma transformada primária inversa para os coeficientes de transformada modificados; e gerar uma foto reconstruída com base nas amostras residuais para o bloco alvo, em que a transformada secundária inversa é realizada com base em uma matriz de núcleo de transformada, em que a matriz de núcleo de transformada é obtida com base em um índice de transformada e um conjunto de transformadas, em que o índice de transformada representa pelo menos um dentre primeiras informações de índice, segundas informações de índice, e terceiras informações de índice, as primeiras informações de índice indicando a transformada secundária inversa não sendo aplicada ao bloco alvo, as segundas informações de índice indicando uma primeira matriz de núcleo de transformada como a matriz de núcleo de transformada para a transformada secundária inversa, e as terceiras informações de índice indicando uma segunda matriz de núcleo de transformada como a matriz de núcleo de transformada para a transformada secundária inversa, em que o conjunto de transformadas é determinado com base em um modo de intrapredição do bloco alvo, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo igual a 0 ou 1, como um primeiro valor de índice de conjunto de transformadas, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 2 e menor ou igual a 12, como um segundo valor de índice de conjunto de transformadas, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 13 e menor ou igual a 23, como um terceiro valor de índice de conjunto de transformadas, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 24 e menor ou igual a 44, como um quarto valor de índice de conjunto de transformadas, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 45 e menor ou igual a 55, como o terceiro valor de índice de conjunto de transformadas, e em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 56, como o segundo valor de índice de conjunto de transformadas.
2. Método de decodificação de imagem, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que compreende adicionalmente: derivar informações de contexto de um elemento de sintaxe para o índice de transformada, as informações de contexto incluindo primeiras informações de contexto e segundas informações de contexto; decodificar bins do elemento de sintaxe para o índice de transformada com base nas informações de contexto; e derivar um valor do elemento de sintaxe para o índice de transformada, em que um primeiro bin dos bins do elemento de sintaxe para o índice de transformada é decodificado com base nas primeiras informações de contexto, e um segundo bin dos bins do elemento de sintaxe para o índice de transformada é decodificado com base nas segundas informações de contexto.
3. Método de decodificação de imagem, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o valor do elemento de sintaxe é binarizado por um código unário truncado, e em que o valor do elemento de sintaxe de 0 corresponde às primeiras informações de índice e é binarizado em '0', o valor do elemento de sintaxe de 1 corresponde às segundas informações de índice e é binarizado em '10', e o valor do elemento de sintaxe de 2 corresponde às terceiras informações de índice e é binarizado em '11'.
4. Método de codificação de imagem realizado por um aparelho de codificação de imagem, CARACTERIZADO pelo fato de que o método compreende: derivar amostras de predição com base em um modo de intrapredição aplicado a um bloco alvo; derivar amostras residuais para o bloco alvo com base nas amostras de predição; derivar coeficientes de transformada para o bloco alvo com base em uma transformada primária para as amostras residuais; derivar coeficientes de transformada modificados com base em uma transformada secundária dos coeficientes de transformada; derivar coeficientes de transformada quantizados realizando-se quantização com base nos coeficientes de transformada modificados; determinar um conjunto de transformadas e uma matriz de núcleo de transformada; e gerar um índice de transformada que representa pelo menos um dentre primeiras informações de índice, segundas informações de índice, e terceiras informações de índice, as primeiras informações de índice indicando a transformada secundária inversa não sendo aplicada ao bloco alvo, as segundas informações de índice indicando uma primeira matriz de núcleo de transformada como a matriz de núcleo de transformada para a transformada secundária inversa, e as terceiras informações de índice indicando uma segunda matriz de núcleo de transformada como a matriz de núcleo de transformada para a transformada secundária inversa, em que o conjunto de transformadas é determinado com base no modo de intrapredição do bloco alvo, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo igual a 0 ou 1, como um primeiro valor de índice de conjunto de transformadas, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 2 e menor ou igual a 12, como um segundo valor de índice de conjunto de transformadas, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 13 e menor ou igual a 23, como um terceiro valor de índice de conjunto de transformadas, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 24 e menor ou igual a 44, como um quarto valor de índice de conjunto de transformadas, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 45 e menor ou igual a 55, como o terceiro valor de índice de conjunto de transformadas, e em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 56, como o segundo valor de índice de conjunto de transformadas.
5. Método de codificação de imagem, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que a geração do índice de transformada compreende: derivar um valor de um elemento de sintaxe para o índice de transformada; derivar informações de contexto do elemento de sintaxe para o índice de transformada, as informações de contexto incluindo primeiras informações de contexto e segundas informações de contexto; e codificar bins do elemento de sintaxe para o índice de transformada com base nas informações de contexto, e em que um primeiro bin dos bins do elemento de sintaxe para o índice de transformada é codificado com base nas primeiras informações de contexto, e um segundo bin dos bins do elemento de sintaxe para o índice de transformada é codificado com base nas segundas informações de contexto.
6. Método de codificação de imagem, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que o valor do elemento de sintaxe é binarizado por um código unário truncado, e em que o valor do elemento de sintaxe de 0 corresponde às primeiras informações de índice e é binarizado em '0', o valor do elemento de sintaxe de 1 corresponde às segundas informações de índice e é binarizado em '10', e o valor do elemento de sintaxe de 2 corresponde às terceiras informações de índice e é binarizado em '11'.
7. Método de codificação de imagem, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que uma pluralidade de modos de intrapredição que compreende o modo de intrapredição é mapeada para um conjunto de transformadas.
8. Meio de armazenamento legível por computador não transitório que armazena informações codificadas geradas por um método de codificação, CARACTERIZADO pelo fato de que o método compreende; derivar amostras de predição com base em um modo de intrapredição aplicado a um bloco alvo; derivar amostras residuais para o bloco alvo com base nas amostras de predição; derivar coeficientes de transformada para o bloco alvo com base em uma transformada primária para as amostras residuais; derivar coeficientes de transformada modificados com base em uma transformada secundária dos coeficientes de transformada; derivar coeficientes de transformada quantizados realizando-se quantização com base nos coeficientes de transformada modificados; determinar um conjunto de transformadas e uma matriz de núcleo de transformada; e gerar um índice de transformada que representa pelo menos um dentre primeiras informações de índice, segundas informações de índice, e terceiras informações de índice, as primeiras informações de índice indicando a transformada secundária inversa não sendo aplicada ao bloco alvo, as segundas informações de índice indicando uma primeira matriz de núcleo de transformada como a matriz de núcleo de transformada para a transformada secundária inversa, e as terceiras informações de índice indicando uma segunda matriz de núcleo de transformada como a matriz de núcleo de transformada para a transformada secundária inversa, em que o conjunto de transformadas é determinado com base no modo de intrapredição do bloco alvo, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo igual a 0 ou 1, como um primeiro valor de índice de conjunto de transformadas, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 2 e menor ou igual a 12, como um segundo valor de índice de conjunto de transformadas, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 13 e menor ou igual a 23, como um terceiro valor de índice de conjunto de transformadas, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 24 e menor ou igual a 44, como um quarto valor de índice de conjunto de transformadas, em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 45 e menor ou igual a 55, como o terceiro valor de índice de conjunto de transformadas, e em que o conjunto de transformadas é determinado, com base no modo de intrapredição sendo maior ou igual a 56, como o segundo valor de índice de conjunto de transformadas.
9. Meio de armazenamento legível por computador não transitório, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que a geração do índice de transformada compreende: derivar um valor de um elemento de sintaxe para o índice de transformada; derivar informações de contexto do elemento de sintaxe para o índice de transformada, as informações de contexto incluindo primeiras informações de contexto e segundas informações de contexto; e codificar bins do elemento de sintaxe para o índice de transformada com base nas informações de contexto, e em que um primeiro bin dos bins do elemento de sintaxe para o índice de transformada é codificado com base nas primeiras informações de contexto, e um segundo bin dos bins do elemento de sintaxe para o índice de transformada é codificado com base nas segundas informações de contexto.
10. Meio de armazenamento legível por computador não transitório, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o valor do elemento de sintaxe é binarizado por um código unário truncado, e em que o valor do elemento de sintaxe de 0 corresponde às primeiras informações de índice e é binarizado em '0', o valor do elemento de sintaxe de 1 corresponde às segundas informações de índice e é binarizado em '10', e o valor do elemento de sintaxe de 2 corresponde às terceiras informações de índice e é binarizado em '11'.
11. Meio de armazenamento legível por computador não transitório, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que uma pluralidade de modos de intrapredição que compreende o modo de intrapredição é mapeada para um conjunto de transformadas.
BR112021010422-4A 2018-12-06 2019-12-05 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 BR112021010422B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862775914P 2018-12-06 2018-12-06
US62/775,914 2018-12-06
PCT/KR2019/017104 WO2020116961A1 (ko) 2018-12-06 2019-12-05 이차 변환에 기반한 영상 코딩 방법 및 그 장치

Publications (2)

Publication Number Publication Date
BR112021010422A2 BR112021010422A2 (pt) 2021-09-28
BR112021010422B1 true BR112021010422B1 (pt) 2023-08-15

Family

ID=

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
AU2020360013B2 (en) Transform-based image coding method, and apparatus therefor
ES2954232T3 (es) Método de codificación de video basado en transformada secundaria y dispositivo para el mismo
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
JP7223208B2 (ja) 変換に基づく映像コーディング方法及びその装置
JP2023024623A (ja) 二次変換に基づく映像コーディング方法、及びその装置
JP2023033544A (ja) イントラ予測ベースの映像コーディングにおける変換
KR20220035154A (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
AU2024201210A1 (en) Transform-based image coding method and device therefor
JP2023053018A (ja) 変換に基づく映像コーディング方法及びその装置
ES2953235T3 (es) Codificación de imágenes basada en transformadas
KR20220027986A (ko) 필터링을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
KR20220024499A (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
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
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
RU2806283C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2803184C1 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2811986C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2803457C2 (ru) Способ кодирования изображения на основе преобразования и устройство для его осуществления
RU2781079C1 (ru) Преобразование при кодировании изображений на основе внутреннего прогнозирования
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
BR112021011225B1 (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
BR122022006649B1 (pt) Método de decodificação de imagem realizado por um aparelho de decodificação, aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação, aparelho de codificação, meio de armazenamento legível por computador não transitório, método de transmissão de dados para uma imagem e aparelho de transmissão para transmissão de dados para uma imagem