BR122019026441B1 - Método de decodificar coeficientes residuais de uma unidade de transformada a partir de um fluxo de bits de dados de vídeo - Google Patents

Método de decodificar coeficientes residuais de uma unidade de transformada a partir de um fluxo de bits de dados de vídeo Download PDF

Info

Publication number
BR122019026441B1
BR122019026441B1 BR122019026441-4A BR122019026441A BR122019026441B1 BR 122019026441 B1 BR122019026441 B1 BR 122019026441B1 BR 122019026441 A BR122019026441 A BR 122019026441A BR 122019026441 B1 BR122019026441 B1 BR 122019026441B1
Authority
BR
Brazil
Prior art keywords
significant coefficient
transform
transform unit
sub
unit
Prior art date
Application number
BR122019026441-4A
Other languages
English (en)
Inventor
Christopher James Rosewarne
Alvin Edrea Labios
Original Assignee
Canon Kabushiki Kaisha
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 Canon Kabushiki Kaisha filed Critical Canon Kabushiki Kaisha
Publication of BR122019026441B1 publication Critical patent/BR122019026441B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

MÉTODO DE DECODIFICAR COEFICIENTES RESIDUAIS DE UMA UNIDADE DE TRANSFORMADA A PARTIR DE UM FLUXO DE BITS DE DADOS DE VÍDEO. Trata-se de um método de decodificação de coeficientes residuais de uma unidade de transformada de um fluxo de bits de dados de vídeo. O método recebe a unidade de transformada (1500) do fluxo de bits de dados de vídeo no qual a unidade de transformada tem camadas quadradas superior (1503) e inferior (1502). A camada de nível superior representa uma disposição quadrada de, no máximo, quatro sinalizadores de grupo de coeficiente significativo, sendo que cada um dos sinalizadores de grupo de coeficiente significativo representa uma região de não sobreposição da camada de nível inferior. O método determina a determinação dos sinalizadores de grupo de coeficiente significativo da camada quadrada de nível superior para a unidade de transformada recebida e determina os valores de coeficientes residuais da camada quadrada inferior de acordo com os sinalizadores de grupo de coeficiente significativo determinado para decodificar a unidade de transformada do fluxo de bits de dados de vídeo. Também são revelados os métodos de codificação correspondentes.

Description

CAMPO DA TÉCNICA
[0001] A presente invenção refere-se, em geral, ao processamento de sinal de vídeo digital e, em particular, a um método, aparelho e sistema para codificar e decodificar coeficientes residuais de uma unidade de transformada (TU), em que a unidade de transformada (TU) pode ter um formato quadrado ou um formato não quadrado.
ANTECEDENTES
[0002] Atualmente, existem muitas aplicações para codificação de vídeo, incluindo aplicações para transmissão e armazenamento de dados de vídeo. Foram desenvolvidos muitos padrões de codificação de vídeo e outros estão, atualmente, em desenvolvimento. Os recentes desenvolvimentos na padronização de codificação de vídeo levaram à formação de um grupo denominado “Equipe Colaborativa Conjunto de Codificação de Vídeo” (JCT-VC). A Equipe Colaborativa Conjunto de Codificação de Vídeo (JCT-VC) inclui membros do Grupo de Estudo 16, Questão 6 (SG16/Q6) do Setor de Padronização de Telecomunicações (ITU-T) da União Internacional de Telecomunicações (ITU), conhecidos como o Grupo de Especialistas de Codificação de Vídeo (VCEG) e membros das Organizações Internacionais para Padronização/Comitê Técnico Internacional da Junta de Comissão de Eletrotécnicas 1 / Subcomitê 29 / Grupo de Trabalho 11 (ISO/IEC JTC1/SC29/WG11), também conhecido como o Grupo de Especialistas em Imagem em Movimento (MPEG).
[0003] A Equipe Colaborativa Conjunto de Codificação de Vídeo (JCT-VC) tem o objetivo de produzir um novo padrão de codificação de vídeo para superar significativamente, em desempenho um padrão de codificação de vídeo atualmente existente, conhecido como "H.264/MPEG-4 AVC”. O próprio padrão H.264/MPEG-4 AVC é um grande aprimoramento dos padrões de codificação de vídeo anteriores, como MPEG-4 e ITU-T H.263. O novo padrão de codificação de vídeo em desenvolvimento foi denominado “codificação de vídeo de alta eficiência (HEVC)”. A Equipe Colaborativa Conjunto de Codificação de Vídeo JCT-VC também considera os desafios de implantação provenientes da tecnologia proposta para a codificação de vídeo de alta eficiência (HEVC) que criam dificuldades durante escalonamento de implantações do padrão para operar a altas resoluções ou altas taxas de quadro.
[0004] Uma área do padrão de codificação de vídeo H.264/MPEG-4 AVC que apresenta dificuldades para alcançar alta eficiência de compactação é a codificação de coeficientes residuais usados para representar dados de vídeo. Os dados de vídeo são formador por uma sequência de quadros, em que cada quadro tem um arranjo bidimensional de amostras. Tipicamente, os quadros incluem um canal e luminância e dois canais de crominância. Cada quadro é decomposto formando um arranjo de unidades de codificação maiores (LCUs). As unidades de codificação maiores (LCUs) têm um tamanho fixo, com dimensões de borda sendo uma potência de dois e que tem largura e altura iguais, como amostras de 64 luma. Uma árvore de codificação permite a subdivisão de cada unidade de codificação maior (LCU) formando quatro unidades de codificação (CUs), em que cada uma tem metade da largura e da altura de uma unidade de codificação maior original (LCU). Cada uma das unidades de codificação (CUs) pode ser adicionalmente subdivida formando quatro unidades de codificação com tamanho igual (CUs). Tal processo de subdivisão pode ser aplicado de maneira recursiva até que seja alcançado um tamanho de unidade de codificação menor (SCU), permitindo que as unidades de codificação (CUs) sejam definidas em um tamanho mínimo suportado. Faz-se referência à subdivisão recursiva de uma unidade de codificação maior, formando uma hierarquia de unidades de codificação, que tem uma estrutura de quatro árvores e é chamada de árvore de codificação. Esse processo de subdivisão é codificado em fluxo de bits de comunicação como uma sequência de sinalizadores, codificados como números binários. Portanto, as unidades de codificação têm um formato quadrado.
[0005] Há um conjunto de unidades de codificação na árvore de codificação que não foi adicionalmente subdivido, ocupando os nós folha da árvore de codificação. Há árvores de transformada nessas unidades de codificação. Uma árvore de transformada pode decompor adicionalmente uma unidade de codificação com o uso de uma estrutura de quatro árvores conforme usado para a árvore de codificação. Nos nós folha da árvore de transformada, os dados residuais são codificados com o uso de unidades de transformada (TUs). Ao contrário da árvore de codificação, a árvore de transformada pode subdividir unidades de codificação formando unidades de transformada que têm um formato não quadrado. Adicionalmente, a estrutura de árvore de transformada não exige que as unidades de transformada (TUs) ocupem toda a área fornecida pela unidade de codificação original.
[0006] Cada unidade de codificação nos nós folha das árvores de codificação é subdivida formando um ou mais arranjos de amostras de dados preditos, em que cada um é conhecido como uma unidade de predição (PU). Cada unidade de predição (PU) contém uma predição de uma porção dos dados de quadro de vídeo de entrada, derivada aplicando-se um processo de intrapredição ou de interpredição. Diversos métodos podem ser usados para codificar unidades de predição (PUs) em uma unidade de codificação (CU). Uma única unidade de predição (PU) pode ocupar toda uma área da unidade de codificação (CU) ou a unidade de codificação (CU) pode ser dividida em duas unidades de predição (PUs) retangulares de tamanho igual, horizontal ou verticalmente. Adicionalmente, as unidades de codificação (CU) podem ser divididas formando quatro unidades de predição (PUs) quadradas de tamanho igual.
[0007] Um codificador de vídeo compacta os dados de vídeo em um fluxo de bits convertendo-se os dados de vídeo formando uma sequência de elementos de sintaxe. Um esquema de codificação aritmética binária adaptativa de contexto (CABAC) é definido no padrão de codificação de vídeo de alta eficiência (HEVC) em desenvolvimento, com o uso de um esquema de codificação aritmética idêntico àquele definido no padrão de compactação de vídeo MPEG4-AVC/H.264. No padrão de codificação de vídeo de alta eficiência (HEVC) em desenvolvimento, quando a codificação aritmética binária adaptativa de contexto (CABAC) estiver em uso, cada elemento de sintaxe é expresso como uma sequência de números binários, em que os números binários são selecionados de um conjunto números binários disponíveis. O conjunto de números binários disponíveis é obtido a partir de um modelo de contexto, com um contexto por número binário. Cada contexto detém um valor de número binário provável (o “valMPS”) e um estado de probabilidade para a operações de codificação aritmética ou decodificação aritmética. Observar que os números binários também podem ser codificados por derivação, em que não há associação com um contexto. Os números binários codificados por derivação consomem um bit no fluxo de bits e, portanto, são adequados para os números binários com probabilidade igual de terem valor um ou valor zero. A criação de tal sequência de números binários a partir de um elemento de sintaxe é conhecida como “número binário que dá origem” aos elementos de sintaxe.
[0008] Em um codificador de vídeo ou decodificador de vídeo, visto que estão disponíveis as informações de contexto separado para cada número binário, a seleção de contexto para números binários fornece um meio para aprimorar a eficiência de codificação. Em particular, a eficiência de codificação pode ser aprimorada selecionando-se um número binário particular de modo que as propriedades estatísticas de exemplos anteriores do número binário, em que foram usadas as informações de contexto associado, se correlacionem com as propriedades estatísticas de um exemplo atual do número binário. Tal seleção de contexto utiliza, com frequência, informações espacialmente locais para determinar o contexto ideal.
[0009] No padrão de codificação de vídeo de alta eficiência (HEVC) em desenvolvimento e em H.264/MPEG-4 AVC, uma predição para um bloco atual é derivada, com base em dados de amostra de referência de outros quadros ou de regiões adjacentes no bloco atual que foram anteriormente decodificadas. A diferença entre a predição e os dados de amostra desejados é conhecida como a residual. Uma representação de domínio de frequência da residual é um arranjo bidimensional de coeficientes residuais. Por convenção, o canto esquerdo superior do arranjo bidimensional contém coeficientes residuais que representam informações de baixa frequência.
[0010] Em dados de vídeo típicos, a maioria das mudanças em valores de amostra é gradual, resultando em uma predominância de informações de baixa frequência na residual. Isso se manifesta como grandes magnitudes para coeficientes residuais situados no canto esquerdo superior do arranjo bidimensional.
[0011] A propriedade de informações de baixa frequência sendo predominante no canto esquerdo superior do arranjo bidimensional de coeficientes residuais pode ser explorada pelo esquema de binarização escolhido para minimizar o tamanho dos coeficientes residuais no fluxo de bits.
[0012] O HM-5.0 divide a unidade de transformada (TU) formando inúmeros subconjuntos e varre os coeficientes residuais em cada subconjunto em dois passos. O primeiro passo codifica sinalizadores que indicam a situação dos coeficientes residuais como tendo valor não zero (significativo) ou valor zero (não significativo). Esses dados são conhecidos como um mapa de significância. Um segundo passo codifica a magnitude e sinal de coeficientes residuais significativos, conhecidos como os níveis de coeficiente.
[0013] Um padrão de varredura fornecido permite a varredura do arranjo bidimensional de coeficientes residuais formando um arranjo unidimensional. No HM- 5.0, o padrão de varredura fornecido é usado para o processamento do mapa de significância e dos níveis de coeficiente. Varrendo-se o mapa de significância com o uso do padrão de varredura fornecido, o local do último coeficiente significativo no mapa de significância bidimensional pode ser determinado. Os padrões de varredura podem ser horizontais, verticais ou diagonais.
[0014] O modelo de teste de codificação de vídeo de alta eficiência (HEVC) 5.0 (HM-5.0) fornece suporte para blocos residuais, também conhecidos como unidades de transformada (TUs) que tem um formato quadrado e um formato não quadrado. Cada unidade de transformada (TU) contém um conjunto de coeficientes residuais. Os blocos residuais que têm dimensões laterais com mesmo tamanho são conhecidos como unidades de transformada quadradas (TUs) e os blocos residuais que têm dimensões laterais com tamanho diferente são conhecidos como unidades de transformada não quadradas (TUs).
[0015] Os tamanhos de unidade de transformada (TU) suportados em HM-5.0 são 4x4, 8x8, 16x16, 32x32, 4x16, 16x4, 8x32 e 32x8. Os tamanhos de unidade de transformada (TU) são tipicamente descritos em termos de amostras de luma, contudo, quando um formato de croma de 4:2:0 for usado, cada amostra de croma ocupa a área de amostras de luma de 2x2. Consequentemente, a varredura de unidades de transformada (TUs) para codificar dados residuais de croma usa padrões de varredura de metade das dimensões horizontal e vertical, como bloco residual de luma de 2x2 por um 4x4. Para a finalidade de varredura e codificação dos coeficientes residuais, as unidades de transformada (TUs) de 16x16, 32x32, 4x16, 16x4, 8x32 e 32x8 são dividas em inúmeros sub-blocos, isto é: uma camada inferior da varredura de unidade de transformada (TU), que tem um tamanho de 4x4, com um mapa correspondente que existe em HM-5.0. Em HM-5.0, os sub-blocos para esses tamanhos de unidade de transformada (TU) são colocados com subconjuntos na unidade de transformada (TU). O conjunto de sinalizadores de coeficiente significativo em uma porção do mapa de significância colocado em um sub-bloco é denominado um grupo de coeficiente significativo. Para as unidades de transformada (TUs) de 16x16, 32x32, 4x16, 16x4, 8x32 e 32x8, a codificação de mapa de significância faz uso de uma varredura de dois níveis. A varredura de nível superior realiza uma varredura, como um varredura de baixo para a esquerda diagonal para trás, para codificar ou inferir sinalizadores que representam o grupos de coeficiente significativo de cada sub-bloco. Nos sub-blocos, é realizada uma varredura, como a varredura de baixo para a esquerda diagonal para trás, para codificar os sinalizadores de coeficiente significativo para sub-blocos que têm um sinalizador de grupo de coeficiente significativo de valor um. Para uma unidade de transformada (TU) de 16x16, é usada uma varredura de nível superior de 4x4. Para uma unidade de transformada (TU) de 32x32, é usada uma varredura de nível superior de 8x8. Para tamanhos de unidade de transformada (TU) de 16x4, 4x16, 32x8 e 8x32, são usadas, respectivamente, varreduras de nível superior de 4x1, 1x4, 8x2 e 2x8.
[0016] Em cada unidade de transformada (TU), os dados de coeficiente residual podem ser codificados formando um fluxo de bits. Cada “coeficiente residual” é um número que representa características de imagem em uma unidade de transformada no domínio de frequência (DCT) e que ocupa um local exclusivo na unidade de transformada. Uma unidade de transformada é um bloco de amostras de dados residuais que pode ser transformado entre os domínios espacial e de frequência. No domínio de frequência, a unidade de transformada (TU) codifica as amostras de dados residuais as dados de coeficiente residual. As dimensões laterais de unidades de transformada são dimensionadas em potências de dois (2), na faixa de 4 amostras a 32 amostras para um canal “Luma” e 2 a 16 amostras para um canal “Croma”. Os nós folha da árvore de unidade de transformada (TU) podem conter uma unidade de transformada (TU) ou mesmo nada, caso no qual não são necessários dados de coeficiente residual.
[0017] Visto que a representação espacial da unidade de transformada é um arranjo bidimensional de amostras de dados residuais, conforme descrito em detalhes abaixo, uma representação de domínio de frequência que resulta de uma transformada, como uma transformada discreta modificada de cosseno (DCT), também é um arranjo bidimensional de coeficientes residuais. As características espectrais de dados de amostra típicos em uma unidade de transformada (TU) são tais que a representação de domínio de frequência é mais compacta do que a representação espacial. Adicionalmente, a predominância de informações espectrais de frequência mais baixa típicas em uma unidade de transformada (TU) resulta em um agrupamento de coeficientes residuais de valores maiores na direção da parte superior esquerda da unidade de transformada (TU), onde estão representados os coeficientes residuais de baixa frequência.
[0018] As transformadas discretas modificadas de cosseno (DCTs) ou transformadas discretas modificadas de seno (DSTs) podem ser usadas para implantar a transformada residual. As implantações da transformada residual estão configuradas para suportar cada tamanho de unidade de transformada (TU) exigido. Em um codificador de vídeo, os coeficientes residuais da transformada residual são colocados em escalada e quantizados. O escalonamento e a quantização reduzem a magnitude dos coeficientes residuais, reduzindo o tamanho dos dados codificados no fluxo de bits ao custo da redução da qualidade de imagem.
[0019] Um aspecto da complexidade do padrão de codificação de vídeo de alta eficiência (HEVC) em desenvolvimento é o número de tabelas de consulta exigido a fim de realizar a varredura. Cada tabela de consulta adicional resulta em um consumo indesejável de memória e, por conseguinte, o número de tabelas de consulta exigido é um aspecto de redução de complexidade.
SUMÁRIO
[0020] É um objetivo da presente invenção superar substancialmente, ou pelo menos melhorar, uma ou mais desvantagens de disposições existentes.
[0021] De acordo com um aspecto da presente revelação, é fornecido um método de decodificação de coeficientes residuais de uma unidade de transformada de um fluxo de bits de dados de vídeo, em que o método compreende:
[0022] receber a unidade de transformada do fluxo de bits de dados de vídeo, em que a unidade de transformada tem camadas quadradas de nível superior e inferior, sendo que a camada de nível superior representa uma disposição quadrada de no máximo quatro sinalizadores de grupo de coeficiente significativo em que cada um dos sinalizadores de grupo de coeficiente significativo representa uma região de não sobreposição da camada de nível inferior;
[0023] determinar os sinalizadores de grupo de coeficiente significativo da camada quadrada de nível superior para a unidade de transformada recebida; e
[0024] determinar os valores de coeficientes residuais da camada quadrada inferior de acordo com os sinalizadores de grupo de coeficiente significativo determinado para decodificar a unidade de transformada do fluxo de bits de dados de vídeo.
[0025] De preferência, cada uma das regiões de não sobreposição representadas pelo número máximo de quatro sinalizadores de grupo de coeficiente significativo são regiões quadradas, cada uma com dezesseis coeficientes residuais.
[0026] De forma desejável, a camada de nível superior tem quatro sinalizadores de coeficiente significativo, em que o método compreende a etapa adicional de determinar um padrão de varredura para cada uma das regiões de não sobreposição da camada de nível inferior aplicando-se um desvio a um padrão de varredura predeterminado.
[0027] O método também pode determinar os sinalizadores de grupo de coeficiente significativo da camada quadrada de nível superior decodificando-se os sinalizadores de coeficiente significativo codificados no fluxo de bits.
[0028] De preferência, a determinação dos sinalizadores de grupo de coeficiente significativo da camada quadrada de nível superior compreende inferir pelo menos um dos sinalizadores de coeficiente significativo.
[0029] Vantajosamente, a camada de nível inferior da unidade de transformada é formada como sub-blocos e a determinação de valores de coeficientes residuais da camada quadrada inferior de acordo com os sinalizadores de grupo de coeficiente significativo determinado compreende iterar sobre cada um dos sub-blocos da unidade de transformada. De forma desejável, a iteração forma um arranjo linear representativo de cada um dos sub-blocos, em um valor de desvio correspondente é usado para reconstruir cada sub-bloco a partir do arranjo linear.
[0030] Em uma implantação específica, a camada de nível superior representa uma disposição quadrada de quatro sinalizadores de grupo de coeficiente significativo.
[0031] Em uma implantação, uma direção de varredura da camada inferior da unidade de transformada é selecionada de acordo com um modo de intrapredição aplicado à unidade de transformada. Em outra, uma direção de varredura da camada superior da unidade de transformada é selecionada de acordo com um modo de intrapredição aplicado à unidade de transformada. Adicionalmente, uma direção de varredura da camada superior da unidade de transformada é diagonal e independe de uma direção de varredura da camada inferior da unidade de transformada.
[0032] De acordo com outro aspecto da presente revelação, é fornecido um método de codificação de coeficientes residuais de uma unidade de transformada em um fluxo de bits de dados de vídeo, em que o método compreende:
[0033] receber os valores de coeficientes residuais para uma camada quadrada inferior da unidade de transformada;
[0034] determinar os sinalizadores de grupo de coeficiente significativo para uma camada quadrada de nível superior da unidade de transformada, sendo que a camada de nível superior representa uma disposição quadrada de no máximo quatro sinalizadores de grupo de coeficiente significativo em que cada um dos sinalizadores de grupo de coeficiente significativo representa uma região de não sobreposição da camada de nível inferior; e
[0035] codificar os valores dos coeficientes residuais para a camada quadrada inferior e os sinalizadores de grupo de coeficiente significativo da camada quadrada de nível superior para codificar a unidade de transformada no fluxo de bits de dados de vídeo.
[0036] De acordo com outro aspecto, é fornecido um método de decodificação de coeficientes residuais de uma unidade de transformada de um fluxo de bits de dados de vídeo, em que o método compreende:
[0037] receber a unidade de transformada do fluxo de bits de dados de vídeo, em que a unidade de transformada tem camadas quadradas de nível superior e nível inferior, sendo que a camada quadrada de nível superior representa uma disposição quadrada de sinalizadores de grupo de coeficiente significativo em que cada um dos sinalizadores de grupo de coeficiente significativo representa uma região de não sobreposição da camada quadrada de nível inferior;
[0038] determinar um padrão de varredura da camada quadrada de nível superior e da camada quadrada de nível inferior de acordo com um modo de intrapredição, em que os padrões de varredura de camada quadrada de nível superior e de camada quadrada de nível inferior são iguais;
[0039] determinar os sinalizadores de grupo de coeficiente significativo da camada quadrada de nível superior para a unidade de transformada recebida de acordo com o padrão de varredura determinado; e
[0040] determinar os valores de coeficientes residuais da camada quadrada de nível inferior de acordo com os sinalizadores de grupo de coeficiente significativo determinado para decodificar a unidade de transformada do fluxo de bits de dados de vídeo.
[0041] Também são revelados outros aspectos.
BREVE DESCRIÇÃO DOS DESENHOS
[0042] Será descrita pelo menos uma modalidade da presente invenção com referência aos desenhos a seguir, nos quais:
[0043] A Figura 1 é um diagrama de blocos esquemático que mostra módulos funcionais de um codificador de vídeo;
[0044] A Figura 2 é um diagrama de blocos esquemático que mostra módulos funcionais de um decodificador de vídeo;
[0045] As Figuras 3A e 3B formam um diagrama de blocos esquemático de um sistema de computador de propósito geral no qual o codificador e o decodificador das Figuras 1 e 2, respectivamente, podem ser concretizados;
[0046] A Figura 4 é um diagrama de blocos esquemático que mostra módulos funcionais de um codificador de entropia;
[0047] A Figura 5 é um diagrama de blocos esquemático que mostra módulos funcionais de um decodificador de entropia;
[0048] A Figura 6 é um fluxograma que mostra um método convencional para codificar os coeficientes residuais de uma unidade de transformada (TU) de 8x8;
[0049] A Figura 7 é um fluxograma que mostra um método convencional para decodificar os coeficientes residuais de uma unidade de transformada (TU) de 8x8;
[0050] A Figura 8 é um fluxograma que mostra um método de acordo com a presente revelação para codificar os coeficientes residuais de uma unidade de transformada (TU) de 8x8 com o uso de grupos de coeficiente significativo;
[0051] A Figura 9 é um fluxograma que mostra um método de acordo com a presente revelação para decodificar os coeficientes residuais de uma unidade de transformada (TU) de 8x8 com o uso de grupos de coeficiente significativo;
[0052] As Figuras 10A e 10B ilustram um método de acordo com a presente revelação para representar grupos de coeficientes significativos de uma unidade de transformada (TU) de 8x8;
[0053] A Figura 11 é um diagrama que mostra um método convencional para varrer coeficientes residuais de uma unidade de transformada (TU) de 8x8 com o uso de uma varredura diagonal para trás;
[0054] A Figura 12 é um diagrama que mostra um método convencional para varrer coeficientes residuais de uma unidade de transformada (TU) de 8x8 com o uso de uma varredura horizontal para trás;
[0055] A Figura 13 é um diagrama que mostra um método convencional para varrer coeficientes residuais de uma unidade de transformada (TU) de 8x8 com o uso de uma varredura vertical para trás;
[0056] A Figura 14 é um diagrama que mostra um método de acordo com a presente revelação para varrer coeficientes residuais de uma unidade de transformada (TU) de 8x8 com o uso de uma hierarquia de duas camadas;
[0057] As Figuras 15A a 15C ilustram um método de acordo com a presente revelação para varrer coeficientes residuais de uma unidade de transformada (TU) de 8x8 com o uso de uma varredura diagonal para trás;
[0058] As Figuras 16A a 16C ilustram um método de acordo com a presente revelação para varrer coeficientes residuais de uma unidade de transformada (TU) de 8x8 com o uso de uma varredura horizontal para trás;
[0059] As Figuras 17A a 17C ilustram um método de acordo com a presente revelação para varrer coeficientes residuais de uma unidade de transformada (TU) de 8x8 com o uso de uma varredura vertical para trás; e
[0060] As Figuras 18A a 18C ilustram uma abordagem alternativa para varredura que faz uso de desvios.
DESCRIÇÃO DETALHADA INCLUINDO MELHOR MODO
[0061] Onde for feita referência em qualquer um ou mais dos desenhos anexos a etapas e/ou recursos, que têm as mesmas referências numéricas, essas etapas e/ou recursos têm, para os propósitos dessa descrição, a(s) mesma(s) função(ões) ou operação(ões), exceto onde especificado em contrário.
[0062] A Figura 1 é um diagrama de blocos esquemático que mostra módulos funcionais de um codificador de vídeo 100. A Figura 2 é um diagrama de blocos esquemático que mostra módulos funcionais de um decodificador de vídeo correspondente 200. O codificador de vídeo 100 e o decodificador de vídeo 200 podem ser implantados com o uso de um sistema de computador de propósito geral 300, conforme mostrado nas Figuras 3A e 3B em que os vários módulos funcionais podem ser implantados por hardware dedicado no sistema de computador 300, por software executável no sistema de computador 300 ou, alternativamente, por meio de uma combinação de hardware dedicado e software executável no sistema de computador 300.
[0063] Conforme observado na Figura 3A, o sistema de computador 300 inclui: um módulo de computador 301; dispositivos de entrada como um teclado 302, um dispositivo de ponteiro de mouse 303, um digitalizador 326, uma câmera 327 e um microfone 380; e dispositivos de saída incluindo uma impressora 315, um dispositivo de exibição 314 e alto-falantes 317. Um dispositivo transceptor Modulador- Demodulador (Modem) externo 316 pode ser usado pelo módulo de computador 301 para se comunicar com e a partir de uma rede de comunicações 320 através de uma conexão 321. A rede de comunicações 320 pode ser uma rede de área ampla (WAN), como a Internet, uma rede de telecomunicações de celular ou uma WAN privada. Onde a conexão 321 for uma linha de telefone, o modem 316 pode ser um modem de “discagem” tradicional. Alternativamente, onde a conexão 321 for uma conexão de alta capacidade (por exemplo, cabo), o modem 316 pode ser um modem de banda larga. Um modem sem fio também pode ser usado para conexão sem fio com a rede de comunicações 320.
[0064] O módulo de computador 301 inclui tipicamente pelo menos uma unidade processadora 305 e uma unidade de memória 306. Por exemplo, a unidade de memória 306 pode ter memória de acesso aleatório semicondutora (RAM) e memória apenas para leitura semicondutora (ROM). O módulo de computador 301 também inclui inúmeras interfaces de entrada/saída (I/O) incluindo: uma interface de áudio- vídeo 307 que se acopla ao visor de vídeo 314, aos alto-falantes 317 e ao microfone 380; uma interface de I/O 313 que se acopla ao teclado 302, ao mouse 303, ao digitalizador 326, à câmera 327 e, opcionalmente, um joystick ou outro dispositivo de interface humana (não ilustrado); e uma interface 308 para o modem externo 316 e a impressora 315. Em algumas implantações, o modem 316 pode ser incorporado ao módulo de computador 301, por exemplo, à interface 308. O módulo de computador 301 também tem uma interface de rede local 311, que permite o acoplamento do sistema de computador 300 através de uma conexão 323 a uma rede de comunicações de área local 322, conhecida como uma Rede de Área Local (LAN). Conforme ilustrado na Figura 3A, a rede de comunicações local 322 também pode se acoplar à rede ampla 320 através de uma conexão 324, que incluiria tipicamente um dispositivo denominado “firewall” ou um dispositivo de funcionalidade similar. A interface de rede local 311 pode compreender um cartão de circuito EthernetTM, uma disposição sem fio BluetoothTM ou uma disposição sem fio IEEE 802.11; no entanto, inúmeros outros tipos de interfaces podem ser incorporadas pela interface 311.
[0065] As interfaces de I/O 308 e 313 podem permitir qualquer uma das duas ou ambas dentre a condutividade em série e a paralela, em que a primeira é tipicamente implantada de acordo com os padrões de Barramento em Série Universal (USB) e tem conectores USB correspondentes (não ilustrado). Os dispositivos de armazenamento 309 são fornecidos e incluem tipicamente uma unidade de disco rígido (HDD) 310. Outros dispositivos de armazenamento como uma unidade de disquete e uma unidade de fita magnética (não ilustrado) também podem ser usados. Uma unidade de disco óptico 312 é tipicamente fornecida para atuar como uma fonte não volátil de dados. Os dispositivos portáteis de memória, como discos ópticos (por exemplo, CD-ROM, DVD, Blu ray DiscTM), USB-RAM, unidades de disco rígido portáteis e disquetes, por exemplo, podem ser usados como fontes apropriadas de dados para o sistema 300. Tipicamente, qualquer um dentre a HDD 310, a unidade óptica 312, as redes 320 e 322 ou a câmera 327 pode ser uma de dados de vídeo a serem codificados ou, com o visor 314, um destino para dados de vídeo decodificados a serem armazenados ou reproduzidos.
[0066] Os componentes 305 a 313 do módulo de computador 301 se comunicam tipicamente através de um barramento interconectado 304 e de maneira que resulte em um modo convencional de operação do sistema de computador 300 conhecido pelo versado na técnica. Por exemplo, o processador 305 é acoplado ao barramento de sistema 304 com o uso de uma conexão 318. Da mesma forma, a memória 306 e a unidade de disco óptico 312 estão acopladas ao barramento de sistema 304 por meio de conexões 319. Exemplos de computadores nos quais as disposições descritas podem ser incorporadas incluem IBM-PCs e compatíveis, Sun Sparcstations, Apple MacTM ou sistemas de computador similares.
[0067] Onde for apropriado ou desejado, o codificador 100 e o decodificador 200, bem como os métodos descritos abaixo, podem ser implantados com o uso do sistema de computador 300, em que o codificador 100, o decodificador 200 e os processos das Figuras 10 e 11, a serem descritas, podem ser implantados como um ou mais programas aplicativos de software 333 executáveis no sistema de computador 300. Em particular, o codificador 100, o decodificador 200 e as etapas dos métodos descritos são efetuados por meio de instruções 331 (consulte a Figura 3B) no software 333 que são executadas no sistema de computador 300. As instruções de software 331 podem ser formadas como um ou mais módulos de código, em que cada um realiza uma ou mais tarefas particulares. O software também pode ser divido em partes separadas, nas quais uma primeira parte e os módulos de código correspondentes realizam os métodos descritos e uma segunda parte e os módulos de código correspondentes gerenciam uma interface de usuário entre a primeira parte e o usuário.
[0068] O software pode ser armazenado em um meio legível em computador, incluindo os dispositivos de armazenamento descritos abaixo, por exemplo. O software é carregado no sistema de computador 300 do meio legível em computador e, então, executado pelo sistema de computador 300. Um meio legível em computador que tem tal software ou programa de computador gravado no meio legível em computador é um produto de programa de computador. O uso do produto de programa de computador no sistema de computador 300 efetua, de preferência, aparelho vantajoso para a implantação do codificador 100, do decodificador 200 e dos métodos descritos.
[0069] O software 333 é tipicamente armazenado na HDD 310 ou na memória 306. O software é carregado no sistema de computador 300 de um meio legível em computador e executado pelo sistema de computador 300. Dessa forma, por exemplo, o software 333 pode ser armazenado em um meio de armazenamento em disco lido por meio óptico (por exemplo, CD-ROM) 325 que é lido pela unidade de disco óptico 312.
[0070] Em alguns casos, os programas aplicativos 333 podem ser fornecidos para o usuário codificados em um ou mais CD-ROMs 325 e lidos por meio da unidade correspondente 312 ou, alternativamente, podem ser lidos pelo usuário das redes 320 ou 322. Ainda adicionalmente, o software também pode ser carregado no sistema de computador 300 de outros meios legíveis em computador. Os meios de armazenamento legíveis em computador se referem a qualquer meio de armazenamento tangível não transitório que fornece instruções e/ou dados gravados para o sistema de computador 300 para execução e/ou processamento. Exemplos de tais meios de armazenamento incluem disquetes, fita magnética, CD-ROM, DVD, Disco Blu-ray, uma unidade de disco rígido, uma ROM ou circuito integrado, memória USB, um disco óptico-magnético ou um cartão legível em computador como um cartão PCMCIA e similares, em que tais dispositivos são internos ou externos em relação ao módulo de computador 301. Exemplos de meios de transmissão legíveis em computador transitórios ou não tangíveis que também podem participar no fornecimento do software, programas aplicativos, instruções e/ou dados de vídeo ou dados de vídeo codificados para o módulo de computador 301 incluem canais de radiotransmissão ou transmissão infravermelha bem como uma conexão de rede com outro computador ou dispositivo ligado em rede e a Internet ou Intranets incluindo transmissões de e-mail e informações gravadas em sítios da Internet e similares.
[0071] A segunda parte dos programas aplicativos 333 e dos módulos de código correspondentes mencionados acima pode ser executada para implantar uma ou mais interfaces gráficas de usuário (GUIs) a serem renderizadas ou, de outra forma, representadas no visor 314. Através de manipulação tipicamente do teclado 302 e do mouse 303, um usuário do sistema de computador 300 e do aplicativo pode manipular a interface de maneira funcionalmente adaptável para fornecer comandos de controle e/ou entrada para os aplicativos associados à(s) GUI(s). Outras formas de interfaces de usuário funcionalmente adaptáveis também podem ser implantadas, como uma interface de áudio que utiliza aviso de discurso emitido através dos alto-falantes 317 e comandos de voz de usuário emitidos através do microfone 380.
[0072] A Figura 3B é um diagrama de blocos esquemático detalhado do processador 305 e uma “memória” 334. A memória 334 representa uma agregação lógica de todos os módulos de memória (incluindo a HDD 309 e a memória semicondutora 306) que podem ser acessadas pelo módulo de computador 301 na Figura 3A.
[0073] Quando o módulo de computador 301 é inicialmente ligado, é executado um programa de autoteste de inicialização (POST) 350. O programa de POST 350 é tipicamente armazenado em uma ROM 349 da memória semicondutora 306 da Figura 3A. Um dispositivo de hardware como a ROM 349 que armazena o software é, às vezes, chamado de firmware. O programa de POST 350 examina o hardware no módulo de computador 301 para assegura funcionamento apropriado e verifica, tipicamente, o processador 305, a memória 334 (309, 306) e um módulo de software de sistemas de entrada-saída (BIOS) 351, também tipicamente armazenado na ROM 349, para operação correta. Uma vez que o programa de POST 350 foi executado com sucesso, o BIOS 351 ativa a unidade de disco rígido 310 da Figura 3A. A ativação da unidade de disco rígido 310 faz com que um programa carregador de inicialização (bootstrap loader) 352 que reside na unidade de disco rígido 310 seja executado através do processador 305. Isso carrega um sistema operacional 353 na memória RAM 306, na qual o sistema operacional 353 inicia sua operação. O sistema operacional 353 é um aplicativo de nível de sistema, executável pelo processador 305, para cumprir várias funções de alto nível, incluindo gerenciamento de processador, gerenciamento de memória, gerenciamento de dispositivo, gerenciamento de armazenamento, interface de aplicativo de software e interface genérica de usuário.
[0074] O sistema operacional 353 gerencia a memória 334 (309, 306) para assegurar que cada processo ou aplicativo em execução no módulo de computador 301 tenha memória suficiente na qual a execução deve ocorrer sem colidir com a memória alocada para outro processo. Ademais, os diferentes tipos de memória disponíveis no sistema 300 da Figura 3A precisam ser usados apropriadamente de modo que cada processo possa ser executado de modo eficaz. Consequentemente, a memória agregada 334 não se destina a ilustrar como segmentos particulares de memória são alocados (exceto se estabelecido em contrário), mas, ao invés disso, para fornecer uma visão geral da memória acessível pelo sistema de computador 300 e como é usada.
[0075] Conforme mostrado na Figura 3B, o processador 305 inclui inúmeros módulos funcionais que incluem uma unidade de controle 339, uma unidade lógica aritmética (ALU) 340 e uma memória local ou interna 348, às vezes chamada de memória cache. A memória cache 348 inclui tipicamente inúmeros registros de armazenamento 344 a 346 em uma seção de registro. Um ou mais barramentos internos 341 interconectam funcionalmente esses módulos funcionais. O processador 305 tipicamente também tem uma ou mais interfaces 342 para comunicação com dispositivos externos através do barramento de sistema 304, com o uso de uma conexão 318. A memória 334 é acoplada ao barramento 304 com o uso de uma conexão 319.
[0076] O programa aplicativo 333 inclui uma sequência de instruções 331 que podem incluir instruções de loop e desvio condicional. O programa 333 também pode incluir dados 332 que são usados na execução do programa 333. As instruções 331 e os dados 332 são armazenados em locais de memória 328, 329, 330 e 335, 336, 337, respectivamente. Dependendo do tamanho relativo das instruções 331 e dos locais de memória 328 a 330, uma instrução particular pode ser armazenada em um único local de memória conforme definido pela instrução mostrada no local de memória 330. Alternativamente, uma instrução pode ser segmentada formando inúmeras partes, em que cada uma é armazenada em um local de memória separado, conforme definido pelos segmentos de instrução mostrados nos locais de memória 328 e 329.
[0077] Em geral, é dado ao processador 305 um conjunto de instruções que é executado no mesmo. O processador 305 aguarda por uma entrada subsequente, a qual o processador 305 reage executando ou conjunto de instruções. Cada entrada pode ser fornecida de um ou mais dentre inúmeras fontes, incluindo dados gerados por um ou mais dos dispositivos de entrada 302, 303, dados recebidos de uma fonte externa através de uma das redes 320, 302, dados recuperados de um dos dispositivos de armazenamento 306, 309 ou dados recuperados de um meio de armazenamento 325 inserido no leitor correspondente 312, tudo relatado na Figura 3A. A execução de um conjunto de instruções pode resultar, em alguns casos, na emissão de dados. A execução também pode envolver armazenamento de dados ou variáveis na memória 334.
[0078] O codificador 100, o decodificador 200 e os métodos descritos usam variáveis de entrada 354, que são armazenadas na memória 334 em locais de memória correspondentes 355, 356, 357. O codificador 100, o decodificador 200 e os métodos descritos produzem variáveis de saída 361, que são armazenadas in na memória 334 em locais de memória correspondentes 362, 363, 364. As variáveis intermediárias 358 podem ser armazenadas em locais de memória 359, 360, 366 e 367.
[0079] Referindo-se ao processador 305 da Figura 3B, os registros 344, 345, 346, a unidade lógica aritmética (ALU) 340 e a unidade de controle 339 trabalham em conjunto para realizar sequências de micro-operações necessárias para realiza ciclos de “buscar, decodificar e executar” para cada instrução no conjunto de instruções que constitui o programa 333. Cada ciclo de busca, decodificação e execução compreende: (a) uma operação de busca, que busca ou lê uma instrução 331 de um local de memória 328, 329, 330; (b) uma operação de decodificação na qual a unidade de controle 339 determina qual instrução foi buscada; e (c) uma operação de execução na qual a unidade de controle 339 e/ou a ALU 340 executa a instrução.
[0080] Desde então, um ciclo de busca, decodificação e execução adicional para a próxima instrução pode ser executado. Similarmente, um ciclo de armazenamento pode ser realizado através do qual a unidade de controle 339 armazena ou escreve um valor em um local de memória 332.
[0081] Cada etapa ou subprocesso nos processos das Figuras 1, 2, 4, 5, 7 a 10 e 14 a 17 a serem descritas está associado a um ou mais segmentos do programa 333 e é realizado pela seção de registro 344, 345, 347, pela ALU 340 e pela unidade de controle 339 no processador 305 que trabalham em conjunto para realizar os ciclos de busca, decodificação e execução para cada instrução no conjunto de instruções para os segmentos estabelecidos do programa 333.
[0082] O codificador 100, o decodificador 200 e os métodos descritos podem ser alternativamente implantados em hardware dedicado como um ou mais circuitos integrados que realizam as funções ou subfunções dos métodos descritos. Tal hardware dedicado pode estar sob a forma de aparelho computadorizado e pode incluir processadores gráficos, processadores de sinal digital, circuitos integrados de aplicação específica (ASICs), arranjos de porta programável em campo (FPGAs) ou um ou mais microprocessadores e memórias associadas. Tal aparelho computadorizado pode ser usado para realizar algumas operações de codificação em hardware e outras operações de codificação em software em execução do hardware.
[0083] Conforme descrito acima, o codificador de vídeo 100 pode ser implantado como um ou mais módulos de código de software do programa aplicativo de software 333 residente na unidade de disco rígido 305 e controlado em sua execução pelo processador 305. Em particular, o codificador de vídeo 100 compreende módulos 102 a 112, 114 e 115 que podem ser, cada um, implantados como um ou mais módulos de código de software do programa aplicativo de software 333.
[0084] Embora o codificador de vídeo 100 seja um exemplo de um pipeline de decodificação de vídeo de codificação de vídeo de alta eficiência (HEVC), os estágios de processamento pelos módulos 102 a 112, 114 e 115 são comuns para outros codecs de vídeo como VC-1 ou H.264/MPEG-4 AVC. O codificador de vídeo 100 recebe dados de quadro não codificados 101 como uma série de quadros que inclui amostras de luminância e crominância. O codificador de vídeo 100 divide cada quadro dos dados de quadro 101 em conjuntos hierárquicos de unidades de codificação (CUs), representáveis, por exemplo, como uma árvore de unidade de codificação (CU).
[0085] O codificador de vídeo 100 opera emitindo, de um módulo multiplexador 110, um arranjo de amostras de dados preditos conhecidas como uma unidade de predição (PU) 120. Um módulo de diferença 115 emite a diferença entre a unidade de predição (PU) 120 e um arranjo correspondente de amostras de dados recebido dos dados de quadro 101, em que a diferença é conhecida como amostras de dados residuais 122.
[0086] As amostras de dados residuais 122 do módulo de diferença 115 são recebidas por um módulo de transformada 102, que converte a diferença de uma representação espacial em uma representação de domínio de frequência para criar coeficientes de transformada 124 para cada unidade de transformada (TU) na árvore de transformada. Para o padrão de codificação de vídeo de alta eficiência (HEVC) em desenvolvimento, a conversão para a representação de domínio de frequência é implantada com o uso de uma transformada discreta modificada de cosseno (DCT), na qual uma DCT tradicional é modificada para ser implantada com o uso de desvios e adições. Os coeficientes de transformada 124 são, então, em um módulo de escalonamento e quantização 103 e são colocados em escala e quantizados para produzir coeficientes residuais 126. O processo de escalonamento e quantização resulta em uma perda de precisão. Os coeficientes residuais 126 são tomados como uma entrada em um módulo de escalonamento inverso 105 que reverte o escalonamento realizado pelo módulo de escalonamento e quantização 103 para produzir coeficientes de transformada estabelecidos em nova escala 128, que são versões estabelecidas em nova escala dos coeficientes residuais 126. Os coeficientes residuais 126 também são tomados com entrada em um codificador de entropia módulo 104 que codifica os coeficientes residuais em um fluxo de bits codificado 113. Devido à perda de precisão resultante do módulo de escalonamento e quantização 103, os coeficientes de transformada estabelecidos em nova escala 128 não são idênticos aos coeficientes de transformada originais 124. Os coeficientes de transformada estabelecidos em nova escala 128 do módulo de escalonamento inverso 105 são, então, emitidos para um módulo de transformada inversa 106. O módulo de transformada inversa 106 realiza uma transformada inversa do domínio de frequência para o domínio espacial para produzir uma representação de domínio-espacial 130 dos coeficientes de transformada estabelecidos em nova escala 128 idêntica a uma representação de domínio espacial que é produzida em um decodificador.
[0087] Um módulo de estimativa de movimento 107 produz vetores de movimento 132 comparando-se os dados de quadro 101 aos dados de quadro anteriores armazenados em um módulo de armazenamento temporário de quadro 112, tipicamente configurado na memória 306. Os vetores de movimento 132 são, então, inseridos em um módulo de compensação de movimento 108 que produz amostras de referência interpreditas 134 filtrando-se amostras armazenadas no módulo de armazenamento temporário de quadro 112, considerando um desvio espacial derivado dos vetores de movimento 132. Não ilustrados na Figura 1, os vetores de movimento 132 também são passados como elementos de sintaxe para o módulo codificador de entropia 104 para codificação no fluxo de bits codificado 113. Um módulo de predição de interquadro 109 produz amostras de referência intrapreditas 136 com o uso de amostras 138 obtidas a partir de um módulo de soma 114, que soma a saída 120 do módulo multiplexador 110 e a saída 130 do módulo de transformada inversa 106.
[0088] Unidades de predição (PUs) podem ser codificadas com o uso de métodos de intrapredição ou interpredição. A decisão sobre se usar intrapredição ou interpredição é feita de acordo com um equilíbrio de distorção de taxa entre a taxa de bits desejada do fluxo de bits codificado resultante 113 e a quantidade de distorção de qualidade de imagem introduzida pelo método de intrapredição ou interpredição. O módulo multiplexador 110 seleciona as amostras referenciadas de intrapredição 136 do módulo de predição de intraquadro 109 ou as amostras referenciadas de interpredição 134 do bloco de compensação de movimento 108, dependendo de um modo de predição atual 142, determinado pela lógica de controle não ilustrada, mas bem conhecida na técnica. O modo de predição 142 é também fornecido ao codificador de entropia 104, conforme ilustrado, e como tal é usado para determinar ou de outro modo estabelecer a ordem de varredura de unidades de transformação, conforme será descrito. A predição interquadro usa apenas uma ordem de varredura diagonal, enquanto que a predição intraquadro pode usar a ordem de varredura diagonal, uma varredura horizontal ou uma varredura vertical.
[0089] O módulo de somatório 114 produz uma soma 138 que é inserida em um módulo de filtro de desbloqueio 111. O módulo de filtro de desbloqueio 111 realiza filtração ao longo de limites de bloco, que produzem amostras desbloqueadas 140 que são escritas no módulo de armazenamento temporário de quadro 112 configurado dentro da memória 306. O módulo de armazenamento temporário de quadro 112 é uma memória temporária com capacidade suficiente para reter dados de múltiplos quadros passados para futura referência.
[0090] No codificador de vídeo 100, as amostras de dados residuais 122 dentro de uma unidade de transformada (TU) são determinadas encontrando-se a diferença entre amostras de dados dos dados de quadro de entrada 101 e a predição 120 das amostras de dados dos dados de quadro de entrada 101. A diferença fornece uma representação espacial dos coeficientes residuais da unidade de transformada (TU).
[0091] Na operação do módulo de codificador de entropia 104, os coeficientes residuais de uma unidade de transformada (TU) são convertidos no mapa de significância bidimensional. O mapa de significância dos coeficientes residuais na unidade de transformada (TU) é então varrido em uma ordem particular, conhecida como uma ordem de varredura, para formar uma lisa unidimensional de valores de sinalização, denominada uma lista de sinalizadores de coeficiente significativo. A ordem de varredura pode ser descrita ou de outro modo especificada por um padrão de varredura, como aquele recebido com o modo de predição 142 do módulo de intrapredição 109. O módulo de intrapredição 109 determina um modo de intrapredição que pode ser usado para selecionar o padrão de varredura. Por exemplo, se o modo de intrapredição 1 (intrapredição vertical) for selecionado, então a varredura horizontal é usada conforme visto na Figura 12. Se o modo de intrapredição 0 (intrapredição plana) for selecionado, então a varredura diagonal é usada conforme visto Figura 11, enquanto que, se o modo de intrapredição 2 (intrapredição horizontal) for selecionado, então a varredura vertical é usada conforme visto na Figura 13. O padrão de varredura pode ser horizontal, vertical, diagonal ou em ziguezague. A versão 5 do modelo de teste de codificação de vídeo de alta eficácia (HEVC) realiza varredura em uma direção para trás, entretanto, a varredura em uma direção para frente também é possível. Para unidades de transformação (TUs) de 16x16, 32x32, 4x16, 16x4, 8x32 e 32x8, uma varredura de dois níveis é definida onde a unidade de transformada (TU) é dividida em um conjunto de sub-blocos, em que cada sub-bloco tem um formato quadrado. Em um nível superior, a varredura é realizada varrendo-se cada nível inferior com o uso de uma varredura, como a varredura para baixo e esquerda, diagonal e para trás. No nível inferior, também conhecido como o nível de sub-bloco, a varredura também é realizada com o uso de uma varredura, como a varredura para baixo e esquerda, diagonal e para trás. No modelo de referência de HEVC versão 5.0, a operação de varredura começa um coeficiente residual após um último coeficiente significativo (em que “após” é na direção de uma varredura para trás dos coeficientes residuais) e progride até um local superior esquerdo do mapa de significância ser alcançado. Operações de varredura que tem essa propriedade e que estão de acordo com o modelo de referência de HEVC versão 5.0 são conhecidas como “varreduras para trás”. No software de referência de HEVC versão 5.0, o local do último coeficiente significativo é sinalizado codificando-se coordenadas do coeficiente na unidade de transformada (TU). Aqueles familiares com a técnica observarão que o uso do adjetivo “último” nesse contexto é dependente da ordem particular de varredura. O que pode ser o “último” coeficiente residual não zero ou sinalizador de coeficiente significativo de valor um correspondente de acordo com um padrão de varredura pode não ser o “último” de acordo com outro padrão de varredura. A lista de sinalizadores de coeficiente significativo, que indica a significância de cada coeficiente residual antes do último coeficiente significativo, é codificada no fluxo de bits 113. O último valor de sinalizador de coeficiente significativo não precisa ser explicitamente codificado no fluxo de bits 113, visto que a codificação anterior do local do último sinalizador de coeficiente significativo indicou implicitamente que esse coeficiente residual foi significativo.
[0092] O agrupamento de coeficientes residuais de valores maiores em direção à esquerda superior da unidade de transformada (TU) resulta em sinalizações de maior significância mais precocemente na lista como sendo significativo, enquanto que poucas sinalizações de significância são encontradas mais à frente na lista.
[0093] O módulo de codificador de entropia 104 também produz elementos de sintaxe de dados de coeficiente residual entrantes (ou coeficientes residuais) 126 recebidos do módulo de escalonamento e quantização 103. O módulo de codificador de entropia 104 emite o fluxo de bits codificado 113 e será descrito em mais detalhes abaixo. Para o padrão de codificação de vídeo de alta eficácia (HEVC) em desenvolvimento, o fluxo de bits codificado 113 é delineado em unidades de camada de abstração de rede (NAL). Cada fatia de um quadro é contida em uma unidade de NAL.
[0094] Há diversas alternativas para o método de codificação de entropia implantado no módulo de codificador de entropia 104. O padrão de codificação de vídeo de alta eficácia (HEVC) em desenvolvimento suporta codificação aritmética binária adaptativa de contexto (CABAC), uma variação de codificação aritmética binária adaptativa de contexto (CABAC) encontrada em H.264/MPEG-4 AVC. Um esquema de codificação de entropia alternativo é o codificador de entropia de particionamento de intervalo de probabilidade (PIPE), que é bem conhecido na técnica.
[0095] Para um codificador de vídeo 100 que suporta múltiplos métodos de codificação de vídeo, um dos métodos de codificação de entropia suportados é selecionado de acordo com a configuração do codificador 100. Além disso, ao codificar as unidades de codificação de cada quadro, o módulo de codificador de entropia 104 escreve o fluxo de bits codificado 113 de modo que cada quadro tenha uma ou more fatias por quadro, em que cada fatia contém dados de imagem para parte do quadro. Produzir uma fatia por quadro reduz sobrecarga associada a delinear cada limite de fatia. Entretanto, dividir o quadro em múltiplas fatias é também possível.
[0096] O decodificador de vídeo 200 pode ser implantado como um ou mais módulos de código de software do programa de aplicação de software 333 residente na unidade de disco rígido 305 e é controlado em sua execução pelo processador 305. Em particular, o decodificador de vídeo 200 compreende módulos 202 a 208 e 210 que pode ser, cada um, implantado como um ou mais módulos de código de software do programa de aplicação de software 333. Embora o decodificador de vídeo 200 seja descrito com referência a uma tubulação de decodificação de vídeo de codificação de vídeo de alta eficácia (HEVC), estágios de processamento realizados pelos módulos 202 a 208 e 209 são comuns a outros codecs de vídeo que empregam codificação de entropia, como H.264/MPEG-4 AVC, MPEG-2 e VC-1.
[0097] Um fluxo de bits codificado, como o fluxo de bits codificado 113, é recebido pelo decodificador de vídeo 200. O fluxo de bits codificado 113 pode ser lido da memória 306, da unidade de disco rígido 310, de um CD-ROM, um disco Blu-rayTM ou outro meio de armazenamento legível por computador. Alternativamente, o fluxo de bits codificado 113 pode ser recebido de uma fonte externa, como um servidor conectado à rede de comunicações 320 ou um receptor de frequência de rádio. O fluxo de bits codificado 113 contém elementos de sintaxe codificados que representam dados de quadro a ser decodificado.
[0098] O fluxo de bits codificado 113 é inserido em um módulo de decodificador de entropia 202 que extrai os elementos de sintaxe do fluxo de bits codificado 113 e passa os valores dos elementos de sintaxe para outros blocos no decodificador de vídeo 200. Podem haver múltiplos métodos de decodificação de entropia implantados no módulo de decodificador de entropia 202, como aqueles descritos com referência ao módulo de codificador de entropia 104. Dados de elemento de sintaxe 220 que representam dados de coeficiente residual são passados para um módulo de transformada e escala inversa 203 e dados de elemento de sintaxe 222 que representam informações de vetor de movimento são passados para um módulo de compensação de movimento 204. O módulo de transformada e escala inversa 203 realiza escalonamento inverso nos dados de coeficiente residual para criar coeficientes de transformada reconstruídos. O módulo 203 realiza então uma transformada inversa para converter os coeficientes de transformada reconstruídos de uma representação de domínio de frequência para uma representação de domínio espacial, produzindo amostras residuais 224, como a transformada inversa descrita com referência ao módulo de transformada inversa 106.
[0099] O módulo de compensação de movimento 204 usa os dados de vetor de movimento 222 de módulo de decodificador de entropia 202, combinados com dados de quadro anteriores 226 de um bloco de memória temporária de quadro 208, configurado dentro da memória 306, para produzir amostras referenciadas de interpredição 228 para uma unidade de predição (PU), sendo uma predição de dados de quadro decodificados emitidos. Quando um elemento de sintaxe indica que a unidade de codificação atual foi codificada com o uso de intrapredição, o módulo de predição de intraquadro 205 produz amostras referenciadas de intrapredição 230 para a unidade de predição (PU) com o uso de amostras espacialmente vizinhas à unidade de predição (PU). As amostras espacialmente vizinhas são obtidas a partir de uma emissão de soma 232 de um módulo de somatório 210. O módulo multiplexador 206 seleciona amostras referenciadas de intrapredição ou amostras referenciadas de interpredição para a unidade de predição (PU) dependendo do modo de predição atual, que é indicado por um elemento de sintaxe no fluxo de bits codificado 113. O arranjo de amostras 234 emitidas do módulo multiplexador 206 é adicionado às amostras residuais 224 do módulo de transformada e escala inversa 203 pelo módulo de somatório 210 para produzir a soma 232, que é então inserida em cada um de um módulo de filtro de desbloqueio 207 e do módulo de predição de intraquadro 205. Em contraste ao codificador 100, o módulo de predição de intraquadro 205 recebe um modo de predição 236 do decodificador de entropia 202. O multiplexador 206 recebe um sinal de seleção de predição intraquadro / predição interquadro do decodificador de entropia 202. O módulo de filtro de desbloqueio 207 realiza filtração ao longo de limites de bloco de dados para suavizar artefatos visíveis ao longo dos limites de bloco de dados. A saída do módulo de filtro de desbloqueio 207 é escrita no módulo de armazenamento temporário de quadro 208 configurado dentro da memória 306. O módulo de armazenamento temporário de quadro 208 fornece armazenamento suficiente para reter múltiplos quadros decodificados para futura referência. Quadros decodificados 209 são também emitidos do módulo de armazenamento temporário de quadro 208.
[00100] O codificador de entropia 104 será descrito com referência à Figura 4. Elementos de sintaxe, como coeficientes residuais 401, são inseridos em um módulo binarizador 404. Um tamanho de unidade de transformada (TU) 402 é inserido no módulo binarizador 404, e indica o tamanho da unidade de transformada (TU) sendo codificada. Um padrão de varredura 403 é inserido no módulo binarizador 404. O módulo binarizador 404 binariza cada elemento de sintaxe em uma sequência de números binários. Cada número binário compreende um valor de número binário 406 e um índice de contexto 405. O valor de número binário 406 e o índice de contexto 405 são recebidos por um modelo de contexto 407, que emite um contexto 408, selecionado de acordo com o índice de contexto 405. O contexto 408 é atualizado em conformidade com o valor de número binário 405. O método para atualizar o contexto 408 está de acordo com aquele usado pela codificação aritmética binária adaptativa de contexto (CABAC) em H.264/MPEG-4 AVC. O módulo binarizador 404 binariza os coeficientes residuais em conformidade com um método 600 descrito com referência à Figura 6 abaixo. Um codificador de aritmética binário 409 usa o contexto 408 e o valor de número binário 406 para codificar o número binário no fluxo de bits codificado 113.
[00101] O decodificador de entropia 202 será descrito com referência à Figura 5. Um tamanho de unidade de transformada (TU) 502 e um padrão de varredura 501 são recebidos por um módulo binarizador inverso 503. O padrão de varredura 501 pode ser determinado do modo de predição 236 determinado pelo decodificador de entropia 202. Isso pode ser feito selecionando-se o padrão de varredura com base no modo de predição 236, conforme descrito acima em relação ao módulo de intrapredição 109 do codificador 100. O módulo binarizador inverso 503 emite coeficientes residuais 509 realizando-se a operação reversa do módulo binarizador 404. Um índice de contexto 504 é emitido do módulo binarizador inverso 503 para cada número binário a ser decodificado. Um modelo de contexto 505 emite um contexto 506 selecionado pelo índice de contexto 504. Um decodificador aritmético binário 507 decodifica um valor de número binário 508 do fluxo de bits codificado 113 com o uso do contexto 506. I valor de número binário 508 é recebido pelo modelo de contexto 505 e usado para atualizar o contexto 506. O valor de número binário 508 é também recebido pelo módulo binarizador inverso 503. O módulo binarizador inverso 503 decodifica os coeficientes residuais em conformidade com um método 700 descrito com referência à Figura 7 abaixo. Codificação convencional de TU 8x8
[00102] Um método convencional para codificar uma unidade de transformada (TU) de 8x8 1100 com o uso de uma varredura para trás diagonal será descrito com referência às Figuras 6 e 11. A unidade de transformada (TU) de 8x8 1100 vista na Figura 11 não faz uso de sub-blocos. Uma varredura para baixo e esquerda, diagonal e para trás 1101 é aplicada sobre a totalidade da unidade de transformada (TU) de 8x8 1100. O método 600 da Figura 6 é aplicado com o uso do padrão de varredura de varredura para baixo e esquerda, diagonal e para trás 1101.
[00103] Uma etapa de posição codificar último coeficiente significativo 601 codifica a posição do último coeficiente significativo na unidade de transformada (TU) de 8x8 1100. A posição do último coeficiente significativo é definida como a posição do último coeficiente residual não zero quando da pesquisa da unidade de transformada (TU) de 8x8 1100 aplicando-se a varredura para baixo e esquerda, diagonal e para trás 1101 em uma direção para frente.
[00104] Uma etapa de pesquisar tabela de 8x8 602, uma etapa de codificar sinalizador de coeficiente significativo 603, e uma etapa de último em subconjunto 604 codifica todos os coeficientes significativos em um subconjunto de 16 coeficientes. As etapas 603 e 604 operam primeiramente no subconjunto que contém o último coeficiente significativo quando uma varredura para trás é empregada. A etapa de pesquisar tabela de 8x8 602 determina um índice para o atual subconjunto em uma tabela que retém a varredura para baixo e esquerda, diagonal e para trás de 8x8 1101. A etapa de codificar sinalizador de coeficiente significativo 603 codifica um coeficiente significativo no subconjunto no fluxo de bits codificado 113 com o uso do codificador de aritmética binário 409. A etapa de último em subconjunto 604 termina um loop de etapas 602 e 603 uma vez que todos os coeficientes significativos dentro do subconjunto tenham sido varridos. Para uma varredura para trás, esse loop conta de um valor máximo de modo descendente até zero. O valor máximo é 16, exceto para o subconjunto que contém o último coeficiente significativo, quando o valor máximo é configurado para omitir o último coeficiente significativo da varredura de subconjunto.
[00105] Uma etapa de codificar níveis residuais 605 codifica o nível residual para cada coeficiente significativo no subconjunto. Os níveis residuais em um subconjunto são codificado em múltiplas etapas, em que cada etapa itera sobre os coeficientes significativos no subconjunto. Primeiramente, os sinalizadores que indicam que um valor absoluto de coeficiente significativo é maior do que um são codificados. Em segundo lugar, sinalizadores que indicam os coeficientes significativos que tem valores absolutos maiores do que dois, dos coeficientes significativos que tem valores absolutos maiores do que um são codificados. Em terceiro lugar, sinalizadores que indicam o sinal de cada coeficiente significativo são codificados. Em quarto lugar, dos coeficientes significativos que tem valores maiores do que dois, a magnitude menos três desses coeficientes significativos é codificada.
[00106] Uma etapa de último subconjunto 606 causa iteração sobre as etapas 602, 603, 604 e 605 até o primeiro subconjunto na unidade de transformada (TU) 1100 ter sido codificado, após qualquer um dos subconjuntos 4, 3 e 2 terem sido codificados, conforme exigido, após o que o método 600 termina.
[00107] Um método convencional para codificar uma unidade de transformada (TU) de 8x8 1200 com o uso de uma varredura para trás horizontal será descrito com referência às Figuras 6 e 12. A unidade de transformada (TU) de 8x8 1200 não faz uso de sub-blocos. Uma varredura para trás horizontal 1201 é aplicada sobre a totalidade da unidade de transformada (TU) de 8x8 1200. O método 600 é aplicado com o uso do padrão de varredura definido.
[00108] Um método convencional para codificar uma unidade de transformada (TU) de 8x8 1300 com o uso de uma varredura vertical para trás será descrito com referência às Figuras 6 e 13. A unidade de transformada (TU) de 8x8 1300 não faz uso de sub-blocos. Uma varredura vertical para trás 1301 é aplicada sobre a totalidade da unidade de transformada (TU) de 8x8 1300. O método 600 é aplicado com o uso do padrão de varredura definido. Decodificação convencional de TU 8x8
[00109] Um método convencional para decodificar uma unidade de transformada (TU) de 8x8 1100 com o uso de uma varredura para trás diagonal será descrito com referência às Figuras 7 e 11. A unidade de transformada (TU) de 8x8 1100 não faz uso de sub-blocos. Uma varredura para baixo e esquerda, diagonal e para trás 1101 é aplicada sobre a totalidade da unidade de transformada (TU) de 8x8 1100. O método 700 é aplicado com o uso do padrão de varredura definido.
[00110] Uma etapa de decodificar posição de último coeficiente significativo 701 decodifica o local do último coeficiente significativo na unidade de transformada (TU) de 8x8 1100, definida como o último coeficiente residual não zero quando o padrão de varredura é aplicado em uma direção para frente.
[00111] Uma etapa de pesquisar tabela de posição 8x8 702, uma etapa de decodificar coeficiente significativo 703, e uma etapa de teste de último em subconjunto 703 decodifica os sinalizadores de coeficiente significativo em um subconjunto ao itera sobre cada local no subconjunto, do último local até o primeiro local, e decodificar um sinalizador de coeficiente significativo por local. Uma etapa de pesquisar tabela de posição 8x8 702 determina o local dentro da unidade de transformada (TU) de 8x8 1100 para o atual coeficiente significativo dentro do subconjunto. Para subconjuntos que contém o último coeficiente significativo, o último local é definido de modo que a posição de último coeficiente significativo seja excluída da varredura de subconjunto, de outro modo, a última posição é definida como 16.
[00112] Uma etapa de decodificar níveis residuais 705 decodifica a magnitude e sinal para cada coeficiente significativo no subconjunto. A etapa de decodificar níveis residuais 705 decodifica os níveis residuais dos coeficientes significativos iterando-se sobre os coeficientes significativos no subconjunto quatro vezes. Na primeira iteração, sinalizadores são decodificados indicando se o valor absoluto do coeficiente significativo é maior do que um. Na segunda iteração, sinalizadores são decodificados indicando se o valor absoluto de coeficientes significativos maiores do que um é também maior do que dois. Na terceira iteração, sinalizadores são decodificados indicando o sinal para cada coeficiente significativo. Na quarta iteração, para coeficientes significativos maiores do que dois, a magnitude menos três é decodificada, o que permite a reconstrução da magnitude residual para casos em que a magnitude é conhecida por ser maior do que dois.
[00113] Uma etapa de teste de último subconjunto 706 causa iteração sobre as etapas 702, 703, 704 e 705 até o primeiro subconjunto na unidade de transformada (TU) 1100 ter sido decodificado, após qualquer um dos subconjuntos 4, 3 e 2 terem sido codificados, conforme exigido, após o que o método 700 termina.
[00114] Um método convencional para decodificar uma unidade de transformada (TU) de 8x8 1200 com o uso de uma varredura para trás horizontal será descrito com referência às Figuras 7 e 12. A unidade de transformada (TU) de 8x8 1200 não faz uso de sub-blocos. Uma varredura para trás horizontal 1201 é aplicada sobre a totalidade da unidade de transformada (TU) de 8x8 1200. O método 700 é aplicado com o uso do padrão de varredura definido.
[00115] Um método convencional para decodificar uma unidade de transformada (TU) de 8x8 1300 com o uso de a varredura vertical para trás será descrito com referência às Figuras 7 e 13. A unidade de transformada (TU) de 8x8 1300 não faz uso de sub-blocos. Uma varredura vertical para trás 1301 é aplicada sobre a totalidade da unidade de transformada (TU) de 8x8 1300. O método 700 é aplicado com o uso do padrão de varredura definido. Modalidade - Codificar uma TU 8x8
[00116] Um método 800 de acordo com a presente revelação para codificar uma unidade de transformada (TU) de 8x8 1500 com o uso de uma varredura para baixo e esquerda, diagonal e para trás será descrito com referência às Figuras 8, 10A, 10B, 14, 15A, 15B e 15C. A unidade de transformada (TU) de 8x8 1500 vista na Figura 15A tem um tamanho de sub-bloco de 4x4. A unidade de transformada (TU) 1500 representa uma camada quadrada de nível inferior de coeficientes a serem varridos para codificar. Dentro de cada sub-bloco, como um sub-bloco 1502 visto na Figura 15C, uma varredura para baixo e esquerda, diagonal e para trás 1505 é aplicada, conforme visto na Figura 15C. Quando da varredura dos sub-blocos na unidade de transformada (TU) de 8x8 1500, uma varredura de camada superior da esquerda para baixo diagonal para trás de 2x2 1504 é aplicada a uma representação de nível de camada superior quadrada 1503 do mesmo, conforme visto na Figura 15B. Conforme visto na Figura 15B, o nível de camada superior 1503 inclui uma disposição de 2x2 dos sub-blocos de nível de camada inferior 1502. Desse modo, os sinalizadores de grupo de coeficiente significativo representam uma região de não sobreposição, de modo que os sub-blocos não sobrepõem na camada de nível inferior. O padrão de varredura 1501 da Figura 15A, portanto, representa uma combinação do padrão 1505 da Figura 15C replicado quatro vezes de acordo com o padrão 1504 da Figura 15B. Uma vantagem dessa abordagem é que, ao invés de armazenar um padrão para um arranjo dimensionado em 64 (8x8) como na Figuras 11, 12 e 13, o padrão 1501 pode ser armazenado com o uso de um arranjo dimensionado em 4 (2x2) + 16 (4x4) =20, resultando em uma redução consequente no uso de memória. Será adicionalmente observado que qualquer um dos tamanhos de arranjo 2x2, 4x4 e 8x8, por exemplo, são quadrados.
[00117] O método 800 é aplicado com o uso do tamanho de sub-bloco definido e tamanho de camada superior e padrão de varredura. O método 800 codifica os coeficientes residuais de uma unidade de transformada (TU) com o uso de grupos de coeficiente significativo e será descrito com referência à Figura 8. A unidade de transformada (TU) é dividida em inúmeros sub-blocos. A Figura 10A retrata uma camada quadrada superior exemplificativa 1000 de uma unidade de transformada (TU).
[00118] Uma unidade de transformada (TU) de 8x8 1400 vista na Figura 14, exemplificativa da unidade de transformada (TU) de 8x8 1500 da Figura 15A, codifica coeficientes residuais em uma hierarquia em duas camadas (superior e inferior). A unidade de transformada (TU) de 8x8 1400 é dividida em sub-blocos igualmente dimensionados, como um sub-bloco de 4x4 1401. Os sub-blocos na unidade de transformada (TU) 1400 são representados por uma camada superior 1402. A camada superior 1402 inclui sinalizadores de grupo de coeficiente significativo, como o sinalizador de grupo de coeficiente significativo 1403, em que cada um pode ser computado ou inferido. Quando um sinalizador de grupo de coeficiente significativo, como o sinalizador de grupo de coeficiente significativo 1403 é computado, o sinalizador de grupo de coeficiente significativo indica se qualquer um dos coeficientes residuais, como um coeficiente residual 1404, dentro de um sub-bloco correspondente, como o sub-bloco 1401, é significativo. Quando um sinalizador de grupo de coeficiente significativo é inferido, é possível que todos os coeficientes residuais dentro do sub-bloco correspondente sejam não significativos.
[00119] No método 800 visto na Figura 8, uma etapa de codificar posição de último coeficiente significativo 801 codifica a coordenada do último coeficiente significativo ao longo da trajetória de varredura de dois níveis. Uma etapa de pesquisar posição de tabela 2x2 802 determina a posição para o sub-bloco atual aplicando-se uma pesquisa da varredura de camada superior da esquerda para baixo diagonal para trás de 2x2 1504. Isso fornece identificação correta do sub-bloco relevante 1502. Uma etapa de pesquisar posição de tabela 4x4 803 determina um desvio dentro da posição para o coeficiente significativo atual, realizando-se uma pesquisa a uma varredura para baixo e esquerda, diagonal e para trás de 4x4 1505 e identificando, assim, o local correto dentro do sub-bloco 4x4 atual 1502. Uma etapa de determinar sinalizador de coeficiente significativo 804 testa o valor do coeficiente residual no desvio determinado dentro do sub-bloco 1502 e, assim, dentro da unidade de transformada (TU) de 8x8 1500, como significativo (de valor um) se o coeficiente residual for não zero e não significativo (de valor zero) de outro modo.
[00120] Uma etapa de teste de último em sub-bloco 805 causa iteração sobre as etapas 803 e 804, de modo que todos os locais dentro de sub-blocos que não contém o último coeficiente significativo sejam testados, e para subconjuntos que contém o último coeficiente significativo, todos os locais que precedem o último coeficiente significativo (em que “precedente” assume aplicação de varredura em uma direção para frente). Para uma varredura para trás, como o padrão 1505, o último em um sub- bloco sempre será o local esquerdo superior. Para uma varredura para frente, tal será o local direito inferior para aqueles sub-blocos não em possessão da posição de último coeficiente significativo, e será o local imediatamente precedente da posição de último coeficiente significativo na ordem de varredura para frente.
[00121] Uma etapa de determinar sinalizador de grupo de coeficiente significativo 806 determina um sinalizador de coeficiente significativo para indicar se qualquer um (isto é: pelo menos um) dos sinalizadores de coeficiente significativo dentro do sub- bloco são de valor um. Para o sub-bloco que contém o último coeficiente significativo, o sinalizador de grupo de coeficiente significativo é inferido como sendo de valor um. Para o sub-bloco localizado no canto esquerdo superior da unidade de transformada (TU) 1500, o sinalizador de grupo de coeficiente significativo é também inferido como sendo de valor um. Uma etapa de codificar grupo de coeficiente significativo 807 codifica informações para determinar a porção do mapa de significância contida em um sub-bloco. Primeiramente, sinalizadores de grupo de coeficiente significativo que não foram inferidos são codificados no fluxo de bits. Em segundo lugar, se o sinalizador de grupo de coeficiente significativo for de valor um, a porção do mapa de significância contida no subconjunto é codificada no fluxo de bits. Uma codifica residual valores etapa 808 opera de maneira similar à etapa de codificar níveis residuais 605, exceto pela disposição do mapa de significância na camada superior de 2x2 e na camada de bloco inferior de 4x4. Uma etapa de teste de último sub-bloco 809 permite iteração sobre os sub-blocos, do sub-bloco que contém o último coeficiente significativo até o sub-bloco localizado no canto esquerdo superior da unidade de transformada (TU) 1500. Após esse sub-bloco ser codificado, o método 800 termina. Será observado por aqueles versados na técnica que o método 800 permite o uso da varredura de sub-bloco de 4x4 em todos os tamanhos de unidade de transformada (TU) suportados pelo codificador de vídeo 100.
[00122] A operação da camada superior ao determinar os sinalizadores de grupo de coeficiente significativo será descrita com referência à camada superior exemplificativa 1000 vista na Figura 10A. A camada superior exemplificativa 1000 consiste em um significant_coeffgroup_flag por sub-bloco. Para cada sub-bloco na camada superior exemplificativa 1000, um significant_coeffgroup_flag é computado ou inferido. Para o sub-bloco esquerdo superior na camada superior exemplificativa 1000, o significant_coeffgroup_flag é sempre inferido como de valor um. Para o sub- bloco na camada superior exemplificativa 1000 que contém o último coeficiente significativo, o significant_coeffgroup_flag é também inferido como de valor um. Para outros locais na camada superior exemplificativa 1000, o significant_coeffgroup_flag, como um significant_coeffgroup_flag X 1001, é inferido por ser de valor um apenas se um vizinho direito, como um significant_coeffgroup_flag A 1002, e um vizinho de baixo, como um significant_coeffgroup_flag B 1003, forem ambos de valor um. Quando o vizinho direito ou o vizinho de baixo significant_coeffgroup_flags se encontram fora da camada superior exemplificativa 1000, um valor zero é inferido para o vizinho. Quando o significant_coeffgroup_flag é inferido, o mesmo não é codificado no fluxo de bits codificado 113. Quando o significant_coeffgroup_flag não é inferido, e se todos os significant_coeff_flags dentro do sub-bloco correspondente forem sabidos por serem de valor zero, então um significant_coeffgroup_flag de valor zero é computado. Alternativamente, se pelo menos um dos significant_coeff_flags dentro do sub-bloco correspondente é de valor um, então um significant_coeffgroup_flag de valor um é computado. Os valores computados de significant_coeffgroup_flag para a camada superior exemplificativa 1000 são codificados no fluxo de bits codificado 113 com o uso de uma varredura para baixo e esquerda, diagonal e para trás.
[00123] Por exemplo, com referência à Figura 10B, em uma camada superior 1004, significant_coeffgroup_flags sombreados, como um significant_coeffgroup_flag 1005, são inferidos por serem de valor um com base no vizinho direito e vizinho de baixo e, consequentemente, não são codificados no fluxo de bits codificado 113. O significant_coeffgroup_flag 1006 contém o último coeficiente significativo e, portanto, é inferido como de valor um. Significant_coeffgroup_flags, como um significant_coeffgroup_flag 1007, são localizados após o último coeficiente significativo e, portanto, nenhum valor é inferido ou computado ou codificado para esses locais. Um significant_coeffgroup_flag 1008, localizado na esquerda superior da camada superior 804, é sempre inferido como de valor um.
[00124] Quando da codificação de cada significant_coeffgroup_flag na camada superior, um contexto é selecionado do modelo de contexto 404. Para unidades de transformação (TUs) que codificam amostras de luma e unidades de transformação (TUs) que codificam amostras de croma, dois contextos são disponíveis, fornecendo um total de quatro contextos para codificar a camada superior exemplificativa 1000. A seleção de contexto para cada significant_coeffgroup_flag na camada superior exemplificativa 1000 é dependente do vizinho direito e do vizinho de baixo. Como um caso exemplificativo, o contexto para significant_coeffgroup_flag X 1001 é determinado realizando-se uma lógica OU dos valores do significant_coeffgroup_flag A 1002 e do significant_coeffgroup_flag B 1003. Vizinhos esquerdos e vizinhos de baixo que estão fora da camada superior exemplificativa 1000 são inferidos como de valor zero para fins de seleção de contexto.
[00125] Um método de acordo com a presente revelação para codificar uma unidade de transformada (TU) de 8x8 1600 com o uso de uma varredura para trás horizontal será descrito com referência às Figuras 8, 16A, 16B e 16C. A unidade de transformada (TU) de 8x8 1600 tem um tamanho de sub-bloco de nível inferior de 4x4. Dentro de cada sub-bloco, como um sub-bloco 1602, uma varredura para trás horizontal 1605 é aplicada, resultando no padrão de varredura geral 1601 visto na Figura 16A. Para varrer os sub-blocos 1602 na unidade de transformada (TU) de 8x8 1600, uma varredura de camada superior horizontal para trás de 2x2 1604 é aplicada. O método 800 é aplicado com o uso do tamanho de sub-bloco definido e tamanho de camada superior e padrão de varredura.
[00126] Um método de acordo com a presente revelação para codificar uma unidade de transformada (TU) de 8x8 1700 com o uso de a varredura vertical para trás será descrito com referência às Figuras 8, 17A, 17B e 17C. A unidade de transformada (TU) de 8x8 1700 tem um tamanho de sub-bloco de 4x4. Dentro de cada sub-bloco de camada inferior, como um sub-bloco 1702 da Figura 17C, uma varredura vertical para trás 1705 é aplicada. Quando da varredura dos sub-blocos na unidade de transformada (TU) de 8x8 1700, uma varredura de camada superior vertical para trás de 2x2 1704 vista na Figura 17B é aplicada, resultando no padrão de varredura geral 1701 visto na Figura 17A. O método 800 é aplicado com o uso do tamanho de sub-bloco definido e tamanho de camada superior e padrão de varredura. Modalidade - Decodificar TU de 8x8
[00127] Um método de acordo com a presente revelação para decodificar a unidade de transformada (TU) de 8x8 1500 será descrito com referência às Figuras 9, 15A, 15B e 15C. A unidade de transformada (TU) de 8x8 1500 tem um tamanho de sub- bloco de 4x4. Dentro de cada sub-bloco, como um sub-bloco 1502, uma varredura para baixo e esquerda, diagonal e para trás 1505 é aplicada. Quando da varredura dos sub-blocos na unidade de transformada (TU) de 8x8 1500, uma varredura para baixo e esquerda, diagonal e para trás de 2x2 1504 é aplicada, resultando no padrão de varredura geral 1501. O método 900 é aplicado com o uso do tamanho de sub- bloco definido e tamanho de camada superior e padrão de varredura.
[00128] Um método 900 para decodificar os coeficientes residuais de uma unidade de transformada (TU) com o uso de grupos de coeficiente significativo será descrito com referência à Figura 9. A unidade de transformada (TU) é dividida em inúmeros sub-blocos. Uma etapa de decodificar posição de último coeficiente significativo 901 decodifica a coordenada do último coeficiente significativo na unidade de transformada (TU) 1500 ao longo da trajetória de varredura de dois níveis 1501. Uma etapa de pesquisar posição de tabela 2x2 902 determina a posição para o sub-bloco atual aplicando-se uma pesquisa à varredura de camada superior da esquerda para baixo diagonal para trás de 2x2 1504. Uma etapa de decodificar grupo de coeficiente significativo 903 determina o inferido valor de um sinalizador de coeficiente significativo, com o uso do processo análogo àquele descrito na etapa de determinar sinalizador de grupo de coeficiente significativo 806, ou decodifica um sinalizador de grupo de coeficiente significativo do fluxo de bits codificado 113. Uma etapa de teste de sinalizador de grupo de coeficiente significativo 904 testa o valor do sinalizador de grupo de coeficiente significativo determinado. Se o sinalizador é de valor um, controle passa para uma etapa de pesquisar posição de tabela 4x4 905, de outro modo, quando o sinalizador é de valor zero, o controle passa para uma etapa de teste de último sub-bloco 909. A etapa 905 determina um desvio dentro da posição para o coeficiente significativo atual realizando-se uma pesquisa a uma varredura para baixo e esquerda, diagonal e para trás de 4x4. O resultado da etapa de pesquisar posição de tabela 4x4 905 é combinado com o resultado da etapa de pesquisar posição de tabela 2x2 902 para fornecer um desvio de posição na unidade de transformada (TU) de 8x8 1500. Uma etapa de decodificar sinalizador de coeficiente significativo 906 então decodifica um sinalizador de coeficiente significativo para um coeficiente residual dentro do sub-bloco, como o sub-bloco 1502. Quando o coeficiente significativo final dentro do sub-bloco é alcançado, e nenhum coeficiente significativo prévio no sub-bloco foi de valor um, e o sinalizador de grupo de coeficiente significativo correspondente foi computado (isto é, foi não inferido), o coeficiente significativo final dentro do sub-bloco é inferido por ser de valor um. Uma etapa de teste de último em sub-bloco 907 testa a posição dentro do sub-bloco, realizando loop sobre as etapas 905 e 906 até o sub-bloco de 4x4 1502 ter sido processado por inteiro. Para o primeiro sub-bloco ser processado, contendo o último sinalizador de coeficiente significativo, apenas locais após (em que “após” é definido como em uma ordem de varredura para trás) são iterados sobre no sub-bloco. Quando a última posição de um sub-bloco foi processada, uma etapa de decodificar níveis residuais 908 decodifica os níveis residuais de maneira similar à etapa de decodificar níveis residuais 705. Uma etapa de teste de último sub-bloco 909 fornece iteração sobre todos os sub-blocos na unidade de transformada (TU) 1500, começando do sub-bloco que contém o último coeficiente significativo e trabalhando para trás até o sub-bloco localizado no canto esquerdo superior da unidade de transformada (TU) 1500 ser processado pelas etapas 902 a 908, após o que o método 900 termina. Será observado por aqueles versados na técnica que o método 900 permite usar a varredura de sub-bloco de 4x4 em todos os tamanhos de unidade de transformada (TU) suportados pelo decodificador de vídeo 200.
[00129] Um método de acordo com a presente revelação para decodificar a unidade de transformada (TU) de 8x8 1600 será descrito com referência às Figuras 9, 16A, 16B e 16C. A unidade de transformada (TU) de 8x8 1600 tem um tamanho de sub- bloco de 4x4. Dentro de cada sub-bloco, como um sub-bloco 1602, uma varredura para trás horizontal 1605 é aplicada. Quando da varredura dos sub-blocos na unidade de transformada (TU) de 8x8 1600, uma varredura para trás horizontal de 2x2 1604 é aplicada. O método 900 é aplicado com o uso do tamanho de sub-bloco definido e tamanho de camada superior e padrão de varredura.
[00130] Um método de acordo com a presente revelação para decodificar a unidade de transformada (TU) de 8x8 1700 será descrito com referência às Figuras 9, 17A, 17B e 17C. A unidade de transformada (TU) de 8x8 1700 tem um tamanho de sub- bloco de 4x4. Dentro de cada sub-bloco, como um sub-bloco 1702, uma varredura vertical para trás 1705 é aplicada. Quando da varredura dos sub-blocos na unidade de transformada (TU) de 8x8 1700, uma varredura vertical para trás de 2x2 1704 é aplicada. O método 900 é aplicado com o uso do tamanho de sub-bloco definido e tamanho de camada superior e padrão de varredura. Modalidade - Varredura de camada superior diagonal apenas para a unidade de transformada de 8x8
[00131] Embora os métodos 800 e 900 aplicaram às unidades de transformação (TUs) 1500, 1600 e 1700 aplicaram, cada um, o mesmo padrão de varredura da camada de sub-bloco até a camada superior. Uma alternativa é usar apenas a varredura para baixo e esquerda, diagonal e para trás para a varredura de camada superior para as unidades de transformação (TUs) 1500, 1600 e 1700. Além disso, a varredura de camada superior pode ser definida para esquerda para baixo diagonal para trás para todos os tamanhos de unidade de transformada. O padrão de varredura da camada superior é então independente do padrão de varredura da camada inferior. Ao fazer isso elimina-se a necessidade de armazenamento de memória para a varredura para trás horizontal de 2x2 1604 e a varredura vertical diagonal para trás de 2x2 1704. Modalidade - Reusar varredura de unidade de transformada de 8x8 para varredura de camada superior de 32x32
[00132] Uma unidade de transformada de 32x32 faz uso de uma varredura de camada superior de 8x8, sendo uma varredura para baixo e esquerda, diagonal e para trás. É possível substituir a varredura de camada superior de 8x8 pela varredura para trás diagonal de 8x8 1500, derivada da varredura para trás diagonal de 2x2 1504 e da varredura para trás diagonal de 4x4 1505. Tal disposição permite a remoção da tabela de pesquisa para a varredura de camada superior de 8x8, reduzindo as exigências de armazenamento de memória.
[00133] Aqueles versados na técnica observarão que os métodos 600 e 700, quando aplicados com os tamanhos de sub-bloco especificados permitem uma redução no número de tabelas presentes no codificador de vídeo 100 ou no decodificador de vídeo 200. Modalidade - Varredura com o uso de desvios
[00134] As Figuras 18A a 18C ilustram uma implantação adicional em que um arranjo linear de valores é derivado do arranjo bidimensional (2D), e desvios são usados no arranjo linear para estabelecer a distinção entre diferentes sub-blocos do arranjo 2D. A Figura 18A ilustra uma unidade de transformada de 8x8 que é acessada como 4 de unidades de 4x4 (sub-blocos) em uma ordem de A, B, C e D, sendo uma varredura para frente-para baixo (horizontal, e esquerda para direita), sendo cada sub- bloco atravessado de acordo com uma varredura para frente-para baixo. Aqueles versados na técnica observarão que a implantação ilustrada nas Figuras 18A a 18C também permite a varredura da unidade de transformada de 8x8 em uma direção para trás.
[00135] Conforme visto na Figura 18B, a varredura de cada sub-bloco resulta em um arranjo linear correspondente de valores. Quando desejado, os quatro arranjos da Figura 18B podem ser armazenados de modo a definir de modo inerente a ordem de acesso da varredura dos valores da unidade de transformada correspondente.
[00136] Alternativamente, conforme ilustrado na Figura 18C, a varredura da unidade de transformada da Figura 18A pode ser armazenada como um único arranjo linear de 16 (=4x4) valores em que um desvio (X) é usado para reconstruir os 4 arranjos. Ao mudar X de 0, 4, 32 e 36, cada um dos quatro arranjos da Figura 18B pode ser reconstruído.
SUMÁRIO
[00137] As várias disposições presentemente reveladas fornecem codificação e decodificação de uma unidade de transformada que tem camadas quadradas de nível superior e inferior, em que a camada de nível superior representa uma disposição quadrada de no máximo quatro sinalizadores de grupo de coeficiente significativo (por exemplo: 2x2). Isso é visto nas Figuras 15B, 16B e 17B por exemplo. Isso permite o atravessamento eficaz da camada quadrada de nível inferior de 8x8 (Figuras 15A, 16A e 17A, respectivamente) de acordo com um padrão de varredura desejado aplicado ao sub-bloco de 4x4 (Figuras 15C, 16C e 17C, respectivamente). Como tal, uma unidade de transformada de 8x8 pode ser codificada ou decodificada com o uso de uma combinação de uma varredura de nível inferior de 4x4 e uma varredura de nível superior de 2x2.
APLICABILIDADE INDUSTRIAL
[00138] As disposições descritas são aplicáveis às indústrias de computador e processamento de dados, e particularmente para o processamento de sinal digital para codificar uma decodificação de sinais como sinais de vídeo.
[00139] O anteriormente revelado descreve apenas algumas modalidades da presente invenção, e modificações e/ou alterações podem ser feitas às mesmas sem divergir do escopo e espírito da invenção, sendo que as modalidades são ilustrativas e não restritivas.

Claims (1)

1. Método de decodificar coeficientes residuais de uma unidade de transformada a partir de um fluxo de bits de dados de vídeo, o método compreendendo: receber a unidade de transformada (1401) do fluxo de bits de dados de vídeo, em que a unidade de transformada tem camadas quadradas de nível superior (1402) e nível inferior (1401), sendo que a camada quadrada de nível superior (1402) representa uma região quadrada para disposição de sinalizadores de grupo de coeficiente significativo, em que cada um dos sinalizadores de grupo de coeficiente significativo indica se pelo menos um de coeficientes residuais dentro de uma região quadrada 4x4 que não se sobrepõe da camada quadrada de nível inferior (1401) é significante, e a camada quadrada de nível inferior (1401) representa uma região quadrada 8x8 incluindo uma pluralidade de regiões quadradas 4x4 que não se sobrepõem para disposição de coeficientes residuais; determinar um padrão de varredura (1501, 1601, 1701) para os sinalizadores de grupo de coeficiente significativo da camada quadrada de nível superior e dos coeficientes residuais da camada quadrada de nível inferior de acordo com um modo de intrapredição; determinar os sinalizadores de grupo de coeficiente significativo correspondendo a respectivas regiões quadradas 4x4 que não se sobrepõem da camada quadrada de nível inferior (1401) para a unidade de transformada (1400) recebida em uma ordem de varredura correspondendo ao padrão de varredura (1501, 1601, 1701) determinado; e determinar valores de coeficientes residuais da camada quadrada de nível inferior (1401) de acordo com os sinalizadores de grupo de coeficiente significativo determinados e uma ordem de varredura correspondendo ao padrão de varredura determinado dos coeficientes residuais para decodificar a unidade de transformada do fluxo de bits de dados de vídeo, caracterizado pelo fato de que o padrão de varredura (1501, 1601, 1701) para o grupo de coeficiente significativo da camada quadrada de nível superior e para os coeficientes residuais da camada quadrada de nível inferior é determinado a partir de um primeiro padrão de varredura (1501), um segundo padrão de varredura (1601), e um terceiro padrão de varredura (1701), de acordo com o modo de intrapredição, e o primeiro padrão de varredura (1501), o segundo padrão de varredura (1601), e o terceiro padrão de varredura (1701) são diferentes uns dos outros.
BR122019026441-4A 2012-01-19 2013-01-18 Método de decodificar coeficientes residuais de uma unidade de transformada a partir de um fluxo de bits de dados de vídeo BR122019026441B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AU2012200319 2012-01-19
AU2012200319A AU2012200319B2 (en) 2012-01-19 2012-01-19 Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
PCT/AU2013/000035 WO2013106887A1 (en) 2012-01-19 2013-01-18 Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit

Publications (1)

Publication Number Publication Date
BR122019026441B1 true BR122019026441B1 (pt) 2022-11-16

Family

ID=48798426

Family Applications (5)

Application Number Title Priority Date Filing Date
BR112014012891-0A BR112014012891B1 (pt) 2012-01-19 2013-01-18 Método e aparelho para codificar e decodificar o mapa de significância para coeficientes residuais de uma unidade de transformada
BR122019026442-2A BR122019026442B1 (pt) 2012-01-19 2013-01-18 Método de decodificação de um fluxo de bit para uma unidade de transformada representada como um bloco 8x8
BR122019026441-4A BR122019026441B1 (pt) 2012-01-19 2013-01-18 Método de decodificar coeficientes residuais de uma unidade de transformada a partir de um fluxo de bits de dados de vídeo
BR122019026439-2A BR122019026439B1 (pt) 2012-01-19 2013-01-18 Método de codificação de dados de quadro de imagem em um fluxo de bit
BR122019026440-6A BR122019026440B1 (pt) 2012-01-19 2013-01-18 Método de decodificação de um fluxo de bit para uma unidade de transformada representada como um bloco 8x8

Family Applications Before (2)

Application Number Title Priority Date Filing Date
BR112014012891-0A BR112014012891B1 (pt) 2012-01-19 2013-01-18 Método e aparelho para codificar e decodificar o mapa de significância para coeficientes residuais de uma unidade de transformada
BR122019026442-2A BR122019026442B1 (pt) 2012-01-19 2013-01-18 Método de decodificação de um fluxo de bit para uma unidade de transformada representada como um bloco 8x8

Family Applications After (2)

Application Number Title Priority Date Filing Date
BR122019026439-2A BR122019026439B1 (pt) 2012-01-19 2013-01-18 Método de codificação de dados de quadro de imagem em um fluxo de bit
BR122019026440-6A BR122019026440B1 (pt) 2012-01-19 2013-01-18 Método de decodificação de um fluxo de bit para uma unidade de transformada representada como um bloco 8x8

Country Status (16)

Country Link
US (6) US9769484B2 (pt)
EP (5) EP3972249B1 (pt)
JP (6) JP6165172B2 (pt)
KR (7) KR101922367B1 (pt)
CN (6) CN107734341B (pt)
AU (7) AU2012200319B2 (pt)
BR (5) BR112014012891B1 (pt)
ES (5) ES2943575T3 (pt)
HR (3) HRP20230640T1 (pt)
HU (5) HUE061854T2 (pt)
IN (1) IN2014CN03649A (pt)
PL (5) PL3979643T3 (pt)
PT (3) PT3972248T (pt)
RS (3) RS64213B1 (pt)
RU (7) RU2595936C2 (pt)
WO (1) WO2013106887A1 (pt)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2012365727B2 (en) * 2012-01-13 2015-11-05 Hfi Innovation Inc. Method and apparatus for unification of coefficient scan of 8x8 transform units in HEVC
AU2012200319B2 (en) * 2012-01-19 2015-11-26 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
US9106918B2 (en) * 2012-01-20 2015-08-11 Sony Corporation Coefficient coding harmonization in HEVC
US10194158B2 (en) 2012-09-04 2019-01-29 Qualcomm Incorporated Transform basis adjustment in scalable video coding
US10574993B2 (en) * 2015-05-29 2020-02-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
FR3038196A1 (fr) * 2015-06-29 2016-12-30 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
CN113810712A (zh) * 2016-04-29 2021-12-17 世宗大学校产学协力团 用于对图像信号进行编码和解码的方法和装置
CN114222137A (zh) * 2016-05-28 2022-03-22 世宗大学校产学协力团 构成预测运动矢量列表的方法
KR102416804B1 (ko) * 2016-10-14 2022-07-05 세종대학교산학협력단 영상 부호화 방법/장치, 영상 복호화 방법/장치 및 비트스트림을 저장한 기록 매체
CN116886904A (zh) * 2016-10-14 2023-10-13 世宗大学校产学协力团 影像编码方法、影像解码方法以及传送比特流的方法
US10666937B2 (en) * 2016-12-21 2020-05-26 Qualcomm Incorporated Low-complexity sign prediction for video coding
US20180288439A1 (en) * 2017-03-31 2018-10-04 Mediatek Inc. Multiple Transform Prediction
CA3060201C (en) * 2017-04-13 2023-09-19 Lg Electronics Inc. Image encoding/decoding method and device therefor
US10356411B2 (en) 2017-05-30 2019-07-16 Google Llc Adaptation of scan order entropy coding
US11695967B2 (en) * 2018-06-22 2023-07-04 Op Solutions, Llc Block level geometric partitioning
AU2019298063B2 (en) * 2018-07-02 2022-10-13 Huawei Technologies Co., Ltd. Apparatus and method for filtering in video coding
US10743029B2 (en) * 2018-07-30 2020-08-11 Tencent America LLC Constraints on coding unit partition
TWI692939B (zh) * 2018-08-14 2020-05-01 鈺創科技股份有限公司 過濾訊號的數位濾波器
KR20210050572A (ko) * 2018-09-21 2021-05-07 캐논 가부시끼가이샤 비디오 샘플들의 블록들의 트리를 인코딩 및 디코딩하기 위한 방법, 장치 및 시스템
CN113170149A (zh) * 2018-12-03 2021-07-23 交互数字Vc控股公司 用于图片编码和解码的方法和设备
US11134258B2 (en) * 2019-02-11 2021-09-28 Qualcomm Incorporated Predictive coefficient coding
CN114501009B (zh) * 2019-03-21 2023-12-19 三星电子株式会社 视频解码设备和视频编码设备
US11212555B2 (en) * 2019-06-19 2021-12-28 Tencent America LLC Method of reducing context models for entropy coding of transform coefficient significant flag
SG11202102925XA (en) 2019-07-10 2021-04-29 Guangdong Oppo Mobile Telecommunications Corp Ltd Image component prediction method, encoder, decoder, and storage medium
JP7372449B2 (ja) * 2019-08-20 2023-10-31 北京字節跳動網絡技術有限公司 スキップしたブロックを変換するための残差コーディング
WO2021096174A1 (ko) * 2019-11-11 2021-05-20 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
CN114930845A (zh) 2019-11-11 2022-08-19 Lg电子株式会社 基于变换的图像编码方法及其装置
EP4060993A4 (en) 2019-11-11 2023-12-13 LG Electronics Inc. TRANSFORM-BASED IMAGE CODING METHOD AND ASSOCIATED DEVICE

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US7830963B2 (en) * 2003-07-18 2010-11-09 Microsoft Corporation Decoding jointly coded transform type and subblock pattern information
CN1224270C (zh) * 2003-09-30 2005-10-19 清华大学 用于宏块组结构的两阶段预测编码的帧内编码帧编码方法
US7286710B2 (en) 2003-10-01 2007-10-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Coding of a syntax element contained in a pre-coded video signal
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7586924B2 (en) 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
US7519229B2 (en) * 2004-03-30 2009-04-14 Apple, Inc. Video coding system providing separate coding chains for dynamically selected small-size or full-size playback
KR100624432B1 (ko) 2004-08-05 2006-09-19 삼성전자주식회사 내용 기반 적응적 이진 산술 복호화 방법 및 장치
US20060126744A1 (en) 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process
JP4510696B2 (ja) * 2005-05-17 2010-07-28 キヤノン株式会社 画像処理装置及び画像処理方法
KR100717052B1 (ko) 2005-11-08 2007-05-10 삼성전자주식회사 Cabac 복호기에서 이진 산술 복호화와 이진 매칭을병렬 처리하는 원소 구문의 복호화 방법 및 이를 위한복호화 장치
CN100488254C (zh) * 2005-11-30 2009-05-13 联合信源数字音视频技术(北京)有限公司 一种基于上下文的熵编码方法及解码方法
US7778472B2 (en) * 2006-03-27 2010-08-17 Qualcomm Incorporated Methods and systems for significance coefficient coding in video compression
CN100584006C (zh) * 2006-06-20 2010-01-20 中兴通讯股份有限公司 一种基于时间分辨率变换的视频转换处理方法
CN101507280B (zh) 2006-08-25 2012-12-26 汤姆逊许可公司 用于降低分辨率划分的方法和装置
CN101137047B (zh) * 2006-08-29 2010-09-15 昆山杰得微电子有限公司 一种通过有效残差系数分析提高编码效率的方法
KR100927733B1 (ko) * 2006-09-20 2009-11-18 한국전자통신연구원 잔여계수의 상관성에 따라 변환기를 선택적으로 이용한부호화/복호화 장치 및 그 방법
US8599926B2 (en) * 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
US8428133B2 (en) * 2007-06-15 2013-04-23 Qualcomm Incorporated Adaptive coding of video block prediction mode
US7839311B2 (en) 2007-08-31 2010-11-23 Qualcomm Incorporated Architecture for multi-stage decoding of a CABAC bitstream
KR101433169B1 (ko) 2008-01-03 2014-08-28 경희대학교 산학협력단 인트라 방향성에 따른 모드 예측 및 양자화 매트릭스와스캐닝 적용 방법 및 장치
KR101546793B1 (ko) * 2008-07-14 2015-08-28 삼성전자주식회사 오디오 신호의 부호화/복호화 방법 및 장치
US8634456B2 (en) 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
JP5490404B2 (ja) * 2008-12-25 2014-05-14 シャープ株式会社 画像復号装置
JP5222160B2 (ja) * 2009-01-13 2013-06-26 キヤノン株式会社 画像符号化装置、画像復号化装置、画像符号化方法及び画像復号化方法
US20100191534A1 (en) * 2009-01-23 2010-07-29 Qualcomm Incorporated Method and apparatus for compression or decompression of digital signals
CN101621689A (zh) * 2009-07-28 2010-01-06 天津大学 Mpeg到h.264/avc视频编码转换系统
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
HUE037656T2 (hu) 2010-04-13 2018-09-28 Fraunhofer Ges Forschung Valószínûség intervallum partícionáló kódoló és dekódoló
CN101841713B (zh) * 2010-04-30 2012-12-05 西安电子科技大学 降低编码码率的视频编码方法及系统
KR101379188B1 (ko) 2010-05-17 2014-04-18 에스케이 텔레콤주식회사 인트라 블록 및 인터 블록이 혼합된 코딩블록을 이용하는 영상 부호화/복호화 장치 및 그 방법
PL2592832T3 (pl) * 2010-07-09 2016-12-30 Sposób i urządzenie do kodowania/dekodowania entropijnego współczynnika przekształcenia
CN101895756B (zh) * 2010-07-15 2012-10-31 北京大学 视频图像块的编码、解码、重构方法及系统
CN102006473B (zh) * 2010-11-18 2013-03-13 无锡中星微电子有限公司 视频编码器和编码方法以及视频解码器和解码方法
US8913662B2 (en) 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
EP2685718B1 (en) 2011-03-10 2018-08-29 Sharp Kabushiki Kaisha Image decoding apparatus
US10123053B2 (en) 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
US9654785B2 (en) 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
CN103597834B (zh) 2011-08-04 2016-12-21 寰发股份有限公司 基于上下文自适应二进制算术编码的方法及装置
US9787982B2 (en) 2011-09-12 2017-10-10 Qualcomm Incorporated Non-square transform units and prediction units in video coding
AU2011236109B2 (en) * 2011-10-18 2015-02-19 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
US9871537B2 (en) 2011-10-27 2018-01-16 Qualcomm Incorporated Mapping states in binary arithmetic coder for video coding
US8964849B2 (en) * 2011-11-01 2015-02-24 Blackberry Limited Multi-level significance maps for encoding and decoding
KR20130049524A (ko) 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
US9743098B2 (en) * 2011-11-19 2017-08-22 Blackberry Limited Multi-level significance map scanning
RU2628130C2 (ru) 2011-12-28 2017-08-15 Шарп Кабусики Кайся Устройство арифметического декодирования, устройство декодирования изображения и устройство арифметического кодирования
US20130177070A1 (en) * 2012-01-11 2013-07-11 Qualcomm Incorporated Significance map support for parallel transform coefficient processing in video coding
AU2012200319B2 (en) 2012-01-19 2015-11-26 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
US9124872B2 (en) * 2012-04-16 2015-09-01 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
US11025922B2 (en) * 2012-06-13 2021-06-01 Texas Instruments Incorporated Inverse transformation using pruning for video coding

Also Published As

Publication number Publication date
EP3972248A1 (en) 2022-03-23
RU2675150C1 (ru) 2018-12-17
EP3979643A1 (en) 2022-04-06
US20170339420A1 (en) 2017-11-23
JP2015507884A (ja) 2015-03-12
BR122019026442B1 (pt) 2023-03-14
RS64213B1 (sr) 2023-06-30
CN107734341B (zh) 2020-07-10
CN107734341A (zh) 2018-02-23
KR102025508B1 (ko) 2019-09-25
HUE061903T2 (hu) 2023-08-28
CN107734343A (zh) 2018-02-23
PL2805507T3 (pl) 2020-07-13
PL3972249T3 (pl) 2023-08-07
EP3972249B1 (en) 2023-04-05
JP6825064B2 (ja) 2021-02-03
EP2805507A4 (en) 2015-07-08
AU2018271348A1 (en) 2018-12-20
IN2014CN03649A (pt) 2015-10-09
BR112014012891B1 (pt) 2022-11-08
RU2696340C1 (ru) 2019-08-01
HUE048872T2 (hu) 2020-08-28
US20190116368A1 (en) 2019-04-18
KR20180135991A (ko) 2018-12-21
EP2805507A1 (en) 2014-11-26
HRP20230513T1 (hr) 2023-08-04
CN107734342B (zh) 2020-01-21
HUE061854T2 (hu) 2023-08-28
PL3972248T3 (pl) 2023-07-31
RU2014133044A (ru) 2016-03-20
PL3979643T3 (pl) 2023-07-10
JP2017184236A (ja) 2017-10-05
KR101806063B1 (ko) 2017-12-06
PT3972248T (pt) 2023-05-23
AU2012200319B2 (en) 2015-11-26
US10841594B2 (en) 2020-11-17
US9769484B2 (en) 2017-09-19
CN107734342A (zh) 2018-02-23
KR101930669B1 (ko) 2018-12-18
KR101922367B1 (ko) 2018-11-26
CN107734343B (zh) 2020-03-03
EP2805507B1 (en) 2020-03-11
JP6608504B2 (ja) 2019-11-20
EP3972248B1 (en) 2023-03-22
AU2016201195A1 (en) 2016-03-17
AU2018271350A1 (en) 2018-12-20
EP3654648B1 (en) 2021-11-03
JP2017229097A (ja) 2017-12-28
HRP20230640T1 (hr) 2023-09-29
AU2017232033A1 (en) 2017-10-12
US10250890B2 (en) 2019-04-02
US20200092567A1 (en) 2020-03-19
JP6165172B2 (ja) 2017-07-19
EP3972249A1 (en) 2022-03-23
KR20170132894A (ko) 2017-12-04
US10516887B2 (en) 2019-12-24
EP3654648A1 (en) 2020-05-20
BR112014012891A2 (pt) 2017-06-13
JP6425777B2 (ja) 2018-11-21
PL3654648T3 (pl) 2022-02-14
KR20160129907A (ko) 2016-11-09
ES2785096T3 (es) 2020-10-05
ES2943552T3 (es) 2023-06-14
KR101909410B1 (ko) 2018-10-17
KR20170132895A (ko) 2017-12-04
ES2900157T3 (es) 2022-03-16
RU2697615C1 (ru) 2019-08-15
RU2595936C2 (ru) 2016-08-27
RS64252B1 (sr) 2023-07-31
PT3972249T (pt) 2023-05-22
AU2020200429B2 (en) 2021-11-11
AU2016201195B2 (en) 2017-06-22
KR101672106B1 (ko) 2016-11-02
AU2018271349A1 (en) 2018-12-20
CN104094602B (zh) 2017-11-28
RU2697621C1 (ru) 2019-08-15
HRP20230568T8 (hr) 2023-11-10
AU2020200429A1 (en) 2020-02-13
KR20140088591A (ko) 2014-07-10
AU2018271348B2 (en) 2019-12-05
RU2714108C1 (ru) 2020-02-11
BR122019026439B1 (pt) 2023-03-14
RS64251B1 (sr) 2023-07-31
KR20170137214A (ko) 2017-12-12
PT3979643T (pt) 2023-05-18
RU2644127C1 (ru) 2018-02-07
HUE062226T2 (hu) 2023-10-28
JP2021072641A (ja) 2021-05-06
US10531100B2 (en) 2020-01-07
US20140362926A1 (en) 2014-12-11
CN107734340A (zh) 2018-02-23
AU2017232033B2 (en) 2018-09-20
US10531101B2 (en) 2020-01-07
JP2020074516A (ja) 2020-05-14
HRP20230568T1 (hr) 2023-08-18
ES2943575T3 (es) 2023-06-14
CN107770549B (zh) 2020-02-14
KR101909855B1 (ko) 2018-10-18
CN104094602A (zh) 2014-10-08
WO2013106887A1 (en) 2013-07-25
BR122019026440B1 (pt) 2023-03-14
JP2019033532A (ja) 2019-02-28
KR20170134792A (ko) 2017-12-06
AU2018271349B2 (en) 2019-12-05
CN107770549A (zh) 2018-03-06
US20190116369A1 (en) 2019-04-18
AU2018271350B2 (en) 2019-12-05
HUE057363T2 (hu) 2022-05-28
US20190116367A1 (en) 2019-04-18
EP3979643B1 (en) 2023-03-08
JP6207790B2 (ja) 2017-10-04
ES2943544T3 (es) 2023-06-14
CN107734340B (zh) 2020-01-21

Similar Documents

Publication Publication Date Title
AU2020200429B2 (en) Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
US9712836B2 (en) Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
BR112014021436B1 (pt) Método e aparelho para codificar e decodificar um subconjunto de unidades de transformação de dados de vídeo codificados
BR122020002117B1 (pt) Método e aparelho para codificar e decodificar unidades de codificação a partir de um fluxo de bit de dados de vídeo e meio de armazenamento legível por computador

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04N 19/176 , H04N 19/119 , H04N 19/129 , H04N 19/18 , H04N 19/46 , H04N 19/60

Ipc: H04N 19/176 (2006.01), H04N 19/119 (2006.01), H04N

B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 18/01/2013, OBSERVADAS AS CONDICOES LEGAIS