BR112014011155B1 - Método de determinação de uma palavra de código binária para um símbolo, codificador de vídeo e meio que pode ser lido em computador - Google Patents

Método de determinação de uma palavra de código binária para um símbolo, codificador de vídeo e meio que pode ser lido em computador Download PDF

Info

Publication number
BR112014011155B1
BR112014011155B1 BR112014011155-3A BR112014011155A BR112014011155B1 BR 112014011155 B1 BR112014011155 B1 BR 112014011155B1 BR 112014011155 A BR112014011155 A BR 112014011155A BR 112014011155 B1 BR112014011155 B1 BR 112014011155B1
Authority
BR
Brazil
Prior art keywords
symbol
value
parameter variable
prefix
maximum
Prior art date
Application number
BR112014011155-3A
Other languages
English (en)
Other versions
BR112014011155A2 (pt
BR112014011155A8 (pt
Inventor
Jian Lou
Limin Wang
Original Assignee
Google Technology Holdings LLC
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 Google Technology Holdings LLC filed Critical Google Technology Holdings LLC
Publication of BR112014011155A2 publication Critical patent/BR112014011155A2/pt
Publication of BR112014011155A8 publication Critical patent/BR112014011155A8/pt
Publication of BR112014011155B1 publication Critical patent/BR112014011155B1/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/21Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with binary alpha-plane coding for video objects, e.g. context-based arithmetic encoding [CAE]
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

MÉTODO DE DETERMINAÇÃO DE PALAVRAS DE CÓDIGO BINÁRIAS PARA COEFICIENTES DE TRANSFORMADA É provido um sistema para a determinação de uma palavra de código binária para um símbolo representando um coeficiente de transformada em unidades de transformada (TUs) que dividem unidades de codificação (CUs) em um sistema de codificação de vídeo de alta eficiência (HEVC). O sistema determina um prefixo de Rice truncado e, quando uma variável de parâmetro é maior do que zero, determina um sufixo de Rice truncado para o símbolo. O sistema determina um prefixo principal a partir do prefixo de Rice truncado apenas, ou a partir de uma combinação do prefixo de Rice truncado e do sufixo de Rice truncado. Quando o prefixo principal é o mesmo que uma string de comparação, o sistema também determina um sufixo principal. O sistema determina a palavra de código binária final para o símbolo a partir do prefixo principal apenas ou a partir de uma combinação do prefixo principal e do sufixo principal.

Description

REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
[001] Este Pedido reivindica prioridade segundo o 35 U.S.C. § 119(e) a partir do Pedido Provisório dos Estados Unidos depositado antes N° de Série 61/557.403, depositado em 8 de novembro de 2011, cuja totalidade é incorporada aqui como referência.
ANTECEDENTES CAMPO TÉCNICO
[002] A presente exposição se refere ao campo de compressão de vídeo, particularmente a uma compressão de vídeo usando codificação de vídeo de alta eficiência (HEVC) que emprega processamento de bloco.
TÉCNICA RELACIONADA
[003] A figura 1 descreve um sistema de distribuição de conteúdo 100 que compreende um sistema de codificação 110 e um sistema de decodificação 140 que pode ser usado para a transmissão e a recepção de dados de HEVC. Em algumas modalidades, o sistema de codificação 110 pode compreender uma interface de entrada 130, um controlador 111, um contador 112, uma memória de quadro 113, uma unidade de codificação 114, um buffer de transmissor 115 e uma interface de saída 135. O sistema de decodificação 140 pode compreender um buffer de receptor 150, uma unidade de decodificação 151, uma memória de quadro 152 e um controlador 153. O sistema de codificação 110 e o sistema de decodificação 140 podem ser acoplados a cada outro através de um percurso de transmissão, o qual pode portar um fluxo de bit comprimido 105. O controlador 111 do sistema de codificação 110 pode controlar a quantidade de dados a ser transmitida com base na capacidade do buffer de receptor 150 e pode incluir outros parâmetros, tais como a quantidade de dados por uma unidade de tempo. O controlador 111 pode controlar a unidade de codificação 114 para evitar a ocorrência de uma falha de uma operação de decodificação de sinal recebido do sistema de decodificação 140. O controlador 111 pode ser um processador ou incluir, a título de exemplo não limitante, um microcomputador tendo um processador, uma memória de acesso randômico e uma memória apenas de leitura.
[004] As imagens de fonte 120 supridas, a título de exemplo não limitante, a partir de um provedor de conteúdo podem incluir uma sequência de vídeo de quadros incluindo imagens de fonte em uma sequência de vídeo. As imagens de fonte 120 podem ser não comprimidas ou comprimidas. Se as imagens de fonte 120 forem não comprimidas, o sistema de codificação 110 poderá ter uma função de codificação. Se as imagens de fonte 120 forem comprimidas, o sistema de codificação 110 poderá ter uma função de transcodificação. As unidades de codificação podem ser derivadas a partir das imagens de fonte utilizando o controlador 111. A memória de quadro 113 pode ter uma primeira área que pode ser usada para o armazenamento dos quadros entrando a partir das imagens de fonte 120 e uma segunda área que pode ser usada para leitura dos quadros e extração deles para a unidade de codificação 114. O controlador 111 pode extrair um sinal de controle de comutação de área 123 para a memória de quadro 113. O sinal de controle de comutação de área 123 pode indicar se a primeira área ou a segunda área é para ser utilizada.
[005] O controlador 111 pode controlar uma saída de um sinal de controle de codificação 124 para a unidade de codificação 114. O sinal de controle de codificação 124 pode fazer com que a unidade de codificação 114 comece uma operação de codificação, tal como preparar as unidades de codificação com base em uma imagem de fonte. Em resposta ao sinal de controle de codificação 124 a partir do controlador 111, a unidade de codificação 114 pode começar a ler as unidades de codificação preparadas para um processo de codificação de eficiência alta, tal como um processo de codificação de predição ou um processo de codificação de resfriamento, as quais processam as unidades de codificação preparadas gerando dados de compressão de vídeo, com base nas imagens de fonte associadas às unidades de codificação.
[006] A unidade de codificação 114 pode empacotar os dados de compressão de vídeo gerados em um fluxo elementar empacotado (PES) incluindo pacotes de vídeo. A unidade de codificação 114 pode mapear os pacotes de vídeo em um sinal de vídeo codificado 122 usando uma informação de controle e uma estampa de tempo de programa (PTS) e o sinal de vídeo codificado 122 pode ser transmitido para o buffer de transmissor 115.
[007] O sinal de vídeo codificado 122, incluindo os dados de compressão de vídeo gerados, pode ser armazenado no buffer de transmissor 115. O contador de quantidade de informação 112 pode ser incrementado para indicar a quantidade total de dados no buffer de transmissor 115. Conforme os dados são recuperados e removidos do buffer, o contador 112 pode ser decrementado para refletir a quantidade de dados no buffer de transmissor 115. O sinal de informação de área ocupada 126 pode ser transmitido para o contador 112 para indicar se os dados a partir da unidade de codificação 114 foram adicionados ou removidos do buffer de transmissor 115, de modo que o contador 112 possa ser incrementado ou decrementado. O controlador 111 pode controlar a produção de pacotes de vídeo produzidos pela unidade de codificação 114 com base na informação de área ocupada 126, a qual pode ser comunicada de modo a se antecipar, evitar, prevenir e/ou detectar um fluxo excessivo ou um fluxo insuficiente que ocorra no buffer de transmissor 115.
[008] O contador de quantidade de informação 112 pode ser reinicializado em resposta a um sinal pré-regulado 128 gerado e extraído pelo controlador 111. Após o contador de informação 112 ser reinicializado, ele pode contar dados extraídos pela unidade de codificação 114 e obter a quantidade de dados de compressão de vídeo e/ou pacotes de vídeo os quais foram gerados. O contador de quantidade de informação 112 pode suprir ao controlador 111 um sinal de quantidade de informação 129 representativo da quantidade de informação obtida. O controlador 111 pode controlar a unidade de codificação 114 de modo que não haja um fluxo excessivo no buffer de transmissor 115.
[009] Em algumas modalidades, o sistema de decodificação 140 pode compreender uma interface de entrada 170, um buffer de receptor 150, um controlador 153, uma memória de quadro 152, uma unidade de decodificação 151 e uma interface de saída 175. O buffer de receptor 150 do sistema de decodificação 140 pode temporariamente armazenar o fluxo de bit comprimido 105, incluindo os dados de compressão de vídeo recebidos e os pacotes de vídeo com base nas imagens de fonte a partir das imagens de fonte 120. O sistema de decodificação 140 pode ler a informação de controle e a informação de estampa de tempo de apresentação associadas aos pacotes de vídeo nos dados recebidos e extrair um sinal de número de quadro 163, o que pode ser aplicado ao controlador 153. O controlador 153 pode supervisionar o número contado de quadros em um intervalo predeterminado. A título de exemplo não limitante, o controlador 153 pode supervisionar o número contato de quadros a cada vez em que a unidade de decodificação 151 completar uma operação de decodificação.
[010] Em algumas modalidades, quando o sinal de número de quadro 163 indica que o buffer de receptor 150 está em uma capacidade predeterminada, o controlador 153 pode extrair um sinal de começo de decodificação 164 para a unidade de decodificação 151. Quando o sinal de número de quadro 163 indica que o buffer de receptor 150 está a menos do que uma capacidade predeterminada, o controlador 153 pode esperar pela ocorrência de uma situação na qual o número contado de quadros se torna igual à quantidade predeterminada. O controlador 153 pode extrair o sinal de começo de decodificação 164 quando a situação ocorrer. A título de exemplo não limitativo, o controlador 153 pode extrair o sinal de começo de decodificação 164, quando o sinal de número de quadro 163 indicar que o buffer de receptor 150 está na capacidade predeterminada. Os pacotes de vídeo codificados e os dados de compressão de vídeo podem ser decodificados em uma ordem monotônica (isto é, aumento ou diminuição) com base em estampas de tempo de apresentação associadas aos pacotes de vídeo codificados.
[011] Em resposta ao sinal de começo de decodificação 164, a unidade de decodificação 151 pode decodificar dados contabilizando uma imagem associada a um quadro e dados de vídeo comprimidos associados à imagem associada aos pacotes de vídeo a partir do buffer de receptor 150. A unidade de decodificação 151 pode escrever um sinal de vídeo decodificado 162 na memória de quadro 152. A memória de quadro 152 pode ter uma primeira área na qual o sinal de vídeo decodificado é escrito, e uma segunda área usada para a leitura de imagens decodificadas 160 para a interface de saída 175.
[012] Em várias modalidades, o sistema de codificação 110 pode ser incorporado ou associado de outra forma a um transcodificador ou um aparelho de codificação em uma extremidade de entrada, e o sistema de decodificação 140 pode ser incorporado ou associado de outra forma a um dispositivo de fluxo normal, tal como um dispositivo móvel, um set top box ou um transcodificador.
[013] O sistema de codificação 110 e o sistema de decodificação 140 pode ser utilizado separadamente ou em conjunto para a codificação e a decodificação de dados de vídeo de acordo com vários formatos de codificação, incluindo uma codificação de vídeo de alta eficiência (HEVC). A HEVC é um esquema de codificação preditiva espacial e temporal híbrida baseada em bloco. Em HEVC, as imagens de entrada, tais como quadros de vídeo, podem ser divididas em blocos quadrados denominados maiores unidades de codificação (LCUs) 200, conforme mostrado na figura 2. As LCUs 200 podem ser, cada uma, tão grandes quanto 128x128 pixels, diferentemente de outros esquemas de codificação que rompem as imagens de entrada em macroblocos de 16x16 pixels. Conforme mostrado na figura 3, cada LCU 200 pode ser particionada por um fatiamento da LCU 200 em quatro unidades de codificação (CUs) 202. As CUs 202 podem ser blocos quadrados, cada um com um quarto de tamanho da LCU 200. Cada CU 202 pode ser fatiada ainda em quatro CUs 202 menores, cada uma com um quarto do tamanho da CU 202 maior. A título de exemplo não limitativo, a CU 202 no canto direito superior da LCU 200 descrita na figura 3 pode ser dividida em quatro CUs 202 menores. Em algumas modalidades, estas CUs 202 menores podem ser adicionalmente fatiadas em quartos de tamanho ainda menor, e este processo de fatiamento das CUs 202 em CUs 202 menores pode ser completado múltiplas vezes.
[014] Com uma densidade de dados de vídeo cada vez mais alta, são necessárias formas melhoradas adicionalmente para a codificação das CUs, de modo que imagens de entrada grandes e/ou macroblocos possam ser codificadas e decodificadas de forma rápida, eficiente e acurada.
SUMÁRIO
[015] A presente invenção provê um sistema melhorado para HEVC. Em modalidades para o sistema, um método de determinação de palavras de código binárias para coeficientes de transformada de uma maneira eficiente é provido. As palavras de código para os coeficientes de transformada em unidades de transformada (TUs) que são subdivisões das CUs 202 são usadas na codificação de imagens de entrada e/ou macroblocos.
[016] Em uma modalidade, é provido um método que cria uma string de bin de Rice truncada usada na palavra de código para um coeficiente de transformada. O método na modalidade compreende um símbolo, provendo uma variável de parâmetro para o símbolo, provendo um valor máximo de símbolo associado à variável de parâmetro, a determinação do prefixo de Rice truncado para o símbolo, o prefixo de Rice truncado compreendendo um ou mais bins, a determinação de um sufixo de Rice truncado para o símbolo, quando a variável de parâmetro for maior do que zero, o sufixo de Rice truncado compreendendo um ou mais bins, a determinação de um prefixo principal para o símbolo pela regulagem do prefixo principal para o prefixo de Rice truncado, quando a variável de parâmetro for igual a zero, ou a concatenação do fim do prefixo de Rice truncado com o sufixo de Rice truncado quando a variável de parâmetro for maior do que zero, a determinação de um sufixo principal para o símbolo, quando o prefixo principal for o mesmo que uma string de comparação, o prefixo principal compreendendo um ou mais bins, e a determinação de uma palavra de código binária para o símbolo pela regulagem da palavra de código binária para o prefixo principal, quando o prefixo principal não for o mesmo que a string de comparação, ou a concatenação do fim do prefixo principal com o sufixo principal, quando o prefixo principal for o mesmo que a string de comparação.
[017] Em uma outra modalidade, a invenção inclui um codificador de vídeo que usa um prefixo de Rice truncado para a criação de uma palavra de código para a identificação de um coeficiente de transformada. O codificador de vídeo inclui uma memória configurada para o armazenamento de um símbolo, uma variável de parâmetro e um símbolo máximo, e um processador acoplado à memória, em que o processador é configurado para a determinação de uma palavra de código binária para o símbolo pela determinação do prefixo de Rice truncado para o símbolo, o prefixo de Rice truncado compreendendo um ou mais bins, a determinação de um sufixo de Rice truncado para o símbolo, quando a variável de parâmetro for maior do que zero, o sufixo de Rice truncado compreendendo um ou mais bins, a determinação de um prefixo principal para o símbolo pela regulagem do prefixo principal para o prefixo de Rice truncado, quando a variável de parâmetro for igual a zero, ou a concatenação do fim do prefixo de Rice truncado com o sufixo de Rice truncado, quando a variável de parâmetro for maior do que zero, a determinação de um sufixo principal para o símbolo, quando o prefixo principal for o mesmo que uma string de comparação, o sufixo principal compreendendo um ou mais bins, e a determinação da palavra de código binária pela regulagem da palavra de código binária para o prefixo principal, quando o prefixo principal não for o mesmo que a string de comparação, ou a concatenação do fim do prefixo principal com o sufixo principal, quando o prefixo principal for o mesmo que a string de comparação.
BREVE DESCRIÇÃO DOS DESENHOS
[018] Maiores detalhes da presente invenção são explicados com a ajuda dos desenhos anexados, nos quais:
[019] a figura 1 descreve uma modalidade de um sistema de distribuição de conteúdo;
[020] a figura 2 descreve uma modalidade de uma imagem de entrada dividida em unidades de codificação grandes;
[021] a figura 3 descreve uma modalidade de uma unidade de codificação grande dividida em unidades de codificação;
[022] a figura 4 descreve uma representação em esquadro de árvore de uma unidade de codificação grande dividida em unidades de codificação;
[023] a figura 5 descreve possíveis arranjos de exemplo de unidades de predição em uma unidade de codificação;
[024] a figura 6 descreve um diagrama de blocos de uma modalidade de um método para codificação e/ou decodificação de uma unidade de predição;
[025] a figura 7 descreve uma modalidade de exemplo de uma unidade de codificação dividida em unidades de predição e unidades de transformada;
[026] a figura 8 descreve uma modalidade de exemplo de uma representação em esquadro de árvore de uma unidade de codificação dividida em unidades de transformada;
[027] a figura 9 descreve uma modalidade de um método de execução de codificação aritmética binária adaptativa baseada em contexto;
[028] a figura 10 descreve uma modalidade de exemplo de um mapa de significância;
[029] a figura 11 descreve uma modalidade de uma varredura em ziguezague reversa de coeficientes de transformada em uma unidade de transformada e subconjuntos de coeficientes de transformada;
[030] a figura 12 descreve uma modalidade de um método de obtenção de níveis de coeficiente e símbolos para coeficientes de transformada;
[031] a figura 13 descreve uma modalidade da ordem de varredura de coeficientes de transformada nos subconjuntos;
[032] a figura 14 descreve uma modalidade de exemplo de uma tabela de palavras de código binárias geradas com base em símbolos e variáveis de parâmetro;
[033] a figura 15 descreve uma modalidade de exemplo de uma tabela de atualização para axialmente da variável de parâmetro;
[034] a figura 16 descreve uma modalidade de uma palavra de código binária;
[035] a figura 17A descreve uma tabela de valores máximos de símbolo de exemplo associados a valores da variável de parâmetro;
[036] a figura 17B descreve uma tabela de valores máximos de símbolo de exemplo associados a valores da variável de parâmetro;
[037] a figura 18 descreve uma porção da figura 14 gerada usando-se comprimentos máximos diferentes;
[038] a figura 19 descreve uma modalidade de um fluxograma de um método para a determinação de uma palavra de código binária para um símbolo;
[039] a figura 20 descreve uma tabela de strings de bin determinadas por um processo de binarização unário; e
[040] a figura 21 descreve uma modalidade de exemplo de um hardware de computador.
DESCRIÇÃO DETALHADA
[041] Em HEVC, uma imagem de entrada, tal como um quadro de vídeo, é rompido em CUs que, então, são identificadas em código. As CUs então são adicionalmente rompidas em subunidades que são codificadas, conforme será descrito subsequente.
[042] Inicialmente para a codificação, uma representação de dados em árvore em esquadro pode ser usada para a descrição da partição de uma LCU 200. A representação de árvore em esquadro pode ter nós correspondentes à LCU 200 e a CUs 202. Em cada nó da representação de árvore em esquadro, um indicador tipo de flag “1” pode ser atribuído, se a LCU 200 ou uma CU 202 for fatiada em quatro CUs 202. Se o nó não for fatiado nas CUs 202, um indicador tipo de flag “0” poderá ser atribuído. A título de exemplo não limitativo, a representação de árvore em esquadro mostrada na figura 4 pode descrever a partição de LCU mostrada na figura 3, em que a LCU 200 é fatiada em quatro CUs 202, e a segunda CU 202 é fatiada em quatro CUs 202 menores. A representação de dados binários da árvore em esquadro pode ser um indicador tipo de flag de fatia de CU que pode ser codificado e transmitido como uma parte suplementar, juntamente com outros dados, tais como um indicador tipo de flag de modo de desvio, um indicador tipo de flag de modo de fusão, e o modo de codificação de PU descrito subsequentemente. A título de exemplo não limitativo, a representação de árvore em esquadro de indicador tipo de flag de fatia de CU mostrada na figura 4 pode ser codificada como a representação de dados binária “10100”.
[043] Em cada folha da representação de árvore em esquadro, as CUs 202 finais podem ser rompidas em um ou mais blocos denominados unidades de predição (PUs) 204. As PUs 204. As PUs 204 podem ser quadradas ou retangulares. Uma CU 202 com dimensões 2Nx2N pode ter um de quatro arranjos de exemplo de PUs 204 mostradas na figura 5, com PUs 204 tendo dimensões de 2Nx2N, 2NxN, Nx2N, ou NxN.
[044] Uma PU pode ser obtida através de uma predição espacial ou temporal. Uma predição temporal está relacionada a imagens intermodo. Uma predição espacial se relacionada a imagens intramodo. As PUs 204 de cada CU 202 assim podem ser codificadas em intramodo ou intermodo. Os recursos de codificação relacionados a imagens intramodo e intermodo são descritos nos parágrafos a seguir.
[045] Uma codificação intramodo pode usar dados a partir da imagem de entrada atual, sem referência a outras imagens, para a codificação de uma imagem I. Em intramodo, as PUs 204 podem ser codificadas com predição espacial. Cada PU 204 de uma CU 202 pode ter sua própria direção de predição espacial. As direções de predição espacial podem ser horizontal, vertical, diagonal a 45 graus, diagonal a 135 graus, DC, plana ou qualquer outra direção. A direção de predição espacial para a PU 204 pode ser codificada como um elemento de sintaxe. Em algumas modalidades, uma informação de brilho (Luma) e uma informação de cor (Croma) para a PU 204 podem ser preditas separadamente. Em algumas modalidades, o número de modos de intrapredição de Luma para blocos 4x4, 8x8, 16x16, 32x32, e 64x64 pode ser 18, 35, 35, 35, e 4, respectivamente. Em modalidades alternativas, o número de modos de intrapredição de Luma para blocos de qualquer tamanho pode ser 35. Um modo adicional pode ser usado para um modo de intrapredição de Croma. Em algumas modalidades, o modo de predição de Croma pode ser denominado “IntraFromLuma”.
[046] A codificação intermodo pode usar dados de uso a partir da imagem de entrada atual e uma ou mais imagens de referência para codificação de imagens “P” e/ou imagens “B”. Em algumas situações e/ou modalidades, uma codificação intermodo pode resultar em uma compressão mais alta do que em uma codificação intramodo. Em intermodo, as PUs 204 podem ser codificadas com predição temporal, de modo que cada PU 204 da CU 202 possa ter um ou mais vetores de movimento e uma ou mais imagens de referência associadas. Uma predição temporal pode ser realizada através de uma operação de estimativa de movimento que pesquisa uma predição de melhor combinação para a PU 204 pelas imagens de referência associadas. A predição de melhor combinação pode ser descrita pelos vetores de movimento e imagens de referência associadas. As imagens P usam dados a partir da imagem de entrada atual e uma ou mais imagens de referência prévias. As imagens B usam dados a partir da imagem de entrada atual e ambas as imagens de referência prévias e subsequentes e podem ter até dois vetores de movimento. Os vetores de movimento e as imagens de referência podem ser codificados no fluxo de bit de HEVC. Em algumas modalidades, os vetores de movimento podem ser codificados como elementos de sintaxe “MV”, e as imagens de referência podem ser codificadas como elementos de sintaxe “refIdx”. Em algumas modalidades, uma codificação intermodo pode permitir uma codificação preditiva espacial e temporal.
[047] A figura 6 descreve um diagrama de blocos de como uma PU 204, x, pode ser codificada e/ou decodificada. Em 606, uma PU predita 206, x’, que é predita por intramodo em 602 ou um intermodo em 604, conforme descrito acima, pode ser subtraída da PU atual 204, x, para a obtenção de uma PU residual 208, e. Em 608, a PU residual 208, e, pode ser transformada com uma transformada de bloco em uma ou mais unidades de transformada (TUs) 210, E. Cada TU 210 pode compreender um ou mais coeficientes de transformada 212. Em algumas modalidades, a transformada de bloco pode ser quadrada. Em modalidades alternativas, a transformada de bloco pode ser não quadrada.
[048] Conforme mostrado na figura 7, em HEVC, um conjunto de transformadas de bloco de tamanhos diferentes pode ser executado em uma CU 202, de modo que algumas PUs 204 possam ser divididas em TUs 210 menores e outras PUs 204 podem ter TUs 210 do mesmo tamanho que a PU 204. As divisões de CUs 202 e PUs 204 em TUs 210 pode ser mostrada por uma representação de árvore em esquadro. A título de exemplo não limitante, a representação de árvore em esquadro mostrada na figura 8 descreve o arranjo de TUs 210 na CU 202 mostrada na figura 7.
[049] Com referência de volta à figura 6, em 610, os coeficientes de transformada 212 da TU 210, E, podem ser quantificados em um de um número finito de valores possíveis. Em algumas modalidades, esta é uma operação com perda, na qual dados perdidos por quantificação não podem ser recuperáveis. Após os coeficientes de transformada 212 terem sido quantificados, em 612, os coeficientes de transformada quantificados 212 podem ser codificados com entropia, conforme discutido abaixo, para a obtenção de bits de compressão finais 214.
[050] Em 614, os coeficientes de transformada quantificados 212 podem ser desquantificados em coeficientes de transformada desquantificados 216 E’. Em 616, os coeficientes de transformada desquantificados 216 E’ então podem ser transformados inversamente para a reconstrução da PU residual 218, e’. Em 618, a PU residual reconstruída 218, e’, então pode ser adicionada a uma PU de predição correspondente 206, x’, obtida através de predição espacial em 602 ou de predição temporal em 604, para a obtenção de uma PU reconstruída 220, x’’. Em 620, um filtro de desconstrução de bloco pode ser usado em PUs reconstruídas 220, x’’, para a redução de artefatos de construção de bloco. Em 620, um processo de desvio adaptativo de amostra também é provido, que pode ser executado de forma condicional para compensação do desvio de valor de pixel entre pixels reconstruídos e pixels originais. Ainda, em 620, um filtro de laço adaptativo pode ser usado de forma condicional nas PUs reconstruídas 220, x’’, para a redução ou a minimização de distorção de codificação entre imagens de entrada e de saída.
[051] Se a imagem reconstruída for uma imagem de referência que será usada para predição temporal futura em codificação intermodo, as imagens reconstruídas poderão ser armazenadas em um buffer de referência 622. As imagens codificadas de intramodo podem ser um ponto possível em que uma decodificação pode começar, sem a necessidade de imagens reconstruídas adicionais.
[052] A HEVC pode usar esquemas de codificação com entropia durante a etapa 612, tal como uma codificação aritmética binária adaptativa baseada em contexto (CABAC). O processo de codificação para CABAC é mostrado na figura 9. Em 902, a posição do último coeficiente de transformada significativo das unidades de transformada 210 pode ser codificada. Com referência de volta à figura 6, os coeficientes de transformada quantificados são criados pela quantificação das TUs 210. Os coeficientes de transformada 212 podem ser significativos ou insignificantes. A figura 10 mostra um mapa de significância 1002 dos coeficientes de transformada 212. Os coeficientes de transformada insignificantes 212 podem ter um valor quantificado de zero, enquanto os coeficientes de transformada significativos 212 podem ter um valor quantificado de um ou mais. Em algumas modalidades, os coeficientes de transformada significativos 212 também podem ser conhecidos como coeficientes de transformada quantificados 212. Se uma TU 210 compreender um ou mais coeficientes de transformada significativos 212, as coordenadas do último coeficiente de transformada significativo 212 ao longo de uma varredura de codificação em ziguezague para frente a partir do canto esquerdo de topo da TU 210 até o canto direito inferior da TU 210, conforme mostrado na figura 10, poderão ser codificadas. Em modalidades alternativas, os coeficientes de transformada significativos 212 podem ser varridos ao longo de uma varredura de frente de onda inversa, uma varredura horizontal inversa, uma varredura vertical inversa ou qualquer outra ordem de varredura. Em algumas modalidades, estas coordenadas podem ser codificadas como os elementos de sintaxe “last_significant_coeff_y” e “last_significant_coeff_x”. A título de exemplo não limitativo, a figura 10 descreve a posição da última transformada significativa 212b em uma TU 210, a qual é codificada no bloco 902 da figura 9.
[053] No bloco 904 na figura 9, o mapa de significância 1002 pode ser codificado para indicar as posições de cada um dos coeficientes de transformada significativos 212 na TU 210. Um mapa de significância 1002 pode compreender um elemento binário para cada posição na TU 210. O elemento binário pode ser codificado como “0” para indicar que o coeficiente de transformada 212 naquela posição não é significativo. O elemento binário pode ser codificado como “1” para indicar que o coeficiente de transformada 212 naquela posição é significativo.
[054] A figura 11 ilustra como os coeficientes de transformada quantificados 212 das TUs 210 podem ser divididas em grupos. Em algumas modalidades, os grupos podem ser sub-blocos. Os sub-blocos podem ser blocos quadrados de 16 coeficientes de transformada quantificados 212. Em outras modalidades, os grupos podem ser subconjuntos 1102. Os subconjuntos 1102 podem compreender 16 coeficientes de transformada quantificados 212 que são consecutivos ao longo da ordem de varredura de uma varredura em ziguezague para trás, conforme mostrado na figura 11. O primeiro subconjunto pode ser o subconjunto 1102 que inclui o último coeficiente de transformada significativo 212b, independentemente de onde o último coeficiente de transformada significativo 212b estiver no subconjunto. A título de exemplo não limitante, o último coeficiente de transformada significativo 212b pode ser o 14° coeficiente de transformada 212 no subconjunto, seguido por dois coeficientes de transformada insignificantes.
[055] Em algumas situações e/ou modalidades, pode haver um ou mais grupos de 16 coeficientes de transformada quantificados 212 que não contêm um coeficiente de transformada significativo ao longo da ordem de varredura reversa, antes do grupo contendo o último coeficiente de transformada significativo 212b. Nestas situações e/ou modalidades, o primeiro subconjunto pode ser o subconjunto 1102 contendo o último coeficiente de transformada significativo 212b, e quaisquer grupos antes do primeiro subconjunto 1102 não são considerados parte de um subconjunto 1102. A título de exemplo não limitativo, na figura 11, o primeiro subconjunto 1102 “Subconjunto 0” é o segundo agrupamento de 16 coeficientes de transformada 212 ao longo da ordem de varredura em ziguezague reversa, enquanto o grupo de 16 coeficientes de transformada 212 no canto direito inferior da TU 210 não faz parte de um subconjunto 1102, porque nenhum destes coeficientes de transformada 212 é significativo. Em algumas modalidades, o primeiro subconjunto 1102 pode ser denotado como o “subconjunto 0”, e os subconjuntos adicionais 1103 podem ser denotados como o “subconjunto 1”, o “subconjunto 2” até o “subconjunto N”. O último subconjunto 1102 pode ser o subconjunto 102 com o coeficiente de transformada DC 212 na posição 0,0 no canto esquerdo superior da TU 210.
[056] Com referência de volta à figura 9, no último bloco 906, cada coeficiente de transformada quantificado 212 pode ser codificado em valores binários para a obtenção de bits de compressão finais 214 mostrados na figura 6, incluindo uma codificação com os níveis de coeficiente significativos. Durante uma codificação, o valor absoluto de cada coeficiente de transformada quantificado 212 pode ser codificado separadamente a partir do sinal do coeficiente de transformada quantificado 212. A figura 12 ilustra as etapas de codificação que lidam com a tomada de um valor absoluto dos coeficientes de transformada quantificados 212. Conforme mostrado na figura 12, em 1202, o valor absoluto de cada coeficiente de transformada quantificado 212 pode ser tomado, para se permitir a obtenção do nível de coeficiente 222 para aquele coeficiente de transformada quantificado 212 no bloco 1204.
[057] Os níveis de coeficiente 222 obtidos no bloco 1204 que se espera que ocorram com uma frequência mais alta podem ser codificados antes dos níveis de coeficiente 222 que se espera que ocorram com frequências mais baixas. A título de exemplo não limitante, em algumas modalidades, espera-se que ocorram os níveis de coeficiente 222 de 0, 1 ou 2 mais frequentemente. Uma codificação dos níveis de coeficiente 222 em três partes pode identificar os níveis de coeficiente 222 que ocorrem mais frequentemente, deixando os cálculos mais complexos para os níveis de coeficiente 222 que se espera que possam ocorrer menos frequentemente. Em algumas modalidades, isto pode ser feito pela codificação dos níveis de coeficiente 222 em três partes. Em primeiro lugar, o nível de coeficiente 222 de um coeficiente de transformada quantificado 212 pode ser checado para se determinar se é maior do que um. Se o nível de coeficiente 222 for maior do que um, o nível de coeficiente 222 poderá ser checado para se determinar se é maior do que dois.
[058] Em 1206, na figura 12, se o nível de coeficiente 222 for maior do que dois, o nível de coeficiente 222 poderá ser subtraído de um valor de limite 224 de três para a obtenção de um símbolo. A título de exemplo não limitativo, em algumas modalidades, o nível de coeficiente 222 pode ser codificado como três variáveis: “coeff_abs_level_greater1_flag”, “coeff_abs_level_greater2_flag”, e “coeff_abs_level_minus3”. Para os coeficientes de transformada quantificados 212 com um nível de coeficiente 222 de dois ou mais, “coeff_abs_level_greater1_flag” pode ser regulado para “1”. Se “coeff_abs_level_greater1_flag” for regulado para “1” e o coeficiente de transformada 212 também tiver um nível de coeficiente 222 de três ou mais, “coeff_abs_level_greater2_flag” poderá ser regulado para “1”. Se “coeff_abs_level_greater2_flag” for regulado para “1”, o valor de limite 224 de três poderá ser subtraído do nível de coeficiente 222 para se obter o símbolo de coeficiente de transformada quantificado 226, codificado como “coeff_abs_level_minus3”. Em modalidades alternativas, o nível de coeficiente 222 pode ser codificado em um número diferente de partes, e/ou o valor de limite 224 pode ser um outro inteiro além de três.
[059] A figura 14 descreve uma tabela de exemplo de palavras de código binárias 228 geradas com base nos símbolos 226 e nas variáveis de parâmetro 230. Para os coeficientes de transformada quantificados 212 que ocorrem menos frequentemente e têm níveis de coeficiente 222 de três ou mais, conforme determinado nos blocos da figura 12, o símbolo de coeficiente de transformada quantificado 226 poderá ser parte dos bits de compressão finais 214 gerados conforme mostrado na figura 6. A palavra de código binária 228 mostrada na figura 14 pode ser uma string de bin compreendendo um ou mais bins. Cada bin pode ser um elemento binário de bit. Cada símbolo 226 pode ser codificado por varredura através de cada subconjunto 1102 ou sub-bloco e pela conversão de cada símbolo 226 do subconjunto 1102 ou sub-bloco, em ordem de acordo com o valor de uma variável de parâmetro 230, e, então, movendo- se para os símbolos 226 do próximo subconjunto 1102 ou sub- bloco. Um diagrama mostrando esta progressão de codificação é mostrado na figura 13 para os subconjuntos 0 e 1 ao longo as linhas em ziguezague da figura 11. Em algumas modalidades, a posição de varredura atual pode ser denotada por “n”.
[060] Com referência de volta à figura 14, a variável de parâmetro 230 pode ser uma variável global que pode ser atualizada conforme cada símbolo 226 for codificado. A variável de parâmetro 230 pode controlar a planura da distribuição de palavra de código. Em algumas modalidades, a variável de parâmetro 230 pode ser qualquer inteiro entre 0 e N. A título de exemplo não limitante, em algumas modalidades, N pode ser 3, de modo que a variável de parâmetro 230 possa ser 0, 1, 2 ou 3. Em algumas modalidades, a variável de parâmetro 230 pode ser denotada como “cRiceParam”, conforme ilustrado na figura 14.
[061] A figura 15 provê uma tabela que ilustra como, em algumas modalidades, as variáveis de parâmetro 230 podem ser atualizadas ao longo do tempo para cada símbolo 226. Para a determinação de atualizações, em algumas modalidades, a variável de parâmetro pode ser reinicializada para zero no começo de cada subconjunto 1102 ou sub-bloco, e pode ser atualizada, então, após cada símbolo 226 ser convertido para uma palavra de código binária 228. As variáveis de parâmetro 230 podem ser atualizadas com base no último valor da variável de parâmetro 230 e no valor do último símbolo convertido 226. Em modalidades alternativas, a variável de parâmetro 230 pode ser inicialmente regulada para zero, e, então, ser atualizada após cada símbolo 226 ser convertido em uma palavra de código binária 228 com base no último valor da variável de parâmetro 230 e no valor do último símbolo convertido 226, incluindo os símbolos 226 em subconjuntos prévios. Em algumas modalidades, a variável de parâmetro 230 pode ser atualizada com base em uma tabela de valores de predição, tal como a tabela 1504 mostrada na figura 15.
[062] Em algumas situações e/ou modalidades, a conversão do símbolo 226 com uma variável de parâmetro mais baixa 230 pode resultar em uma palavra de código binária 228 tendo menos bits do que na conversão do mesmo símbolo 226 com uma variável de parâmetro mais alta 230. A título de exemplo não limitativo, conforme mostrado pela tabela descrita na figura 14, usar uma variável de parâmetro 230 de 0 para a conversão de um símbolo 226 de 0 pode resultar na palavra de código binária 228 de “0” tendo 1 bit, enquanto o uso da variável de parâmetro 230 de 1 para a conversão do símbolo 226 pode resultar na palavra de código binária 228 de “00” tendo 2 bits.
[063] Em outras situações e/ou modalidades, a conversão do símbolo 226 com uma variável de parâmetro mais alta 230 pode resultar em uma palavra de código binária 228 tendo menos bits do que na conversão do mesmo símbolo 226 com uma variável de parâmetro mais baixa 230. A título de exemplo não limitativo, conforme mostrado na tabela descrita na figura 14, o uso de uma variável de parâmetro 230 de 0 para a conversão de um símbolo 226 de 6 pode resultar na palavra de código binária 228 de “1111110” tendo 7 bits, enquanto o uso da variável de parâmetro 230 de 2 para conversão do símbolo 226 de 6 pode resultar na palavra de código binária 228 de “1010” tendo 4 bits.
[064] A figura 16 descreve uma modalidade dos elementos contidos em uma palavra de código binária 228. A palavra de código binária 228 pode ter um prefixo principal 1602 compreendendo um ou mais bins. Em algumas situações e/ou modalidades, a palavra de código binária 228 também pode ter um sufixo principal 1604 compreendendo um ou mais bins. O sufixo principal 1604 pode ser concatenado com o fim do prefixo principal 1602 para a obtenção da palavra de código binária 228 para o símbolo 226. Em outras situações e/ou modalidades, o sufixo principal 1604 pode estar ausente, e a palavra de código binária 228 pode ser o prefixo principal 1602.
[065] O prefixo principal 1602 para o símbolo 226 podem ser determinados por um processo de binarização de Rice truncado que toma o símbolo 226, a variável de parâmetro 230 e um valor máximo de símbolo 232, ilustrados nas figuras 17A e 17B, como entradas, e extrai uma string de bin de Rice truncada 1606 como o prefixo principal 1602. Em alguns sistemas convencionais, tal como o software de referência HM4.0, o comprimento máximo do prefixo principal 1602 é controlado pela constante UInt g_auiGoRicePrefixLen[4] = { 8, 10, 11, 8}. Contudo, as palavras de código 228 geradas por estes valores podem introduzir redundâncias que podem ser diminuídas em parte pelo uso da constante UInt g_auiGoRicePrefixLen[4] = { 8, 10, 10, 8}. A título de exemplo não limitativo, a figura 18 descreve uma porção da tabela descrita na figura 14 para os símbolos 226 variando de 40 a 43 usando a variável de parâmetro 230 cRiceParam regulada para 2. O lado esquerdo das tabelas usa HM4.0 com UInt g_auiGoRicePrefixLen[4] = { 8, 10, 11, 8} e gera palavras de código 228 tendo mais bits do que as palavras de código 228 no lado direito da tabela geradas usando-se UInt g_auiGoRicePrefixLen[4] = { 8, 10, 10, 8}. A tabela mostrada na figura 14 usa as palavras de código 228 geradas com UInt g_auiGoRicePrefixLen[4] = { 8, 10, 10, 8}.
[066] Cada possível valor da variável de parâmetro 230 pode ter um valor máximo de símbolo associado 232. Em algumas modalidades, o valor máximo de símbolo 232 para uma variável de parâmetro 230 em particular pode ser denotado como “cTRMax”. A título de exemplo não limitativo, as figuras 17A e 17B descrevem tabelas de exemplo de valores máximos de símbolo 232 “cTRMax” para as variáveis de parâmetro 230 “cRiceParam”.
[067] A string de bin de Rice truncada 1606 pode ter um prefixo de Rice truncado 1608 compreendendo um ou mais bins. Em algumas situações e/ou modalidades, a string de bin de Rice truncada 1606 também pode ter um sufixo de Rice truncado 1610 compreendendo um ou mais bins. O sufixo de Rice truncado 1610 pode ser concatenado com o fim do prefixo de Rice truncado 1608, para a obtenção da string de bin de Rice truncada 1606 para o símbolo 226, o que pode ser usado como o prefixo principal 1602. Em outras situações e/ou modalidades, o sufixo de Rice truncado 1610 pode estar ausente, e a string de bin de Rice truncada 1606 pode ser o prefixo de Rice truncado 1608.
[068] A figura 19 descreve um fluxograma de um método para a determinação da palavra de código binária 228 para cada símbolo 226. Em 1902, o símbolo 226 pode ser aceito como uma entrada. Em 1904, um elemento de binarização e um valor máximo unário podem ser determinados com base no valor do símbolo 226. Para a determinação do elemento de binarização, o valor do símbolo 226 e o valor máximo de símbolo 232 podem ser comparados para se determinar qual é o menor, e o menor dos dois valores pode ser deslocado de forma aritmética para a direita por um número de dígitos binários igual ao valor da variável de parâmetro 230. Se o valor do símbolo 226 e o valor máximo de símbolo 232 forem iguais, o valor que eles compartilham poderá ser deslocado de forma aritmética para a direita por um número de dígitos binários igual ao valor da variável de parâmetro 230, para a obtenção do elemento de binarização. Em algumas modalidades, o valor do símbolo 226 pode ser expresso como “synElVal”, e o deslocamento aritmético para a direita para determinar o elemento de binarização pode ser expresso como “min(synElVal, cTRMax) >> cRiceParam”. A execução de um deslocamento aritmético para a direita de um primeiro valor por um número de dígitos binários igual ao valor de um segundo valor pode ser equivalente à divisão do primeiro valor por 2Asegundo valor, e arredondando-se o resultado para infinito negativo para a obtenção de um inteiro.
[069] O valor máximo unário pode ser o valor máximo possível do elemento de binarização. O valor máximo unário pode ser determinado pela execução de um deslocamento aritmético para a direita do valor máximo de símbolo 232 por um número de dígitos binários igual ao valor da variável de parâmetro 230. Em algumas modalidades, o deslocamento aritmético para a direita para determinação do valor máximo unário pode ser expresso como “cTRMax >> cRiceParam”. Em algumas modalidades, o valor máximo unário pode ser denotado como “cMax”.
[070] Em 1906 na figura 19, o elemento de binarização pode ser comparado com o valor máximo unário. Se o elemento de binarização for menor do que o valor máximo unário, o elemento de binarização poderá ser convertido para o prefixo de Rice truncado 1608 (figura 16) e provido para a caixa 1912 usando-se um processo de binarização unária em 1908. Se o elemento de binarização for igual ao valor máximo unário, o elemento de binarização poderá ser convertido no prefixo de Rice truncado 1608 e provido para a caixa 1912, usando-se um processo de binarização unária truncado em 1910.
[071] No processo de binarização unária em 1908, o prefixo de Rice truncado 1608 pode ser uma string de bin compreendendo um número de bins igual ao valor do elemento de binarização mais um. Os bins na string de bin podem estar nas posições 0 a N. Para as posições menores do que o valor do elemento de binarização, os bins poderão ser regulados para “1”. Para a última posição, a posição igual ao valor do elemento de binarização, o bin poderá ser regulado para “0”.
[072] A figura 20 descreve uma tabela 2000 de strings de bin para elementos de binarização com valores variando de zero a cinco, indexados pela posição de bin (binIdx). A título de exemplo não limitativo, conforme mostrado na figura 20, o prefixo de Rice truncado 1608 para um elemento de binarização de 4 pode ser uma string de bin de 11110, e o prefixo de Rice truncado 1608 para um elemento de binarização de 2 pode ser uma string de bin de 110.
[073] Com referência de volta à figura 19, no processo de binarização unária em 1910, o prefixo de Rice truncado 1608 pode ser uma string de bin tendo um número de bins igual ao valor máximo unário, com todos os bins regulados para “1”. A título de exemplo não limitativo, para um valor máximo unário de 8, o prefixo de Rice truncado 1608 para um elemento de binarização de 8 pode ter um comprimento de oito bins com todos os oito bins regulado para “1”, tal como 11111111. Deve ser notado que, em alguns sistemas convencionais, os valores máximos de símbolo 232 mostrados na figura 17A são usados, com o valor máximo de símbolo de “2” para a variável de parâmetro “0”. Contudo, isto pode introduzir erros em alguns sistemas existentes, já que nenhum processo é especificado nestes sistemas existentes quando o símbolo é maior do que o valor máximo unário. Por exemplo, em alguns sistemas convencionais, quando o valor máximo unário é 7, o símbolo é 8 e a variável de parâmetro é 0, a geração de palavra de código pode falhar. Em contraste, pelo uso dos valores máximos de símbolo 232 mostrados na figura 17B, com o valor máximo unário de “9” para a variável de parâmetro “0” , quando o símbolo é 8, o processo pode se mover para a etapa 1910 e determinar o prefixo de Rice truncado de 11111111, conforme descrito acima.
[074] Em 1912, o valor do prefixo de Rice truncado 1608 pode ser extraído pelo processo de binarização unária em 1908 ou o processo de binarização unária truncado em 1910.
[075] Em 1914, a variável de parâmetro 230 pode ser checada para se determinar se a variável de parâmetro 230 é maior do que zero. Se o valor da variável de parâmetro 230 for zero, o prefixo de Rice truncado 1608 (figura 16) poderá ser usado como o prefixo principal inteiro 1602 em 1920. Se o valor da variável de parâmetro 230 for maior do que zero, o sufixo de Rice truncado 1610 (figura 16) poderá ser determinado em 1916. O sufixo de Rice truncado 1610 pode ser uma string de bin tendo um comprimento igual ao valor da variável de parâmetro 230. O símbolo 226 pode ser deslocado de forma aritmética para a direita por um número de dígitos binários igual à variável de parâmetro 230. O resultado pode ser deslocado de forma aritmética para a esquerda por um número de dígitos binários igual à variável de parâmetro 230. A execução de um deslocamento aritmético para a esquerda de um primeiro valor por um número de dígitos binários igual ao valor de um segundo valor pode ser equivalente à multiplicação do primeiro valor por 2Asegundo valor. O resultado do deslocamento aritmético para a esquerda pode ser subtraído do valor do símbolo 226, e a representação binária deste resultado tendo o mesmo número de bins que o valor da variável de parâmetro 230 pode ser o sufixo de Rice truncado 1610. Em algumas modalidades nas quais o valor do símbolo 226 é expresso como “synElVal,” a operação em 1916 pode ser expressa como “synElVal - ((synElVal >> cRiceParam) << cRiceParam)”. Em 1918, o sufixo de Rice truncado 1610 pode ser concatenado para o fim do prefixo de Rice truncado 1608 para a determinação da string de bin de Rice truncada 1606, o que pode ser usado como o prefixo principal 1602.
[076] Em 1922, o prefixo principal 1602 pode ser comparado com uma string de comparação. Uma string de comparação pode ser uma string de um ou mais bins todos regulados para “1”, com o número de bins na string de comparação sendo determinado pelo deslocamento aritmético para a direita do valor máximo de símbolo 232 por um número de dígitos binários igual à variável de parâmetro 230, e, então, adicionando-se “(cTRMax >> cRiceParam) + cRiceParam”. Se o prefixo principal 1602 for o mesmo que a string de comparação, o sufixo principal 1604 poderá ser determinado em 1924 e concatenado ao fim do prefixo principal 1602 em 1926, para a determinação da string de bin de palavra de código binária final 228 para o símbolo 226 em 1928. O sufixo principal 1604 pode ser o código de Golomb exponencial (Exp-Golomb) de ordem 0 para o valor do símbolo 226 menor o valor máximo de símbolo 232 menos um. Em algumas modalidades, nas quais o valor do símbolo 226 é expresso como “coeff_abs_level_minus3[n]”, a operação em 1824 pode ser expressa como o código de Exp-Golomb de ordem 0 para “coeff_abs_level_minus3[n] - cTRMax - 1”. Se o prefixo principal 1602 for diferente da string de comparação, o sufixo principal 1604 poderá estar ausente e o prefixo principal 1602 poderá ser usado como a string de bin de palavra de código binária final 228 para o símbolo 226. A palavra de código binária final então pode ser extraída em 1928.
[077] A execução das sequências de instruções requeridas para a prática das modalidades pode ser executada por um sistema de computador 2100, conforme mostrado na figura 21. Em uma modalidade, a execução das sequências de instruções é realizada por um único sistema de computador 2100. De acordo com outras modalidades, dois ou mais sistemas de computador 2100 acoplados por um enlace de comunicação 2115 pode executar a sequência de instruções em coordenação um com o outro. Embora uma descrição de apenas um sistema de computador 2100 possa ser apresentada aqui, deve ser entendido que qualquer número de sistemas de computador 2100 pode ser empregado.
[078] Um sistema de computador 2100 de acordo com uma modalidade será descrito, agora, com referência à figura 20, a qual é um diagrama de blocos dos componentes funcionais de um sistema de computador 2100. Conforme usado aqui, o termo sistema de computador 2100 é amplamente usado para a descrição de qualquer dispositivo de computação que possa armazenar e rodar independentemente um ou mais programas.
[079] O sistema de computador 2100 pode incluir uma interface de comunicação 2114 acoplada ao barramento 2106. A interface de comunicação 2114 de um respectivo sistema de computador 2100 transmite e recebe sinais elétricos, eletromagnéticos ou óticos que incluem fluxos de dados representando vários tipos de informação de sinal, por exemplo, instruções, mensagens e dados. Um enlace de comunicação 2115 liga um sistema de computador 2100 a um outro sistema de computador 2100. Por exemplo, o enlace de comunicação 2115 pode ser uma LAN, uma placa de rede digital de serviços integrados (ISDN), um modem ou a Internet.
[080] Um sistema de computador 2100 pode transmitir e receber mensagens, dados e instruções, incluindo programas, isto é, aplicativo, código, através de seu respectivo enlace de comunicação 2115 e interface de comunicação 2114. Um código de programa recebido pode ser executado pelo(s) respectivo(s) processador(es) 2107, conforme for recebido, e/ou armazenado no dispositivo de armazenamento 2110, ou outro meio não volátil associado, para execução posterior.
[081] Em uma modalidade, o sistema de computador 2100 opera em conjunto com um sistema de armazenamento de dados 2131, por exemplo, um sistema de armazenamento de dados 2131 que contém um banco de dados 2132 que é prontamente acessível pelo sistema de computador 2100. O sistema de computador 2100 se comunica com o sistema de armazenamento de dados 2131 através de uma interface de dados 2133.
[082] O sistema de computador 2100 pode incluir um barramento 2106 ou outro mecanismo de comunicação para comunicação das instruções, mensagens e dos dados coletivamente, uma informação, e um ou mais processadores 2107 acoplados ao barramento 2106 para processamento de informação. O sistema de computador 2100 também inclui uma memória principal 2108, tal como uma memória de acesso randômico (RAM) ou outro dispositivo de armazenamento dinâmico, acoplada ao barramento 2106 para armazenamento de dados dinâmicos e instruções a serem executadas pelo(s) processador(es) 2107. Um dispositivo de armazenamento 2110, tal como um disco magnético ou um disco ótico, também pode ser provido e acoplado ao barramento 2106 para armazenamento de dados e instruções para o(s) processador(es) 2107.
[083] Um sistema de computador 2100 pode ser acoplado através do barramento 2106 a um dispositivo de exibição 2111, tal como uma tela de LCD. Um dispositivo de entrada 2112, por exemplo, teclas alfanuméricas e outras, é acoplado ao barramento 2106 para comunicação de informação e seleções de comando para o(s) processador(es) 2107.
[084] De acordo com uma modalidade, um sistema de computador individual 2100 executa operações específicas por seu(s) respectivo(s) processador(es) 2107 executando uma ou mais sequências de uma ou mais instruções contidas na memória principal 2108. Essas instruções podem ser lidas na memória principal 2108 a partir de um outro meio usável em computador, tal como a ROM 2109 ou o dispositivo de armazenamento 2110. A execução das sequências de instruções contidas na memória principal 2108 faz com que o(s) processador(es) 2107 execute(m) os processos descritos aqui. Em modalidades alternativas, um circuito com fio pode ser usado no lugar de ou em combinação com instruções de software. Assim, as modalidades não estão limitadas a qualquer combinação específica de circuito de hardware e/ou software.
[085] Embora a presente invenção tenha sido descrita acima com particularidade, isto foi meramente para ensinar a alguém de conhecimento comum na técnica como fazer e usar a invenção. Muitas modificações adicionais cairão no escopo da invenção, já que aquele escopo é definido pelas reivindicações a seguir.

Claims (16)

1. Método de determinação de uma palavra de código binária para um símbolo, caracterizado pelo fato de compreender: a determinação (1912) de um prefixo de Rice truncado (1608) para um símbolo (226) com um codificador, o símbolo (226) compreendendo uma variável de parâmetro (230); quando (1914) a variável de parâmetro (230) é maior do que zero, a determinação (1916) de um sufixo de Rice truncado (1610) para o símbolo (226) com o codificador e a concatenação (1918) do fim do prefixo de Rice truncado (1608) com o sufixo de Rice truncado (1610) para a determinação de um prefixo principal (1602); e quando (1922) o prefixo principal (1602) é o mesmo que uma string de comparação, em que a string de comparação é uma string de bin com cada um de seus bins regulados para “1”, a determinação (1924) de um sufixo principal (1604) para o símbolo (226) pelo emprego do codificador e a concatenação (1926) do fim do prefixo principal (1602) com o sufixo principal (1604) para determinar (1928) a palavra de código binária (228) para o símbolo (226).
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de ainda compreender: quando a variável de parâmetro (230) é igual a zero, a determinação de um prefixo principal (1602) para o símbolo (226) pela regulagem do prefixo principal (1602) para o prefixo de Rice truncado (1610).
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de ainda compreender: quando o prefixo principal (1602) não é o mesmo que a string de comparação, a determinação (1928) da palavra de código binária (228) para o símbolo (226) pela regulagem da palavra de código binária (228) para o prefixo principal (1602).
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de a determinação (1916) do prefixo de Rice truncado (1608) compreender: a determinação (1904) de um elemento de binarização com o codificador por um deslocamento aritmético para a direita do menor do valor do símbolo (226) e do valor máximo de símbolo (232) por um número de dígitos binários igual ao valor da variável de parâmetro (230); a determinação (1906) de um valor máximo unário com o codificador pelo deslocamento aritmético para a direita do valor máximo de símbolo (232) por um número de dígitos binários igual ao valor da variável de parâmetro (230); e quando o elemento de binarização é menor do que o valor máximo unário, a determinação do prefixo de Rice truncado (1608) com o codificador por um processo de binarização unária (1908); e quando o elemento de binarização é igual ao valor máximo unário, a determinação do prefixo de Rice truncado (1608) por um processo de binarização unária truncado (1910).
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de o sufixo de Rice truncado (1610) ser determinado por: deslocamento aritmético para a direita do símbolo com o codificador por um número de dígitos binários igual ao valor da variável de parâmetro (230) para a obtenção de um primeiro resultado; deslocamento aritmético para a esquerda do primeiro resultado com o codificador por um número de dígitos binários igual ao valor da variável de parâmetro (230) para a obtenção de um segundo resultado; e subtração do segundo resultado do símbolo (226) com o codificador para a obtenção de um terceiro resultado; e binarização do terceiro resultado com o codificador para a obtenção do sufixo de Rice truncado (1610).
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de o comprimento do sufixo de Rice truncado (1610) ser igual ao valor da variável de parâmetro (230).
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de a string de comparação ter um comprimento determinado por um deslocamento aritmético para a direita do valor máximo de símbolo (232) por um número de dígitos binários igual à referida variável de parâmetro (230) e, então, a adição do valor da variável de parâmetro (230).
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o sufixo principal (1604) é determinado pelo código de Golomb exponencial de ordem 0 para o valor do símbolo (226) menos um valor máximo de símbolo (232) menos um, e em que o valor máximo de símbolo (232) é oito quando a variável de parâmetro (230) for zero, o valor máximo de símbolo (232) é vinte quando a variável de parâmetro (230) for um, o valor máximo de símbolo (232) é quarenta e dois, quando a variável de parâmetro (230) for dois, e o valor máximo de símbolo (232) é setenta quando o a variável de parâmetro (230) for três.
9. Codificador de vídeo, caracterizado pelo fato de compreender: uma memória configurada para armazenamento de um símbolo (226), uma variável de parâmetro (230) e um valor máximo de símbolo (232); e um processador acoplado à referida memória, em que o processador é configurado para determinar uma palavra de código binária (228) para o símbolo (226) por: determinação de um prefixo de Rice truncado (1608) para o símbolo (226); quando (1914) a variável de parâmetro (230) é maior do que zero, a determinação (1916) de um sufixo de Rice truncado (1610) para o símbolo (226) e a determinação de um prefixo principal (1602) pela concatenação (1918) do fim do prefixo de Rice truncado (1608) com o sufixo de Rice truncado (1610); e quando o prefixo principal (1602) é o mesmo que uma string de comparação, a determinação (1924) de um sufixo principal (1604) para o símbolo (226) e a determinação da palavra de código binária (228) pela concatenação (1926) do fim do prefixo principal (1602) com o sufixo principal (1604), em que o sufixo principal (1604) é determinado pelo código de Golomb exponencial de ordem 0 para o valor do símbolo (226) menos o valor máximo de símbolo (232) menos um, e em que o valor máximo de símbolo (232) ser oito quando a variável de parâmetro (230) for zero, o valor máximo de símbolo (232) ser vinte quando a variável de parâmetro (230) for um, o valor máximo de símbolo (232) ser quarenta e dois quando a variável de parâmetro (230) for dois, e o valor máximo de símbolo (232) ser setenta quando o a variável de parâmetro (230) for três.
10. Codificador de vídeo, de acordo com a reivindicação 9, caracterizado pelo fato de o processador ser adicionalmente configurado para: a determinação (1904) de um elemento de binarização por um deslocamento aritmético para a direita do menor do valor do símbolo (226) e do valor máximo de símbolo (232) por um número de dígitos binários igual ao valor da variável de parâmetro (230); determinação (1906) de um valor máximo unário pelo deslocamento aritmético para a direita do valor máximo de símbolo (232) por um número de dígitos binários igual ao valor da variável de parâmetro (230); e a determinação do prefixo de Rice truncado (1608) por um processo de binarização unária (1908), quando o elemento de binarização é menor do que o valor máximo unário; e a determinação do prefixo de Rice truncado por um processo de binarização unária truncado, quando o elemento de binarização é igual ao valor máximo unário.
11. Codificador de vídeo, de acordo com a reivindicação 9, caracterizado pelo fato de o processador ser adicionalmente configurado para: o deslocamento aritmético para a direita do símbolo por um número de dígitos binários igual ao valor da variável de parâmetro (230) para a obtenção de um primeiro resultado; o deslocamento aritmético para a esquerda do primeiro resultado por um número de dígitos binários igual ao valor da variável de parâmetro (230) para a obtenção de um segundo resultado; a subtração do segundo resultado do símbolo (226) para a obtenção de um terceiro resultado; e a binarização do terceiro resultado para a obtenção do sufixo de Rice truncado (1610).
12. Codificador de vídeo, de acordo com a reivindicação 9, caracterizado pelo fato de o comprimento do sufixo de Rice truncado (1610) ser igual ao valor da variável de parâmetro (230).
13. Codificador de vídeo, de acordo com a reivindicação 9, caracterizado pelo fato de a string de comparação ser uma string de bin com cada um de seus bins regulados para “1” e tendo um comprimento determinado pelo deslocamento aritmético para a direita de processador do valor máximo de símbolo (232) por um número de dígitos binários igual à referida variável de parâmetro (230) e, então, a adição do valor da variável de parâmetro (230).
14. Meio que pode ser lido em computador contendo instruções para a determinação de uma palavra de código binária para um símbolo, caracterizado pelo fato de a execução das instruções por um ou mais processadores (2107) de um sistema de computador (2100) fazer com que um ou mais processadores (2107) realizem as etapas de: recebimento de um símbolo (226), uma variável de parâmetro (230) e um valor máximo de símbolo (232) associado à referida variável de parâmetro (230); determinação (1912) de um prefixo de Rice truncado (1608) para o símbolo (226); quando (1914) a variável de parâmetro (230) é maior do que zero, a determinação (1916) de um sufixo de Rice truncado (1610) para o símbolo (226) e a determinação de um prefixo principal (1608) pela concatenação (1918) do fim do prefixo de Rice truncado (1608) com o sufixo de Rice truncado (1610); e quando (1922) o prefixo principal (1602) é o mesmo que uma string de comparação, a determinação (1924) de um sufixo principal (1604) para o símbolo (226), e a determinação (1928) da palavra de código binária (228) para o símbolo (226) pela concatenação (1926) do fim do prefixo principal (1602) com o sufixo principal (1604), em que o sufixo principal (1602) é determinado pelo código de Golomb exponencial de ordem 0 para o valor do símbolo (226) menos o valor máximo de símbolo (232) associado menos um, e em que o valor máximo de símbolo (232) ser oito quando a variável de parâmetro (230) for zero, o valor máximo de símbolo (232) ser vinte quando a variável de parâmetro (230) for um, o valor máximo de símbolo (232) ser quarenta e dois quando a variável de parâmetro (230) for dois, e o valor máximo de símbolo (232) ser setenta quando o a variável de parâmetro (230) for três.
15. Meio que pode ser lido em computador, de acordo com a reivindicação 14, caracterizado pelo fato de a execução das instruções por um ou mais processadores (2107) de um sistema de computador (2100) fazer com que um ou mais processadores (2107) adicionalmente realizem as etapas de: determinação (1904) de um elemento de binarização por um deslocamento aritmético para a direita do menor do valor do símbolo (226) e do valor máximo de símbolo (232) por um número de dígitos binários igual ao valor da variável de parâmetro (230); determinação (1906) de um valor máximo unário pelo deslocamento aritmético para a direita do valor máximo de símbolo (232) por um número de dígitos binários igual ao valor da variável de parâmetro (230); quando o elemento de binarização é menor do que o valor máximo unário, a determinação do prefixo de Rice truncado (1608) com o codificador por um processo de binarização unária (1908); e quando o elemento de binarização é igual ao valor máximo unário, a determinação do prefixo de Rice truncado (1608) por um processo de binarização unária truncado (1910).
16. Meio que pode ser lido em computador, de acordo com a reivindicação 14, caracterizado pelo fato de a execução das instruções por um ou mais processadores (2107) de um sistema de computador (2100) fazer com que um ou mais processadores (2107) adicionalmente realizem as etapas de: deslocamento aritmético para a direita do símbolo por um número de dígitos binários igual ao valor da variável de parâmetro (230) para a obtenção de um primeiro resultado; deslocamento aritmético para a esquerda do primeiro resultado por um número de dígitos binários igual ao valor da variável de parâmetro (230) para a obtenção de um segundo resultado; subtração do segundo resultado do símbolo para a obtenção de um terceiro resultado; e binarização do terceiro resultado para a obtenção do sufixo de Rice truncado (1610).
BR112014011155-3A 2011-11-08 2012-11-08 Método de determinação de uma palavra de código binária para um símbolo, codificador de vídeo e meio que pode ser lido em computador BR112014011155B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161557403P 2011-11-08 2011-11-08
US61/557,403 2011-11-08
PCT/US2012/064236 WO2013070974A2 (en) 2011-11-08 2012-11-08 Method of determining binary codewords for transform coefficients
US13/672,103 US9641835B2 (en) 2011-11-08 2012-11-08 Method of determining binary codewords for transform coefficients
US13/672,103 2012-11-08

Publications (3)

Publication Number Publication Date
BR112014011155A2 BR112014011155A2 (pt) 2017-05-16
BR112014011155A8 BR112014011155A8 (pt) 2022-11-01
BR112014011155B1 true BR112014011155B1 (pt) 2023-04-04

Family

ID=47228059

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014011155-3A BR112014011155B1 (pt) 2011-11-08 2012-11-08 Método de determinação de uma palavra de código binária para um símbolo, codificador de vídeo e meio que pode ser lido em computador

Country Status (5)

Country Link
US (2) US9641835B2 (pt)
KR (1) KR101672107B1 (pt)
CN (1) CN103918273B (pt)
BR (1) BR112014011155B1 (pt)
WO (1) WO2013070974A2 (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108391128A (zh) * 2011-11-08 2018-08-10 三星电子株式会社 用于对视频进行解码的设备
BR112014011150B1 (pt) 2011-11-08 2022-08-09 Google Technology Holdings LLC Método de determinação de palavras de código binárias para coeficientes de transformada
US9172962B2 (en) * 2012-01-20 2015-10-27 Blackberry Limited Methods and systems for pipelining within binary arithmetic coding and decoding
US10284851B2 (en) 2012-01-21 2019-05-07 Google Technology Holdings LLC Method of determining binary codewords for transform coefficients
WO2013109993A1 (en) 2012-01-21 2013-07-25 General Instrument Corporation Method of determining binary codewords for transform coefficients
US9479780B2 (en) 2012-02-01 2016-10-25 Google Technology Holdings LLC Simplification of significance map coding
EP3328086A1 (en) 2012-02-04 2018-05-30 Google Technology Holdings LLC Devices and methods for context reduction in last significant coefficient position coding
WO2013116874A1 (en) 2012-02-05 2013-08-08 General Instrument Corporation Method of determining binary codewords for transform coefficients
US9955163B2 (en) * 2013-06-17 2018-04-24 Google Llc Two pass quantization of video data
US9503760B2 (en) * 2013-08-15 2016-11-22 Mediatek Inc. Method and system for symbol binarization and de-binarization
US9930348B2 (en) * 2014-03-14 2018-03-27 Qualcomm Incorporated Coefficient level coding in a video coding process
EP3202150B1 (en) 2014-09-30 2021-07-21 Microsoft Technology Licensing, LLC Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US9781424B2 (en) 2015-01-19 2017-10-03 Google Inc. Efficient context handling in arithmetic coding
EP3308540B1 (en) * 2015-06-09 2020-04-15 Microsoft Technology Licensing, LLC Robust encoding/decoding of escape-coded pixels in palette mode
EP3264763A1 (en) * 2016-06-29 2018-01-03 Thomson Licensing Method and apparatus for improved significance flag coding using simple local predictor
US11309911B2 (en) * 2019-08-16 2022-04-19 Advanced Micro Devices, Inc. Semi-sorting compression with encoding and decoding tables

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2870515B2 (ja) 1996-12-27 1999-03-17 日本電気株式会社 可変長符号化装置
US7206448B2 (en) 2002-02-28 2007-04-17 At&T Corp. System and method for using pattern vectors for video and image coding and decoding
US7158684B2 (en) 2002-04-25 2007-01-02 Texas Instruments Incoporated Entropy coding scheme for video coding
CN1230000C (zh) * 2003-11-04 2005-11-30 浙江大学 视频编解码中变换系数块的扫描方法和装置
US7379608B2 (en) 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
KR100556340B1 (ko) * 2004-01-13 2006-03-03 (주)씨앤에스 테크놀로지 영상 부호화 장치
US7580585B2 (en) 2004-10-29 2009-08-25 Microsoft Corporation Lossless adaptive Golomb/Rice encoding and decoding of integer data using backward-adaptive rules
WO2007065351A1 (en) 2005-12-05 2007-06-14 Huawei Technologies Co., Ltd. Binarizing method and device thereof
FR2900004A1 (fr) * 2006-04-18 2007-10-19 Thomson Licensing Sas Procede et dispositif de decodage arithmetique
US7845571B2 (en) * 2006-06-19 2010-12-07 Monro Donald M Data compression
US8275045B2 (en) 2006-07-12 2012-09-25 Qualcomm Incorporated Video compression using adaptive variable length codes
US7813567B2 (en) 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
US7885473B2 (en) 2007-04-26 2011-02-08 Texas Instruments Incorporated Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors
KR101539240B1 (ko) 2007-06-14 2015-07-30 삼성전자주식회사 영상 데이터의 엔트로피 부호화, 복호화 방법 및 장치
US8891615B2 (en) 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders
KR101375668B1 (ko) 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
EP2164176A1 (en) * 2008-09-12 2010-03-17 Thomson Licensing Method for lossless compressing prefix-suffix-codes, method for decompressing a bit sequence representing integers or symbols encoded in compressed prefix-suffix-codes and storage medium or signal carrying compressed prefix-suffix-codes
JP5274317B2 (ja) * 2009-03-17 2013-08-28 パナソニック株式会社 符号量推定装置、符号量推定方法、符号量推定プログラムおよび、符号量推定集積回路
US8588536B2 (en) 2010-02-22 2013-11-19 Texas Instruments Incorporated Guaranteed-rate tiled image data compression
JP5707412B2 (ja) 2010-09-29 2015-04-30 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、プログラムおよび集積回路
US8526495B2 (en) 2010-11-22 2013-09-03 Mediatek Singapore Pte. Ltd. Apparatus and method of constrained partition size for high efficiency video coding
PT3349360T (pt) 2011-01-14 2019-12-09 Ge Video Compression Llc Esquema de codificação e descodificação de entropia
US20130016789A1 (en) 2011-07-15 2013-01-17 General Instrument Corporation Context modeling techniques for transform coefficient level coding
US9503750B2 (en) * 2011-11-04 2016-11-22 Futurewei Technologies, Inc. Binarization of prediction residuals for lossless video coding
US20130114685A1 (en) * 2011-11-07 2013-05-09 Sharp Laboratories Of America, Inc. Video decoder with constrained dynamic range
BR112014011150B1 (pt) 2011-11-08 2022-08-09 Google Technology Holdings LLC Método de determinação de palavras de código binárias para coeficientes de transformada
US9621894B2 (en) 2012-01-13 2017-04-11 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
US10284851B2 (en) 2012-01-21 2019-05-07 Google Technology Holdings LLC Method of determining binary codewords for transform coefficients
WO2013109993A1 (en) 2012-01-21 2013-07-25 General Instrument Corporation Method of determining binary codewords for transform coefficients
US20130188729A1 (en) 2012-01-21 2013-07-25 General Instrument Corporation Method of determining binary codewords for transform coefficients
US9479780B2 (en) 2012-02-01 2016-10-25 Google Technology Holdings LLC Simplification of significance map coding
EP3328086A1 (en) 2012-02-04 2018-05-30 Google Technology Holdings LLC Devices and methods for context reduction in last significant coefficient position coding
WO2013116874A1 (en) 2012-02-05 2013-08-08 General Instrument Corporation Method of determining binary codewords for transform coefficients
US9363510B2 (en) 2012-03-02 2016-06-07 Qualcomm Incorporated Scan-based sliding window in context derivation for transform coefficient coding

Also Published As

Publication number Publication date
US9866850B2 (en) 2018-01-09
BR112014011155A2 (pt) 2017-05-16
KR20140098110A (ko) 2014-08-07
US20130322547A1 (en) 2013-12-05
WO2013070974A3 (en) 2014-01-03
KR101672107B1 (ko) 2016-11-02
CN103918273B (zh) 2017-11-17
BR112014011155A8 (pt) 2022-11-01
CN103918273A (zh) 2014-07-09
WO2013070974A2 (en) 2013-05-16
US9641835B2 (en) 2017-05-02
US20170237995A1 (en) 2017-08-17

Similar Documents

Publication Publication Date Title
BR112014011155B1 (pt) Método de determinação de uma palavra de código binária para um símbolo, codificador de vídeo e meio que pode ser lido em computador
JP7313463B2 (ja) ビデオコーディング用の方法および装置
US9877029B2 (en) Palette index binarization for palette-based video coding
RU2576590C2 (ru) Вывод позиции в порядке сканирования последнего значимого коэффициента преобразования при кодировании видеосигнала
US10623742B2 (en) Method of determining binary codewords for transform coefficients
KR101625724B1 (ko) 비디오 코딩에서의 서브 슬라이스들
KR101660605B1 (ko) 변환 계수들에 대한 이진 코드워드들을 결정하는 방법
BR112021003315A2 (pt) redução de compartimento codificado regular para codificação de coeficiente com o uso de limite e parâmetro de rice
BR112014006845B1 (pt) Método e dispositivos para codificar dados de vídeo e mídia de armazenamento não transitório legível por computador
US9635358B2 (en) Method of determining binary codewords for transform coefficients
BR112016000863B1 (pt) Previsão residual de componente intercor
BR112016022261B1 (pt) Métodos de codificação e decodificação de dados de vídeo, aparelhos configurados para codificar e decodificar dados de vídeo, e, memória legível por computador
BR122020003135B1 (pt) Método e dispositivo para decodificar dados de vídeo e meio de armazenamento não transitório legível por computador
BR112014010326B1 (pt) Codificação de vídeo intramodo
BR112016000584B1 (pt) Inicialização de parâmetro de rice para codificação de nível de coeficiente em processo de codificação de vídeo
BR112014017364B1 (pt) Aperfeiçoamento de rendimento para codificação de nível de coeficiente cabac
BR112013031006B1 (pt) Modelagem de contexto eficaz em memória
KR20150104141A (ko) 비디오 코딩에서 비디오 타이밍을 위한 픽처 순서 카운트 타이밍 정보의 조건적 시그널링
BR112020006572A2 (pt) codificação aritmética binária com modificação progressiva de parâmetros de adaptação
BR112021009714A2 (pt) redução de bin codificado regular para decodificação de coeficiente usando limite e parâmetro rice
WO2013110000A1 (en) Method of determining binary codewords for transform coefficients
JP2022516132A (ja) 係数レベルのためのエスケープコーディング
EP2777279B1 (en) Method of determining binary codewords for transform coefficients
CN114788276A (zh) 图像数据编码和解码
BR112017016371B1 (pt) Agrupamento de índice de paleta para codificação cabac de banda larga

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Ipc: H04N 19/18 (2014.01), H04N 19/21 (2014.01), H04N 1

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
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]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B25G Requested change of headquarter approved

Owner name: MOTOROLA MOBILITY LLC (US)

B25A Requested transfer of rights approved

Owner name: GOOGLE TECHNOLOGY HOLDINGS LLC (US)

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 08/11/2012, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.