CAMPO DA TÉCNICA
[001] A presente invenção refere-se a um processamento de vídeo, e mais especificamente, a um método e um aparelho para transformar vídeo.
FUNDAMENTOS DA TÉCNICA
[002] Recentemente, demandas para vídeos de alta resolução e alta qualidade, tal como vídeos de alta definição (HD) e ultra-alta definição (UHD), estão aumentando.
[003] Para prover vídeos com resolução mais alta e qualidade mais alta, a quantidade de dados de vídeo aumenta. Consequentemente, os custos para transmitir e armazenar dados de vídeo aumentam de modo a prover vídeos de alta qualidade se comparado com os métodos de processamento de dados de vídeo convencionais. De modo a resolver estes problemas que ocorrem de acordo com um aumento em resolução e qualidade de dados de vídeo, técnicas de compressão de vídeo de alta eficiência podem ser utilizadas.
[004] Para a compressão de dados de vídeo, vários esquemas técnicos são utilizados tal como a interpredição a qual prediz os valores de pixel incluídos em uma imagem corrente de outras imagens, a interpredição a qual prediz os valores de pixel incluídos em uma imagem corrente utilizando informações sobre outros pixels dentro da imagem corrente, e um método de codificação/decodificação de entropia o qual aloca códigos mais curtos a sinais que frequentemente ocorrem ou aparecem.
DESCRIÇÃO
PROBLEMA TÉCNICO
[005] Um aspecto da presente invenção é prover um método de codificação de vídeo e um aparelho de codificação de vídeo para aumentar o desempenho de codificação de vídeo.
[006] Outro aspecto da presente invenção é prover um método de decodificação de vídeo e um aparelho de decodificação de vídeo para aumentar o desempenho de decodificação de vídeo.
[007] Ainda outro aspecto da presente invenção é prover um método de transformada e um aparelho de transformada para aumentar o desempenho de codificação de vídeo.
[008] Ainda outro aspecto da presente invenção é prover um método de transformada inversa e um aparelho de transformada inversa para aumentar o desempenho de decodificação de vídeo.
SOLUÇÃO TÉCNICA
[009] Uma modalidade da presente invenção provê um método de decodificação de vídeo. O método de decodificação de vídeo pode incluir determinar um modo de predição que corresponde a um bloco de componente de croma, determinar um modo de salto de transformada (TSM) do bloco de componente de croma, entre uma pluralidade de candidatos de modo de salto de transformada, com base no modo de predição que corresponde ao bloco de componente de croma; e executar uma transformada inversa sobre o bloco de componente de croma com base no modo de salto de transformada determinado. A pluralidade de candidatos de modo de salto de transformada pode compreender pelo menos um de um modo de transformada bidirecional (2D) o qual executa tanto uma transformada horizontal quanto uma transformada vertical, um modo de transformada horizontal o qual executa uma transformada horizontal, um modo de transformada vertical o qual executa uma transformada vertical e um modo de não transformada o qual não executa uma transformada.
[0010] Quando o modo de predição que corresponde ao bloco de componente de croma é um intermodo, a determinação do modo de salto de transformada do bloco de componente de croma pode incluir determinar um modo de salto de transformada de um bloco de componente de luma que corresponde ao bloco de componente de croma como o modo de salto de transformada do bloco de componente de croma.
[0011] Quando o modo de predição que corresponde ao bloco de componente de croma é um intramodo, a determinação do modo de salto de transformada do bloco de componente de croma pode incluir determinar um modo de intrapredição do bloco de componente de croma, e determinar um modo de salto de transformada do bloco de componente de croma com base no modo de intrapredição determinado.
[0012] Quando o modo de intrapredição determinado do bloco de componente de croma é um modo de DM, a determinação do modo de salto de transformada do bloco de componente de croma pode incluir determinar um modo de salto de transformada de um bloco de componente de luma que corresponde ao bloco de componente de croma como o modo de salto de transformada do bloco de componente de croma, e o modo de DM pode ser um modo no qual um modo de intrapredição do bloco de componente de luma é utilizado como o modo de intrapredição do bloco de componente de croma.
[0013] Quando o modo de intrapredição determinado do bloco de componente de croma é um modo horizontal, a pluralidade de candidatos de modo de salto de transformada pode incluir o modo de transformada 2D, o modo de transformada vertical e o modo de não transformada exceto para o modo de transformada horizontal.
[0014] Quando o modo de intrapredição determinado do bloco de componente de croma é um modo vertical, a pluralidade de candidatos de modo de salto de transformada pode incluir o modo de transformada 2D, o modo de transformada horizontal e modo de não transformada exceto para o modo de transformada vertical.
[0015] Quando o modo de intrapredição determinado do bloco de componente de croma é um modo de DC, a pluralidade de candidatos de modo de salto de transformada pode incluir o modo de transformada 2D e o modo de não transformada exceto para o modo de transformada horizontal e o modo de transformada vertical.
[0016] Quando o modo de intrapredição determinado do bloco de componente de croma é um modo de LM, a pluralidade de candidatos de modo de salto de transformada pode incluir o modo de transformada 2D e o modo de não transformada exceto para o modo de transformada horizontal e o modo de transformada vertical, e o modo de LM pode ser um modo no qual um valor de pixel predito de um componente de croma é determinado com base em um valor de pixel de um componente de luma.
[0017] Outra modalidade da presente invenção provê um aparelho de decodificação de vídeo. O aparelho de decodificação de vídeo pode incluir um módulo de predição configurado para determinar um modo de predição que corresponde a um bloco de componente de croma e um módulo de transformada inversa configurada para determinar um modo de salto de transformada (TSM) do bloco de componente de croma, entre uma pluralidade de candidatos de modo de salto de transformada, com base no modo de predição que corresponde ao bloco de componente de croma e executar uma transformada inversa sobre o bloco de componente de croma com base no modo de salto de transformada determinado. A pluralidade de candidatos de modo de salto de transformada pode incluir pelo menos um de um modo de transformada bidirecional (2D) o qual executa tanto uma transformada horizontal quanto uma transformada vertical, um modo de transformada horizontal o qual executa uma transformada horizontal, um modo de transformada vertical o qual executa uma transformada vertical, e um modo de não transformada o qual não executa uma transformada.
[0018] Ainda outra modalidade da presente invenção provê um método de codificação de vídeo. O método de codificação de vídeo pode incluir determinar um modo de predição que corresponde a um bloco de componente de croma, determinar um modo de salto de transformada (TSM) do bloco de componente de croma, entre uma pluralidade de candidatos de modo de salto de transformada, com base no modo de predição que corresponde ao bloco de componente de croma; e executar uma transformada sobre o bloco de componente de croma com base no modo de salto de transformada determinado. A pluralidade de candidatos de modo de salto de transformada pode incluir pelo menos um de um modo de transformada bidirecional (2D) o qual executa tanto uma transformada horizontal quanto uma transformada vertical, um modo de transformada horizontal o qual executa uma transformada horizontal, um modo de transformada vertical o qual executa uma transformada vertical e um modo de não transformada o qual não executa uma transformada.
[0019] Quando o modo de predição que corresponde ao bloco de componente de croma é um intermodo, a determinação do modo de salto de transformada do bloco de componente de croma pode incluir determinar um modo de salto de transformada de um bloco de componente de luma que corresponde ao bloco de componente de croma como o modo de salto de transformada do bloco de componente de croma.
[0020] Quando o modo de predição do bloco de componente de croma é um intramodo, a determinação do modo de salto de transformada do bloco de componente de croma pode incluir determinar um modo de intrapredição do bloco de componente de croma, e determinar um modo de salto de transformada do bloco de componente de croma com base no modo de intrapredição determinado.
[0021] Quando o modo de intrapredição determinado do bloco de componente de croma é um modo de DM, a determinação do modo de salto de transformada do bloco de componente de croma pode incluir determinar um modo de salto de transformada de um bloco de componente de luma que corresponde ao bloco de componente de croma como o modo de salto de transformada do bloco de componente de croma, e o modo de DM pode ser um modo no qual um modo de intrapredição do bloco de componente de luma é utilizado como o modo de intrapredição do bloco de componente de croma.
[0022] Quando o modo de intrapredição determinado do bloco de componente de croma é um modo horizontal, a pluralidade de candidatos de modo de salto de transformada pode incluir o modo de transformada 2D, o modo de transformada vertical e o modo de não transformada exceto para o modo de transformada horizontal.
[0023] Quando o modo de intrapredição determinado do bloco de componente de croma é um modo vertical, a pluralidade de candidatos de modo de salto de transformada pode incluir o modo de transformada 2D, o modo de transformada horizontal e modo de não transformada exceto para o modo de transformada vertical.
[0024] Quando o modo de intrapredição determinado do bloco de componente de croma é um modo de DC, a pluralidade de candidatos de modo de salto de transformada pode incluir o modo de transformada 2D e o modo de não transformada exceto para o modo de transformada horizontal e o modo de transformada vertical.
[0025] Quando o modo de intrapredição determinado do bloco de componente de croma é um modo de LM, a pluralidade de candidatos de modo de salto de transformada pode incluir o modo de transformada 2D e o modo de não transformada exceto para o modo de transformada horizontal e o modo de transformada vertical, e o modo de LM pode ser um modo no qual um valor de pixel predito de um componente de croma é determinado com base em um valor de pixel de um componente de luma.
[0026] Ainda outra modalidade da presente invenção provê um aparelho de codificação de vídeo. O aparelho de codificação de vídeo pode incluir um módulo de predição configurado para determinar um modo de predição que corresponde a um bloco de componente de croma e um módulo de transformada configurado para determinar um modo de salto de transformada (TSM) do bloco de componente de croma, entre uma pluralidade de candidatos de modo de salto de transformada, com base no modo de predição que corresponde ao bloco de componente de croma e executar uma transformada sobre o bloco de componente de croma com base no modo de salto de transformada determinado. A pluralidade de candidatos de modo de salto de transformada pode incluir pelo menos um de um modo de transformada bidirecional (2D) o qual executa tanto uma transformada horizontal quanto uma transformada vertical, um modo de transformada horizontal o qual executa uma transformada horizontal, um modo de transformada vertical o qual executa uma transformada vertical, e um modo de não transformada o qual não executa uma transformada.
EFEITOS VANTAJOSOS
[0027] De acordo com um método de codificação de vídeo da presente invenção, o desempenho de codificação de vídeo pode ser melhorado.
[0028] De acordo com um método de decodificação de vídeo da presente invenção, o desempenho de decodificação de vídeo pode ser melhorado.
[0029] De acordo com um método de transformada/transformada inversa da presente invenção, o desempenho de codificação/decodi- ficação de vídeo pode ser melhorado.
DESCRIÇÃO DE DESENHOS
[0030] Figura 1 é um diagrama de blocos que ilustra uma configuração de um aparelho de codificação de vídeo de acordo com uma modalidade exemplar da presente invenção.
[0031] Figura 2 é um diagrama de blocos que ilustra uma configuração de um aparelho de decodificação de vídeo de acordo com uma modalidade exemplar da presente invenção.
[0032] Figura 3 ilustra esquematicamente um método de transformada com base em um modo de transformada de acordo com uma modalidade exemplar da presente invenção.
[0033] Figura 4 é um fluxograma que ilustra esquematicamente um processo de transformada do aparelho de codificação de acordo com uma modalidade exemplar da presente invenção.
[0034] Figura 5 é um fluxograma que ilustra esquematicamente um processo de transformada do aparelho de decodificação de acordo com uma modalidade exemplar da presente invenção.
[0035] Figura 6 ilustra um método para determinar um modo de salto de transformada de um bloco de componente de croma com base em um modo de intrapredição que corresponde ao bloco de componente de croma.
[0036] Figura 7 é um fluxograma que ilustra esquematicamente um método de codificação de acordo com uma modalidade exemplar da presente invenção.
[0037] Figura 8 é um fluxograma que ilustra esquematicamente um método de decodificação de acordo com uma modalidade exemplar da presente invenção.
MODO PARA A INVENÇÃO
[0038] Apesar dos elementos ilustrados nos desenhos serem independentemente mostrados de modo a representar diferentes funções distintivas em um aparelho de codificação/aparelho de decodificação de vídeo, tal configuração não indica que cada elemento está construído por um hardware constituinte ou software constituinte separado. Isto é, os elementos estão independentemente dispostos para conveniência de descrição, em que pelo menos dois elementos podem ser combinados em um único elemento, ou um único elemento pode ser dividido em uma pluralidade de elementos para executar as funções. Deve ser notado que as modalidades nas quais alguns elementos estão integrados em um elemento combinado e/ou um elemento está dividido em múltiplos elementos separados estão incluídas no escopo da presente invenção sem afastar da essência da invenção.
[0039] Daqui em diante, as modalidades ilustradas da invenção serão descritas em detalhes com referência aos desenhos acompanhantes, os números de referência iguais nos desenhos referem-se a elementos iguais através de tudo, e as descrições redundantes de elementos iguais serão aqui omitidas.
[0040] A Figura 1 é um diagrama de blocos que ilustra uma configuração de um aparelho de codificação de vídeo de acordo com uma modalidade exemplar da presente invenção. Referindo à Figura 1, o aparelho de codificação de vídeo pode incluir um módulo de particionamento de imagem 110, um módulo de interpredição 120, um módulo de intrapredição 125, um módulo de transformada 130, um módulo de quantização 135, um módulo de dequantização 140, um módulo de transformada inversa 145, um módulo de filtro 150, uma memória 155, um módulo de redisposição 160 e um módulo de codificação de entropia 165.
[0041] O módulo de particionamento de imagem 110 pode dividir uma imagem de entrada corrente em uma ou mais unidades de codificação. Uma unidade de codificação (CU) é uma unidade de processamento de codificação no aparelho de codificação de vídeo e pode ser recursivamente dividida com informações de profundidade com base em uma estrutura de árvore quad. Uma CU pode ter diferentes tamanhos de 8 x 8, 16 x 16, 32 x 32 e 64 x 64. Uma CU com um tamanho máximo pode ser referida como uma maior unidade de codificação (LCU), e uma CU com um tamanho mínimo como uma menor unidade de codificação (SCU).
[0042] Ainda, o módulo de particionamento de imagem 110 pode dividir uma CU para gerar uma unidade de predição (PU) e uma unidade de transformada (TU). A PU pode ser menor do que ou a mesma que uma CU, e pode não necessariamente ser um bloco quadrado mas ser um bloco retangular.
[0043] Geralmente, a intrapredição pode ser executada por uma unidade de 2N*2N ou N*N blocos. Aqui, N é um número natural que representa um número de pixels, e 2N*2N ou N*N pode representar um tamanho de PU (e/ou modo de partição). Ainda, a interpredição pode ser executada por uma unidade de 2N*2N, 2N*N, N*2N ou N*N blocos. Aqui, N é um número natural que representa um número de pixels, e 2N*2N, 2N*N, N*2N ou N*N pode representar um tamanho de PU (e/ou modo de partição). Ainda, a interpredição pode ser executada por uma unidade de 2NxnU, 2NxnD, nLx2N ou nRx2N PUs, além das 2N*2N, 2N*N, N*2N ou N*N PUs, de modo a melhorar a eficiência em interpredição. Aqui, 2NxnU, 2NxnD, nLx2N ou nRx2N pode representar um tamanho de PU (e/ou modo de partição). Nos modos de partição 2NxnU e 2NxnD, uma PU pode ter um tamanho de 2Nx(1/2)N ou 2Nx(3/2)N, enquanto que nos modos de partição nLx2N e nRx2N, uma PU pode ter um tamanho de (1/2)Nx2N ou (3/2)Nx2N.
[0044] Em um modo de interpredição, o módulo de interpredição 120 pode executar uma estimativa de movimento (ME) e uma compensação de movimento (MC). O módulo de interpredição 120 pode gerar um bloco de predição com base em informações sobre pelo menos uma de imagens prévias e subsequentes da imagem corrente.
[0045] O módulo de interpredição 120 pode executar uma estimativa de movimento com base em um bloco alvo de predição dividido e pelo menos um bloco de referência armazenado na memória 155. O módulo de interpredição 120 pode gerar informações de movimento que incluem um vetor de movimento (MV), um índice de bloco de referência e um modo de predição como um resultado de estimativa de movimento.
[0046] Ainda, o módulo de interpredição 120 pode executar uma compensação de movimento utilizando as informações de movimento e o bloco de referência. Aqui, o módulo de interpredição 120 pode gerar e emitir um bloco de predição que corresponde ao bloco de entrada do bloco de referência.
[0047] Em um modo de intrapredição, o módulo de intrapredição 125 pode gerar um bloco de predição com base em informações sobre um pixel dentro da imagem corrente. No modo de intrapredição, o módulo de intrapredição 125 pode executar uma predição para um bloco corrente com base em um bloco alvo de predição e um bloco reconstruído previamente reconstruído através de transformação e quantização. Aqui, o bloco reconstruído pode ser uma imagem reconstruída que não foi executada filtragem.
[0048] No módulo de interpredição ou módulo de intrapredição acima descritos, a predição pode ser executada sobre um bloco alvo de predição para gerar um bloco de predição. Aqui, um bloco residual pode ser gerado com base em um valor diferencial entre o bloco alvo de predição e o bloco de predição gerado.
[0049] O módulo de transformada 130 pode transformar um bloco residual por cada TU para gerar um coeficiente de transformada. Uma TU pode ter uma estrutura de árvore dentro de tamanhos máximo e mínimo. Pode ser indicado através de um sinalizador se um bloco corrente está dividido em sub-blocos por cada TU. O módulo de transformada 130 pode executar uma transformada utilizando uma transformada de cosseno discreta (DCT) e/ou uma transformada de seno discreta (DST).
[0050] O módulo de quantização 135 pode quantizar o coeficiente transformado pelo módulo de transformada 130. Um coeficiente de quantização pode mudar de acordo com um bloco ou importância de uma imagem. O coeficiente de transformada quantizado pode ser provido para o módulo redisposição 160 e o módulo de dequantização 140.
[0051] O módulo redisposição 160 pode dispor um bloco bidimensional dos coeficientes de transformada quantizados em um vetor unidimensional de coeficientes de transformada por escaneamento de modo a melhorar a eficiência de codificação de entropia. O módulo redisposição 160 pode mudar a ordem de escaneamento com base em estatísticas estocásticas de modo a melhorar a eficiência de codificação de entropia.
[0052] O módulo de codificação de entropia 165 pode codificar em entropia os valores obtidos pelo módulo redisposição 160. Em codificação de entropia, a um valor de elemento de sintaxe que ocorre mais frequentemente pode ser alocado uma palavra de código de menores números de bits, enquanto que a um valor de elemento de sintaxe que ocorre menos frequentemente pode ser alocado uma palavra de código de mais números de bits. Assim, um tamanho de uma cadeia de bits para símbolos a serem codificados pode ser reduzido para melhorar o desempenho de compressão de codificação de vídeo. Vários métodos de codificação, tal como codificação de Golomb exponencial, codificação de comprimento variável adaptável a contexto (CAVLC) e/ou codificação aritmética binária adaptável ao contexto (CABAC), podem ser utilizados para codificação de entropia. As informações codificadas podem ser formadas em um fluxo de bits comprimido e serem transmitidas através de uma camada de abstração de rede (NAL) ou armazenadas.
[0053] O módulo de dequantização 140 pode dequantizar os coeficientes de transformada quantizados pelo módulo de quantização 135, e o módulo de transformada inversa 145 pode transformar inversa os coeficientes de transformada dequantizados para gerar um bloco residual reconstruído. O bloco residual reconstruído pode ser mesclado com o bloco de predição gerado pelo módulo de interpredição 120 ou o módulo de intrapredição 125 para gerar um bloco reconstruído. O bloco reconstruído pode ser provido para o módulo de intrapredição 125 e o módulo de filtro 150.
[0054] O módulo de filtro 150 pode filtrar o bloco residual reconstruído utilizando um filtro de desbloqueio, um deslocamento adaptável de amostra (SAO) e/ou um filtro de loop adaptável (ALF). O filtro de desbloqueio pode filtrar o bloco reconstruído de modo a remover uma distorção sobre os limites entre os blocos que ocorre em codificação e decodificação. O SAO é um processo de filtragem de loop a ser executado sobre o bloco residual ao qual o filtro de desbloqueio é aplicado para compensar uma diferença de deslocamento de uma imagem original por um pixel. Um deslocamento de banda e um deslocamento de borda podem ser aplicados através do SAO. O deslocamento de banda pode dividir um pixel em 32 bandas de acordo com a intensidade e aplicar deslocamentos para dois grupos divididos de 16 bandas sobre uma área de borda e 16 bandas em uma área central. O ALF pode executar uma filtragem de modo a minimizar um erro entre o bloco alvo de predição e o bloco finalmente reconstruído. O ALF pode executar uma filtragem com base em um valor obtido comparando o bloco reconstruído filtrado pelo filtro de desbloqueio com o bloco alvo de predição corrente, e as informações de coeficiente de filtro no ALF podem ser carregadas sobre um cabeçalho de fatia e transmitidas do aparelho de codificação para o aparelho de decodificação.
[0055] A memória 155 pode armazenar o bloco finalmente reconstruído através do módulo de filtro 150, e o bloco finalmente reconstruído pode ser provido para o módulo de interpredição 120 que executa uma interpredição.
[0056] A Figura 2 é um diagrama de blocos que ilustra uma configuração de um aparelho de decodificação de vídeo de acordo com uma modalidade exemplar da presente invenção. Referindo à Figura 2, o aparelho de decodificação de vídeo pode incluir um módulo de decodificação de entropia 210, um módulo de redisposição 215, um módulo de dequantização 220, um módulo de transformada inversa 225, um módulo de interpredição 230, um módulo de intrapredição 235, um módulo de filtro 240 e uma memória 245.
[0057] O módulo de decodificação de entropia 210 pode receber um fluxo de bits comprimido com um NAL. O módulo de decodificação de entropia 210 pode decodificar em entropia o fluxo de bits recebido e também decodificar em entropia um modo de predição e informações de vedor de movimento se o fluxo de bits incluir o modo de predição e as informações de vedor de movimento. Quando uma decodificação de entropia é utilizada, a um valor de elemento de sintaxe que ocorre mais frequentemente pode ser alocado uma palavra de código de menores números de bits, enquanto que a um valor de elemento de sintaxe que ocorre menos frequentemente pode ser alocado uma palavra de código de mais números de bits. Assim, um tamanho de uma cadeia de bits para símbolos a serem codificados pode ser reduzido para melhorar o desempenho de compressão de codificação de vídeo.
[0058] Um coeficiente de transformada decodificado em entropia ou sinal residual pode ser provido para o módulo de redisposição 215. O módulo de redisposição 215 pode escanear inversamente o coeficiente de transformada decodificado ou o sinal residual para gerar um bloco 2D de coeficientes de transformada.
[0059] O módulo de dequantização 220 pode dequantizar os coeficientes de transformada predispostos. O módulo de transformada inversa 225 pode transformar inversamente os coeficientes de transformada dequantizados para gerar um bloco residual.
[0060] O bloco residual pode ser mesclado com um bloco de predição gerado pelo módulo de interpredição 230 ou o módulo de intrapredição 235 para gerar um bloco reconstruído. O bloco reconstruído pode ser provido para o módulo de intrapredição 235 e o módulo de filtro 240. O módulo de interpredição 230 e o módulo de intrapredição 235 executam operações as quais são as mesmas que ou equivalentes àquelas do módulo de interpredição 120 e do módulo de intrapredição 125 do aparelho de codificação de vídeo, e assim as suas descrições serão aqui omitidas.
[0061] O módulo de filtro 240 pode filtrar o bloco reconstruído utilizando um filtro de desbloqueio, um SAO e/ou um ALF. O filtro de desbloqueio pode filtrar o bloco reconstruído para remover uma distorção sobre um limite entre os blocos que ocorre em codificação e decodificação. O SAO pode ser aplicado ao bloco reconstruído filtrado pelo filtro de desbloqueio por uma unidade de um pixel para reduzir uma diferença de uma imagem original. O ALF pode filtrar o bloco reconstruído através do SAO de modo a minimizar um erro entre o bloco alvo de predição e o bloco finalmente reconstruído.
[0062] A memória 245 pode armazenar o bloco finalmente reconstruído obtido através do módulo de filtro 240, e o bloco finalmente reconstruído armazenado pode ser provido para o módulo de interpredição 230 que executa uma interpredição.
[0063] Daqui em diante, um bloco pode referir a uma unidade de processamento para codificação e decodificação de vídeo. Assim, nesta especificação, um bloco pode significar uma CU, PU ou TU.
[0064] Geralmente, um sinal de vídeo pode incluir sinais que especificam a quantidade de três cores primárias de componentes de luz. As três cores de sinais podem ser representadas por vermelho (R), verde (G) e azul (B). Para reduzir uma banda de frequência utilizada para processamento de vídeo, os sinais R, G e B podem ser transformados em sinais de luma e croma equivalentes aos sinais R, G e B. Aqui, o sinal de vídeo pode incluir um sinal de luma e dois sinais de croma. Aqui, o sinal de luma é um componente para representar uma luminância de uma tela, enquanto o sinal de croma é um componente para representar uma cor da tela. O sinal de luma pode ser representado por Y, enquanto os sinais de croma podem ser representados por C.
[0065] Como um olho humano é sensível ao sinal de luma mas insensível aos sinais de croma, uma imagem ou bloco pode incluir menos números de pixels de um componente de croma do que de pixels de um componente de luma.
[0066] Em um formato de vídeo 4:2:0 um número de pixels de um bloco de componente de croma pode ser 1/2 de um número de pixels de um bloco de componente de luma em uma direção horizontal e ser 1/2 de um número de pixels do componente de luma em uma direção vertical. Em um formato de vídeo 4:2:2, um número de pixels do bloco de componente de croma pode ser 1/2 do número de pixels do bloco de componente de luma na direção horizontal e ser o mesmo que o número de pixels do componente de luma na direção vertical. Em um formato de vídeo 4:4:4 um número de pixels do bloco de componente de croma pode ser o mesmo que o número de pixels do bloco de componente de luma tanto na direção horizontal quanto direção vertical.
[0067] Como acima descrito com referência às Figuras 1 e 2, o aparelho de codificação pode executar uma transformada sobre um bloco residual por cada TU, e o aparelho de decodificação pode transformar inversamente os coeficientes de transformada dequantizados de modo a gerar um bloco residual reconstruído. Na descrição seguinte, a transformada inversa pode também ser denominada "transformada" para conveniência conforme necessário, o que será facilmente compreendido por uma pessoa versada na técnica.
[0068] O aparelho de codificação e o aparelho de decodificação pode executar uma transformada bidirecional (2D) que inclui tanto uma transformada vertical quanto uma transformada horizontal. No entanto, quando o sinal vertical e o sinal horizontal têm características notavelmente diferentes, a transformada vertical ou a transformada horizontal podem ser puladas. Também, o processo de transformada inteiro pode ser pulado para um sinal esparso. Tais métodos de transformada podem reduzir a complexidade no aparelho de decodificação e aperfeiçoar a eficiência de codificação.
[0069] Na descrição seguinte, um modo de transformada que envolve tanto uma transformada vertical quanto uma transformada horizontal é referido como um "modo de transformada 2D". Um modo transformada que envolve uma transformada horizontal somente sem transformada vertical é referido como um "modo de transformada horizontal", e um modo transformada que envolve uma transformada vertical somente sem transformada vertical é referido como um "modo de transformada vertical ". Ainda, um modo de transformada que não envolve nem transformada horizontal nem uma transformada vertical é referido como um "modo de não transformada". Aqui, o modo de não transformada pode também ser referido como um "modo de desvio de transformada".
[0070] A Figura 3 ilustra esquematicamente um método de transformada com base em um modo de transformada de acordo com uma modalidade exemplar da presente invenção.
[0071] Os blocos quadrados 310 a 340 mostrados na Figura 3 são blocos alvo de transformada. Aqui, os blocos alvo de transformada podem corresponder a TUs e/ou CUs. Também, as setas marcadas sobre os blocos 310 a 330 podem indicar direções de transformada.
[0072] Referindo a um bloco alvo de transformada 310, tanto uma transformada vertical quanto uma transformada horizontal podem ser executadas. Assim, um modo de transformada para o bloco alvo de transformada 310 pode corresponder ao modo de transformada 2D. Referindo a um bloco alvo de transformada 320, uma transformada horizontal somente sem transformada vertical pode ser executada. Assim, um modo de transformada para o bloco alvo de transformada 320 pode corresponder ao modo de transformada horizontal. Neste caso, como a transformada é executada em linhas, não em colunas, um método de transformada no modo de transformada horizontal pode também ser referido como "transformada sobre linhas somente". Referindo a um bloco alvo de transformada 330, uma transformada vertical somente sem transformada horizontal pode ser executada. Assim, um modo de transformada para o bloco alvo de transformada 330 pode corresponder ao modo de transformada vertical. Neste caso, como a transformada é executada em colunas, não em linhas, um método de transformada no modo de transformada vertical pode também ser referido como "transformada sobre colunas somente". Referindo a um bloco alvo de transformada 340, uma transformada pode não ser executada. Assim, um modo de transformada para o bloco alvo de transformada 340 pode corresponder ao modo de não transformada.
[0073] Nos modos de transformada acima, a transformada vertical e/ou a transformada horizontal podem ser ou não saltadas. Assim, estes modos de transformada podem também ser referidos como um modo de salto de transformada (TSM). Isto é, o modo de salto de transformada pode incluir o modo de transformada 2D, o modo de transformada horizontal, o modo de transformada vertical e o modo de não transformada. Consequentemente, o modo de transformada 2D, o modo de transformada horizontal, o modo de transformada vertical e/ou o modo de não transformada podem ser utilizados como candidatos para o modo de salto de transformada para um bloco alvo de transformada.
[0074] Em uma modalidade exemplar, pelo menos um do modo de transformada 2D, do modo de transformada horizontal, do modo de transformada vertical e/ou do modo de não transformada pode ser utilizado como um candidato de modo de salto de transformada para um bloco alvo de transformada. Aqui, um modo de salto de transformada selecionado de uma pluralidade de candidatos de modo de salto de transformada pode ser aplicado a um bloco alvo de transformada. O aparelho de codificação pode selecionar um modo de salto de transformada que tem o menor valor de custo em vista de otimização de distorção de taxa (RDO) entre uma pluralidade de candidatos de modo de salto de transformada. Então, o aparelho de codificação pode executar uma transformação sobre o bloco alvo de transformada com base no modo de salto de transformada selecionado. Isto é, o aparelho de codificação pode aplicar um modo de salto de transformada selecionado entre o modo de transformada 2D, o modo de transformada horizontal, o modo de transformada vertical e/ou o modo de não transformada para o bloco alvo de transformada de acordo com o modo de salto de transformada selecionado.
[0075] Além disso, o aparelho de codificação pode codificar as informações sobre o modo de salto de transformada selecionado e transmitir as informações para o aparelho de decodificação. O modo de salto de transformada pode ser determinado por uma unidade de CU ou TU. Aqui, quando o modo de salto de transformada é determinado por uma unidade de uma CU, as informações podem ser transmitidas por uma unidade de uma CU. Quando o modo de salto de transformada é determinado por uma unidade de TU, as informações podem ser transmitidas por uma unidade de TU.
[0076] Por exemplo, as informações sobre o modo de salto de transformada podem ser transmitidas para o aparelho de decodificação utilizando um índice de modo de salto de transformada. O índice de modo de salto de transformada pode ser um índice que indica o modo de salto de transformada a ser aplicado no bloco alvo de transformada entre os candidatos de modo de salto de transformada. Ao índice de modo de salto de transformada pode ser alocado um valor de índice de acordo com o modo de salto de transformada. Aqui, o modo de transformada 2D, o modo de transformada horizontal, e o modo de transformada vertical podem ter diferentes valores de índice.
[0077] O aparelho de decodificação pode receber as informações sobre o modo de salto de transformada (por exemplo, o índice de modo de salto de transformada codificado) do aparelho de codificação e decodificar as informações. Aqui, o aparelho de decodificação pode derivar o modo de salto de transformada a ser aplicado ao bloco alvo de transformada com base nas informações decodificadas. O aparelho de decodificação pode executar uma transformação sobre o bloco alvo de transformada de acordo com o modo de salto de transformada derivado. Isto é, o aparelho de decodificação pode aplicar um modo de salto de transformada derivado entre o modo de transformada 2D, o modo de transformada horizontal, o modo de transformada vertical e/ou o modo de não transformada ao bloco alvo de transformada de acordo com o modo de salto de transformada derivado.
[0078] A Figura 4 é um fluxograma que ilustra esquematicamente um processo de transformada do aparelho de codificação de acordo com uma modalidade exemplar da presente invenção.
[0079] Referindo à Figura 4, o aparelho de codificação pode determinar um modo de salto de transformada para um bloco alvo de transformada entre uma pluralidade de candidatos de modo de salto de transformada (S410). Aqui, a pluralidade de candidatos de modo de salto de transformada pode incluir pelo menos um do modo de transformada 2D, do modo de transformada horizontal, do modo de transformada vertical e do modo de não transformada. Aqui, o aparelho de codificação pode selecionar um modo de salto de transformada que tem o menor valor de custo em vista de RDO entre a pluralidade de candidatos de modo de salto de transformada. Um método para determinar uma pluralidade de candidatos de modo de salto de transformada e um modo de salto de transformada para um bloco alvo de transformada de acordo com uma modalidade exemplar será posteriormente descrito.
[0080] Referindo de volta à Figura 4, o aparelho de codificação pode executar uma transformação no bloco de alvo de transformada de acordo com o modo de salto de transformada determinado (S420). Isto é, o aparelho de codificação pode aplicar um modo de salto de transformada selecionado entre o modo de transformada 2D, o modo de transformada horizontal, o modo de transformada vertical e o modo de não transformada ao bloco alvo de transformada de acordo com o modo de salto de transformada selecionado.
[0081] Ainda, o aparelho de codificação pode codificar as informações sobre o modo de salto de transformada aplicado no bloco alvo de transformada e transmitir as informações para o aparelho de decodificação. Por exemplo, as informações podem ser transmitidas para o aparelho de decodificação através de um índice de modo de salto de transformada. Aqui, como acima descrito, considerando as probabilidades de aparição de modos de salto de transformada, o aparelho de codificação pode alocar uma palavra de código curta ao modo de salto de transformada que tem altas probabilidades de aparição e uma palavra de código longa a um modo de salto de transformada que tem baixas probabilidades de aparição. Um método para alocar uma palavra de código a um modo de salto de transformada de acordo com uma modalidade exemplar será posteriormente descrito.
[0082] Figura 5 é um fluxograma que ilustra esquematicamente um processo de transformada inversa do aparelho de decodificação de acordo com uma modalidade exemplar da presente invenção.
[0083] O aparelho de decodificação pode receber um fluxo de bits que inclui as informações sobre o modo de salto de transformada (por exemplo, um índice de modo de salto de transformada codificado) do aparelho de codificação e decodificar o fluxo de bits. No fluxo de bits recebido do aparelho de codificação, uma palavra de código curta pode ser alocada a um modo de salto de transformada que tem altas probabilidades de aparição, e uma palavra de código longa pode ser alocada a um modo de salto de transformada que tem baixas probabilidades de aparição. Um método para alocar uma palavra de código a um modo de salto de transformada de acordo com uma modalidade exemplar será posteriormente descrito.
[0084] Referindo à Figura 5, o aparelho de decodificação pode derivar um modo de salto de transformada para um bloco alvo de transformada inversa entre uma pluralidade de candidatos de modo de salto de transformada (S510). Aqui, a pluralidade de candidatos de modo de salto de transformada pode incluir pelo menos um do modo de transformada 2D, do modo de transformada horizontal, do modo de transformada vertical e do modo de não transformada. O aparelho de decodificação pode utilizar a mesma pluralidade de candidatos de modo de salto de transformada que utilizada no aparelho de codificação. Aqui, o aparelho de decodificação pode derivar o modo de salto de transformada para o bloco alvo de transformada inversa com base nas informações decodificadas (as informações sobre um modo de salto de transformada, por exemplo, o índice de modo de salto de transformada decodificado). Um método para determinar uma pluralidade de candidatos de modo de salto de transformada e um modo de salto de transformada para um bloco alvo de transformada de acordo com uma modalidade exemplar será descrito em detalhes.
[0085] Referindo de volta à Figura 5, o aparelho de decodificação pode executar uma transformação inversa sobre o bloco de alvo de transformada inversa de acordo com o modo de salto de transformada derivado (S520). Isto é, o aparelho de decodificação pode aplicar um modo de salto de transformada selecionado entre o modo de transformada 2D, o modo de transformada horizontal, o modo de transformada vertical e/ou o modo de não transformada ao bloco alvo de transformada inversa de acordo com o modo de salto de transformada selecionado.
[0086] Nas modalidades ilustradas nas Figuras 4 e 5, o aparelho de codificação e o aparelho de decodificação podem utilizar todos o modo de transformada 2D, o modo de transformada horizontal, o modo de transformada vertical e o modo de não transformada como candidatos de modo de salto de transformada para um bloco alvo de transformada que tem um componente de luma. Aqui, o modo de transformada 2D (e/ou um índice de modo de salto de transformada que correspondem ao modo de transformada 2D), o modo de transformada horizontal (e/ou um índice de modo de salto de transformada que correspondem ao modo de transformada horizontal), o modo de transformada vertical (e/ou um índice de modo de salto de transformada que correspondem ao modo de transformada vertical) e/ou o modo de não transformada (e/ou um índice de modo de salto de transformada que correspondem ao modo de não transformada) podem ser alocadas diferentes palavras de código, respectivamente. Neste caso, como acima descrito, considerando as probabilidades de aparição de modos de salto de transformada, o aparelho de codificação pode alocar uma palavra de código curta para um modo de salto de transformada que tem altas probabilidades de aparição e uma palavra de código longa para um modo de salto de transformada que tem baixas probabilidades de aparição. A Tabela 1 especifica um método para alocar uma palavra de código a um modo de salto de transformada para um bloco alvo de transformada que tem um componente de luma de acordo com uma modalidade exemplar. [Tabela 1]
[0087] Na Tabela 1, TS0 representa o modo de transformada 2D. TS1 representa o modo de transformada horizontal, e TS2 representa o modo de transformada vertical. TS3 representa o representa o modo de não transformada. Aqui, tanto o modo de transformada horizontal quanto o modo de transformada vertical podem corresponder a um modo de transformada 1D.
[0088] Por exemplo, referindo à Tabela 1, se o modo de transformada 2D aparecer mais frequentemente, ao modo de transformada 2D pode ser alocado uma palavra de código "1". Do mesmo modo, de acordo com a frequência de aparição de um modo, ao modo de transformada horizontal pode ser alocado uma palavra de código "01", ao modo de transformada vertical uma palavra de código "001", e ao modo de não transformada uma palavra de código "000".
[0089] Mesmo quando a transformada vertical e/ou a transformada horizontal é saltada dependendo dos modos de salto de transformada, a mesma matriz de quantização pode ser utilizada como no modo de transformada 2D. Ainda, o aparelho de codificação e o aparelho de decodificação podem executar uma escalagem em valores em linhas e/ou colunas a serem saltadas de transformada, os quais podem representados pela Equação 1. [Equação 1] y = (x*scale + offset) >> shift
[0090] Aqui, x pode ser um elemento em uma linha e/ou coluna saltada de transformada, e y pode ser um valor escalado. "scale" pode ser um fator de escalagem. "offset" pode ser um valor e compensação aplicado em escalagem, "shift" pode ser um valor de deslocamento de bit aplicado em escalagem. Aqui, "offset" e "shift" podem ter os mesmos valores que um valor de compensação e um valor de deslocamento de bit aplicados quando a transformada não é saltada, por exemplo, no modo de transformada 2D.
[0091] Ainda, na Equação 1, o fator de escalagem aplicado ao aparelho de codificação e ao aparelho de decodificação pode ser determinado dependendo do tamanho de uma TU. Em uma modalidade exemplar, o fator de acordo com o tamanho de TU pode ser ajustado como listado na Tabela 2. [Tabela 2]
[0092] Aqui, N (e/ou NxN) pode ser um tamanho TU, e escala pode ser um fator de escalagem. Referindo à Tabela 2, quando uma TU tem um tamanho de 8x8, um valor de fator de escalagem de 181 pode ser aplicado.
[0093] Apesar das modalidades acima mostrarem que um modo de salto de transformada é aplicado a um bloco alvo de transformada que tem um componente de luma (daqui em diante, "bloco de componente de luma"), a presente invenção não está limitada a isto. Alternativamente, quando uma transformação é executada sobre um bloco alvo de transformada que tem um componente de croma (daqui em diante, "bloco de componente de croma"), um modo de salto de transformada para o bloco alvo de transformada pode ser determinado e a transformada pode ser executada com base no modo de salto de transformada determinado.
[0094] Em uma modalidade exemplar, é assumido que um modo de predição para um bloco de componente de croma é um intermodo. As características do bloco de componente de croma podem estar associadas com as características de um bloco de componente de luma que corresponde ao bloco de componente de croma. Assim, neste caso, o aparelho de codificação e o aparelho de decodificação podem aplicar, para o bloco de componente de croma, o mesmo modo de salto de transformada que utilizado para o bloco de componente de luma que corresponde ao bloco de componente de croma. Isto é, um modo de salto de transformada para o bloco de componente de croma pode ser determinado ser o mesmo que o modo de salto de transformada para o bloco de componente de luma que corresponde ao bloco de componente de croma.
[0095] Quando o modo de salto de transformada para o bloco de componente de luma é aplicado ao bloco de componente de croma que corresponde ao bloco de componente de luma, o aparelho de codificação pode não transmitir as informações sobre o modo de salto de transformada para o bloco de componente de croma (por exemplo, um índice do modo de salto de transformada) para o aparelho de decodificação. Consequentemente, neste caso, o desempenho codificação/decodificação pode ser melhorado.
[0096] Alternativamente, em outra modalidade, quando um modo de predição para um bloco de componente de croma é um intramodo, o aparelho de codificação e o aparelho de decodificação podem determinar um modo de salto de transformada para o bloco de componente de croma com base em uma direção de predição (e/ou modo de intrapredição) do bloco de componente de croma. Por exemplo, o aparelho de codificação e o aparelho de decodificação podem utilizar diferentes métodos para determinar os candidatos de modo de salto de transformada e diferentes métodos para alocar uma palavra de código a um modo de salto de transformada com base na direção de predição (e/ou modo de intrapredição) do bloco de componente de croma, o que será posteriormente descrito com referência à Figura 6.
[0097] A Figura 6 ilustra um método para determinar um modo de salto de transformada de um bloco de componente de croma com base em um modo de intrapredição que corresponde ao bloco de componente de croma.
[0098] Como acima descrito com referência às Figuras 1 e 2, o aparelho de codificação e o aparelho de decodificação podem gerar um bloco de predição executando uma intrapredição com base em informações sobre um pixel dentro de uma imagem corrente. A intrapredição pode ser executada de acordo com um modo de intrapredição para um bloco de alvo de predição. O modo de intrapredição pode incluir um modo de DC, um modo plano, um modo vertical, um modo horizontal, e um modo angular. O modo de DC e o modo plano são modos não direcionais, e os outros modos são modos direcionais. Aqui, o modo angular pode ser um modo de predição direcionar outro que o modo vertical e o modo horizontal.
[0099] A Figura 6 ilustra uma direção de predição de um modo de intrapredição e um valor de modo alocado para cada direção de predição. Na Figura 6, os modos de intrapredição podem ter diferentes direções de predição, respectivamente. Os números alocados para os respectivos modos de intrapredição podem ser referidos como valores de modo.
[00100] Referindo à Figura 6, um modo de intrapredição com um valor de modo de 0 pode ser referido como um modo plano. No modo plano, os pixels de referência utilizados para predição de um pixel alvo de predição podem ser determinados com base em uma localização do pixel alvo de predição em um bloco alvo de predição, e um valor do pixel alvo de predição pode ser derivado com base nos pixels de referência determinados. Um modo de intrapredição com um valor de modo 1 pode ser referido como um modo de DC, no qual um bloco de predição pode ser gerado utilizando um valor de pixel médio de pixels vizinhos ao bloco alvo de predição. Em um modo de intrapredição com um valor de modo de 26, uma predição de direção vertical pode ser executada com base em valores de pixel de blocos vizinhos. Assim, o modo de intrapredição com o valor de modo de 26 pode também ser referido como o modo vertical. Em um modo de intrapredição com um valor de modo de 10 (modo horizontal), uma predição de direção horizontal pode ser executada com base em valores de pixel de blocos vizinhos. Assim, o modo de intrapredição com o valor de modo de 10 pode também ser referido como o modo horizontal. Nos outros modos, a predição pode ser executada com base em valores de pixel de blocos vizinhos de acordo com os ângulos correspondentes.
[00101] Entrementes, como um componente de luma e um componente de croma de uma imagem estão associados um com o outro, um modo de intrapredição do componente de croma pode ser codificado com base em um modo de predição de um componente de luma que corresponde ao componente de croma, e o aparelho de decodificação pode derivar o modo de predição do componente de croma com base no modo de predição do componente de luma. Assim, as informações sobre o modo de predição do componente de croma transmitido do aparelho de codificação para o aparelho de decodifica- ção podem não ser o modo de predição do próprio componente de croma, mas ser um valor utilizado para derivar o modo de predição do componente de croma de uma relação com o modo de predição do componente de luma. A Tabela 3 especifica um modo de predição de um componente de croma determinado com base em um valor de modo de predição de um componente de luma e um valor transmitido do aparelho de codificação para o aparelho de decodificação. [Tabela 3]
[00102] Referindo à Tabela 3, o valor transmitido do aparelho de codificação para o aparelho de decodificação pode ser um valor alocado para intra_chroma_pred_mode. IntraPredMode pode representar um modo de intrapredição de um componente de luma. Por exemplo, quando intra_chroma_pred_mode é 2 e IntraPredMode é 26, o valor de modo de intrapredição do componente de croma pode ser 10. intra_chroma_pred_mode e IntraPredMode não estão limitados por seus termos.
[00103] Na Tabela 3, quando intra_chroma_pred_mode é 4, o modo de predição do componente de croma pode ser referido como um modo de DM. Aqui, o modo de DM pode significar um modo de intrapredição no qual o mesmo modo de predição que para o componente de luma é utilizado para o componente de croma.
[00104] Ainda, o aparelho de codificação e o aparelho de decodificação podem também utilizar um modo de LM para um bloco de componente de croma além dos modos de intrapredição especificados na Tabela 3. Aqui, o modo de LM pode significar um modo de intrapredição no qual um valor de pixel predito de um componente de croma é determinado de acordo com um valor de pixel de um componente de luma. Assim, no modo de LM, a diretividade de uma imagem pode não ser substancial.
[00105] Entrementes, como acima descrito, o aparelho de codificação e o aparelho de decodificação podem determinar o modo de salto de transformada do bloco de componente de croma com base na direção de predição (e/ou modo de intrapredição) do bloco de componente de croma.
[00106] Em uma modalidade exemplar, quando um modo de intrapredição que corresponde ao bloco de componente de croma é o modo de DM, o aparelho de codificação e o aparelho de decodificação podem usar, para o bloco de componente de croma, o mesmo modo de salto de transformada que para o bloco de componente de luma que corresponde ao bloco de componente de croma. Isto é, um modo de salto de transformada do bloco de componente de croma pode ser determinado ser o mesmo que o modo de salto de transformada do bloco de componente de luma que corresponde ao bloco de componente de croma, porque o mesmo modo de predição que para o componente de luma pode ser utilizado para o componente de croma no modo de DM.
[00107] Ainda, a probabilidade de aparição de cada modo de salto de transformada pode variar de acordo com um modo de intrapredição (e/ou direção de predição de uma PU que corresponde ao bloco de componente de croma. Assim, uma diferente palavra de código pode ser alocada para um modo de salto de transformada (e/ou índice de modo de salto de transformada) com base no modo de intrapredição (e/ou direção de predição) da PU que corresponde ao bloco de componente de croma. Isto é, uma palavra de código alocada para um modo de salto de transformada (e/ou índice de modo de salto de transformada) pode ser determinada com base no modo de intrapredição (e/ou direção de predição) da PU que corresponde ao bloco de componente de croma.
[00108] Em uma modalidade exemplar, quando o modo de intrapredição que corresponde ao bloco de componente de croma é o modo horizontal, o modo de transformada horizontal pode ter uma probabilidade de aparição mais baixa entre uma pluralidade de modos de salto de transformada. Assim, quando o modo de intrapredição que corresponde ao bloco de componente de croma é o modo horizontal, o modo de transformada 2D, o modo de transformada vertical e o modo de não transformada podem ser utilizados como candidatos de modo de salto de transformada exceto para o modo de transformada horizontal. Neste caso, um modo de salto de transformada entre o modo de transformada 2D, o modo de transformada vertical, e o modo de não transformada pode ser aplicado ao bloco de componente de croma. A Tabela 4 especifica um método para alocar palavras de código a modos de salto de transformada quando o modo de transformada 2D, o modo de transformada vertical, e o modo de não transformada são utilizados como candidatos de modo de salto de transformada de acordo com uma modalidade exemplar. [Tabela 4]
[00109] Na Tabela 4, TS0 representa o modo de transformada 2D, TS2 representa o modo de transformada vertical, e TS3 representa o modo de não transformada. Aqui, o modo de transformada vertical pode corresponder a um modo de transformada 1D. Referindo à Tabela 4, quando o modo de intrapredição que corresponde ao bloco de componente de croma é o modo horizontal, o modo de transformada 2D, o modo de transformada vertical, e o modo de não transformada podem ser utilizados como candidatos de modo de salto de transformada.
[00110] Em outra modalidade exemplar, quando o modo de intrapredição que corresponde ao bloco de componente de croma é o modo vertical, o modo de transformada vertical pode ter uma probabilidade de aparição mais baixa entre uma pluralidade de modos de salto de transformada. Assim, quando o modo de intrapredição que corresponde ao bloco de componente de croma é o modo vertical, o modo de transformada 2D, o modo de transformada horizontal e o modo de não transformada podem ser utilizados como candidatos de modo de salto de transformada exceto para o modo de transformada vertical. Neste caso, um modo de salto de transformada entre o modo de transformada 2D, o modo de transformada horizontal, e o modo de não transformada pode ser aplicado ao bloco de componente de croma. A Tabela 5 especifica um método para alocar palavras de código a modos de salto de transformada quando o modo de transformada 2D, o modo de transformada horizontal, e o modo de não transformada são utilizados como candidatos de modo de salto de transformada de acordo com uma modalidade exemplar. [Tabela 5]
[00111] Na Tabela 5, TS0 representa o modo de transformada 2D, TS1 representa o modo de transformada horizontal, e TS3 representa o modo de não transformada. Aqui, o modo de transformada horizontal pode corresponder a um modo de transformada 1D. Referindo à Tabela 5, quando o modo de intrapredição que corresponde ao bloco de componente de croma é o modo vertical, o modo de transformada 2D, o modo de transformada horizontal, e o modo de não transformada podem ser utilizados como candidatos de modo de salto de transformada.
[00112] Alternativamente, em outra modalidade exemplar, quando o modo de intrapredição que corresponde ao bloco de componente de croma é o modo de DC e/ou o modo de LM, a diretividade de uma imagem que corresponde ao bloco de componente de croma pode não ser substancial. Assim, quando o modo de intrapredição que corresponde ao bloco de componente de croma é o modo de DC e/ou o modo de LM, o modo de transformada 2D e o modo de não transformada podem ser utilizados como candidatos de modo de salto de transformada exceto para o modo de transformada horizontal e o modo de transformada vertical. Neste caso, um modo de salto de transformada entre o modo de transformada 2D e o modo de não transformada pode ser aplicado ao bloco de componente de croma. A Tabela 6 especifica um método para alocar palavras de código a modos de salto de transformada quando o modo de transformada 2D e o modo de não transformada são utilizados como candidatos de modo de salto de transformada de acordo com uma modalidade exemplar. [Tabela 6]
[00113] Na Tabela 6, TS0 representa o modo de transformada 2D, e TS3 representa o modo de não transformada. Referindo à Tabela 6, quando o modo de intrapredição que corresponde ao bloco de componente de croma é o modo de DC e/ou o modo de LM, o modo de transformada 2D e o modo de não transformada podem ser utilizados como candidatos de modo de salto de transformada.
[00114] Nas modalidades acima, um processo para codificar um modo de salto de transformada (e/ou índice de modo de salto de transformada) pode ser saltado ou números de bit utilizados para codificar os modos de salto de transformada (e/ou índices de modo de salto de transformada) podem reduzidos. Consequentemente, o desempenho de codificação/decodificação pode ser melhorado.
[00115] Figura 7 é um fluxograma que ilustra esquematicamente um método de codificação de acordo com uma modalidade exemplar da presente invenção.
[00116] Referindo à Figura 7, o aparelho de codificação pode gerar um bloco residual que corresponde a um boco corrente (S710). Como acima descrito, aparelho de codificação pode executar uma interpredição e/ou intrapredição sobre o bloco corrente, por meio disto gerando um bloco de predição que corresponde ao bloco corrente. Aqui, o aparelho de codificação pode gerar um sinal residual, isto é, o bloco residual, diferenciando por uma unidade de um pixel entre um valor de pixel do bloco corrente e um valor de pixel do bloco de predição.
[00117] Na Figura 7, o aparelho de codificação pode transformar o sinal residual, isto é, o bloco residual (S720). O aparelho de codificação pode transformar o sinal residual utilizando um núcleo de transformada, e um tamanho de um núcleo de transformada pode ser um tamanho de 2*2, 4*4, 8*8, 16*16, 32*32 ou 64*64. Em uma modalidade exemplar, um coeficiente de transformada C para um bloco n*n pode ser calculado pela Equação 2. [Equação 2] C(n,n)=T(n,n) x B(n,n) x T(n,n)T
[00118] Aqui, C(n,n) é uma matriz de coeficiente de transformada n*n, T(n,n) é uma matriz de núcleo de transformada n*n, e B(n,n) é uma matriz n*n para um bloco residual.
[00119] Quando um coeficiente de transformada é gerado através de transformação, o aparelho de codificação pode quantizar o coeficiente de transformada gerado.
[00120] Pode ser determinado através de RDO o qual é transmitido um do bloco residual e do coeficiente de transformada. Quando uma predição é apropriadamente feita, o bloco residual, isto é, o sinal residual, pode ser transmitido como si próprio, sem codificação de transformada. O aparelho de codificação pode comparar as funções de custo antes/após a codificação de transformada e selecionar um método que envolve custos mínimos. Aqui, o aparelho de codificação pode transmitir as informações sobre um tipo de um sinal (sinal residual ou coeficiente de transformada) sinalizado com relação ao bloco corrente para o aparelho de decodificação.
[00121] Os processos de transformada detalhados foram mostrados nas modalidades acima, e assim as suas descrições estão aqui omitidas.
[00122] Referindo de volta à Figura 7, o aparelho de codificação pode escanear o coeficiente de transformada (S730). Aqui, como acima descritos, o aparelho de codificação pode redispor um bloco bidimensional de coeficientes de transformada quantizados em um vetor unidimensional de coeficientes de transformada por escaneamento.
[00123] Aqui, o aparelho de codificação pode mudar a ordem de escaneamento com base em estatísticas estocásticas para melhorar a eficiência de codificação de entropia.
[00124] Quando o escaneamento é executado, o aparelho de codificação pode codificar em entropia o coeficiente de transformada escaneado e informações laterais (por exemplo, informações sobre um modo de interpredição do bloco corrente) (S740). As informações codificadas podem ser formadas em um fluxo de bits comprimido e ser transmitidas através de um NAL ou armazenadas.
[00125] Apesar do método de codificação ser descrito com uma série de estágios com base no fluxograma na Figura 7, a presente invenção não está limitada a este. Alguns estágios da Figura 7 podem ser executados em uma ordem diferente da acima descrita ou em paralelo. Ainda, estágios adicionais podem ser incluídos entre os estágios no fluxograma, ou um ou mais estágios podem ser apagados do fluxograma da Figura 7 dentro do escopo da presente invenção.
[00126] A Figura 8 é um fluxograma que ilustra esquematicamente um método de decodificação de acordo com uma modalidade exemplar da presente invenção.
[00127] Referindo à Figura 8, o aparelho de decodificação pode decodificar em entropia um fluxo de bits recebido do aparelho de codificação (S810). Por exemplo, o aparelho de decodificação pode derivar um modo de predição e um sinal residual de um bloco corrente com base em uma tabela de codificação de comprimento variável (VLC) e/ou CABAC. O aparelho de decodificação pode obter informações sobre se um sinal recebido com relação ao bloco corrente é o sinal residual ou um coeficiente de transformada e obter o sinal residual ou um vetor 1D de coeficientes de transformada para o bloco corrente. Quando o fluxo de bits recebido inclui as informações laterais necessárias para decodificação, as informações laterais pode ser decodificadas em entropia.
[00128] Na Figura 8, o aparelho de decodificação pode escanear inversamente o sinal residual codificado em entropia ou os coeficientes de transformada para gerar um bloco bidimensional (S820). Aqui, o sinal residual pode ser gerado para um bloco residual, e os coeficientes de transformada podem ser gerados para um bloco bidimensional de coeficientes de transformada. Quando os coeficientes de transformada são gerados, o aparelho de decodificação pode dequantizar os coeficientes de transformada gerados.
[00129] Referindo de volta à Figura 8, o aparelho de decodificação pode transformar inversamente os coeficientes de transformada dequantizados, por meio disto gerando um bloco residual (S830). A transformação inversa pode ser representada pela Equação 3. [Equação 3] B(n,n)=T(n,n) x C(n,n) x T(n,n)T
[00130] A transformação inversa foi acima descrita, e assim uma sua descrição está aqui omitida.
[00131] Quando o bloco residual é gerado, o aparelho de decodificação pode gerar um bloco reconstruído com base no bloco residual gerado (S840). Como acima descrito, o aparelho de decodificação pode executar uma interpredição e/ou intrapredição em um bloco alvo de decodificação para gerar um bloco de predição que corresponde ao bloco alvo de decodificação. Aqui, o aparelho de decodificação pode adicionar um valor de pixel do bloco de predição e um valor de pixel do bloco residual por um pixel, por meio disto gerando o bloco reconstruído.
[00132] Apesar do método de decodificação ser descrito com uma série de estágios com base no fluxograma na Figura 8, a presente invenção não está limitada a este. Alguns estágios da Figura 8 podem ser executados em uma ordem diferente da acima descrita ou em paralelo. Ainda, estágios adicionais podem ser incluídos entre os estágios no fluxograma, ou um ou mais estágios podem ser apagados do fluxograma da Figura 8 dentro do escopo da presente invenção.
[00133] Apesar de métodos terem sido descritos com uma série de estágios ou blocos com base nos fluxogramas nas modalidades acima mencionadas, a presente invenção não está limitada à sequência de estágios acima. Alguns estágios podem ser executados em uma ordem diferente da acima descrita ou ao mesmo tempo. Também será compreendido por aqueles versados na técnica que os estágios ilustrados nos fluxogramas não são exclusivos, estágios adicionais podem ser incluídos no fluxograma, ou um ou mais estágios podem ser apagados dos fluxogramas sem afetar o escopo da presente invenção.
[00134] A presente invenção foi descrita com referência às modalidades exemplares, e as modalidades acima incluem vários aspectos de exemplos. Apesar de todas as combinações possíveis não poderem ser mencionadas para ilustras os vários aspectos, será apreciado por aqueles versados na técnica que mudanças, modificações e alternativas podem ser feitas nestas modalidades exemplares sem afastar dos princípios e do espírito da invenção, o escopo da qual está definido nas reivindicações anexas e seus equivalentes.