BR102013001517A2 - Métodos e dispositivos para seleção de conjunto de contextos - Google Patents

Métodos e dispositivos para seleção de conjunto de contextos Download PDF

Info

Publication number
BR102013001517A2
BR102013001517A2 BR102013001517-2A BR102013001517A BR102013001517A2 BR 102013001517 A2 BR102013001517 A2 BR 102013001517A2 BR 102013001517 A BR102013001517 A BR 102013001517A BR 102013001517 A2 BR102013001517 A2 BR 102013001517A2
Authority
BR
Brazil
Prior art keywords
significant coefficient
indicators
context
block
coefficient group
Prior art date
Application number
BR102013001517-2A
Other languages
English (en)
Other versions
BR102013001517B1 (pt
Inventor
Nguyen Nguyen
Tianying Ji
Dake He
Original Assignee
Research In Motion Ltd
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 Research In Motion Ltd filed Critical Research In Motion Ltd
Publication of BR102013001517A2 publication Critical patent/BR102013001517A2/pt
Publication of BR102013001517B1 publication Critical patent/BR102013001517B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

METODOS E DISPOSITIVOS PARA SELEÇÃO DE CONJUNTO DE CONTEXTOS Métodos de codificar e decodificar para dados de vídeo são descritos para codificar ou decodificar mapas de significância de multi-níveis. Conjuntos de contextos distintos podem ser utilizados para codificar os indicadores de coeficiente significativo em regiões diferentes da unidade de transformada. Em um caso fixo, as regiões são definidas por bordas de grupo de coeficiente. Em um exemplo, o grupo de coeficiente esquerdo-superior é uma primeira região e os outros grupos de coeficientes são uma segunda região. Em um caso dinâmico, as regiões são definidas por bordas de grupo de coeficiente, porém o codificador e decodificador determinam dinam.icamente em qual região cada grupo de coeficiente pertence. Grupos de coeficiente podem ser atribuidos a uma região ou outra com base, por exemplo, em se seus indicadores de grupo de coeficiente significativo respectivos foram inferidos ou não.

Description

MÉTODOS E DISPOSITIVOS PARA SELEÇÃO DE CONJUNTO DE
CONTEXTOS
Notificação de direitos autorais Uma parte da revelação desse documento e materiais em anexo contém material para o qual uma reivindicação para direitos autorais é feita. O proprietário de direitos autorais não tem objeção à reprodução fac-simile por qualquer pessoa do documento de patente ou da revelação de patente, como consta nos arquivos ou registros do Departamento de Patentes e Marcas Registradas, porém reserva todos os outros direitos autorais.
Campo 0 presente pedido refere-se genericamente à compressão de dados e, em particular a métodos e dispositivos para codificar e decodificar video utilizando mapas de significância.
Antecedentes A compressão de dados ocorre em diversos contextos. É muito comumente utilizada em comunicações e ligação em rede de computadores para armazenar, transmitir e reproduzir informações de forma eficiente. Encontra aplicação especifica na codificação de imagens, áudio e video. Video apresenta um desafio significativo à compressão de dados devido à grande quantidade de dados exigida para cada quadro de video e a velocidade com a qual a codificação e decodificação freqüentemente necessitam ocorrer. O estado da técnica atual para codificação de video é o padrão de codificação de vidro ITU-T H.264/AVC. Define um número de perfis diferentes para aplicações diferentes, incluindo o perfil Principal, perfil de Linha de base e outros. Um padrão de codificação de video de próxima geração está atualmente em desenvolvimento através de uma iniciativa em conjunto de MPEG-ITU denominado Codificação de video de eficiência elevada (HEVC). A iniciativa pode resultar eventualmente em um padrão de codificação de video comumente mencionado como MPEG-H. Há diversos padrões para codificar/decodificar imagens e videos, incluindo H.264, que utilizam processos de codificação baseados em bloco. Nesses processos, a imagem ou quadro é dividido em blocos, tipicamente 4x4 ou 8x8, e os blocos são transformados de forma espectral em coeficientes, quantizados e codificados por entropia. Em muitos casos, os dados sendo transformados não são os dados de pixel efetivo, porém são dados residuais após uma operação de predição. Predições podem ser intra-quadro, isto é, bloco a bloco no quadro/imagem, ou inter-quadros, isto é, entre quadros (também chamado predição de movimento). Espera-se que MPEG-H também tenha essas características.
Ao transformar de forma espectral dados residuais, muitos desses padrões prescrevem o uso de uma transformada de co-seno discreta (DCT) ou alguma variante sobre a mesma. Os coeficientes de DCT resultantes são então quantizados utilizando um quantizador para produzir coeficientes de domínio de transformada quantizada, ou índices. O bloco ou matriz de coeficientes de domínio de transformada quantizada (às vezes mencionado como uma "unidade de transformada") é então codificado por entropia utilizando um modelo de contexto especifico. Em H.264/AVC e no trabalho de desenvolvimento atual para MPEG-H, os coeficientes de transformada quantizada são codificados por (a) codificar uma última posição de coeficiente significativa indicando o local do último coeficiente não zero na unidade de transformada, (b) codificar um mapa de significância indicando as posições na unidade de transformada (diferente de última posição de coeficiente significativo) que contêm coeficientes não zero, (c) codificar as magnitudes dos coeficientes não zero, e (d) codificar os sinais dos coeficientes não zero. Essa codificação dos coeficientes de transformada quantizada ocupa f reqüentemente 30 - 80% dos dados codificados no fluxo de bits.
Unidades de transformada são tipicamente NxN. Tamanhos comuns incluem 4x4, 8x8, 16x16, e 32x32, embora outros tamanhos sejam possiveis, incluindo tamanhos não quadrados em algumas modalidades, como 16x4, 4x16, 8x32 ou 32x8. A codificação por entropia dos símbolos no mapa de significância se baseia em um modelo de contexto. No caso de blocos de luma ou croma 4x4 ou 8x8 ou unidades de transformada (TU) , um contexto separado é associado a cada posição de coeficiente na TU. O codificador e decodificador devem seguir o rastro de e consultar um número grande de contextos diferentes durante a codificação e decodificação do mapa de significância. No caso de TUs maiores, o contexto para codificar um indicador significante pode depender dos valores de indicadores de significância vizinhos. Por exemplo, o indicador pode ter um contexto selecionado de quatro ou cinco contextos dependendo dos valores de indicadores vizinhos. Em alguns casos, indicadores específicos em uma TU ou sub-bloco de uma TU podem ter um contexto baseado na posição, como a posição esquerda superior (DC).
Sumário O presente pedido descreve métodos e codificadores/decodificadores para codificar e decodificar mapas de significância com codificação ou decodificação adaptável ao contexto. 0 codificador e decodificador utilizam mapas de significância de multi-níveis. Pelo menos em um caso, os mapas de multi-níveis são utilizados com unidades de transformada maiores, como as TUs de 16x16 e 32x32 .
Em um aspecto, o presente pedido descreve um método de decodificar um fluxo de bits de vídeo codificado por reconstruir indicadores de coeficiente significativo para uma unidade de transformada, a unidade de transformada compreendendo uma seqüência de blocos, o fluxo de bits codificando conjuntos de indicadores de coeficiente significativo, cada conjunto correspondendo a um bloco respectivo. 0 método inclui, para um dos conjuntos de indicadores de coeficiente significativo, selecionar um conjunto de contexto para uso na decodificação de indicadores de coeficiente significativo daquele conjunto com base em uma posição na unidade de transformada do bloco correspondendo àquele conjunto de indicadores de coeficiente significativo; e decodificar os indicadores de coeficiente significativo daquele conjunto utilizando o conjunto de contexto selecionado.
Em outro aspecto, o presente pedido descreve um método de decodificar um fluxo de bits de video codificado por reconstruir indicadores de coeficiente significativo para uma unidade de transformada, a unidade de transformada compreendendo uma seqüência de blocos, o fluxo de bits codificando conjuntos de indicadores de coeficiente significativo, cada conjunto correspondendo a um bloco respectivo. O método inclui, para um dos conjuntos de indicadores de coeficiente significativo, determinar um indicador de grupo de coeficiente significativo para aquele conjunto; selecionar um conjunto de contexto para uso na decodificação de indicadores de coeficiente significativo daquele conjunto por selecionar um primeiro conjunto de contexto se o indicador do grupo de coeficiente significativo foi decodificado a partir do fluxo de bis, e selecionar um conjunto de contexto diferente se o indicador de grupo de coeficiente significativo foi determinado com base nos indicadores do grupo de coeficiente significativo de pelo menos dois conjuntos vizinhos de indicadores de coeficiente significativo; e decodificar os indicadores de coeficiente significativo utilizando o conjunto de contexto selecionado.
Em uma modalidade, determinação inclui determinar que o indicador de grupo de coeficiente significativo é igual a 1 .
Em uma modalidade adicional, determinação inclui inferir que o indicador do grupo de coeficiente significativo é igual a 1 com base em um conjunto de vizinhos à direita de indicadores de coeficiente significativo tendo um indicador de grupo de coeficiente significativo igual ale um conjunto de vizinhos abaixo de indicadores de coeficiente significativo igual a 1. Em algumas implementações esse método inclui ainda, após a decodificação, determinar se o conjunto contém coeficientes todos zero e, em caso positivo, revisar o indicador de grupo de coeficiente significativo para o conjunto para igual a 0 para uso em determinar subseqüentemente se deve inferir indicadores de grupo de coeficiente significativo de conjuntos adjacentes de indicadores de coeficiente significativo.
Ainda em outra modalidade, determinação compreende decodificar o indicador de grupo de coeficiente significativo a partir do fluxo de bits uma vez que um conjunto de vizinhos à direita de indicadores de coeficiente significativo tem um indicador de grupo de coeficiente significativo igual a 0 ou um conjunto de vizinhos embaixo de indicadores de coeficientes significativos igual a 0.
Em uma modalidade adicional, o primeiro conjunto de contexto inclui um número de contextos, em que a seleção do primeiro conjunto de contexto compreende definir uma variável de indice de contexto em um valor predeterminado, e em que a seleção do segundo conjunto de contexto compreende definir a variável de indice de contexto no valor predeterminado mais o número de contextos.
Em outro aspecto, o presente pedido descreve um método de codificar um video por codificar indicadores de coeficiente significativo para uma unidade de transformada para criar um fluxo de bits de conjuntos codificados de indicadores de coeficiente significativo, a unidade transformada compreendendo uma seqüência de blocos, cada conjunto de indicadores de coeficiente significativo correspondendo a um bloco respectivo. O método inclui, para um dos conjuntos de indicadores de coeficiente significativo, determinar um indicador de grupo de coeficiente significativo para aquele conjunto; selecionar um conjunto de contexto para uso na codificação de indicadores de coeficiente significativo daquele conjunto por selecionar um primeiro conjunto de contexto se o indicador de grupo de coeficiente significativo foi codificado para inserção no fluxo de bits, e selecionar um conjunto de contexto diferente se o indicador de grupo de coeficiente significativo foi determinado com base nos indicadores de grupo de coeficiente significativo de pelo menos dois conjuntos vizinhos de indicadores de coeficiente significativo; e codi ficar os indicadores de coeficientes significativos daquele conjunto utilizando o conjunto de contexto selecionado.
Em um aspecto adicional, o presente pedido descreve codificadores e decodificados configurados para implementar tais métodos de codificação e decodificação.
Ainda em um aspecto adicional, o presente pedido descreve midia legível em computador não transitória que armazena instruções de programa executáveis em computador que, quando executadas, configuram um processador para executar os métodos descritos de codificação e/ou decodi f icação.
Em outro aspecto, o presente pedido descreve um método de decodificar um fluxo de bits de vídeo codificado por reconstruir indicadores de coeficiente significativo para uma unidade de transformada, a unidade de transformada compreendendo uma seqüência de blocos, o fluxo de bits codificando conjuntos de indicadores de coeficiente significativo, e cada conjunto correspondendo a um bloco respectivo. O método inclui, para um conjunto de indicadores de coeficiente significativo correspondendo a um primeiro bloco, selecionar um conjunto de contexto a partir de uma pluralidade de conjuntos de contexto para uso na decodificação de indicadores de coeficiente significativo daquele conjunto com base em um indicador de grupo de coeficiente significativo associado a um bloco à direita do primeiro bloco e um indicador de grupo de coeficiente significativo associado a um bloco abaixo do primeiro bloco; e decodifica os indicadores de coeficiente significativo daquele conjunto utilizando o conjunto de contextos selecionado.
Ainda em outro aspecto, o presente pedido descreve um método de codificar um video por codificar indicadores de coeficiente significativo para uma unidade transformada para criar um fluxo de bits de conjuntos codificados de indicadores de coeficiente significativo, a unidade transformada compreendendo uma seqüência de blocos, e cada conjunto de indicadores de coeficiente significativo correspondendo a um bloco respectivo. 0 método inclui, para um conjunto de indicadores de coeficiente significativo correspondendo a um primeiro bloco, selecionar um conjunto de contexto de uma pluralidade de conjuntos de contexto para uso na codificação de indicadores de coeficiente significativo daquele conjunto com base em um indicador de grupo de coeficiente significativo associado a um bloco à direita do primeiro bloco e um indicador de grupo de coeficiente siqnificativo associado a um bloco abaixo do primeiro bloco; e codificar os indicadores de coeficiente significativo daquele conjunto utilizando o conjunto de contexto selecionado.
Outros aspectos e características do presente pedido serão entendidos por aqueles com conhecimentos comuns na técnica a partir de um exame da seguinte descrição dos exemplos em combinação com as figuras em anexo.
Breve descrição dos desenhos Será feita agora referência, como exemplo, aos desenhos em anexo que mostram modalidades de exemplo do presente pedido, e nos quais: A figura 1 mostra, em forma de diagrama de blocos, um codificador para codificar vídeo; A figura 2 mostra, em forma de diagrama de blocos, um decodificador para decodificar vídeo; A figura 3 mostra um exemplo de uma ordem de varredura de multi-níveis para uma unidade de transformada 16x16; A figura 4 ilustra a divisão de uma unidade de transformada 16x16 em duas regiões fixas utilizando uma diagonal definida; A figura 5 ilustra a divisão de uma unidade de transformada 32x32 em duas regiões fixas utilizando uma diagonal definida; A figura 6 ilustra uma divisão baseada em grupo de coeficiente de uma unidade de transformada 16x16 em regiões para selecionar um conjunto de contexto; A figura 7 mostra uma unidade de transformada de exemplo dividida em grupos de coeficiente contiguos e indicadores de grupo de coeficiente significativo respectivo para aqueles grupos de coeficiente; A figura 8 mostra um exemplo de uma divisão dinamicamente determinada de uma unidade transformada de 16x16 em regiões com base no exemplo da figura 7; A figura 9 mostra o exemplo da figura 7, com correção de inferência; A figura 10 mostra a divisão dinâmica da unidade transformada em regiões baseadas no exemplo da figura 9; A figura 11 mostra, em forma de fluxograma, um método de exemplo de codificar um mapa de significância; A figura 12 mostra, em forma de fluxograma, um método de exemplo de reconstruir um mapa de significância de um fluxo de bits de dados codificados; A figura 13 mostra um diagrama de blocos simplificado de uma modalidade de exemplo de um codificador; e A figura 15 mostra um diagrama de blocos simplificado de uma modalidade de exemplo de um decodificador.
Numerais de referência similares podem ter sido utilizados em figuras diferentes para indicar componentes similares.
Descrição de modalidades de exemplo Na descrição que segue, algumas modalidades de exemplo são descritas com referência ao padrão 11.264 para codificação de video e/ou desenvolvimento de padrão MPEG-H. aqueles com conhecimentos comuns na técnica entenderão que o presente pedido não é limitado a H.264/AVC ou MPEG-H, porém pode ser aplicável a outros padrões de codificação/decodificação de video, incluindo possíveis padrões futuros, padrões de codificação de multi-visualização, padrões de codificação de vídeo escalonável e padrões de codificação de vídeo reconfigurável.
Na descrição que segue, ao se referir a vídeo ou imagens os termos quadro, imagem, fatia, tile e grupo de fatias retangulares podem ser utilizados de certo modo intercambiável. Aqueles versados na técnica reconhecerão que no caso do padrão H.264, um quadro pode conter uma ou mais fatias. Será também reconhecido que certas operações de codificação/decodificação são realizadas em uma base de quadro a quadro, algumas são realizadas em uma base de fatia por fatia, algumas imagem por imagem, algumas tile por tile, e algumas por grupo de fatias retangulares, dependendo das exigências específicas ou terminologia do padrão de codificação de vídeo ou imagem aplicável. Em qualquer modalidade específica, o padrão de codificação de vídeo ou imagem aplicável pode determinar se as operações descritas abaixo são realizadas com relação a quadros e/ou fatias e/ou imagens e/ou tiles e/ou grupos de fatias retangulares, conforme o caso. Por conseguinte, aqueles com conhecimentos comuns na técnica entenderão, à luz da presente revelação, o fato de se operações ou processos específicos descritos aqui e referências específicas a quadros, fatias, imagens, tiles, grupos de fatias retangulares são aplicáveis a quadros, fatias, imagens, tiles, grupos de fatias retangulares, ou alguns ou todos esses para uma dada modalidade. Isso também se aplica a unidades de transformada, unidades de codificação, grupos de unidades de codificação, etc., como se tornará evidente à luz da descrição abaixo. O presente pedido descreve processos e dispositivos de exemplo para codificar e decodificar mapas de significância. Um mapa de significância é um bloco, matriz ou grupo de indicadores que mapeia para, ou corresponde a, uma unidade de transformada ou uma unidade definida de coeficientes (por exemplo, varas unidades de transformada, uma porção de uma unidade de transformada, ou uma unidade de codificação). Cada indicador indica se a posição correspondente na unidade de transformada ou a unidade especifica contém um coeficiente não zero ou não. Em padrões existentes, esses indicadores podem ser mencionados como indicadores de coeficiente significativo. Em padrões existentes, há um indicador por coeficiente e o indicador é um bit que é zero se o coeficiente correspondente for zero e é definido em um se o coeficiente correspondente for não zero. O termo "mapa de significância" como utilizado aqui pretende se referir a uma matriz ou conjunto ordenado de indicadores de coeficiente significante para uma unidade de transformada, como será entendido a partir da descrição abaixo, ou uma unidade definida de coeficientes, que será evidente a partir do contexto das aplicações.
Será entendido, à luz da seguinte descrição, que a estrutura de codificação e decodificação de multi-niveis podería ser aplicada em certas situações, e aquelas situações podem ser determinadas de informações secundárias como tipo de conteúdo de vídeo (vídeo natural ou gráfico como identificado em cabeçalhos de seqüência, imagem ou fatia). Por exemplo, dois níveis podem ser utilizados para vídeo natural, e três níveis podem ser utilizados para gráfico (que é tipicamente muito mais escasso). Ainda outra possibilidade é fornecer um indicador em um dos cabeçalhos de seqüência, imagem ou de fatia para indicar se a estrutura tem um, dois ou três níveis, desse modo permitindo ao codificador a flexibilidade de escolher a estrutura mais apropriada para o presente conteúdo. Em outra modalidade, o indicador pode representar um tipo de conteúdo, que seria associado ao número de níveis. Por exemplo, um conteúdo do tipo "gráfico" pode apresentar três níveis .
Observe que o presente pedido pode utilizar os termos "grupo de coeficiente" e "conjunto de indicadores de coeficiente significativo" de forma intercambiável. Os mesmos são destinados ter o mesmo significado. É feita agora referência à figura 1, que mostra, em forma de diagrama de blocos, um codificador 10 para codificar vídeo. É feita também referência à figura 2, que mostra um diagrama de blocos de um decodi f icador 50 para decodificar vídeo. Será reconhecido que o codificador 10 e decodificador 50 descritos aqui podem, individualmente, ser implementados em um dispositivo de computação de aplicação específica ou propósito geral, contendo um ou mais elementos de processamento e memória. As operações realizadas pelo codificador 10 ou decodificador 50, conforme o caso podem ser implementadas por meio de circuito integrado de aplicação específica, por exemplo, ou por meio de instruções de programa armazenado executáveis por um processador de propósito geral. 0 dispositivo pode incluir software adicional, incluindo, por exemplo, um sistema operacional para controlar funções básicas de dispositivo. A gama de dispositivos e plataformas nas quais o codificador 10 ou decodificador 50 pode ser implementada será reconhecida por aqueles com conhecimentos comuns na técnica com relação à seguinte descrição. O codificador 10 recebe uma fonte de video 12 e produz um fluxo de bits codificado 14. O decodificador 50 recebe o fluxo de bits codificado 14 e transmite um quadro de video decodificado 16. O codificador 10 e decodificador 50 podem ser configurados para operar em conformidade com diversos padrões de compressão de video. Por exemplo, o codificador 10 e decodificador 50 podem estar em conformidade com H.264/AVC. Em outras modalidades, o codificador 10 e decodificador 50 podem ser conformar a outros padrões de compressão de video, incluindo evoluções do padrão H.264/AVC, como MPEG-H. O codificador 10 inclui um preditor espacial 21, um seletor de modo de codificação 20, processador de transformada 22, quantizador 24, e codificador por entropia 26. Como será reconhecido por aqueles com conhecimentos comuns na técnica, o seletor de modo de codificação 20 determina o modo de codificação apropriado para a fonte de video, por exemplo, se a fatia/quadro em questão é do tipo I, P ou B e se unidades de codificação especificas (por exemplo, macroblocos, unidades de codificação, etc.) no quadro/fatia são inter ou intra-codifiçados . O processador de transformada 22 executa uma transformada sobre os dados de domínio espacial. Em particular, o processador de transformada 22 aplica uma transformada baseada em bloco para converter dados de domínio espacial em componentes espectrais. Por exemplo, em muitas modalidades uma transformada de co-seno discreta (DCT) é utilizada. Outras transformadas, como uma transformada de seno discreta ou outras podem ser utilizadas em alguns casos. A transformada baseada em bloco é realizada em uma unidade de codificação, macrobloco ou base de sub-bloco, dependendo do tamanho dos macroblocos ou unidades de codificação. No padrão H.264, por exemplo, um macrobloco de 16x16 tipico contém dezesseis blocos de transformada de 4x4 e o processo DCT é realizado nos blocos 4x4. Em alguns casos, os blocos de transformada podem ser 8x8, significando que há quatro blocos de transformada por macrobloco. Ainda em outros casos, os blocos de transformada podem ser outros tamanhos. Em alguns casos, um macrobloco de 16x16 pode incluir uma combinação de não sobreposição de 4x4 e 8x blocos de transformada. A aplicação da transformada baseada em bloco em um bloco de dados de pixel resulta em um conjunto de coeficientes de domínio de transformada. Um "conjunto" nesse contexto é um conjunto ordenado no qual os coeficientes têm posições de coeficiente. Em alguns casos, o conjunto de coeficientes de domínio de transformada pode ser considerado como um "bloco" ou matriz de coeficientes. Na descrição da presente invenção as frases um "conjunto de coeficientes de domínio de transformada" ou um "bloco de coeficientes de domínio de transformada" são utilizados de forma intercambiável e pretendem indicar um conjunto ordenado de coeficientes de domínio de transformada. O conjunto de coeficientes de domínio de transformada é quantizado pelo quantizador 24. Os coeficientes quant.izados e informações associadas são então codificados pelo codificador por entropia 26. O bloco ou matriz de coeficientes de domínio de transformada quantizada pode ser mencionado aqui como uma "unidade de transformada" (TU). Em alguns casos, a TU pode ser não quadrada, por exemplo, uma transformada de quadratura não quadrada (NSQT).
Fatias/quadros intra-codifiçados (isto é, tipo I) são codificados sem referência a outros quadros/fatias. Em outras palavras, não empregam predição temporal. Entretanto, quadros intra-codifiçados se baseiam em predição espacial no quadro/fatia, como ilustrado na figura 1 pelo preditor espacial 21. Isto é, ao codificar um bloco específico os dados no bloco podem ser comparados com os dados de pixels próximos nos blocos já codificados para aquele quadro/fatia. Utilizando um algoritmo de predição, os dados de fonte do bloco podem ser convertidos em dados residuais. O processador de transformada 22 codifica então os dados residuais. H.264, por exemplo, prescreve nove modos de predição espacial para blocos de transformada 4x4. Em algumas modalidades, cada dos nove modos pode ser utilizado para processar independentemente um bloco, e então otimização de distorção de taxa é utilizada para selecionar o melhor modo. O padrão H.264 também prescrever o uso de predição de movimento/compensação para tirar proveito de predição temporal. Por conseguinte, o codificador 10 tem um loop de realimentação que inclui um desquantizador 28, processador de transformada inversa 30, e processador de desbloqueio 32. O processador de desbloqueio 32 pode incluir um processador de desbloqueio e um processador de filtração. Esses elementos espelham o processo de decodificação implementado pelo decodificador 50 para reproduzir o quadro/fatia. Uma armazenagem de quadro 34 é utilizada para armazenar os quadros reproduzidos. Desse modo, a predição de movimento se baseia no que serão os quadros reconstruídos no decodificador 50 e não nos quadros originais, que podem diferir dos quadros reconstruídos devido à compressão de perda envolvida em codificação/decodificação. Um preditor de movimento 36 utiliza os quadros/fatias armazenados na armazenagem de quadro 34 como quadros/fatias de fonte para comparação com um quadro atual para fins de identificar blocos similares. Por conseguinte, para macroblocos ou unidades de codificação às quais predição de movimento é aplicado, os "dados de fonte" que o processador de transformada 22 codifica são os dados residuais que saem do processo de predição de movimento. Por exemplo, pode incluir informações referentes ao quadro de referência, um deslocamento espacial ou "vetor de movimento", e dados de pixel residuais que representam as diferenças (caso haja) entre o bloco de referência e o bloco atual. Informações referentes ao quadro de referência e/ou vetor de movimento podem não ser processadas pelo processador de transformada 22 e/ou quantizador 24, porém em vez disso podem ser fornecidas ao codificador por entropia 26 para codificar como parte do fluxo de bits juntamente com os coeficientes quant i zados.
Aqueles com conhecimentos comuns na técnica reconhecerão os detalhes e possíveis variações para implementar codificadores de video. O decodificador 50 inclui um decodificador por entropia 52, desquantizador 54, processador de transformada inversa 56, compensador espacial 57, e processador de desbloqueio 60. O processador de desbloqueio 60 pode incluir processadores de filtração e desbloqueio. Um buffer de quadro 58 fornece quadros reconstruídos para uso por um compensador de movimento 62 em aplicar compensação de movimento. O compensador espacial 57 representa a operação de recuperar os dados de vídeo para um bloco intra-codificado específico de um bloco anteriormente decodificado. O fluxo de bits 14 é recebido e decodificado pelo decodificador por entropia 52 para recuperar os coeficientes quantizados. Informações secundárias também podem ser recuperadas durante o processo de decodificação por entropia, algumas das quais podem ser fornecidas ao loop de compensação de movimento para uso em compensação de movimento, se aplicável. Por exemplo, o decodificador por entropia 52 pode recuperar vetores de movimento e/ou informações de quadro de referência para macroblocos inter-codi f içados.
Os coeficientes quantizados são então desquantizados pelo desquantizador 54 para produzir os coeficientes de domínio de transformada, que são então submetidos a uma transformada inversa pelo processador de transformada inversa 56 para recriar os "dados de vídeo". Será reconhecido que, em alguns casos, como com um macrobloco intra-codifiçado ou unidade de codificação, os "dados de vídeo" recriados são os dados residuais para uso cm compensação espacial relativa a um hl.oco anteriormente decodificado no quadro. O compensador espacial 57 gera os dados de video a partir dos dados residuais e dados de pixel de um bloco anteriormente decodificado. Em outros casos, como macroblocos inter-codifiçados ou unidades de codificação, os "dados de video" recriados a partir do processador de transformada inversa 56 são os dados residuais para uso em compensação de movimento em relação a um bloco de referência de um quadro diferente. Tanto compensação espacial como movimento pode ser mencionado aqui como "operações de predição". O compensador de movimento 62 localiza um bloco de referência no buffer de quadro 58 especificado para uma unidade de codificação ou macrobloco inter-codifiçado especifico. Faz isso com base nas informações de quadro de referência e vetor de movimento especificado para o macrobloco inter-codifiçado ou unidade de codificação. Fornece então os dados de pixel de bloco de referência para combinação com os dados residuais para chegar aos dados de video reconstruídos para aquela unidade de codificação/macrobloco.
Um processo de filtração/desbloqueio pode ser então aplicado a uma fatia/quadro reconstruído, como indicado pelo processador de desbloqueio 60. Após desbloqueio/filtração, o quadro/fatia é transmitido como o quadro de vídeo decodificado 16, por exemplo, para exibição em um dispositivo de display. Será entendido que a máquina de reprodução de vídeo, como um computador, conversor de sinais de freqüência, tocador de DVD ou Blu-Ray, e/ou dispositivo portátil móvel, pode armazenar quadros decodificados em uma memória antes de exibir em um dispositivo de saida.
Espera-se que codificadores e decodificadores em conformidade com MPEG-H tenham muitas dessas características iguais ou similares.
Codificação de mapa de signifícância Como observado acima, a codificação por entropia de um bloco ou conjunto de coeficientes de domínio de transformada quantizada inclui o mapa de significância (por exemplo, um conjunto de indicadores de coeficiente significante) para aquele bloco ou conjunto de coeficientes de domínio de transformada quantizada. O mapa de significância é um mapeamento binário do bloco indicando em quais posições (diferentes da última posição) coeficientes não zero aparecem. O mapa de significância pode ser convertido em um vetor de acordo com a ordem de varredura (que pode ser vertical, horizontal, diagonal, ziguezague, ou qualquer outra ordem de varredura). A varredura é tipicamente feita em ordem "inversa", isto é, começando com o último coeficiente significativo e trabalhando de volta através do mapa significativo em direção inversa até que o indicador no canto esquerdo superior em [0, 0] seja atingido. Na presente descrição, o termo "ordem de varredura" pretende significar a ordem na qual indicadores, coeficientes, ou grupos conforme o caso, são processados e podem incluir ordens que são mencionadas coloquialmente como "ordem de varredura inversa".
Cada indicador de coeficiente significativo é então codificado por entropia utilizando o esquema de codificação adaptável ao contexto aplicável. Por exemplo, em muitas aplicações um esquema de codificação aritmética binária adaptável ao contexto (CABAC) pode ser utilizado.
Com mapas de significância de 16x16 e 32x32, o contexto para um significante é (na maioria) baseado em valores de indicador de coeficiente significativo vizinho. Entre os contextos utilizados para mapas de significância de 16x16 e 32x32, há certos contextos dedicados à posição de bit em [0,0] e (em algumas implementações de exemplo) a posições de bit vizinho, porém a maioria dos indicadores de coeficiente significativo toma um de quatro ou cinco contextos que dependem dos valores cumulativos de indicadores de coeficiente significativo zinhos. Nesses casos, a determinação do contexto correto para um indicador de coeficiente significativo depende de determinar e somar os valores dos indicadores de coeficiente significativo em locais vizinhos (tipicamente cinco locais, porém poderia ser mais ou menos em alguns casos).
Em trabalho anterior, os presentes requerentes descreveram o uso de mapas de significância de multi-niveis, em que o mapa de signif icância de uma unidade de transformada é dividida em grupos de coeficiente e cada grupo de coeficiente é codificado em uma ordem ou sequência predefinida. Em cada grupo de coeficiente (que pode ser um bloco/sub-bloco) os indicadores de coeficiente significativo são processados em uma ordem de varredura. Cada grupo de coeficiente é associado a um indicador de grupo de coeficiente significativo, que indica se aquele grupo de coeficientes pode ser considerado como conlendo indicadores de coeficiente significativo não zero. Pode-se fazer referência ao pedido de patente US no. De série 13/286.336, depositado em 1 de novembro de 2011, intitulado "Multi-level significance maps for encoding and decoding"; e pedido de patente US número de série 61/561.872, depositado em 19 de novembro de 2011, intitulado "Multilevel significance map scanning". O teor dos dois pedidos é incorporado pelo presente a titulo de referência.
Uma das técnicas descritas nos pedidos acima é implementação de um processo de varredura de uma passagem, isto é, uma ordem de varredura de multi-niveis ou baseado em grupo. Faz-se referência agora à figura 3, que mostra uma unidade de transformada de 16x16 100 com uma ordem de varredura diagonal de multi-niveis ilustrada. A unidade de transformada 100 é dividida em dezesseis grupos de coeficiente 4x4 contíguos ou "conjuntos de indicadores de coeficiente significativo". Em cada grupo de coeficiente, uma ordem de varredura diagonal é aplicada no grupo, em vez de através da unidade de transformada inteira 100. Os conjuntos ou os próprios grupos de coeficiente são processados em uma ordem de varredura, que nessa implementação de exemplo também é uma ordem de varredura diagonal. Será observado que a ordem de varredura nesse exemplo é ilustrada em ordem de varredura "inversa", isto é, a ordem de varredura é mostrada avançando do grupo de coeficiente inferior-direito em uma direção diagonal esquerda-para baixo em direção ao grupo de coeficiente superior-esquerdo. Em algumas implementações mesma ordem de varredura pode ser definida na outra direção; isto é, avançando em uma direção diagonal para cima-direita e quando aplicado durante codificação ou decodificação pode ser aplicada em uma ordem de varredura "inversa". O uso de mapas de significância de multi-níveis envolve a codificação de um mapa de significância de nivel mais elevado ou LI que indica quais grupos de coeficiente podem ser esperados para conter indicadores de coeficiente significante não zero, e quais grupos de coeficiente contêm indicadores de coeficiente significante todo zero. Os grupos de coeficientes que podem ser esperados conter indicadores de coeficiente significante não zero têm seus indicadores de coeficiente significante codificados, ao passo que os grupos de coeficiente que contêm indicadores de coeficiente significante todo zero não são codificados (a menos que sejam grupos que são codificados devido a uma exceção de caso especial porque são presumidos conter pelo menos um indicador de coeficiente significante não zero) . Cada grupo de coeficiente tem um indicador de grupo de coeficiente significante (a menos que um caso especial se aplique em que aquele grupo de coeficiente tenha um indicador de um valor presumido, como o grupo que contém o último coeficiente significante, o grupo esquerdo superior, etc . ) .
Os indicadores de grupo de coeficiente são determinados com base no conteúdo do grupo de coeficiente, isto é, baseado em se são, na realidade, quaisquer coeficientes não zero no grupo de coeficiente; ou o indicador de grupo de coeficiente é inferido. Por exemplo, pelo menos em uma modalidade, o indicador de grupo de coeficiente é ajustado em zero se não houver coeficientes não zero no grupo de coeficiente e é ajustado em um se houver pelo menos um coeficiente não zero no grupo de coeficiente; entretanto, para poupar bits em alguns casos um indicador de grupo de coeficiente não é codificado e decodificado, porém em vez disso é inferido com base no valor de indicadores de grupo de coeficiente vizinhos. Por exemplo, em uma modalidade um indicador de grupo de coeficiente é inferido como sendo 1 se o indicador de grupo de coeficiente vizinho inferior e o indicador de grupo de coeficiente vizinho direito forem ambos iguais a 1.
Processamento baseado em contexto de indicadores de coeficiente significativo A codificação e decodificação dos indicadores de coeficiente significativo se baseiam em contexto. Em outras palavras, a codificação e decodificação dependem de determinar uma probabilidade estimada de que o depósito sendo codificado é um símbolo mais provável (MPS) . Essa determinação de probabilidade estimada depende, por sua vez, de determinar um contexto para o símbolo atual. Tipicamente, o codificador e decodificador baseados em contexto trabalham de acordo com um modelo de contexto que especifica como o contexto deve ser determinado para tipos específicos de dados, e que define um conjunto de contextos.
No caso de indicadores de coeficiente significativo, o modelo de contexto baseia a determinação de contexto nos valores de indicadores de coeficiente significativo vizinho (exceto por exceções específicas, como o valor DC em [0,0] ) . Por exemplo, com unidades de transformada de tamanho 16x16 ou 32x32, o contexto de indicador de coeficiente significativo "x" depende de cinco indicadores vizinhos como a seguir: A soma cumulativa dos valores dos cinco indicadores vizinhos pode ser utilizada para indicar o contexto para o indicador de coeficiente significativo na posição x. Por conseguinte, pode haver até seis contextos. Em alguns casos, o número de contextos pode ser coberto, por exemplo, em 4. Um modelo de determinação de contexto de exemplo é como a seguir: context_x = (simi_neighbor_ílags + 1) / 2 O context_x acima é um indice de contexto para um "conjunto de contextos" para codificar indicadores de coeficiente significativo. Isto é, ao determinar o contexto para codificar um indicador de coeficiente significativo especifico, o contexto é selecionado de um dos contextos definidos no conjunto de contextos.
Em algumas implementações de exemplo, mais de um conjunto de contextos pode ser definido pelo modelo para codificar indicadores de coeficiente significativo. Por exemplo, o codificador e decodificador podem utilizar um conjunto de contextos para codificar indicadores de coeficiente significativo que estão compreendidos em uma primeira região da unidade de transformada e um segundo conjunto de contextos separado para codificar indicadores de coeficiente significativo que estão compreendidos em uma segunda região (ou uma terceira região, etc.) da unidade de transformada.
Trabalhando com o exemplo acima, os contextos do segundo conjunto podem incluir contextos 4, 5, 6 e 7 e a seleção do contexto apropriado para um indicador de coeficiente significativo especifico na segunda região pode ser baseada em um modelo de determinação de contexto de: offset = 0 If region = region 2. set offset = 4 siun_neighbor_flags = 0 contexts = 0 + offset snm_neighbor_flags = 1 context_x = 1 + offset sumneighborflags = 2 context_x = 2 + offset sum_neighbor_flags > 3 context_x = 3 + offset Em algumas implementações atuais, uma unidade de transformada é dividida em uma primeira região e uma segunda região para fins de determinação de contexto utilizando uma definição diagonal fixa. Por exemplo, com uma unidade de transformada 16x16, a diagonal é definida por x + y = 4 . Isso resulta em uma região como aquela mostrada na figura 4, que ilustra uma unidade de transformada 16x16 de exemplo, 110. A unidade de transformada de exemplo 110 inclui uma primeira região 112 e uma segunda região 114, dividida de acordo com a definição diagonal x+y <4. Isto é, todos os indicadores de coeficiente significativo para os quais x+y <4 estão na primeira região 112. Nesse caso, o valor DC em [0,0] tem seu próprio contexto. Em algum sentido, o local de DC pode ser considerado uma "terceira região" na qual haja um único contexto no conjunto de contextos.
É feita agora referência à figura 5, que mostra um exemplo de uma unidade de transformada 32x32, 120. A unidade de transformada 120 é dividida em uma primeira região 122 e uma segunda região 124 de acordo com uma definição diagonal de x+y < 8. Isto é, todos os indicadores de coeficiente significativo para os quais x+y <8 estão na primeira região 122, exceto o indicador de coeficiente significativo DC 126, e aqueles indicadores de coeficiente significativo são codificados utilizando um primeiro conjunto de contextos. Todos os outros indicadores de coeficiente significativo para os quais x+y > 8 estão no segundo conjunto e são codificados utilizando um segundo conjunto de contexto. O indicador de coeficiente significativo DC 126 é codificado utilizando seu próprio contexto. Nesse sentido a posição de DC pode ser considerada uma terceira região por si própria. O presente pedido provê outras abordagens para selecionar um conjunto de contextos para codificar os indicadores de coeficiente significativo de uma unidade de transformada.
Em uma primeira modalidade, a seleção de conjunto de contexto é fixa, como com os exemplos de definição diagonal dados acima; entretanto, nessa primeira modalidade, a primeira região não é definida por uma diagonal. Em vez disso, a primeira região é definida para corresponder com uma definição de grupo de coeficiente. Desse modo, a seleção de conjunto de contextos é baseada em grupo de coeficiente, que melhora a modularidade de codificação de coeficiente significativo em uma modalidade de mapa de significância de multi-niveis. Múltiplas regiões poderíam ser definidas, cada uma delas sendo delimitada por limites de grupo de coeficiente. A posição DC pode ser considerada como uma região. A figura 6 mostra um exemplo de uma unidade de transformada 16x16 200 dividida em regiões de contexto com base em definições de grupo de coeficiente. Nesse exemplo, uma primeira região 202 inclui todos os indicadores de coeficiente significativo no primeiro grupo de coeficiente (também pode ser considerado o último grupo de coeficiente em ordem de varredura inversa) excluindo o indicador de coeficiente significativo DC 206. Isto é a primeira região 202 inclui todos os indicadores de coeficiente significativo para os quais x < 4 e y < 4 excluindo [0,0]. Todos os indicadores de coeficiente significativo nos outros grupos de coeficiente da unidade de transformada 200 estão em uma segunda região 204. Os indicadores de coeficiente significativo na primeira região 202 são codificados utilizando um primeiro conjunto de contexto enquanto os indicadores de coeficiente significativo na segunda região 204 são codificados utilizando um segundo conjunto de contexto. Em uma implementação de exemplo, o codificador e/ou decodificador determina se um indicador de coeficiente significativo está na primeira região, isto é, no grupo de coeficiente superior esquerdo, por determinar se uma coordenada-x e uma coordenada-y do indicador estão cada em 4 posições do canto superior esquerdo da unidade de transformada.
Em outras variações, a primeira região pode incluir mais de um grupo de coeficiente. Por exemplo, em uma unidade de transformada 32x32, se os grupos de coeficiente forem 4x4, então a primeira região pode incluir os três ou quatro grupos de coeficiente no canto esquerdo superior da unidade de transformada. Ou, em outro exemplo, a unidade de transformada 16x16 200 pode incluir três ou mais grupos de coeficiente na primeira região 202. Outras variações serão reconhecidas à luz da presente descrição.
Nessa primeira modalidade, o codificador e decodificador processam indicadores de coeficiente significativo por determinar seu contexto utilizando um conjunto de contexto selecionado com base no grupo de coeficiente no qual os indicadores de coeficiente significativo pertencem. A posição do grupo de coeficiente na unidade de transformada determina o conjunto de contexto selecionado. Isto é, cada grupo de coeficiente na unidade de transformada é associado a certo conjunto de contexto, isto é, cada grupo de coeficiente é um membro de uma das regiões definidas, e cada região tem um conjunto de contexto associado.
Em uma segunda modalidade, as regiões são ainda baseadas em grupo de coeficiente, porém o limite entre as primeira e segunda regiões é determinado dinamicamente. Em um exemplo dessa segunda modalidade, a divisão se baseia no fato de se o indicador de grupo de coeficiente de um grupo de coeficiente especifico foi inferido para 1 ou não. Isto é, o grupo de coeficiente é atribuído a uma região com base nos indicadores de grupo de coeficiente de seus grupos de coeficiente vizinhos inferior e direito. É feita agora referência à figura 7, que mostra diagramaticamente uma unidade de transformada 16x16 220 dividida em conjuntos contíguos 4x4 de indicadores de coeficiente significativo, isto é, grupos de coeficiente. Os grupos de coeficiente podem ser indexados utilizando as coordenadas x-y mostradas (x = 0, . . . , 3; y = 0, . . . , 3) . O indicador de grupo de coeficiente significativo (SCGflag) determinado para cada dos grupos de coeficientes é mostrado no diagrama dentro do grupo de coeficiente respectivo.
Como será reconhecido a partir da discussão acima, a unidade de transformada 220 contém um último coeficiente significativo (LSC) em um dos grupos de coeficiente. Para fins desse exemplo, o LSC é presumido estar no grupo de coeficiente [2,2] . Todos os grupos antes do grupo de coeficiente [2,2] em ordem de varredura contêm necessariamente todos os zeros. O indicador de grupo de coeficiente significativo para o grupo de coeficiente [2,2] é necessariamente 1, uma vez que contém o LSC, o que significa que contém pelo menos um coeficiente não zero.
No exemplo mostrado, o próximo grupo de coeficiente em ordem de varredura inversa é o grupo de coeficiente [1,3], que contém coeficientes todos zero. Por conseguinte o indicador de grupo de coeficiente significativo é um 0.
Verifica-se que todos os grupos de coeficientes seguintes em ordem de varredura inversa, grupos [3,0], [2,1] e [1,2] contêm pelo menos um coeficiente não zero. Por conseguinte, cada deles têm um indicador de grupo de coeficiente significativo de 1 . Verifica-se que o grupo de coeficiente [0,3] contém coeficientes todos zero, assim seu indicador de grupo de coeficiente significativo é determinado como sendo 0 . O grupo seguinte em ordem de varredura inversa é grupo de coeficiente [2,0] . Como seu grupo de coeficiente vizinho à direta e seu grupo de coeficiente de vizinho inferior têm ambos SCGflag=l, o indicador de grupo de coeficiente significativo para o grupo de coeficiente [2,0] é inferido ou assumido como sendo 1, independente de se há quaisquer coeficientes não zero no grupo de coeficiente [2,0] ou não. A mesma inferência é feita com o grupo de coeficiente [1,1] . O grupo de coeficiente [0,2] tem um vizinho inferior com um indicador de grupo de coeficiente significativo de zero, assim nenhuma inferência é feita. No caso de grupo de coeficiente [0,2] verifica-se que contém um coeficiente não zero assim seu indicador de grupo de coeficiente significativo é definido em 1 . Todos os grupos de coeficiente restantes em ordem de varredura inversa têm indicadores de grupo de coeficiente significativo que são inferidos como sendo 1 .
Quaisquer dos indicadores de grupos de coeficiente significativo inferidos não necessitam ser codificados no fluxo de bits ou decodificados no decodificador. São assumidos como sendo iguais a 1, e o codificador e decodificador codificam automaticamente os indicadores de coeficiente significativo daqueles grupos de coeficiente, mesmo se um deles contiver coeficientes todos zero. É feita agora referência também à figura 8, que mostra a divisão de região dinâmica para uma ilustração de exemplo da segunda modalidade com base na unidade de transformada 220 mostrada na figura 7. Nessa segunda modalidade, uma primeira região (indicada pelo simbolo '1' nos grupos de coeficiente que pertencem à primeira região) para codificar os indicadores de coeficiente significativo é definido com incluindo aqueles grupos de coeficiente para os quais o indicador de grupo de coeficiente significativo é inferido como sendo 1. Uma segunda região (indicada pelo símbolo '2' nos grupos de coeficiente que pertencem à segunda região) contém aqueles grupos de coeficiente que têm um grupo de coeficiente significativo que não foi inferido. Será entendido que aqueles grupos de coeficiente para os quais o indicador de grupo de coeficiente significativo é zero não necessitam ser incluídos em uma região uma vez que os indicadores de coeficiente significativo daqueles grupos não são codificados. A posição DC 226 pode ainda ter seu próprio contexto e desse modo não é necessariamente considerado parte da primeira região. A partir da descrição acima será reconhecido que as primeira e segunda regiões têm um limite ao longo das bordas do grupo de coeficiente, porém o local do qual muda dinamicamente a partir de unidade de transformada para unidade de transformada, dependendo do conteúdo da unidade de transformada em questão. Por manter a separação das regiões ao longo dos limites de grupo de coeficiente alguma eficiência em processamento modular e simplificação de código podem ser obteníveis. O movimento dinâmico do limite pode melhorar a velocidade com a qual os conjuntos de contexto respectivos associados às duas regiões convergem em direção a uma distribuição de probabilidade refletiva de dados estatísticos efetivos, desse modo melhorando a taxa na qual a eficiência de codificação é aperfeiçoada.
Será reconhecido que um mecanismo para implementar o processo de determinação de região acima seria atribuir cada grupo de coeficiente a uma região baseada nos indicadores de grupo de coeficiente significativo de seus grupos de coeficiente vizinho à direita e inferior. Isto é, se qualquer um dos indicadores de grupo de coeficiente significativo dos grupos de coeficiente vizinho à direita e inferior for igual a 0, então o grupo de coeficiente pertence à região dois; de outro modo, pertence à região um. O grupo de coeficiente do canto esquerdo superior pode ser sempre classificado em região um em algumas modalidades.
Uma terceira modalidade é descrita agora, que pode ser considerada uma variação ou refinamento da segunda modalidade. Na terceira modalidade, o limite entre as regiões é ainda dinamicamente determinado com base em se grupos de coeficiente significativo foram inferidos como sendo 1 ou não, e o limite continua a situar-se ao longo de limites de grupo de coeficiente; entretanto, a terceira modalidade inclui avaliar se a inferência foi precisa ou não e fazer ajustes na categorização de grupos de coeficiente posterior com base em uma reclassificação da inferência incorreta. É feita agora referência à figura 9, que mostra uma unidade de transformada de exemplo 250. Nesse caso, a determinação de indicadores de grupo de coeficiente significativo para os vários grupos de coeficiente ocorre como descrito acima com relação à figura 7. Entretanto, nesse caso, o codificador e decodificador avaliam se as inferências foram precisas ou não. Por exemplo, o grupo de coeficiente [1,1] pode, na realidade, conter coeficientes todos os zeros. Esses coeficientes são na realidade codificados no fluxo de bits e são decodificados pelo decodificador porque o indicador de grupo de coeficiente significativo é ajustado em 1, embora por inferência ou assunção incorreta. Na figura 9, isso é indicado como 'inferido incorreto'.
No momento de decodificar os indicadores de coeficiente significativo para grupo de coeficiente [1,1] o decodificador não estaria ciente de que a inferência é incorreta e, por conseguinte, entendería que esse grupo de coeficiente é parte da primeira região uma vez que tem um indicador de grupo de coeficiente significativo inferido. Por conseguinte, o codificador e decodificador utilizam ambos o conjunto de contextos associado à primeira região ao codificar e decodificar os indicadores de coeficiente significativo do grupo de coeficientes [1,1] . Entretanto, quando se refere a processamento de grupos de coeficientes subseqüentes o codificador e decodificador podem considerar esse conhecimento da inferência incorreta. Por exemplo, ao determinar os indicadores de grupo de coeficiente significativo para grupos de coeficiente [1,0] e [0,1], podem considerar seu grupo de coeficiente fizinho em [1,1] como tendo um indicador de grupo de coeficiente significativo igual a 0, embora na realidade tenha utilizado um indicador inferido igual ale tenha seus indicadores de coeficiente significativo codificados. Como mostrado na figura 9, os grupos de coeficiente [1,0] e [0,1] têm seus indicadores de grupo de coeficiente significativo definidos em 1 com base no fato de que na realidade contêm pelo menos um coeficiente não zero.
Será reconhecido que essa 'correção' da inferência incorreta para processamento de grupos coeficientes posteriores pode ser limitada a corrigir a inferência para fins de atribuir grupos de coeficientes a regiões somente, ou pode ser também corrigido para fins de determinar efetivamente o indicador de coeficiente significativo para aqueles grupos de coeficientes posteriores que podem ter se baseado na inferência incorreta em fazer outra inferência.
Como resultado, o número de grupos de coeficientes para os quais uma inferência foi utilizada para determinar o indicador de grupo de coeficiente significativo muda para apenas três. Isso tem um impacto sobre o formato das regiões utilizadas para selecionar conjuntos de contexto para codificar os indicadores de coeficiente significativo. A figura 10 mostra a unidade de transformada 250 com as primeira e segunda regiões indicadas na mesma. Será observado que os grupos de coeficientes que compõem uma região não necessitam ser contínuos ou contíguos nesse caso. É feita agora referência à figura 11, que mostra um método de exemplo 300 de codificar vídeo empregando a segunda modalidade de um processo para selecionar conjuntos de contexto para codificar indicadores de coeficiente significativo. O método 300 inclui, para um grupo de coeficientes, isto é, conjunto de indicadores de coeficiente significativo, determinar se o indicador de grupo de coeficiente significativo deve ser inferido em operação 302. Como descrito acima, o modelo de contexto nesse exemplo provê que o indicador de grupo de coeficiente significativo é inferido como sendo 1 se os indicadores de grupo de coeficiente significativo do grupo de coeficiente vizinho à direita e o grupo de coeficiente vizinho inferior são ambos iguais a 1. Se esse for o caso, então na operação 304 o indicador de grupo de coeficiente significativo do grupo de coeficiente atual é ajustado em 1. Se esse não for o caso, então o codificador na realidade olha os dados no grupo de coeficiente para determinar se há quaisquer coeficientes não zero, como indicado pela operação 306. Se todos os indicadores de coeficiente significativos do grupo de coeficiente atual forem zero, então o indicador de grupo de coeficiente significativo é ajustado em zero na operação 308. A operação 308 pode incluir codificar o indicador de grupo de coeficiente significativo. Então em operação 310, o codificador move para o grupo de coeficiente seguinte em ordem de varredura e retorna para a operação 302 para começar de novo o processo.
Se for verificado que o grupo de coeficiente contém pelo menos um indicador de coeficiente significativo não zero, então na operação 307 o indicador de grupo de coeficiente significativo é ajustado em 1. A operação 307 pode incluir também codificar o indicador de grupo de coeficiente significativo.
Se o indicador de grupo de coeficiente significativo for inferido na operação 304, então na operação 314 o primeiro conjunto de contexto é selecionado. Em uma modalidade na qual haja um número grande de contextos definidos, e na qual o primeiro conjunto de contexto inclui um número predeterminado daqueles contextos definidos, então a seleção do primeiro conjunto de contextos pode ser implementada por ajustar um indice de contexto para apontar para um contexto predeterminado daqueles contextos definidos no primeiro conjunto de contexto.
Se o indicador de grupo de coeficiente significativo foi determinado com base em se havia coeficientes não zero no grupo de coeficientes na operação 307, então na operação 316 o segundo conjunto de contexto é selecionado. Em algumas implementações, a seleção do segundo conjunto de contextos inclui uma variável de indice de contexto para apontar para um dos contextos definidos no segundo conjunto de contextos. O fato de se utilizar o primeiro conjunto de contextos ou o segundo conjunto de contextos, na operação 318 o conjunto de contextos selecionado é utilizado para codificar os indicadores de coeficiente significativo do grupo de coeficiente atual. Para o último grupo de coeficiente, isso pode incluir codificar o indicador de coeficiente significativo DC utilizando seu próprio contexto atribuído, e quaisquer outros indicadores que possam ter seu próprio contexto baseado em seu local na unidade de transformada. A operação 320 determina se é o último grupo de coeficiente na unidade de transformada. Em caso positivo, então o codificador pode ir para a etapa de codificação seguinte com relação à unidade de transformada (que pode incluir codificar os níveis de coeficiente e/ou sinais). De outro modo, o codificador move para o grupo de coeficiente seguinte em ordem de varredura inversa e repete o processo.
Será feita agora referência à figura 12, que mostra um método de exemplo 400 para decodificar um fluxo de bits de dados de video codificados para reconstruir um mapa de significância para uma unidade de transformada. O mapa de significância é dividido em conjuntos contíguos de indicadores de coeficiente significativo, isto é, grupos de coeficiente.
Na operação 402 o decodificador determina se o indicador de grupo de coeficiente significativo para o grupo de coeficiente atual deve ser inferido. Em caso positivo, então na operação 412 é ajustado em 1. Em caso negativo, então na operação 404 o indicador de grupo de coeficiente significativo é decodificado a partir do fluxo de bits. Como discutido acima, nesse exemplo o indicador de grupo de coeficiente significativo é inferido se os indicadores de grupo de coeficiente significativo para o grupo de coeficiente vizinho à direita e o grupo de coeficiente vizinho inferior forem ambos iguais a 1.
Na operação 408, se o indicador de grupo de coeficiente significativo decodificado for igual a 0, então na operação 408 todos os indicadores de coeficiente significativo daquele grupo de coeficiente são ajustados em 0. O decodificador então move para o grupo de coeficiente seguinte em ordem de varredura inversa, como indicado pela operação 410, e então repete o processo da operação 402.
Se o indicador de grupo de coeficiente significativo decodificado não for zero, então na operação 414 o segundo conjunto de contextos é selecionado. Se o indicador de grupo de coeficiente significativo foi inferido para ser 1, então na operação 416 o primeiro conjunto de contexto é selecionado. Em qualquer caso, na operação 418 o conjunto de contexto selecionado é utilizado para decodificar os indicadores de coeficiente significativo daquele grupo de coeficiente. A operação 420 envolve determinar se é o último grupo de coeficiente e em caso positivo, mover para a fase seguinte de decodificação. De outro modo o decodificador move para o grupo de coeficiente seguinte em ordem de varredura inversa e retorna para a operação 402 para continuar o processo de decodificação para indicadores de coeficiente significativo. É ilustrado abaixo um exemplo da primeira modalidade do processo de decodificação utilizando pseudo-código. A primeira modalidade do processo de decodificação é uma na qual as regiões são fixas ao longo de limites de grupo de coeficiente. Esse pseudo-código de exemplo é apenas uma implementação possível de uma divisão possível da unidade de transformada em regiões.
Na sintaxe exemplificada pelo pseudo-código abaixo, se o tamanho da unidade de transformada for 16x16 ou 32x32 (por exemplo, log2TraofSize > 3) , então o processo de exemplo é realizado. Observe que os valores inteiros específicos utilizados abaixo para a variável de índice sigCtx são exemplos somente de um índice predeterminado para um número grande de contextos definidos.
Entradas nesse processo são o índice de componente de cor cldx, a posição de varredura de coeficiente atual (xC, yC) , a largura de bloco de transformada log2TraoWitdh e a altura de bloco de transformada log2TrafOHeight. A saída desse processo é ctxldxlnc. A variável sigCtx depende da posição atual (xC, yC), o tamanho de bloco de transformada e depósitos anteriormente decodificados do elemento de sintaxe significant_coeff_flag e significant_coeffgroup_flag. Para a derivação de sigCtx, o seguinte se aplica.
Se log2TrafoWidth for igual a log2TrafoHeight e log2TrafoWidth for igual a 2, sigCtx é derivado utilizado ctxIdxMap4x4[] como a seguir. sigCtx = ctxIdxMap4x4[ ((clclx > 0) ? 15 : 0) ·+· (yC « 2) — xC ] De outro modo se log2TrafoWidth for igual a log2TrafoHeight e log2TrafoWidth for igual a 3, sigCtx é derivado utilizando ctxIdxMap8x8[0 como a seguir. sigCtx = ((xC + yC) = = 0) ? 10 : ctxIdxMap8x8[ ((yC » 1 ) « 2) + (xC >:> 1) ] sigCtx +-= ( cldx > 0) ? 6: 9 De outro modo, se xC + yC for igual a 0, sigCtx é derivado como a seguir. sigCtx = ( clclx > 0) ? 17: 20 De outro modo (xC + yC é maior do que 0) , sigCtx é derivado utilizando depósitos anteriormente decodificados do elemento de sintaxe significant_coeff_flag como a seguir. A variável sigCtx é inicializada em 0.
Quando xC é menor do que (1 <<log2TrafoWidth) 1, o seguinte se aplica. sigCtx = sigCtx signiticant_coeff_tlag[ xC + 1 ][ yC ] Quando xC é menor do que (1 << lgo2TrafoWidth) -1 e yC é menor do que (1 << log2TrafoHeight) - 1, o seguinte se aplica. sigCtx =: sigCtx + signiíicant_coef£_flag[ xC + 1 ][yC+ l ] Quando xC é menor do que (1 << log2width) - 2, o seguinte se aplica. sigCtx = sigCtx + signifícant_coeff_flag[ xC + 2 ][ yC ] Quando todas as seguintes condições são verdadeiras, . yC é menor do que (1 << log2TrafoHeight) - 1, . xC% 4 não é igual a 0 ou yC% 4 não é igual a 0, . xC% 4 não é igual a 3 ou yC%4 não é igual a 2, O seguinte se aplica. sigCtx = sigCtx + signiíicant_coeft^flag[ xC ][ yC + 1 ] Quando yC é menor do que (1 << log2TrafoHeight) - 2 e sigCtx é menor do que 4, o seguinte se aplica. sigCtx = sigCtx + sigmficant_cocff_flag[ xC ][ yC' + 2 ] A variável sigCtx é modificada como a seguir.
Se cldx for igual a 0 e tanto xC como yC forem maiores ou iguais a 1 << (Max(log2TrafoWidth, log2TrafoHeight) - 2), o seguinte se aplica. sigCtx = ( (sigCtx - 1) » 1 ) + 24 De outro modo, o seguinte se aplica. sigCtx = ( (sigCtx - 1) » 1 ) + ( (clclx > 0) ? IS : 21 ) O incremento de indice de contexto ctxldxlnc é derivado utilizando o indice de componente de cor cldx e sigCtx como a seguir.
Se cldx for igual a 0, ctxldxlnc é derivado como a segui r. ctxldxlnc = sigCtx de outro modo (cldx é maior do que 0) , ctxldxlnc é derivado como a seguir. ctxldxlnc = 27 + sigCtx Uma sintaxe de exemplo para implementar a segunda modalidade do processo de decodificação também pode ser ilustrada. A segunda modalidade é uma na qual as regiões são dinamicamente determinadas com base no modo no qual o indicador do grupo de coeficiente foi obtido, isto é, se através de decodificação ou por meio de inferência. A sintaxe de exemplo para a segunda modalidade pode ser substancialmente idêntica à sintaxe mostrada acima para a primeira modalidade exceto que a modificação para sigCtx, mostrada logo antes da derivação de ctxldxlnc, é substituída com: Se cldx for igual a 0 e pelo menos uma das seguintes condições for verdadeira, (xC >> 2) + (yC >>2) é igual a 0, (xC << 2) é menor do que (1 << log2TrafoWidth -2) -1, (yC » 2) é menor do que (1 << log2TrafoHeight - 2) -1, e Significant_coeffgroup_flag[ (xC >>2 ) + 1] [yC >> 2] + significant_coeffgroup_flag [xC>>2][(yC>>2) +1] é igual a 2, O seguinte se aplica. sigCtx = ((sigCtx +1) >> 1) + 24 de outro modo o seguinte se aplica. sigCtx = (( sigCtx +1) »1) + ((cldx > 0) ? 18:21) É feita referência agora à figura 13, que mostra um diagrama de bloco simplificado de uma modalidade de exemplo de um codificador 900. O codificador 900 inclui um processador 902, memória 904, e uma aplicação de codificação 906. A aplicação de codificação 906 pode incluir um programa de computador ou aplicação armazenada na memória 904 e contendo instruções para configurar o processador 902 para executar operações como aquelas descritas aqui. Por exemplo, a aplicação de codificação 906 pode codificar e transmitir fluxos de bits codificados de acordo com os processos descritos aqui. Será entendido que a aplicação de codificação 906 pode ser armazenada em um meio legível em computador, como um compact disc, dispositivo de memória flash, memória de acesso aleatório, unidade rígida, etc. É feita agora também referência a figura 14, que mostra um diagrama de bloco simplificado de uma modalidade de exemplo de um decodificador 1000. 0 decodificador 1000 inclui um processador 1002, uma memória 1004 e uma aplicação de decodificação 1006. A aplicação de decodificação 1006 pode incluir um programa de computador ou aplicação armazenada na memória 1004 e contendo instruções para configurar o processador 1002 para executar operações como aquelas descritas aqui. A aplicação de decodificação 1006 pode incluir um decodificador por entropia configurado para reconstruir resíduos com base, pelo menos em parte,na reconstrução de indicadores de coeficiente significativo, como descrito aqui. Será entendido que a aplicação de decodi f icação 1006 pode ser armazenada em um meio legível em computador, como um compact disc, dispositivo de memória flash, memória de acesso aleatório, unidade rígida, etc.
Será reconhecido que o decodificador e/ou codificador de acordo com o presente pedido podem ser implementados em diversos dispositivos de computação, incluindo, sem limitação, servidores, computadores de propósito geral adequadamente programados, dispositivos de codificação e reprodução de áudio/video, conversores de sinais de freqüência de televisão, equipamento de broadcast de televisão, e dispositivos móveis. O decodificador ou codificador pode ser implementado por meio de instruções contendo software para configurar um processador para realizar as funções descritas aqui. As instruções de software podem ser armazenadas em qualquer memória legível em computador não transitória apropriada, incluindo CDs, RAM, ROM, memória flash, etc.
Será entendido que o codificador descrito aqui e o módulo, rotina, processo, thread, ou outro componente de software implementado o método/processo descrito para configurar o codificador pode ser realizado utilizando técnicas de programação de computador e linguagens padrão. O presente pedido não é limitado a processadores específicos, linguagens de computador, convenções de programação de computador, estruturas de dados, outros tais detalhes de implementação. Aqueles versados na técnica reconhecerão que os processos descritos podem ser implementados como parte de código executável por computador armazenado em memória volátil ou não volátil, como parte de um chip integrado de aplicação específica (ASIC), etc.
Certas adaptações e modificações das modalidades descritas podem ser feitas. Portanto, as modalidades discutidas acima são consideradas como sendo ilustrativas e não restritivas.

Claims (15)

1 . Método de decodificar um fluxo de bits de video codificado por reconstruir indicadores de coeficiente significativo para uma unidade de transformada, a unidade de transformada compreendendo uma seqüência de blocos, o fluxo de bits codificando conjuntos de indicadores de coeficiente significativo, cada conjunto correspondendo a um bloco respectivo, o método sendo caracterizado pelo fato de que compreende: Para um conjunto de indicadores de coeficiente significativo correspondendo a um primeiro bloco, selecionar um conjunto de contextos de uma pluralidade de conjuntos de contextos para uso na decodificação de indicadores de coeficiente significativo daquele conjunto baseado em um indicador de grupo de coeficiente significativo associado a um bloco à direita do primeiro bloco e um indicador de grupo de coeficiente significativo associado a um bloco abaixo do primeiro bloco; e Decodificar os indicadores de coeficiente significativo daquele conjunto utilizando o conjunto de contexto selecionado.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que cada indicador de grupo de coeficiente significativo indica se seu bloco associado é presumido conter pelo menos um indicador de coeficiente significativo não zero.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a seleção de um conjunto de contextos compreende selecionar um primeiro conjunto de contextos se ambos dos indicadores de grupo de coeficiente significativo forem não zero, e de outro modo, selecionar outro conjunto de contextos.
4. Método, de acordo com qualquer uma das reivindicações 1, 2 ou 3, caracterizado pelo fato de que a decodificação compreende decodificação adaptável em contexto, e em que os conjuntos de contexto identificam os contextos a serem utilizados em decodificação adaptável em contexto dos indicadores de coeficiente significativo daquele conjunto de indicadores de coeficiente significativo.
5. Método, de acordo com qualquer uma das reivindicações 1, 2, 3 ou 4, caracterizado pelo fato de que a seleção de um conjunto de contexto inclui ainda selecionar um contexto específico para decodificar o indicador de coeficiente significativo na posição DC do primeiro bloco se for o bloco esquerdo superior na unidade de transformada.
6. Método, de acordo com qualquer uma das reivindicações 1, 2, 3, 4 ou 5, caracterizado pelo fato de que a seleção de um conjunto de contexto é adicionalmente baseada em se o primeiro bloco está ou não no canto esquerdo superior da unidade de transformada.
7. Método, de acordo com qualquer uma das reivindicações 1, 2, 3, 4, 5 ou 6, caracterizado pelo fato de que a seleção de um conjunto de contextos é adicionalmente baseado no tamanho da unidade de transformada.
8. Método, de acordo com qualquer uma das reivindicações 1, 2, 3, 4, 5, 6 ou 7, caracterizado pelo fato de que a seleção de um conjunto de contextos é adicionalmente baseada em se os componentes da unidade de transformada são componentes luma ou componentes croma.
9. Decodificador para decodificar um fluxo de bits de dados codificados para reconstruir indicadores de coeficiente significativo para uma unidade de transformada, o decodificador sendo caracterizado pelo fato de que compreende: Um processador; Uma memória; e Uma aplicação de decodificação armazenada em memória e contendo instruções para configurar o processador para executar o método de acordo com qualquer uma das reivindicações 1 a 8 .
10. Método de codificar um vídeo por codificar indicadores de coeficiente significativo para uma unidade de transformada para criar um fluxo de bits de conjuntos codificados de indicadores de coeficiente significativo, a unidade de transformada compreendendo uma seqüência de blocos, cada conjunto de indicadores de coeficiente significativo correspondendo a um bloco respectivo, o método sendo caracterizado pelo fato de que compreende: Para um conjunto de indicadores de coeficiente significativo correspondendo a um primeiro bloco, selecionar um conjunto de contextos de uma pluralidade de conjuntos de contextos para uso na codificação de indicadores de coeficiente significativo daquele conjunto com base em um indicador de grupo de coeficiente significativo associado a um bloco à direita do primeiro bloco e um indicador de grupo de coeficiente significativo associado a um bloco abaixo do primeiro bloco; e Codificar os indicadores de coeficiente significativo daquele conjunto utilizando o conjunto de contextos selecionados.
11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que cada indicador do grupo de coeficiente significativo indica se seu bloco associado é presumido conter pelo menos um indicador de coeficiente significativo não zero.
12. Método, de acordo com a reivindicação 10 ou 11, caracterizado pelo fato de que a seleção de um conjunto de contextos compreende selecionar um primeiro conjunto de contextos se ambos os indicadores de grupo de coeficiente significativo forem não zero e, de outro modo, selecionar outro conjunto de contextos.
13. Método, de acordo com qualquer uma das reivindicações 10, 11 ou 12, caracterizado pelo fato de que a codificação compreende codificação adaptável a contexto, e em que os conjuntos de contextos identificam os contextos a serem utilizados em codificação adaptável em contexto dos indicadores de coeficiente significativo daquele conjunto.
14. Codificador para codificar indicadores de coeficiente significativo para uma unidade de transformada para produzir um fluxo de bits de dados codificados, o codificador sendo caracterizado pelo fato de que compreende: Um processador, Uma memória, e Uma aplicação de codificação armazenada na memória e contendo instruções para configurar o processador para executar o método de acordo com qualquer uma das reivindicações 10 a 13.
15. Meio legivel em processador não transitório, caracterizado pelo fato de que armazena instruções executáveis em processador que, quando executadas, configuram um ou mais processadores para executar o método reivindicado em qualquer uma das reivindicações 1, 2, 3, 4, 5, 6, 7, 8, 10, 12 ou 13.
BR102013001517-2A 2012-01-20 2013-01-21 métodos e dispositivos para seleção de conjunto de contextos BR102013001517B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12151965.6 2012-01-20
EP12151965.6A EP2618570B1 (en) 2012-01-20 2012-01-20 Method and devices for context set selection

Publications (2)

Publication Number Publication Date
BR102013001517A2 true BR102013001517A2 (pt) 2015-01-13
BR102013001517B1 BR102013001517B1 (pt) 2020-12-15

Family

ID=45491485

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102013001517-2A BR102013001517B1 (pt) 2012-01-20 2013-01-21 métodos e dispositivos para seleção de conjunto de contextos

Country Status (10)

Country Link
EP (2) EP2618570B1 (pt)
JP (1) JP5526246B2 (pt)
KR (1) KR101455501B1 (pt)
CN (1) CN103220516B (pt)
AU (1) AU2013200291B2 (pt)
BR (1) BR102013001517B1 (pt)
CA (1) CA2802285C (pt)
MX (1) MX2013000712A (pt)
SG (1) SG192352A1 (pt)
TW (1) TWI533705B (pt)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111683255B (zh) 2012-01-20 2022-08-02 索尼公司 有效度图编码的复杂度降低
CN114222137A (zh) * 2016-05-28 2022-03-22 世宗大学校产学协力团 构成预测运动矢量列表的方法
KR102257829B1 (ko) 2017-04-13 2021-05-28 엘지전자 주식회사 영상의 부호화/복호화 방법 및 이를 위한 장치
CN112911288B (zh) * 2019-12-03 2022-05-27 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101356733B1 (ko) * 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
HRP20220743T1 (hr) * 2010-04-13 2022-08-19 Ge Video Compression, Llc Kodiranje signifikacijskih mapa i blokova koeficijenata transformacije
CN102231830B (zh) * 2010-11-23 2013-04-17 浙江大学 用于上下文算术编解码的运算单元
CN102088603B (zh) * 2010-12-31 2013-12-04 北京大学深圳研究生院 用于视频编码器的熵编码器及其实现方法

Also Published As

Publication number Publication date
KR20130086169A (ko) 2013-07-31
MX2013000712A (es) 2014-01-09
JP2013150322A (ja) 2013-08-01
CA2802285A1 (en) 2013-07-20
AU2013200291B2 (en) 2015-07-16
BR102013001517B1 (pt) 2020-12-15
JP5526246B2 (ja) 2014-06-18
SG192352A1 (en) 2013-08-30
TW201347546A (zh) 2013-11-16
EP2618570A1 (en) 2013-07-24
EP2618578B1 (en) 2015-07-15
CN103220516A (zh) 2013-07-24
EP2618570B1 (en) 2017-12-13
TWI533705B (zh) 2016-05-11
EP2618578A1 (en) 2013-07-24
CA2802285C (en) 2017-08-22
KR101455501B1 (ko) 2014-10-30
CN103220516B (zh) 2016-05-18

Similar Documents

Publication Publication Date Title
KR101538837B1 (ko) 변환 유닛 내의 다수 부호 비트 은폐
KR102187013B1 (ko) 비디오 코딩에서 변환 계수 데이터를 코딩하기 위한 콘텍스트들의 결정
BR102012029413B1 (pt) Método e decodificador para reconstruir indicadores de coeficiente significativo para uma unidade de transformada
TWI532364B (zh) 在變換跳躍模式中寫碼重要係數資訊
TWI661715B (zh) 對視頻資料解碼的方法
BR112020019715A2 (pt) combinação de intrapredição dependente de posição estendida com modos angulares
US11778191B2 (en) Methods and devices for context set selection
BR112013033645B1 (pt) Elementos de sintaxe de sinalização para coeficientes de transformada para subconjuntos de uma unidade de codificação de nível-folha
BR112021004922A2 (pt) método de decodificação de vídeo, decodificador de vídeo, codificador de vídeo, e mídia legível por computador não transitório
BR102012027968A2 (pt) mapas de significância de nível múltiplo para codificação e decodificação
BR102013001517A2 (pt) Métodos e dispositivos para seleção de conjunto de contextos
US9172962B2 (en) Methods and systems for pipelining within binary arithmetic coding and decoding
CA2800119C (en) Methods and systems for pipelining within binary arithmetic coding and decoding

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B25D Requested change of name of applicant approved

Owner name: BLACKBERRY LIMITED (CA)

B25G Requested change of headquarter approved

Owner name: BLACKBERRY LIMITED (CA)

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]
B25A Requested transfer of rights approved

Owner name: VELOS MEDIA INTERNATIONAL LIMITED (IE)

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

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